# Generated by asmintgen -- DO NOT EDIT
.intel_syntax noprefix

#ifdef __APPLE__
#define CSYM(name) _##name
#else
#define CSYM(name) name
#endif

.text

.section .data.rel.ro
.p2align 3
asm_dispatch_table:
    .quad asm_handler_Add
    .quad asm_handler_AddPrivateName
    .quad asm_handler_ArrayAppend
    .quad asm_handler_Await
    .quad asm_handler_BitwiseAnd
    .quad asm_handler_BitwiseNot
    .quad asm_handler_BitwiseOr
    .quad asm_handler_ToInt32
    .quad asm_handler_ToString
    .quad asm_handler_ToPrimitiveWithStringHint
    .quad asm_handler_BitwiseXor
    .quad asm_handler_Call
    .quad asm_handler_CallBuiltinMathAbs
    .quad asm_handler_CallBuiltinMathLog
    .quad asm_handler_CallBuiltinMathPow
    .quad asm_handler_CallBuiltinMathExp
    .quad asm_handler_CallBuiltinMathCeil
    .quad asm_handler_CallBuiltinMathFloor
    .quad asm_handler_CallBuiltinMathImul
    .quad asm_handler_CallBuiltinMathRandom
    .quad asm_handler_CallBuiltinMathRound
    .quad asm_handler_CallBuiltinMathSqrt
    .quad asm_handler_CallBuiltinMathSin
    .quad asm_handler_CallBuiltinMathCos
    .quad asm_handler_CallBuiltinMathTan
    .quad asm_handler_CallBuiltinRegExpPrototypeExec
    .quad asm_handler_CallBuiltinRegExpPrototypeReplace
    .quad asm_handler_CallBuiltinRegExpPrototypeSplit
    .quad asm_handler_CallBuiltinOrdinaryHasInstance
    .quad asm_handler_CallBuiltinArrayIteratorPrototypeNext
    .quad asm_handler_CallBuiltinMapIteratorPrototypeNext
    .quad asm_handler_CallBuiltinSetIteratorPrototypeNext
    .quad asm_handler_CallBuiltinStringIteratorPrototypeNext
    .quad asm_handler_CallBuiltinStringFromCharCode
    .quad asm_handler_CallBuiltinStringPrototypeCharCodeAt
    .quad asm_handler_CallBuiltinStringPrototypeCharAt
    .quad asm_handler_CallConstruct
    .quad asm_handler_CallConstructWithArgumentArray
    .quad asm_handler_CallDirectEval
    .quad asm_handler_CallDirectEvalWithArgumentArray
    .quad asm_handler_CallWithArgumentArray
    .quad asm_handler_Catch
    .quad asm_handler_ConcatString
    .quad asm_handler_CopyObjectExcludingProperties
    .quad asm_handler_CreateArguments
    .quad asm_handler_CreateAsyncFromSyncIterator
    .quad asm_handler_CreateDataPropertyOrThrow
    .quad asm_handler_CreateLexicalEnvironment
    .quad asm_handler_CreateImmutableBinding
    .quad asm_handler_CreateMutableBinding
    .quad asm_handler_CreatePrivateEnvironment
    .quad asm_handler_CreateRestParams
    .quad asm_handler_CreateVariable
    .quad asm_handler_CreateVariableEnvironment
    .quad asm_handler_Decrement
    .quad asm_handler_DeleteById
    .quad asm_handler_DeleteByValue
    .quad asm_handler_DeleteVariable
    .quad asm_handler_Div
    .quad asm_handler_End
    .quad asm_handler_EnterObjectEnvironment
    .quad asm_handler_Exp
    .quad asm_handler_GetById
    .quad asm_handler_GetByIdWithThis
    .quad asm_handler_GetByValue
    .quad asm_handler_GetByValueWithThis
    .quad asm_handler_GetCalleeAndThisFromEnvironment
    .quad asm_handler_DynamicGetCalleeAndThisFromEnvironment
    .quad asm_handler_GetCompletionFields
    .quad asm_handler_GetGlobal
    .quad asm_handler_GetImportMeta
    .quad asm_handler_GetLexicalEnvironment
    .quad asm_handler_GetIterator
    .quad asm_handler_GetLength
    .quad asm_handler_GetLengthWithThis
    .quad asm_handler_GetMethod
    .quad asm_handler_GetNewTarget
    .quad asm_handler_GetSuperConstructor
    .quad asm_handler_GetObjectPropertyIterator
    .quad asm_handler_GetPrivateById
    .quad asm_handler_GetTemplateObject
    .quad asm_handler_GetBinding
    .quad asm_handler_DynamicGetBinding
    .quad asm_handler_GetInitializedBinding
    .quad asm_handler_DynamicGetInitializedBinding
    .quad asm_handler_GreaterThan
    .quad asm_handler_GreaterThanEquals
    .quad asm_handler_HasPrivateId
    .quad asm_handler_ImportCall
    .quad asm_handler_In
    .quad asm_handler_Increment
    .quad asm_handler_InitializeLexicalBinding
    .quad asm_handler_DynamicInitializeLexicalBinding
    .quad asm_handler_InitializeVariableBinding
    .quad asm_handler_DynamicInitializeVariableBinding
    .quad asm_handler_InstanceOf
    .quad asm_handler_IsCallable
    .quad asm_handler_IsConstructor
    .quad asm_handler_IteratorClose
    .quad asm_handler_IteratorNext
    .quad asm_handler_IteratorNextUnpack
    .quad asm_handler_ObjectPropertyIteratorNext
    .quad asm_handler_IteratorToArray
    .quad asm_handler_Jump
    .quad asm_handler_JumpFalse
    .quad asm_handler_JumpGreaterThan
    .quad asm_handler_JumpGreaterThanEquals
    .quad asm_handler_JumpIf
    .quad asm_handler_JumpLessThan
    .quad asm_handler_JumpLessThanEquals
    .quad asm_handler_JumpLooselyEquals
    .quad asm_handler_JumpLooselyInequals
    .quad asm_handler_JumpNullish
    .quad asm_handler_JumpStrictlyEquals
    .quad asm_handler_JumpStrictlyInequals
    .quad asm_handler_JumpTrue
    .quad asm_handler_JumpUndefined
    .quad asm_handler_LeavePrivateEnvironment
    .quad asm_handler_LeftShift
    .quad asm_handler_LessThan
    .quad asm_handler_LessThanEquals
    .quad asm_handler_LooselyEquals
    .quad asm_handler_LooselyInequals
    .quad asm_handler_Mod
    .quad asm_handler_Mov
    .quad asm_handler_Mov2
    .quad asm_handler_Mov3
    .quad asm_handler_Mul
    .quad asm_handler_NewArray
    .quad asm_handler_NewArrayWithLength
    .quad asm_handler_NewClass
    .quad asm_handler_NewFunction
    .quad asm_handler_NewObject
    .quad asm_handler_NewObjectWithNoPrototype
    .quad asm_handler_NewPrimitiveArray
    .quad asm_handler_NewRegExp
    .quad asm_handler_NewTypeError
    .quad asm_handler_NewReferenceError
    .quad asm_handler_Not
    .quad asm_handler_PostfixDecrement
    .quad asm_handler_PostfixIncrement
    .quad asm_handler_PutById
    .quad asm_handler_PutByIdWithThis
    .quad asm_handler_PutBySpread
    .quad asm_handler_PutByValue
    .quad asm_handler_PutByValueWithThis
    .quad asm_handler_PutPrivateById
    .quad asm_handler_ResolveSuperBase
    .quad asm_handler_ResolveBinding
    .quad asm_handler_ResolveThisBinding
    .quad asm_handler_Return
    .quad asm_handler_RightShift
    .quad asm_handler_SetCompletionType
    .quad asm_handler_SetFunctionName
    .quad asm_handler_SetGlobal
    .quad asm_handler_SetLexicalEnvironment
    .quad asm_handler_SetLexicalBinding
    .quad asm_handler_SetResolvedBinding
    .quad asm_handler_DynamicSetLexicalBinding
    .quad asm_handler_SetVariableBinding
    .quad asm_handler_DynamicSetVariableBinding
    .quad asm_handler_StrictlyEquals
    .quad asm_handler_StrictlyInequals
    .quad asm_handler_Sub
    .quad asm_handler_SuperCallWithArgumentArray
    .quad asm_handler_Throw
    .quad asm_handler_ThrowIfNotObject
    .quad asm_handler_ThrowIfNullish
    .quad asm_handler_ThrowIfTDZ
    .quad asm_handler_ThrowConstAssignment
    .quad asm_handler_ToBoolean
    .quad asm_handler_ToLength
    .quad asm_handler_ToObject
    .quad asm_handler_Typeof
    .quad asm_handler_TypeofBinding
    .quad asm_handler_DynamicTypeofBinding
    .quad asm_handler_UnaryMinus
    .quad asm_handler_UnaryPlus
    .quad asm_handler_UnsignedRightShift
    .quad asm_handler_Yield
    .quad asm_handler_YieldIteratorResult
    .quad asm_handler_CacheObjectShape
    .quad asm_handler_InitObjectLiteralProperty
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback
    .quad asm_handler_fallback

.text

.globl CSYM(asm_interpreter_entry)
.p2align 4
CSYM(asm_interpreter_entry):
    .cfi_startproc
    push rbp
    .cfi_def_cfa_offset 16
    .cfi_offset rbp, -16
    mov rbp, rsp
    .cfi_def_cfa_register rbp
    push rbx
    .cfi_offset rbx, -24
    push r12
    .cfi_offset r12, -32
    push r13
    .cfi_offset r13, -40
    push r14
    .cfi_offset r14, -48
    push r15
    .cfi_offset r15, -56
    sub rsp, 8
    mov r14, rdi          # pb = bytecode base
    mov r13d, esi         # pc = entry_point
    mov r15, rdx          # values = values array
    mov QWORD PTR [rbp - 48], rcx  # save VM*
    mov rbx, QWORD PTR [rcx + 15288]  # exec_ctx
    lea r12, [rip + asm_dispatch_table]  # dispatch table
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_fallback:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_fallback_handler)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]


.p2align 4
asm_handler_Mov:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Mov2:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov r11d, DWORD PTR [r14 + r13 + 12]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Mov3:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov r11d, DWORD PTR [r14 + r13 + 12]
    mov QWORD PTR [r15 + r11 * 8], rcx
    mov eax, DWORD PTR [r14 + r13 + 24]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov r11d, DWORD PTR [r14 + r13 + 20]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 32
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Add:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_Add.lhs_not_int_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_Add.int_rhs_maybe_double_m0
    movsxd rcx, esi
    movsxd rax, edx
    jmp .Lasm_Add.both_int
.Lasm_Add.int_rhs_maybe_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Add.slow
    movsxd rcx, esi
    cvtsi2sd xmm0, rcx
    movq xmm1, rdx
    jmp .Lasm_Add.coerced_m0
.Lasm_Add.lhs_not_int_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Add.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_Add.double_rhs_int_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Add.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_Add.coerced_m0
.Lasm_Add.double_rhs_int_m0:
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
.Lasm_Add.coerced_m0:
    addsd xmm0, xmm1
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_Add.bdi_not_int_m4
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_Add.bdi_not_int_m4
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_Add.bdi_not_int_m4
    test rdx, rdx
    jz .Lasm_Add.bdi_check_neg_zero_m4
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_Add.bdi_done_m4
.Lasm_Add.bdi_check_neg_zero_m4:
    movq rcx, xmm0
    test rcx, rcx
    js .Lasm_Add.bdi_not_int_m4
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_Add.bdi_done_m4
.Lasm_Add.bdi_not_int_m4:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_Add.canon_nan_5
.Lasm_Add.canon_nan_5_ret:
.Lasm_Add.bdi_done_m4:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Add.both_int:
    add ecx, eax
    jo .Lasm_Add.overflow
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Add.overflow:
    movsxd rcx, esi
    movsxd rax, edx
    cvtsi2sd xmm0, rcx
    cvtsi2sd xmm1, rax
    addsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Add.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_add)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Add.canon_nan_5:
    movabs rcx, 9221120237041090560
    jmp .Lasm_Add.canon_nan_5_ret

.p2align 4
asm_handler_Sub:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_Sub.lhs_not_int_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_Sub.int_rhs_maybe_double_m0
    movsxd rcx, esi
    movsxd rax, edx
    jmp .Lasm_Sub.both_int
.Lasm_Sub.int_rhs_maybe_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Sub.slow
    movsxd rcx, esi
    cvtsi2sd xmm0, rcx
    movq xmm1, rdx
    jmp .Lasm_Sub.coerced_m0
.Lasm_Sub.lhs_not_int_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Sub.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_Sub.double_rhs_int_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Sub.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_Sub.coerced_m0
.Lasm_Sub.double_rhs_int_m0:
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
.Lasm_Sub.coerced_m0:
    subsd xmm0, xmm1
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_Sub.bdi_not_int_m4
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_Sub.bdi_not_int_m4
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_Sub.bdi_not_int_m4
    test rdx, rdx
    jz .Lasm_Sub.bdi_check_neg_zero_m4
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_Sub.bdi_done_m4
.Lasm_Sub.bdi_check_neg_zero_m4:
    movq rcx, xmm0
    test rcx, rcx
    js .Lasm_Sub.bdi_not_int_m4
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_Sub.bdi_done_m4
.Lasm_Sub.bdi_not_int_m4:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_Sub.canon_nan_5
.Lasm_Sub.canon_nan_5_ret:
.Lasm_Sub.bdi_done_m4:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Sub.both_int:
    sub ecx, eax
    jo .Lasm_Sub.overflow
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Sub.overflow:
    movsxd rcx, esi
    movsxd rax, edx
    cvtsi2sd xmm0, rcx
    cvtsi2sd xmm1, rax
    subsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Sub.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_sub)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Sub.canon_nan_5:
    movabs rcx, 9221120237041090560
    jmp .Lasm_Sub.canon_nan_5_ret

.p2align 4
asm_handler_Mul:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_Mul.lhs_not_int_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_Mul.int_rhs_maybe_double_m0
    movsxd rcx, esi
    movsxd rax, edx
    jmp .Lasm_Mul.both_int
.Lasm_Mul.int_rhs_maybe_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Mul.slow
    movsxd rcx, esi
    cvtsi2sd xmm0, rcx
    movq xmm1, rdx
    jmp .Lasm_Mul.coerced_m0
.Lasm_Mul.lhs_not_int_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Mul.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_Mul.double_rhs_int_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Mul.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_Mul.coerced_m0
.Lasm_Mul.double_rhs_int_m0:
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
.Lasm_Mul.coerced_m0:
    mulsd xmm0, xmm1
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_Mul.bdi_not_int_m4
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_Mul.bdi_not_int_m4
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_Mul.bdi_not_int_m4
    test rdx, rdx
    jz .Lasm_Mul.bdi_check_neg_zero_m4
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_Mul.bdi_done_m4
.Lasm_Mul.bdi_check_neg_zero_m4:
    movq rcx, xmm0
    test rcx, rcx
    js .Lasm_Mul.bdi_not_int_m4
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_Mul.bdi_done_m4
.Lasm_Mul.bdi_not_int_m4:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_Mul.canon_nan_5
.Lasm_Mul.canon_nan_5_ret:
.Lasm_Mul.bdi_done_m4:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Mul.both_int:
    imul ecx, eax
    jo .Lasm_Mul.overflow
    test rcx, rcx
    jnz .Lasm_Mul.store_int
    movsxd rdx, esi
    or rdx, rax
    test rdx, rdx
    js .Lasm_Mul.negative_zero
.Lasm_Mul.store_int:
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Mul.negative_zero:
    movabs rcx, -9223372036854775808
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Mul.overflow:
    movsxd rcx, esi
    movsxd rax, edx
    cvtsi2sd xmm0, rcx
    cvtsi2sd xmm1, rax
    mulsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Mul.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_mul)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Mul.canon_nan_5:
    movabs rcx, 9221120237041090560
    jmp .Lasm_Mul.canon_nan_5_ret

.p2align 4
asm_handler_Exp:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_exp)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ConcatString:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_concat_string)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CopyObjectExcludingProperties:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_copy_object_excluding_properties)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ImportCall:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_import_call)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewClass:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_class)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Jump:
    mov ecx, DWORD PTR [r14 + r13 + 4]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpIf:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32761
    je .Lasm_JumpIf.is_bool
    cmp rax, 32762
    je .Lasm_JumpIf.is_int32
    mov rdi, rcx
    call CSYM(asm_helper_to_boolean)
    test rax, rax
    jnz .Lasm_JumpIf.take_true
    jmp .Lasm_JumpIf.take_false
.Lasm_JumpIf.is_bool:
    test ecx, 1
    jnz .Lasm_JumpIf.take_true
    jmp .Lasm_JumpIf.take_false
.Lasm_JumpIf.is_int32:
    test ecx, ecx
    jnz .Lasm_JumpIf.take_true
    jmp .Lasm_JumpIf.take_false
.Lasm_JumpIf.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 8]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpIf.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpTrue:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32761
    je .Lasm_JumpTrue.is_bool
    cmp rax, 32762
    je .Lasm_JumpTrue.is_int32
    mov rdi, rcx
    call CSYM(asm_helper_to_boolean)
    test rax, rax
    jnz .Lasm_JumpTrue.take
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpTrue.is_bool:
    test ecx, 1
    jnz .Lasm_JumpTrue.take
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpTrue.is_int32:
    test ecx, ecx
    jnz .Lasm_JumpTrue.take
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpTrue.take:
    mov ecx, DWORD PTR [r14 + r13 + 8]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpFalse:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32761
    je .Lasm_JumpFalse.is_bool
    cmp rax, 32762
    je .Lasm_JumpFalse.is_int32
    mov rdi, rcx
    call CSYM(asm_helper_to_boolean)
    test rax, rax
    jz .Lasm_JumpFalse.take
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpFalse.is_bool:
    test ecx, 1
    jz .Lasm_JumpFalse.take
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpFalse.is_int32:
    test ecx, ecx
    jz .Lasm_JumpFalse.take
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpFalse.take:
    mov ecx, DWORD PTR [r14 + r13 + 8]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpNullish:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    shr rcx, 48
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_JumpNullish.nullish
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpNullish.nullish:
    mov ecx, DWORD PTR [r14 + r13 + 8]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpUndefined:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    movabs rax, 9222809086901354496
    cmp rcx, rax
    je .Lasm_JumpUndefined.is_undefined
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpUndefined.is_undefined:
    mov ecx, DWORD PTR [r14 + r13 + 8]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpLessThan:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpLessThan.lhs_not_int_m1
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpLessThan.int_rhs_maybe_double_m1
    movsxd rax, esi
    movsxd rcx, edx
    jmp .Lasm_JumpLessThan.both_int_m0
.Lasm_JumpLessThan.int_rhs_maybe_double_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLessThan.slow
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    jmp .Lasm_JumpLessThan.coerced_m1
.Lasm_JumpLessThan.lhs_not_int_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLessThan.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_JumpLessThan.double_rhs_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLessThan.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_JumpLessThan.coerced_m1
.Lasm_JumpLessThan.double_rhs_int_m1:
    movq xmm0, rsi
    movsxd rcx, edx
    cvtsi2sd xmm1, rcx
.Lasm_JumpLessThan.coerced_m1:
    ucomisd xmm0, xmm1
    jp .Lasm_JumpLessThan.take_false
    jb .Lasm_JumpLessThan.take_true
    jmp .Lasm_JumpLessThan.take_false
.Lasm_JumpLessThan.both_int_m0:
    cmp rax, rcx
    jl .Lasm_JumpLessThan.take_true
    jmp .Lasm_JumpLessThan.take_false
.Lasm_JumpLessThan.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_less_than)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLessThan.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLessThan.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpGreaterThan:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpGreaterThan.lhs_not_int_m1
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpGreaterThan.int_rhs_maybe_double_m1
    movsxd rax, esi
    movsxd rcx, edx
    jmp .Lasm_JumpGreaterThan.both_int_m0
.Lasm_JumpGreaterThan.int_rhs_maybe_double_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpGreaterThan.slow
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    jmp .Lasm_JumpGreaterThan.coerced_m1
.Lasm_JumpGreaterThan.lhs_not_int_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpGreaterThan.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_JumpGreaterThan.double_rhs_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpGreaterThan.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_JumpGreaterThan.coerced_m1
.Lasm_JumpGreaterThan.double_rhs_int_m1:
    movq xmm0, rsi
    movsxd rcx, edx
    cvtsi2sd xmm1, rcx
.Lasm_JumpGreaterThan.coerced_m1:
    ucomisd xmm0, xmm1
    jp .Lasm_JumpGreaterThan.take_false
    ja .Lasm_JumpGreaterThan.take_true
    jmp .Lasm_JumpGreaterThan.take_false
.Lasm_JumpGreaterThan.both_int_m0:
    cmp rax, rcx
    jg .Lasm_JumpGreaterThan.take_true
    jmp .Lasm_JumpGreaterThan.take_false
.Lasm_JumpGreaterThan.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_greater_than)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpGreaterThan.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpGreaterThan.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpLessThanEquals:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpLessThanEquals.lhs_not_int_m1
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpLessThanEquals.int_rhs_maybe_double_m1
    movsxd rax, esi
    movsxd rcx, edx
    jmp .Lasm_JumpLessThanEquals.both_int_m0
.Lasm_JumpLessThanEquals.int_rhs_maybe_double_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLessThanEquals.slow
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    jmp .Lasm_JumpLessThanEquals.coerced_m1
.Lasm_JumpLessThanEquals.lhs_not_int_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLessThanEquals.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_JumpLessThanEquals.double_rhs_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLessThanEquals.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_JumpLessThanEquals.coerced_m1
.Lasm_JumpLessThanEquals.double_rhs_int_m1:
    movq xmm0, rsi
    movsxd rcx, edx
    cvtsi2sd xmm1, rcx
.Lasm_JumpLessThanEquals.coerced_m1:
    ucomisd xmm0, xmm1
    jp .Lasm_JumpLessThanEquals.take_false
    jbe .Lasm_JumpLessThanEquals.take_true
    jmp .Lasm_JumpLessThanEquals.take_false
.Lasm_JumpLessThanEquals.both_int_m0:
    cmp rax, rcx
    jle .Lasm_JumpLessThanEquals.take_true
    jmp .Lasm_JumpLessThanEquals.take_false
.Lasm_JumpLessThanEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_less_than_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLessThanEquals.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLessThanEquals.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpGreaterThanEquals:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpGreaterThanEquals.lhs_not_int_m1
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_JumpGreaterThanEquals.int_rhs_maybe_double_m1
    movsxd rax, esi
    movsxd rcx, edx
    jmp .Lasm_JumpGreaterThanEquals.both_int_m0
.Lasm_JumpGreaterThanEquals.int_rhs_maybe_double_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpGreaterThanEquals.slow
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    jmp .Lasm_JumpGreaterThanEquals.coerced_m1
.Lasm_JumpGreaterThanEquals.lhs_not_int_m1:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpGreaterThanEquals.slow
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_JumpGreaterThanEquals.double_rhs_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpGreaterThanEquals.slow
    movq xmm0, rsi
    movq xmm1, rdx
    jmp .Lasm_JumpGreaterThanEquals.coerced_m1
.Lasm_JumpGreaterThanEquals.double_rhs_int_m1:
    movq xmm0, rsi
    movsxd rcx, edx
    cvtsi2sd xmm1, rcx
.Lasm_JumpGreaterThanEquals.coerced_m1:
    ucomisd xmm0, xmm1
    jp .Lasm_JumpGreaterThanEquals.take_false
    jae .Lasm_JumpGreaterThanEquals.take_true
    jmp .Lasm_JumpGreaterThanEquals.take_false
.Lasm_JumpGreaterThanEquals.both_int_m0:
    cmp rax, rcx
    jge .Lasm_JumpGreaterThanEquals.take_true
    jmp .Lasm_JumpGreaterThanEquals.take_false
.Lasm_JumpGreaterThanEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_greater_than_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpGreaterThanEquals.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpGreaterThanEquals.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpLooselyEquals:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    mov rdi, rsi
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_JumpLooselyEquals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_JumpLooselyEquals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_JumpLooselyEquals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_JumpLooselyEquals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_JumpLooselyEquals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_JumpLooselyEquals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_JumpLooselyEquals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_JumpLooselyEquals.fast_compare_m1
    jmp .Lasm_JumpLooselyEquals.double_compare
.Lasm_JumpLooselyEquals.string_compare_m1:
    cmp rdx, rsi
    je .Lasm_JumpLooselyEquals.take_true
    jmp .Lasm_JumpLooselyEquals.slow
.Lasm_JumpLooselyEquals.fast_compare_m1:
    cmp rdx, rsi
    je .Lasm_JumpLooselyEquals.take_true
    jmp .Lasm_JumpLooselyEquals.take_false
.Lasm_JumpLooselyEquals.double_compare:
    movq xmm0, rdx
    movq xmm1, rsi
    ucomisd xmm0, xmm1
    jp .Lasm_JumpLooselyEquals.take_false
    je .Lasm_JumpLooselyEquals.take_true
    jmp .Lasm_JumpLooselyEquals.take_false
.Lasm_JumpLooselyEquals.diff_tags_m0:
    and rcx, 65534
    cmp rcx, 32766
    jne .Lasm_JumpLooselyEquals.try_double_m0
    and rdi, 65534
    cmp rdi, 32766
    je .Lasm_JumpLooselyEquals.take_true
    jmp .Lasm_JumpLooselyEquals.slow
.Lasm_JumpLooselyEquals.try_double_m0:
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLooselyEquals.slow
    mov rcx, rsi
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLooselyEquals.slow
    jmp .Lasm_JumpLooselyEquals.double_compare
.Lasm_JumpLooselyEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_loosely_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLooselyEquals.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLooselyEquals.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpLooselyInequals:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    mov rdi, rsi
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_JumpLooselyInequals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_JumpLooselyInequals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_JumpLooselyInequals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_JumpLooselyInequals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_JumpLooselyInequals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_JumpLooselyInequals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_JumpLooselyInequals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_JumpLooselyInequals.fast_compare_m1
    jmp .Lasm_JumpLooselyInequals.double_compare
.Lasm_JumpLooselyInequals.string_compare_m1:
    cmp rdx, rsi
    je .Lasm_JumpLooselyInequals.take_false
    jmp .Lasm_JumpLooselyInequals.slow
.Lasm_JumpLooselyInequals.fast_compare_m1:
    cmp rdx, rsi
    je .Lasm_JumpLooselyInequals.take_false
    jmp .Lasm_JumpLooselyInequals.take_true
.Lasm_JumpLooselyInequals.double_compare:
    movq xmm0, rdx
    movq xmm1, rsi
    ucomisd xmm0, xmm1
    jp .Lasm_JumpLooselyInequals.take_true
    je .Lasm_JumpLooselyInequals.take_false
    jmp .Lasm_JumpLooselyInequals.take_true
.Lasm_JumpLooselyInequals.diff_tags_m0:
    and rcx, 65534
    cmp rcx, 32766
    jne .Lasm_JumpLooselyInequals.try_double_m0
    and rdi, 65534
    cmp rdi, 32766
    je .Lasm_JumpLooselyInequals.take_false
    jmp .Lasm_JumpLooselyInequals.slow
.Lasm_JumpLooselyInequals.try_double_m0:
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLooselyInequals.slow
    mov rcx, rsi
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpLooselyInequals.slow
    jmp .Lasm_JumpLooselyInequals.double_compare
.Lasm_JumpLooselyInequals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_loosely_inequals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLooselyInequals.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpLooselyInequals.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpStrictlyEquals:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    mov rdi, rdx
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_JumpStrictlyEquals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_JumpStrictlyEquals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_JumpStrictlyEquals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_JumpStrictlyEquals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_JumpStrictlyEquals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_JumpStrictlyEquals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_JumpStrictlyEquals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_JumpStrictlyEquals.fast_compare_m1
    jmp .Lasm_JumpStrictlyEquals.double_compare
.Lasm_JumpStrictlyEquals.string_compare_m1:
    cmp rsi, rdx
    je .Lasm_JumpStrictlyEquals.take_true
    jmp .Lasm_JumpStrictlyEquals.slow
.Lasm_JumpStrictlyEquals.fast_compare_m1:
    cmp rsi, rdx
    je .Lasm_JumpStrictlyEquals.take_true
    jmp .Lasm_JumpStrictlyEquals.take_false
.Lasm_JumpStrictlyEquals.double_compare:
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_JumpStrictlyEquals.take_false
    je .Lasm_JumpStrictlyEquals.take_true
    jmp .Lasm_JumpStrictlyEquals.take_false
.Lasm_JumpStrictlyEquals.diff_tags_m0:
    cmp rcx, 32762
    je .Lasm_JumpStrictlyEquals.lhs_int32_diff_m0
    cmp rdi, 32762
    je .Lasm_JumpStrictlyEquals.rhs_int32_diff_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpStrictlyEquals.take_false
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_JumpStrictlyEquals.take_false
    jmp .Lasm_JumpStrictlyEquals.double_compare
.Lasm_JumpStrictlyEquals.lhs_int32_diff_m0:
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_JumpStrictlyEquals.take_false
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    je .Lasm_JumpStrictlyEquals.take_true
    jmp .Lasm_JumpStrictlyEquals.take_false
.Lasm_JumpStrictlyEquals.rhs_int32_diff_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpStrictlyEquals.take_false
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
    ucomisd xmm0, xmm1
    je .Lasm_JumpStrictlyEquals.take_true
    jmp .Lasm_JumpStrictlyEquals.take_false
.Lasm_JumpStrictlyEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_strictly_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpStrictlyEquals.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpStrictlyEquals.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_JumpStrictlyInequals:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    mov rdi, rdx
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_JumpStrictlyInequals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_JumpStrictlyInequals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_JumpStrictlyInequals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_JumpStrictlyInequals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_JumpStrictlyInequals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_JumpStrictlyInequals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_JumpStrictlyInequals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_JumpStrictlyInequals.fast_compare_m1
    jmp .Lasm_JumpStrictlyInequals.double_compare
.Lasm_JumpStrictlyInequals.string_compare_m1:
    cmp rsi, rdx
    je .Lasm_JumpStrictlyInequals.take_false
    jmp .Lasm_JumpStrictlyInequals.slow
.Lasm_JumpStrictlyInequals.fast_compare_m1:
    cmp rsi, rdx
    je .Lasm_JumpStrictlyInequals.take_false
    jmp .Lasm_JumpStrictlyInequals.take_true
.Lasm_JumpStrictlyInequals.double_compare:
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_JumpStrictlyInequals.take_true
    je .Lasm_JumpStrictlyInequals.take_false
    jmp .Lasm_JumpStrictlyInequals.take_true
.Lasm_JumpStrictlyInequals.diff_tags_m0:
    cmp rcx, 32762
    je .Lasm_JumpStrictlyInequals.lhs_int32_diff_m0
    cmp rdi, 32762
    je .Lasm_JumpStrictlyInequals.rhs_int32_diff_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpStrictlyInequals.take_true
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_JumpStrictlyInequals.take_true
    jmp .Lasm_JumpStrictlyInequals.double_compare
.Lasm_JumpStrictlyInequals.lhs_int32_diff_m0:
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_JumpStrictlyInequals.take_true
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    je .Lasm_JumpStrictlyInequals.take_false
    jmp .Lasm_JumpStrictlyInequals.take_true
.Lasm_JumpStrictlyInequals.rhs_int32_diff_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_JumpStrictlyInequals.take_true
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
    ucomisd xmm0, xmm1
    je .Lasm_JumpStrictlyInequals.take_false
    jmp .Lasm_JumpStrictlyInequals.take_true
.Lasm_JumpStrictlyInequals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_jump_strictly_inequals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpStrictlyInequals.take_true:
    mov ecx, DWORD PTR [r14 + r13 + 12]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_JumpStrictlyInequals.take_false:
    mov ecx, DWORD PTR [r14 + r13 + 16]
    mov r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Increment:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, rdx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_Increment.slow_m0
    movsxd rcx, edx
    add ecx, 1
    jo .Lasm_Increment.overflow_m0
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Increment.overflow_m0:
    movsxd rcx, edx
    cvtsi2sd xmm0, rcx
    movabs rcx, 4607182418800017408
    movq xmm1, rcx
    addsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Increment.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_increment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Decrement:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, rdx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_Decrement.slow_m0
    movsxd rcx, edx
    sub ecx, 1
    jo .Lasm_Decrement.overflow_m0
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Decrement.overflow_m0:
    movsxd rcx, edx
    cvtsi2sd xmm0, rcx
    movabs rcx, 4607182418800017408
    movq xmm1, rcx
    subsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Decrement.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_decrement)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Not:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32761
    je .Lasm_Not.is_bool
    cmp rax, 32762
    je .Lasm_Not.is_int32
    mov rdx, rax
    and rdx, 65534
    cmp rdx, 32766
    je .Lasm_Not.store_true
    mov rdi, rcx
    call CSYM(asm_helper_to_boolean)
    test rax, rax
    jz .Lasm_Not.store_true
    jmp .Lasm_Not.store_false
.Lasm_Not.is_bool:
    test ecx, 1
    jz .Lasm_Not.store_true
    jmp .Lasm_Not.store_false
.Lasm_Not.is_int32:
    test ecx, ecx
    jz .Lasm_Not.store_true
    jmp .Lasm_Not.store_false
.Lasm_Not.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Not.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ToBoolean:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdi, rcx
    call CSYM(asm_helper_to_boolean)
    test rax, rax
    jz .Lasm_ToBoolean.store_false
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ToBoolean.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Catch:
    mov rax, QWORD PTR [r15 + 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    movabs rax, 9221964661971222528
    mov QWORD PTR [r15 + 8], rax
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Return:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    movabs rdx, 9221964661971222528
    cmp rcx, rdx
    jne .Lasm_Return.value_ready
    movabs rcx, 9222809086901354496
.Lasm_Return.value_ready:
    mov rax, QWORD PTR [rbx + 88]
    test rax, rax
    jz .Lasm_Return.top_level
    mov edx, DWORD PTR [rbx + 100]
    mov esi, DWORD PTR [rbx + 104]
    mov DWORD PTR [rax + 56], edx
    lea rdi, [rax + 120]
    mov QWORD PTR [rdi + rsi * 8], rcx
    mov rcx, QWORD PTR [rbp - 48]
    mov QWORD PTR [rcx + 15288], rax
    mov QWORD PTR [rcx + 15352], rbx
    add DWORD PTR [rcx + 16632], 1
    mov rbx, rax
    mov rax, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rax + 104]
    lea r15, [rbx + 120]
    mov r13, rdx
    mov r13d, r13d
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Return.top_level:
    mov QWORD PTR [r15 + 24], rcx
    mov QWORD PTR [r15 + 8], rdx
    jmp .Lexit

.p2align 4
asm_handler_End:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    movabs rax, 9221964661971222528
    cmp rcx, rax
    jne .Lasm_End.value_ready
    movabs rcx, 9222809086901354496
.Lasm_End.value_ready:
    mov rax, QWORD PTR [rbx + 88]
    test rax, rax
    jz .Lasm_End.top_level
    mov edx, DWORD PTR [rbx + 100]
    mov esi, DWORD PTR [rbx + 104]
    mov DWORD PTR [rax + 56], edx
    lea rdi, [rax + 120]
    mov QWORD PTR [rdi + rsi * 8], rcx
    mov rcx, QWORD PTR [rbp - 48]
    mov QWORD PTR [rcx + 15288], rax
    mov QWORD PTR [rcx + 15352], rbx
    add DWORD PTR [rcx + 16632], 1
    mov rbx, rax
    mov rax, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rax + 104]
    lea r15, [rbx + 120]
    mov r13, rdx
    mov r13d, r13d
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_End.top_level:
    mov QWORD PTR [r15 + 24], rcx
    jmp .Lexit

.p2align 4
asm_handler_GetLexicalEnvironment:
    mov rax, QWORD PTR [rbx + 32]
    movabs rcx, -2251799813685248
    or rax, rcx
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetImportMeta:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_import_meta)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetNewTarget:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_new_target)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetSuperConstructor:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_super_constructor)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetLexicalEnvironment:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    shl rcx, 16
    shr rcx, 16
    mov QWORD PTR [rbx + 32], rcx
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetBinding:
    lea rax, [r14 + r13]
    add rax, 12
    mov ecx, DWORD PTR [rax + 0]
    mov edx, DWORD PTR [rax + 4]
    mov rax, QWORD PTR [rbx + 32]
    test rcx, rcx
    jz .Lasm_GetBinding.walk_done_m0
.Lasm_GetBinding.walk_loop_m0:
    mov rax, QWORD PTR [rax + 16]
    sub rcx, 1
    test rcx, rcx
    jnz .Lasm_GetBinding.walk_loop_m0
.Lasm_GetBinding.walk_done_m0:
    mov rax, QWORD PTR [rax + 48]
    mov rax, QWORD PTR [rax + rdx * 8]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_GetBinding.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicGetBinding:
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov edx, DWORD PTR [rax + 0]
    mov esi, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rdx, rax
    je .Lasm_DynamicGetBinding.slow
    mov rax, QWORD PTR [rbx + 32]
    test rdx, rdx
    jz .Lasm_DynamicGetBinding.walk_done_m0
.Lasm_DynamicGetBinding.walk_loop_m0:
    movzx ecx, BYTE PTR [rax + 12]
    test rcx, rcx
    jz .Lasm_DynamicGetBinding.slow
    movzx ecx, BYTE PTR [rax + 11]
    test rcx, rcx
    jnz .Lasm_DynamicGetBinding.slow
    mov rax, QWORD PTR [rax + 16]
    test rax, rax
    jz .Lasm_DynamicGetBinding.slow
    sub rdx, 1
    test rdx, rdx
    jnz .Lasm_DynamicGetBinding.walk_loop_m0
.Lasm_DynamicGetBinding.walk_done_m0:
    movzx ecx, BYTE PTR [rax + 12]
    test rcx, rcx
    jz .Lasm_DynamicGetBinding.slow
    movzx ecx, BYTE PTR [rax + 11]
    test rcx, rcx
    jnz .Lasm_DynamicGetBinding.slow
    mov rax, QWORD PTR [rax + 48]
    mov rax, QWORD PTR [rax + rsi * 8]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_DynamicGetBinding.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicGetBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_get_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetInitializedBinding:
    lea rax, [r14 + r13]
    add rax, 12
    mov ecx, DWORD PTR [rax + 0]
    mov edx, DWORD PTR [rax + 4]
    mov rax, QWORD PTR [rbx + 32]
    test rcx, rcx
    jz .Lasm_GetInitializedBinding.walk_done_m0
.Lasm_GetInitializedBinding.walk_loop_m0:
    mov rax, QWORD PTR [rax + 16]
    sub rcx, 1
    test rcx, rcx
    jnz .Lasm_GetInitializedBinding.walk_loop_m0
.Lasm_GetInitializedBinding.walk_done_m0:
    mov rax, QWORD PTR [rax + 48]
    mov rax, QWORD PTR [rax + rdx * 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetInitializedBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_initialized_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicGetInitializedBinding:
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov edx, DWORD PTR [rax + 0]
    mov esi, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rdx, rax
    je .Lasm_DynamicGetInitializedBinding.slow
    mov rax, QWORD PTR [rbx + 32]
    test rdx, rdx
    jz .Lasm_DynamicGetInitializedBinding.walk_done_m0
.Lasm_DynamicGetInitializedBinding.walk_loop_m0:
    movzx ecx, BYTE PTR [rax + 12]
    test rcx, rcx
    jz .Lasm_DynamicGetInitializedBinding.slow
    movzx ecx, BYTE PTR [rax + 11]
    test rcx, rcx
    jnz .Lasm_DynamicGetInitializedBinding.slow
    mov rax, QWORD PTR [rax + 16]
    test rax, rax
    jz .Lasm_DynamicGetInitializedBinding.slow
    sub rdx, 1
    test rdx, rdx
    jnz .Lasm_DynamicGetInitializedBinding.walk_loop_m0
.Lasm_DynamicGetInitializedBinding.walk_done_m0:
    movzx ecx, BYTE PTR [rax + 12]
    test rcx, rcx
    jz .Lasm_DynamicGetInitializedBinding.slow
    movzx ecx, BYTE PTR [rax + 11]
    test rcx, rcx
    jnz .Lasm_DynamicGetInitializedBinding.slow
    mov rax, QWORD PTR [rax + 48]
    mov rax, QWORD PTR [rax + rsi * 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicGetInitializedBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_get_initialized_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_InitializeLexicalBinding:
    lea rax, [r14 + r13]
    add rax, 12
    mov edx, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 0]
    mov rcx, QWORD PTR [rbx + 32]
    test rax, rax
    jz .Lasm_InitializeLexicalBinding.walk_done_m0
.Lasm_InitializeLexicalBinding.walk_loop_m0:
    mov rcx, QWORD PTR [rcx + 16]
    sub rax, 1
    test rax, rax
    jnz .Lasm_InitializeLexicalBinding.walk_loop_m0
.Lasm_InitializeLexicalBinding.walk_done_m0:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_InitializeLexicalBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_initialize_lexical_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_InitializeVariableBinding:
    lea rax, [r14 + r13]
    add rax, 12
    mov edx, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 0]
    mov rcx, QWORD PTR [rbx + 40]
    test rax, rax
    jz .Lasm_InitializeVariableBinding.walk_done_m0
.Lasm_InitializeVariableBinding.walk_loop_m0:
    mov rcx, QWORD PTR [rcx + 16]
    sub rax, 1
    test rax, rax
    jnz .Lasm_InitializeVariableBinding.walk_loop_m0
.Lasm_InitializeVariableBinding.walk_done_m0:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_InitializeVariableBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_initialize_variable_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicInitializeLexicalBinding:
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov edx, DWORD PTR [rax + 0]
    mov esi, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rdx, rax
    je .Lasm_DynamicInitializeLexicalBinding.slow
    mov rcx, QWORD PTR [rbx + 32]
    test rdx, rdx
    jz .Lasm_DynamicInitializeLexicalBinding.walk_done_m0
.Lasm_DynamicInitializeLexicalBinding.walk_loop_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicInitializeLexicalBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicInitializeLexicalBinding.slow
    mov rcx, QWORD PTR [rcx + 16]
    test rcx, rcx
    jz .Lasm_DynamicInitializeLexicalBinding.slow
    sub rdx, 1
    test rdx, rdx
    jnz .Lasm_DynamicInitializeLexicalBinding.walk_loop_m0
.Lasm_DynamicInitializeLexicalBinding.walk_done_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicInitializeLexicalBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicInitializeLexicalBinding.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rsi * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicInitializeLexicalBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_initialize_lexical_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicInitializeVariableBinding:
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov edx, DWORD PTR [rax + 0]
    mov esi, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rdx, rax
    je .Lasm_DynamicInitializeVariableBinding.slow
    mov rcx, QWORD PTR [rbx + 40]
    test rdx, rdx
    jz .Lasm_DynamicInitializeVariableBinding.walk_done_m0
.Lasm_DynamicInitializeVariableBinding.walk_loop_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicInitializeVariableBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicInitializeVariableBinding.slow
    mov rcx, QWORD PTR [rcx + 16]
    test rcx, rcx
    jz .Lasm_DynamicInitializeVariableBinding.slow
    sub rdx, 1
    test rdx, rdx
    jnz .Lasm_DynamicInitializeVariableBinding.walk_loop_m0
.Lasm_DynamicInitializeVariableBinding.walk_done_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicInitializeVariableBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicInitializeVariableBinding.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rsi * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicInitializeVariableBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_initialize_variable_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetLexicalBinding:
    lea rax, [r14 + r13]
    add rax, 12
    mov edx, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 0]
    mov rcx, QWORD PTR [rbx + 32]
    test rax, rax
    jz .Lasm_SetLexicalBinding.walk_done_m0
.Lasm_SetLexicalBinding.walk_loop_m0:
    mov rcx, QWORD PTR [rcx + 16]
    sub rax, 1
    test rax, rax
    jnz .Lasm_SetLexicalBinding.walk_loop_m0
.Lasm_SetLexicalBinding.walk_done_m0:
    mov rax, QWORD PTR [rcx + 48]
    mov rsi, QWORD PTR [rax + rdx * 8]
    movabs rax, 9221964661971222528
    cmp rsi, rax
    je .Lasm_SetLexicalBinding.slow
    mov rax, QWORD PTR [rcx + 24]
    test rax, rax
    jz .Lasm_SetLexicalBinding.load_environment_flags_m3
    mov rsi, QWORD PTR [rax + 40]
    cmp rdx, rsi
    jae .Lasm_SetLexicalBinding.load_environment_local_flags_m3
    mov rax, QWORD PTR [rax + 56]
    movzx esi, BYTE PTR [rax + rdx]
    jmp .Lasm_SetLexicalBinding.done_m3
.Lasm_SetLexicalBinding.load_environment_local_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    mov rdi, rdx
    sub rdi, rsi
    movzx esi, BYTE PTR [rax + rdi]
    jmp .Lasm_SetLexicalBinding.done_m3
.Lasm_SetLexicalBinding.load_environment_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    movzx esi, BYTE PTR [rax + rdx]
.Lasm_SetLexicalBinding.done_m3:
    and rsi, 2
    test rsi, rsi
    jz .Lasm_SetLexicalBinding.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_SetLexicalBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_set_lexical_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetVariableBinding:
    lea rax, [r14 + r13]
    add rax, 12
    mov edx, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 0]
    mov rcx, QWORD PTR [rbx + 40]
    test rax, rax
    jz .Lasm_SetVariableBinding.walk_done_m0
.Lasm_SetVariableBinding.walk_loop_m0:
    mov rcx, QWORD PTR [rcx + 16]
    sub rax, 1
    test rax, rax
    jnz .Lasm_SetVariableBinding.walk_loop_m0
.Lasm_SetVariableBinding.walk_done_m0:
    mov rax, QWORD PTR [rcx + 48]
    mov rsi, QWORD PTR [rax + rdx * 8]
    movabs rax, 9221964661971222528
    cmp rsi, rax
    je .Lasm_SetVariableBinding.slow
    mov rax, QWORD PTR [rcx + 24]
    test rax, rax
    jz .Lasm_SetVariableBinding.load_environment_flags_m3
    mov rsi, QWORD PTR [rax + 40]
    cmp rdx, rsi
    jae .Lasm_SetVariableBinding.load_environment_local_flags_m3
    mov rax, QWORD PTR [rax + 56]
    movzx esi, BYTE PTR [rax + rdx]
    jmp .Lasm_SetVariableBinding.done_m3
.Lasm_SetVariableBinding.load_environment_local_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    mov rdi, rdx
    sub rdi, rsi
    movzx esi, BYTE PTR [rax + rdi]
    jmp .Lasm_SetVariableBinding.done_m3
.Lasm_SetVariableBinding.load_environment_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    movzx esi, BYTE PTR [rax + rdx]
.Lasm_SetVariableBinding.done_m3:
    and rsi, 2
    test rsi, rsi
    jz .Lasm_SetVariableBinding.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_SetVariableBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_set_variable_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicSetLexicalBinding:
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov esi, DWORD PTR [rax + 0]
    mov edx, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rsi, rax
    je .Lasm_DynamicSetLexicalBinding.slow
    mov rcx, QWORD PTR [rbx + 32]
    test rsi, rsi
    jz .Lasm_DynamicSetLexicalBinding.walk_done_m0
.Lasm_DynamicSetLexicalBinding.walk_loop_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicSetLexicalBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicSetLexicalBinding.slow
    mov rcx, QWORD PTR [rcx + 16]
    test rcx, rcx
    jz .Lasm_DynamicSetLexicalBinding.slow
    sub rsi, 1
    test rsi, rsi
    jnz .Lasm_DynamicSetLexicalBinding.walk_loop_m0
.Lasm_DynamicSetLexicalBinding.walk_done_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicSetLexicalBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicSetLexicalBinding.slow
    mov rax, QWORD PTR [rcx + 48]
    mov rsi, QWORD PTR [rax + rdx * 8]
    movabs rax, 9221964661971222528
    cmp rsi, rax
    je .Lasm_DynamicSetLexicalBinding.slow
    mov rax, QWORD PTR [rcx + 24]
    test rax, rax
    jz .Lasm_DynamicSetLexicalBinding.load_environment_flags_m3
    mov rsi, QWORD PTR [rax + 40]
    cmp rdx, rsi
    jae .Lasm_DynamicSetLexicalBinding.load_environment_local_flags_m3
    mov rax, QWORD PTR [rax + 56]
    movzx esi, BYTE PTR [rax + rdx]
    jmp .Lasm_DynamicSetLexicalBinding.done_m3
.Lasm_DynamicSetLexicalBinding.load_environment_local_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    mov rdi, rdx
    sub rdi, rsi
    movzx esi, BYTE PTR [rax + rdi]
    jmp .Lasm_DynamicSetLexicalBinding.done_m3
.Lasm_DynamicSetLexicalBinding.load_environment_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    movzx esi, BYTE PTR [rax + rdx]
.Lasm_DynamicSetLexicalBinding.done_m3:
    and rsi, 2
    test rsi, rsi
    jz .Lasm_DynamicSetLexicalBinding.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicSetLexicalBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_set_lexical_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicSetVariableBinding:
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov esi, DWORD PTR [rax + 0]
    mov edx, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rsi, rax
    je .Lasm_DynamicSetVariableBinding.slow
    mov rcx, QWORD PTR [rbx + 40]
    test rsi, rsi
    jz .Lasm_DynamicSetVariableBinding.walk_done_m0
.Lasm_DynamicSetVariableBinding.walk_loop_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicSetVariableBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicSetVariableBinding.slow
    mov rcx, QWORD PTR [rcx + 16]
    test rcx, rcx
    jz .Lasm_DynamicSetVariableBinding.slow
    sub rsi, 1
    test rsi, rsi
    jnz .Lasm_DynamicSetVariableBinding.walk_loop_m0
.Lasm_DynamicSetVariableBinding.walk_done_m0:
    movzx eax, BYTE PTR [rcx + 12]
    test rax, rax
    jz .Lasm_DynamicSetVariableBinding.slow
    movzx eax, BYTE PTR [rcx + 11]
    test rax, rax
    jnz .Lasm_DynamicSetVariableBinding.slow
    mov rax, QWORD PTR [rcx + 48]
    mov rsi, QWORD PTR [rax + rdx * 8]
    movabs rax, 9221964661971222528
    cmp rsi, rax
    je .Lasm_DynamicSetVariableBinding.slow
    mov rax, QWORD PTR [rcx + 24]
    test rax, rax
    jz .Lasm_DynamicSetVariableBinding.load_environment_flags_m3
    mov rsi, QWORD PTR [rax + 40]
    cmp rdx, rsi
    jae .Lasm_DynamicSetVariableBinding.load_environment_local_flags_m3
    mov rax, QWORD PTR [rax + 56]
    movzx esi, BYTE PTR [rax + rdx]
    jmp .Lasm_DynamicSetVariableBinding.done_m3
.Lasm_DynamicSetVariableBinding.load_environment_local_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    mov rdi, rdx
    sub rdi, rsi
    movzx esi, BYTE PTR [rax + rdi]
    jmp .Lasm_DynamicSetVariableBinding.done_m3
.Lasm_DynamicSetVariableBinding.load_environment_flags_m3:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    movzx esi, BYTE PTR [rax + rdx]
.Lasm_DynamicSetVariableBinding.done_m3:
    and rsi, 2
    test rsi, rsi
    jz .Lasm_DynamicSetVariableBinding.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicSetVariableBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_set_variable_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ResolveBinding:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_resolve_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ResolveSuperBase:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_resolve_super_base)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetResolvedBinding:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_set_resolved_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_TypeofBinding:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_typeof_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicTypeofBinding:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_typeof_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_HasPrivateId:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_has_private_id)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetFunctionName:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_set_function_name)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewArrayWithLength:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_array_with_length)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ArrayAppend:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_array_append)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateVariable:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_variable)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_EnterObjectEnvironment:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_enter_object_environment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PostfixIncrement:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_PostfixIncrement.slow_m0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    movsxd rdx, ecx
    add edx, 1
    jo .Lasm_PostfixIncrement.overflow_after_store_m0
    mov rcx, rdx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PostfixIncrement.overflow_after_store_m0:
    movsxd rdx, ecx
    cvtsi2sd xmm0, rdx
    movabs rcx, 4607182418800017408
    movq xmm1, rcx
    addsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PostfixIncrement.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_postfix_increment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Div:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_Div.lhs_is_int32
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Div.slow
    movq xmm0, rsi
    jmp .Lasm_Div.lhs_ok
.Lasm_Div.lhs_is_int32:
    movsxd rax, esi
    cvtsi2sd xmm0, rax
.Lasm_Div.lhs_ok:
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_Div.rhs_is_int32
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_Div.slow
    movq xmm1, rdx
    jmp .Lasm_Div.do_div
.Lasm_Div.rhs_is_int32:
    movsxd rax, edx
    cvtsi2sd xmm1, rax
.Lasm_Div.do_div:
    divsd xmm0, xmm1
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_Div.store_double
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_Div.store_double
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_Div.store_double
    test rdx, rdx
    jnz .Lasm_Div.store_int
    movq rdx, xmm0
    test rdx, rdx
    js .Lasm_Div.store_double
.Lasm_Div.store_int:
    mov edx, edx
    movabs rax, 9221683186994511872
    or rdx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Div.store_double:
    movq rdx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_Div.canon_nan_2
.Lasm_Div.canon_nan_2_ret:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Div.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_div)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Div.canon_nan_2:
    movabs rdx, 9221120237041090560
    jmp .Lasm_Div.canon_nan_2_ret

.p2align 4
asm_handler_LessThan:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_LessThan.try_double_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_LessThan.slow
    movsxd rax, esi
    movsxd rcx, edx
    cmp rax, rcx
    jl .Lasm_LessThan.store_true
    jmp .Lasm_LessThan.store_false
.Lasm_LessThan.try_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LessThan.slow
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LessThan.slow
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_LessThan.store_false
    jb .Lasm_LessThan.store_true
    jmp .Lasm_LessThan.store_false
.Lasm_LessThan.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LessThan.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LessThan.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_less_than)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_LessThanEquals:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_LessThanEquals.try_double_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_LessThanEquals.slow
    movsxd rax, esi
    movsxd rcx, edx
    cmp rax, rcx
    jle .Lasm_LessThanEquals.store_true
    jmp .Lasm_LessThanEquals.store_false
.Lasm_LessThanEquals.try_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LessThanEquals.slow
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LessThanEquals.slow
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_LessThanEquals.store_false
    jbe .Lasm_LessThanEquals.store_true
    jmp .Lasm_LessThanEquals.store_false
.Lasm_LessThanEquals.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LessThanEquals.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LessThanEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_less_than_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GreaterThan:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_GreaterThan.try_double_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_GreaterThan.slow
    movsxd rax, esi
    movsxd rcx, edx
    cmp rax, rcx
    jg .Lasm_GreaterThan.store_true
    jmp .Lasm_GreaterThan.store_false
.Lasm_GreaterThan.try_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_GreaterThan.slow
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_GreaterThan.slow
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_GreaterThan.store_false
    ja .Lasm_GreaterThan.store_true
    jmp .Lasm_GreaterThan.store_false
.Lasm_GreaterThan.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GreaterThan.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GreaterThan.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_greater_than)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GreaterThanEquals:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_GreaterThanEquals.try_double_m0
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    jne .Lasm_GreaterThanEquals.slow
    movsxd rax, esi
    movsxd rcx, edx
    cmp rax, rcx
    jge .Lasm_GreaterThanEquals.store_true
    jmp .Lasm_GreaterThanEquals.store_false
.Lasm_GreaterThanEquals.try_double_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_GreaterThanEquals.slow
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_GreaterThanEquals.slow
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_GreaterThanEquals.store_false
    jae .Lasm_GreaterThanEquals.store_true
    jmp .Lasm_GreaterThanEquals.store_false
.Lasm_GreaterThanEquals.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GreaterThanEquals.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GreaterThanEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_greater_than_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_BitwiseXor:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_BitwiseXor.lhs_is_int_m1
    cmp rcx, 32761
    je .Lasm_BitwiseXor.lhs_is_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_BitwiseXor.slow_m0
    movq xmm0, rsi
    cvttsd2si rsi, xmm0
    mov rcx, 0x8000000000000000
    cmp rsi, rcx
    je .Lasm_BitwiseXor.slow_m0
    mov esi, esi
    jmp .Lasm_BitwiseXor.lhs_done_m1
.Lasm_BitwiseXor.lhs_is_int_m1:
    movsxd rsi, esi
.Lasm_BitwiseXor.lhs_done_m1:
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_BitwiseXor.rhs_is_int_m1
    cmp rcx, 32761
    je .Lasm_BitwiseXor.rhs_is_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_BitwiseXor.slow_m0
    movq xmm0, rdx
    cvttsd2si rax, xmm0
    mov rcx, 0x8000000000000000
    cmp rax, rcx
    je .Lasm_BitwiseXor.slow_m0
    mov eax, eax
    jmp .Lasm_BitwiseXor.rhs_done_m1
.Lasm_BitwiseXor.rhs_is_int_m1:
    movsxd rax, edx
.Lasm_BitwiseXor.rhs_done_m1:
    xor rsi, rax
    mov ecx, esi
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_BitwiseXor.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_bitwise_xor)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_UnaryPlus:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_UnaryPlus.done
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_UnaryPlus.slow
.Lasm_UnaryPlus.done:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnaryPlus.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_unary_plus)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ThrowIfTDZ:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    movabs rax, 9221964661971222528
    cmp rcx, rax
    je .Lasm_ThrowIfTDZ.slow
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ThrowIfTDZ.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_throw_if_tdz)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ThrowIfNotObject:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_ThrowIfNotObject.slow
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ThrowIfNotObject.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_throw_if_not_object)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ThrowIfNullish:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    shr rcx, 48
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_ThrowIfNullish.slow
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ThrowIfNullish.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_throw_if_nullish)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ThrowConstAssignment:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_throw_const_assignment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Throw:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_throw)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Await:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_await)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Yield:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_yield)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_YieldIteratorResult:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_yield_iterator_result)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ToString:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_to_string)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ToPrimitiveWithStringHint:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_to_primitive_with_string_hint)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ToObject:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_to_object)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ToLength:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_to_length)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_BitwiseNot:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_BitwiseNot.slow
    not ecx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_BitwiseNot.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_bitwise_not)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_BitwiseAnd:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_BitwiseAnd.lhs_is_int_m1
    cmp rcx, 32761
    je .Lasm_BitwiseAnd.lhs_is_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_BitwiseAnd.slow_m0
    movq xmm0, rsi
    cvttsd2si rsi, xmm0
    mov rcx, 0x8000000000000000
    cmp rsi, rcx
    je .Lasm_BitwiseAnd.slow_m0
    mov esi, esi
    jmp .Lasm_BitwiseAnd.lhs_done_m1
.Lasm_BitwiseAnd.lhs_is_int_m1:
    movsxd rsi, esi
.Lasm_BitwiseAnd.lhs_done_m1:
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_BitwiseAnd.rhs_is_int_m1
    cmp rcx, 32761
    je .Lasm_BitwiseAnd.rhs_is_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_BitwiseAnd.slow_m0
    movq xmm0, rdx
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_BitwiseAnd.slow_m0
    mov edx, edx
    jmp .Lasm_BitwiseAnd.rhs_done_m1
.Lasm_BitwiseAnd.rhs_is_int_m1:
    movsxd rdx, edx
.Lasm_BitwiseAnd.rhs_done_m1:
    and rsi, rdx
    mov ecx, esi
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_BitwiseAnd.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_bitwise_and)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_BitwiseOr:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_BitwiseOr.lhs_is_int_m1
    cmp rcx, 32761
    je .Lasm_BitwiseOr.lhs_is_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_BitwiseOr.slow_m0
    movq xmm0, rsi
    cvttsd2si rsi, xmm0
    mov rcx, 0x8000000000000000
    cmp rsi, rcx
    je .Lasm_BitwiseOr.slow_m0
    mov esi, esi
    jmp .Lasm_BitwiseOr.lhs_done_m1
.Lasm_BitwiseOr.lhs_is_int_m1:
    movsxd rsi, esi
.Lasm_BitwiseOr.lhs_done_m1:
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 32762
    je .Lasm_BitwiseOr.rhs_is_int_m1
    cmp rcx, 32761
    je .Lasm_BitwiseOr.rhs_is_int_m1
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_BitwiseOr.slow_m0
    movq xmm0, rdx
    cvttsd2si rax, xmm0
    mov rcx, 0x8000000000000000
    cmp rax, rcx
    je .Lasm_BitwiseOr.slow_m0
    mov eax, eax
    jmp .Lasm_BitwiseOr.rhs_done_m1
.Lasm_BitwiseOr.rhs_is_int_m1:
    movsxd rax, edx
.Lasm_BitwiseOr.rhs_done_m1:
    or rsi, rax
    mov ecx, esi
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_BitwiseOr.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_bitwise_or)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_LeftShift:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_LeftShift.slow_m0
    mov rax, rdx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_LeftShift.slow_m0
    movsxd rsi, ecx
    movsxd rcx, edx
    and rcx, 31
    shl rsi, cl
    mov ecx, esi
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LeftShift.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_left_shift)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_RightShift:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_RightShift.slow_m0
    mov rax, rdx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_RightShift.slow_m0
    movsxd rsi, ecx
    movsxd rcx, edx
    and rcx, 31
    sar rsi, cl
    mov ecx, esi
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_RightShift.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_right_shift)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_UnsignedRightShift:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rdx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_UnsignedRightShift.slow
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_UnsignedRightShift.slow
    mov edx, edx
    movsxd rcx, ecx
    and rcx, 31
    shr rdx, cl
    bt rdx, 31
    jc .Lasm_UnsignedRightShift.as_double
    mov rcx, rdx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnsignedRightShift.as_double:
    cvtsi2sd xmm0, rdx
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnsignedRightShift.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_unsigned_right_shift)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Mod:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_Mod.slow
    mov rax, rdx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_Mod.slow
    movsxd rcx, ecx
    movsxd rsi, edx
    test rsi, rsi
    jz .Lasm_Mod.slow
    test rcx, rcx
    js .Lasm_Mod.slow
    mov rax, rcx
    cqo
    idiv rsi
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Mod.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_mod)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_StrictlyEquals:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    mov rdi, rdx
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_StrictlyEquals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_StrictlyEquals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_StrictlyEquals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_StrictlyEquals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_StrictlyEquals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_StrictlyEquals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_StrictlyEquals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_StrictlyEquals.fast_compare_m1
    jmp .Lasm_StrictlyEquals.double_compare
.Lasm_StrictlyEquals.string_compare_m1:
    cmp rsi, rdx
    je .Lasm_StrictlyEquals.store_true
    jmp .Lasm_StrictlyEquals.slow
.Lasm_StrictlyEquals.fast_compare_m1:
    cmp rsi, rdx
    je .Lasm_StrictlyEquals.store_true
    jmp .Lasm_StrictlyEquals.store_false
.Lasm_StrictlyEquals.double_compare:
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_StrictlyEquals.store_false
    je .Lasm_StrictlyEquals.store_true
    jmp .Lasm_StrictlyEquals.store_false
.Lasm_StrictlyEquals.diff_tags_m0:
    cmp rcx, 32762
    je .Lasm_StrictlyEquals.lhs_int32_diff_m0
    cmp rdi, 32762
    je .Lasm_StrictlyEquals.rhs_int32_diff_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_StrictlyEquals.store_false
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_StrictlyEquals.store_false
    jmp .Lasm_StrictlyEquals.double_compare
.Lasm_StrictlyEquals.lhs_int32_diff_m0:
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_StrictlyEquals.store_false
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    je .Lasm_StrictlyEquals.store_true
    jmp .Lasm_StrictlyEquals.store_false
.Lasm_StrictlyEquals.rhs_int32_diff_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_StrictlyEquals.store_false
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
    ucomisd xmm0, xmm1
    je .Lasm_StrictlyEquals.store_true
    jmp .Lasm_StrictlyEquals.store_false
.Lasm_StrictlyEquals.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_StrictlyEquals.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_StrictlyEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_strictly_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_StrictlyInequals:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rsi
    shr rcx, 48
    mov rdi, rdx
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_StrictlyInequals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_StrictlyInequals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_StrictlyInequals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_StrictlyInequals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_StrictlyInequals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_StrictlyInequals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_StrictlyInequals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_StrictlyInequals.fast_compare_m1
    jmp .Lasm_StrictlyInequals.double_compare
.Lasm_StrictlyInequals.string_compare_m1:
    cmp rsi, rdx
    je .Lasm_StrictlyInequals.store_false
    jmp .Lasm_StrictlyInequals.slow
.Lasm_StrictlyInequals.fast_compare_m1:
    cmp rsi, rdx
    je .Lasm_StrictlyInequals.store_false
    jmp .Lasm_StrictlyInequals.store_true
.Lasm_StrictlyInequals.double_compare:
    movq xmm0, rsi
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    jp .Lasm_StrictlyInequals.store_true
    je .Lasm_StrictlyInequals.store_false
    jmp .Lasm_StrictlyInequals.store_true
.Lasm_StrictlyInequals.diff_tags_m0:
    cmp rcx, 32762
    je .Lasm_StrictlyInequals.lhs_int32_diff_m0
    cmp rdi, 32762
    je .Lasm_StrictlyInequals.rhs_int32_diff_m0
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_StrictlyInequals.store_true
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_StrictlyInequals.store_true
    jmp .Lasm_StrictlyInequals.double_compare
.Lasm_StrictlyInequals.lhs_int32_diff_m0:
    and rdi, 32760
    cmp rdi, 32760
    je .Lasm_StrictlyInequals.store_true
    movsxd rax, esi
    cvtsi2sd xmm0, rax
    movq xmm1, rdx
    ucomisd xmm0, xmm1
    je .Lasm_StrictlyInequals.store_false
    jmp .Lasm_StrictlyInequals.store_true
.Lasm_StrictlyInequals.rhs_int32_diff_m0:
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_StrictlyInequals.store_true
    movq xmm0, rsi
    movsxd rax, edx
    cvtsi2sd xmm1, rax
    ucomisd xmm0, xmm1
    je .Lasm_StrictlyInequals.store_false
    jmp .Lasm_StrictlyInequals.store_true
.Lasm_StrictlyInequals.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_StrictlyInequals.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_StrictlyInequals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_strictly_inequals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetCalleeAndThisFromEnvironment:
    lea rax, [r14 + r13]
    add rax, 16
    mov ecx, DWORD PTR [rax + 0]
    mov edx, DWORD PTR [rax + 4]
    mov rax, QWORD PTR [rbx + 32]
    test rcx, rcx
    jz .Lasm_GetCalleeAndThisFromEnvironment.walk_done_m0
.Lasm_GetCalleeAndThisFromEnvironment.walk_loop_m0:
    mov rax, QWORD PTR [rax + 16]
    sub rcx, 1
    test rcx, rcx
    jnz .Lasm_GetCalleeAndThisFromEnvironment.walk_loop_m0
.Lasm_GetCalleeAndThisFromEnvironment.walk_done_m0:
    mov rax, QWORD PTR [rax + 48]
    mov rax, QWORD PTR [rax + rdx * 8]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_GetCalleeAndThisFromEnvironment.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    movabs rax, 9222809086901354496
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetCalleeAndThisFromEnvironment.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_callee_and_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DynamicGetCalleeAndThisFromEnvironment:
    mov eax, DWORD PTR [r14 + r13 + 16]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 184]
    add rax, rcx
    mov edx, DWORD PTR [rax + 0]
    mov esi, DWORD PTR [rax + 4]
    mov eax, 4294967294
    cmp rdx, rax
    je .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    mov rax, QWORD PTR [rbx + 32]
    test rdx, rdx
    jz .Lasm_DynamicGetCalleeAndThisFromEnvironment.walk_done_m0
.Lasm_DynamicGetCalleeAndThisFromEnvironment.walk_loop_m0:
    movzx ecx, BYTE PTR [rax + 12]
    test rcx, rcx
    jz .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    movzx ecx, BYTE PTR [rax + 11]
    test rcx, rcx
    jnz .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    mov rax, QWORD PTR [rax + 16]
    test rax, rax
    jz .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    sub rdx, 1
    test rdx, rdx
    jnz .Lasm_DynamicGetCalleeAndThisFromEnvironment.walk_loop_m0
.Lasm_DynamicGetCalleeAndThisFromEnvironment.walk_done_m0:
    movzx ecx, BYTE PTR [rax + 12]
    test rcx, rcx
    jz .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    movzx ecx, BYTE PTR [rax + 11]
    test rcx, rcx
    jnz .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    mov rax, QWORD PTR [rax + 48]
    mov rax, QWORD PTR [rax + rsi * 8]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_DynamicGetCalleeAndThisFromEnvironment.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    movabs rax, 9222809086901354496
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_DynamicGetCalleeAndThisFromEnvironment.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_dynamic_get_callee_and_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_LooselyEquals:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    mov rdi, rsi
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_LooselyEquals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_LooselyEquals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_LooselyEquals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_LooselyEquals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_LooselyEquals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_LooselyEquals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_LooselyEquals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_LooselyEquals.fast_compare_m1
    jmp .Lasm_LooselyEquals.double_compare
.Lasm_LooselyEquals.string_compare_m1:
    cmp rdx, rsi
    je .Lasm_LooselyEquals.store_true
    jmp .Lasm_LooselyEquals.slow
.Lasm_LooselyEquals.fast_compare_m1:
    cmp rdx, rsi
    je .Lasm_LooselyEquals.store_true
    jmp .Lasm_LooselyEquals.store_false
.Lasm_LooselyEquals.double_compare:
    movq xmm0, rdx
    movq xmm1, rsi
    ucomisd xmm0, xmm1
    jp .Lasm_LooselyEquals.store_false
    je .Lasm_LooselyEquals.store_true
    jmp .Lasm_LooselyEquals.store_false
.Lasm_LooselyEquals.diff_tags_m0:
    and rcx, 65534
    cmp rcx, 32766
    jne .Lasm_LooselyEquals.try_double_m0
    and rdi, 65534
    cmp rdi, 32766
    je .Lasm_LooselyEquals.store_true
    jmp .Lasm_LooselyEquals.slow
.Lasm_LooselyEquals.try_double_m0:
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LooselyEquals.slow
    mov rcx, rsi
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LooselyEquals.slow
    jmp .Lasm_LooselyEquals.double_compare
.Lasm_LooselyEquals.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LooselyEquals.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LooselyEquals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_loosely_equals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_LooselyInequals:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    mov rdi, rsi
    shr rdi, 48
    cmp rcx, rdi
    jne .Lasm_LooselyInequals.diff_tags_m0
    cmp rcx, 32762
    je .Lasm_LooselyInequals.fast_compare_m1
    cmp rcx, 32761
    je .Lasm_LooselyInequals.fast_compare_m1
    cmp rcx, 65529
    je .Lasm_LooselyInequals.fast_compare_m1
    cmp rcx, 65531
    je .Lasm_LooselyInequals.fast_compare_m1
    cmp rcx, 65530
    je .Lasm_LooselyInequals.string_compare_m1
    cmp rcx, 65533
    je .Lasm_LooselyInequals.slow
    and rcx, 65534
    cmp rcx, 32766
    je .Lasm_LooselyInequals.fast_compare_m1
    jmp .Lasm_LooselyInequals.double_compare
.Lasm_LooselyInequals.string_compare_m1:
    cmp rdx, rsi
    je .Lasm_LooselyInequals.store_false
    jmp .Lasm_LooselyInequals.slow
.Lasm_LooselyInequals.fast_compare_m1:
    cmp rdx, rsi
    je .Lasm_LooselyInequals.store_false
    jmp .Lasm_LooselyInequals.store_true
.Lasm_LooselyInequals.double_compare:
    movq xmm0, rdx
    movq xmm1, rsi
    ucomisd xmm0, xmm1
    jp .Lasm_LooselyInequals.store_true
    je .Lasm_LooselyInequals.store_false
    jmp .Lasm_LooselyInequals.store_true
.Lasm_LooselyInequals.diff_tags_m0:
    and rcx, 65534
    cmp rcx, 32766
    jne .Lasm_LooselyInequals.try_double_m0
    and rdi, 65534
    cmp rdi, 32766
    je .Lasm_LooselyInequals.store_false
    jmp .Lasm_LooselyInequals.slow
.Lasm_LooselyInequals.try_double_m0:
    mov rcx, rdx
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LooselyInequals.slow
    mov rcx, rsi
    shr rcx, 48
    and rcx, 32760
    cmp rcx, 32760
    je .Lasm_LooselyInequals.slow
    jmp .Lasm_LooselyInequals.double_compare
.Lasm_LooselyInequals.store_true:
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LooselyInequals.store_false:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_LooselyInequals.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_loosely_inequals)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_UnaryMinus:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    cmp rdx, 32762
    jne .Lasm_UnaryMinus.try_double
    movsxd rcx, ecx
    test rcx, rcx
    jz .Lasm_UnaryMinus.negative_zero
    neg ecx
    jo .Lasm_UnaryMinus.overflow
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnaryMinus.negative_zero:
    movabs rcx, -9223372036854775808
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnaryMinus.overflow:
    cvtsi2sd xmm0, rcx
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnaryMinus.try_double:
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_UnaryMinus.slow
    btc rcx, 63
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_UnaryMinus.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_unary_minus)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PostfixDecrement:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_PostfixDecrement.slow_m0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    movsxd rdx, ecx
    sub edx, 1
    jo .Lasm_PostfixDecrement.overflow_after_store_m0
    mov rcx, rdx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PostfixDecrement.overflow_after_store_m0:
    movsxd rdx, ecx
    cvtsi2sd xmm0, rdx
    movabs rcx, 4607182418800017408
    movq xmm1, rcx
    subsd xmm0, xmm1
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PostfixDecrement.slow_m0:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_postfix_decrement)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ToInt32:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    cmp rdx, 32762
    jne .Lasm_ToInt32.try_double
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ToInt32.try_double:
    mov rsi, rdx
    and rsi, 32760
    cmp rsi, 32760
    je .Lasm_ToInt32.try_boolean
    movq xmm0, rcx
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_ToInt32.slow
    mov edx, edx
    movabs rax, 9221683186994511872
    or rdx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ToInt32.try_boolean:
    cmp rdx, 32761
    jne .Lasm_ToInt32.slow
    and rcx, 1
    mov rdx, rcx
    movabs rax, 9221683186994511872
    or rdx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rdx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ToInt32.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_to_int32)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PutByValue:
    movzx eax, BYTE PTR [r14 + r13 + 16]
    cmp rax, 0
    jne .Lasm_PutByValue.slow
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rdx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_PutByValue.slow
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_PutByValue.slow
    mov ecx, ecx
    bt rcx, 31
    jc .Lasm_PutByValue.slow
    mov rax, rdx
    shl rax, 16
    shr rax, 16
    movzx edx, BYTE PTR [rax + 10]
    test edx, 8
    jnz .Lasm_PutByValue.try_typed_array
    test edx, 16
    jnz .Lasm_PutByValue.slow
    movzx edx, BYTE PTR [rax + 11]
    cmp rdx, 1
    jne .Lasm_PutByValue.not_packed
    mov edx, DWORD PTR [rax + 12]
    cmp rcx, rdx
    jae .Lasm_PutByValue.slow
    mov rdx, QWORD PTR [rax + 32]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov QWORD PTR [rdx + rcx * 8], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.not_packed:
    cmp rdx, 2
    jne .Lasm_PutByValue.slow
    mov edx, DWORD PTR [rax + 12]
    cmp rcx, rdx
    jae .Lasm_PutByValue.slow
    mov rdx, QWORD PTR [rax + 32]
    test rdx, rdx
    jz .Lasm_PutByValue.try_holey_array_slow
    mov rax, rdx
    sub rax, 8
    mov esi, DWORD PTR [rax + 0]
    cmp rcx, rsi
    jae .Lasm_PutByValue.try_holey_array_slow
    mov rax, QWORD PTR [rdx + rcx * 8]
    movabs rsi, 9221964661971222528
    cmp rax, rsi
    je .Lasm_PutByValue.try_holey_array_slow
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov QWORD PTR [rdx + rcx * 8], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.try_holey_array_slow:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_put_by_value_holey_array)
    test rax, rax
    jnz .Lasm_PutByValue.slow
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.try_typed_array:
    mov rdi, QWORD PTR [rax + 128]
    mov rdx, -1
    cmp rdi, rdx
    je .Lasm_PutByValue.try_typed_array_slow
    mov rdx, QWORD PTR [rbp - 48]
    mov rdx, QWORD PTR [rdx + 16640]
    mov esi, DWORD PTR [rax + 92]
    cmp rcx, rsi
    jae .Lasm_PutByValue.slow
    movzx r8d, BYTE PTR [rax + 116]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, rsi
    shr rax, 48
    cmp rax, 32762
    je .Lasm_PutByValue.ta_store_int32
    cmp r8, 10
    je .Lasm_PutByValue.ta_store_float32
    cmp r8, 11
    jne .Lasm_PutByValue.try_typed_array_slow
    shl rcx, 3
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov rdx, rsi
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_PutByValue.try_typed_array_slow
    mov QWORD PTR [rcx + 0], rsi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_store_float32:
    shl rcx, 2
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov rdx, rsi
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_PutByValue.try_typed_array_slow
    movq xmm0, rsi
    cvtsd2ss xmm0, xmm0
    movss DWORD PTR [rcx + 0], xmm0
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_store_int32:
    movsxd rsi, esi
    cmp r8, 7
    je .Lasm_PutByValue.ta_put_int32
    cmp r8, 3
    je .Lasm_PutByValue.ta_put_int32
    cmp r8, 10
    je .Lasm_PutByValue.ta_put_float32
    cmp r8, 1
    je .Lasm_PutByValue.ta_put_uint8_clamped
    cmp r8, 0
    je .Lasm_PutByValue.ta_put_uint8
    cmp r8, 5
    je .Lasm_PutByValue.ta_put_uint8
    cmp r8, 2
    je .Lasm_PutByValue.ta_put_uint16
    cmp r8, 6
    je .Lasm_PutByValue.ta_put_uint16
    jmp .Lasm_PutByValue.try_typed_array_slow
.Lasm_PutByValue.ta_put_int32:
    shl rcx, 2
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov DWORD PTR [rcx + 0], esi
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_put_float32:
    cvtsi2sd xmm0, rsi
    cvtsd2ss xmm0, xmm0
    shl rcx, 2
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    movss DWORD PTR [rcx + 0], xmm0
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_put_uint8_clamped:
    shl rcx, 0
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    test rsi, rsi
    js .Lasm_PutByValue.ta_put_uint8_clamped_zero
    mov rax, 255
    cmp rsi, rax
    jae .Lasm_PutByValue.ta_put_uint8_clamped_max
    mov BYTE PTR [rcx + 0], sil
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_put_uint8_clamped_zero:
    mov rsi, 0
    mov BYTE PTR [rcx + 0], sil
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_put_uint8_clamped_max:
    mov rsi, 255
    mov BYTE PTR [rcx + 0], sil
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_put_uint8:
    shl rcx, 0
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov BYTE PTR [rcx + 0], sil
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.ta_put_uint16:
    shl rcx, 1
    add rcx, rdi
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov WORD PTR [rcx + 0], si
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.try_typed_array_slow:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_put_by_value_typed_array)
    test rax, rax
    jnz .Lasm_PutByValue.slow
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutByValue.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_put_by_value)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetById:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_GetById.try_cache
    mov rsi, rdx
    shl rsi, 16
    shr rsi, 16
    mov rdx, QWORD PTR [rsi + 16]
    mov eax, DWORD PTR [r14 + r13 + 20]
    imul rax, rax, 8
    mov rcx, QWORD PTR [rbx + 80]
    mov rcx, QWORD PTR [rcx + 136]
    add rax, rcx
    mov rax, QWORD PTR [rax + 0]
    test rax, rax
    jz .Lasm_GetById.try_cache
    test eax, 1
    jz .Lasm_GetById.data_loaded_m0
    sub rax, 1
.Lasm_GetById.data_loaded_m0:
    mov rcx, QWORD PTR [rax + 24]
    mov rdi, QWORD PTR [rax + 32]
    cmp rcx, rdx
    jne .Lasm_GetById.try_cache
    test rdi, rdi
    jnz .Lasm_GetById.proto
    mov ecx, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 8]
    mov edx, DWORD PTR [rdx + 92]
    cmp rax, rdx
    jne .Lasm_GetById.try_cache
    mov rax, QWORD PTR [rsi + 24]
    mov rax, QWORD PTR [rax + rcx * 8]
    mov rcx, rax
    shr rcx, 48
    cmp rcx, 65532
    je .Lasm_GetById.try_cache
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetById.proto:
    mov rcx, QWORD PTR [rax + 40]
    test rcx, rcx
    jz .Lasm_GetById.try_cache
    movzx ecx, BYTE PTR [rcx + 10]
    test rcx, rcx
    jz .Lasm_GetById.try_cache
    mov ecx, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 8]
    mov edx, DWORD PTR [rdx + 92]
    cmp rax, rdx
    jne .Lasm_GetById.try_cache
    mov rax, QWORD PTR [rdi + 24]
    mov rax, QWORD PTR [rax + rcx * 8]
    mov rcx, rax
    shr rcx, 48
    cmp rcx, 65532
    je .Lasm_GetById.try_cache
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetById.try_cache:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_get_by_id_cache)
    test rax, rax
    jz .Lasm_GetById.done
.Lasm_GetById.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_by_id)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetById.done:
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetByIdWithThis:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_by_id_with_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PutById:
    mov eax, DWORD PTR [r14 + r13 + 4]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_PutById.try_cache
    mov rdx, rcx
    shl rdx, 16
    shr rdx, 16
    mov rcx, QWORD PTR [rdx + 16]
    mov eax, DWORD PTR [r14 + r13 + 20]
    imul rax, rax, 8
    mov rsi, QWORD PTR [rbx + 80]
    mov rsi, QWORD PTR [rsi + 136]
    add rax, rsi
    mov rax, QWORD PTR [rax + 0]
    test rax, rax
    jz .Lasm_PutById.try_cache
    test eax, 1
    jz .Lasm_PutById.data_loaded_m0
    sub rax, 1
.Lasm_PutById.data_loaded_m0:
    mov rdi, QWORD PTR [rax + 24]
    mov rsi, QWORD PTR [rax + 32]
    cmp rdi, rcx
    jne .Lasm_PutById.try_cache
    test rsi, rsi
    jnz .Lasm_PutById.try_cache
    mov esi, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 8]
    mov ecx, DWORD PTR [rcx + 92]
    cmp rax, rcx
    jne .Lasm_PutById.try_cache
    mov rcx, QWORD PTR [rdx + 24]
    mov rax, QWORD PTR [rcx + rsi * 8]
    shr rax, 48
    cmp rax, 65532
    je .Lasm_PutById.try_cache
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov QWORD PTR [rcx + rsi * 8], rdx
    add r13d, 32
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutById.try_cache:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_put_by_id_cache)
    test rax, rax
    jz .Lasm_PutById.done
.Lasm_PutById.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_put_by_id)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_PutById.done:
    add r13d, 32
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PutByIdWithThis:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_put_by_id_with_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetByValue:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rdx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_GetByValue.slow
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_GetByValue.slow
    mov ecx, ecx
    bt rcx, 31
    jc .Lasm_GetByValue.slow
    mov rsi, rdx
    shl rsi, 16
    shr rsi, 16
    movzx eax, BYTE PTR [rsi + 10]
    test eax, 8
    jnz .Lasm_GetByValue.try_typed_array
    test eax, 16
    jnz .Lasm_GetByValue.slow
    movzx eax, BYTE PTR [rsi + 11]
    cmp rax, 1
    jne .Lasm_GetByValue.not_packed
    mov eax, DWORD PTR [rsi + 12]
    cmp rcx, rax
    jae .Lasm_GetByValue.slow
    mov rdx, QWORD PTR [rsi + 32]
    mov rcx, QWORD PTR [rdx + rcx * 8]
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.not_packed:
    cmp rax, 2
    jne .Lasm_GetByValue.slow
    mov eax, DWORD PTR [rsi + 12]
    cmp rcx, rax
    jae .Lasm_GetByValue.slow
    mov rdx, QWORD PTR [rsi + 32]
    test rdx, rdx
    jz .Lasm_GetByValue.slow
    mov rax, rdx
    sub rax, 8
    mov edi, DWORD PTR [rax + 0]
    cmp rcx, rdi
    jae .Lasm_GetByValue.slow
    mov rax, QWORD PTR [rdx + rcx * 8]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_GetByValue.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.try_typed_array:
    mov rax, QWORD PTR [rsi + 128]
    mov rdx, -1
    cmp rax, rdx
    je .Lasm_GetByValue.try_typed_array_slow
    mov rdx, QWORD PTR [rbp - 48]
    mov rdx, QWORD PTR [rdx + 16640]
    mov edi, DWORD PTR [rsi + 92]
    cmp rcx, rdi
    jae .Lasm_GetByValue.try_typed_array_slow
    movzx esi, BYTE PTR [rsi + 116]
    cmp rsi, 7
    je .Lasm_GetByValue.ta_int32
    cmp rsi, 0
    je .Lasm_GetByValue.ta_uint8
    cmp rsi, 1
    je .Lasm_GetByValue.ta_uint8
    cmp rsi, 2
    je .Lasm_GetByValue.ta_uint16
    cmp rsi, 5
    je .Lasm_GetByValue.ta_int8
    cmp rsi, 6
    je .Lasm_GetByValue.ta_int16
    cmp rsi, 3
    je .Lasm_GetByValue.ta_uint32
    cmp rsi, 10
    je .Lasm_GetByValue.ta_float32
    cmp rsi, 11
    je .Lasm_GetByValue.ta_float64
    jmp .Lasm_GetByValue.try_typed_array_slow
.Lasm_GetByValue.ta_int32:
    shl rcx, 2
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov edx, DWORD PTR [rcx + 0]
    jmp .Lasm_GetByValue.ta_box_int32
.Lasm_GetByValue.ta_uint8:
    shl rcx, 0
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    movzx edx, BYTE PTR [rcx + 0]
    jmp .Lasm_GetByValue.ta_box_int32
.Lasm_GetByValue.ta_uint16:
    shl rcx, 1
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    movzx edx, WORD PTR [rcx + 0]
    jmp .Lasm_GetByValue.ta_box_int32
.Lasm_GetByValue.ta_int8:
    shl rcx, 0
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    movsx edx, BYTE PTR [rcx + 0]
    jmp .Lasm_GetByValue.ta_box_int32
.Lasm_GetByValue.ta_int16:
    shl rcx, 1
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    movsx edx, WORD PTR [rcx + 0]
    jmp .Lasm_GetByValue.ta_box_int32
.Lasm_GetByValue.ta_float32:
    shl rcx, 2
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    movss xmm0, DWORD PTR [rcx + 0]
    cvtss2sd xmm0, xmm0
    movq rax, xmm0
    movabs rcx, -9223372036854775808
    cmp rax, rcx
    je .Lasm_GetByValue.ta_f64_as_double
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_GetByValue.ta_f64_as_double
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_GetByValue.ta_f64_as_double
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_GetByValue.ta_f64_as_double
    test rdx, rdx
    jnz .Lasm_GetByValue.ta_f64_as_int
    jmp .Lasm_GetByValue.ta_f64_as_int
.Lasm_GetByValue.ta_float64:
    shl rcx, 3
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov rax, QWORD PTR [rcx + 0]
    movq xmm0, rax
    movabs rcx, -9223372036854775808
    cmp rax, rcx
    je .Lasm_GetByValue.ta_f64_as_double
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_GetByValue.ta_f64_as_double
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_GetByValue.ta_f64_as_double
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_GetByValue.ta_f64_as_double
    test rdx, rdx
    jnz .Lasm_GetByValue.ta_f64_as_int
.Lasm_GetByValue.ta_f64_as_int:
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.ta_f64_as_double:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_GetByValue.canon_nan_8
.Lasm_GetByValue.canon_nan_8_ret:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.ta_uint32:
    shl rcx, 2
    add rcx, rax
    movabs rax, 68719476735
    and rcx, rax
    add rcx, rdx
    mov edx, DWORD PTR [rcx + 0]
    bt rdx, 31
    jc .Lasm_GetByValue.ta_uint32_to_double
    jmp .Lasm_GetByValue.ta_box_int32
.Lasm_GetByValue.ta_uint32_to_double:
    cvtsi2sd xmm0, rdx
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.ta_box_int32:
    mov rcx, rdx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.try_typed_array_slow:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_get_by_value_typed_array)
    test rax, rax
    jnz .Lasm_GetByValue.slow
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_by_value)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetByValue.canon_nan_8:
    movabs rcx, 9221120237041090560
    jmp .Lasm_GetByValue.canon_nan_8_ret

.p2align 4
asm_handler_GetByValueWithThis:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_by_value_with_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PutByValueWithThis:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_put_by_value_with_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PutBySpread:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_put_by_spread)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetLength:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_GetLength.slow
    shl rcx, 16
    shr rcx, 16
    movzx eax, BYTE PTR [rcx + 10]
    test eax, 4
    jnz .Lasm_GetLength.magical_length
    mov rdx, QWORD PTR [rcx + 16]
    mov eax, DWORD PTR [r14 + r13 + 16]
    imul rax, rax, 8
    mov rsi, QWORD PTR [rbx + 80]
    mov rsi, QWORD PTR [rsi + 136]
    add rax, rsi
    mov rax, QWORD PTR [rax + 0]
    test rax, rax
    jz .Lasm_GetLength.slow
    test eax, 1
    jz .Lasm_GetLength.data_loaded_m0
    sub rax, 1
.Lasm_GetLength.data_loaded_m0:
    mov rdi, QWORD PTR [rax + 24]
    mov rsi, QWORD PTR [rax + 32]
    cmp rdi, rdx
    jne .Lasm_GetLength.slow
    test rsi, rsi
    jnz .Lasm_GetLength.slow
    mov esi, DWORD PTR [rax + 4]
    mov eax, DWORD PTR [rax + 8]
    mov edx, DWORD PTR [rdx + 92]
    cmp rax, rdx
    jne .Lasm_GetLength.slow
    mov rax, QWORD PTR [rcx + 24]
    mov rcx, QWORD PTR [rax + rsi * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65532
    je .Lasm_GetLength.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetLength.magical_length:
    mov ecx, DWORD PTR [rcx + 12]
    mov rax, rcx
    shr rax, 31
    test rax, rax
    jnz .Lasm_GetLength.length_double
    mov ecx, ecx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetLength.length_double:
    cvtsi2sd xmm0, rcx
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetLength.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_length)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetLengthWithThis:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_length_with_this)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetMethod:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_method)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetIterator:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_iterator)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetGlobal:
    mov rax, QWORD PTR [rbx + 8]
    mov rdx, QWORD PTR [rax + 24]
    mov rcx, QWORD PTR [rax + 32]
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 64
    mov rsi, QWORD PTR [rbx + 80]
    mov rsi, QWORD PTR [rsi + 160]
    add rax, rsi
    mov rdi, QWORD PTR [rax + 48]
    mov rsi, QWORD PTR [rcx + 56]
    test rsi, rsi
    jz .Lasm_GetGlobal.zero_m1
    mov rsi, QWORD PTR [rsi + 120]
    jmp .Lasm_GetGlobal.done_m1
.Lasm_GetGlobal.zero_m1:
    mov rsi, 0
.Lasm_GetGlobal.done_m1:
    cmp rdi, rsi
    jne .Lasm_GetGlobal.slow
    mov rsi, QWORD PTR [rdx + 16]
    mov rdi, QWORD PTR [rax + 24]
    cmp rdi, rsi
    jne .Lasm_GetGlobal.try_env_binding
    mov edi, DWORD PTR [rsi + 92]
    mov esi, DWORD PTR [rax + 4]
    mov r8d, DWORD PTR [rax + 8]
    cmp r8, rdi
    jne .Lasm_GetGlobal.try_env_binding
    mov rax, QWORD PTR [rdx + 24]
    mov rax, QWORD PTR [rax + rsi * 8]
    mov rcx, rax
    shr rcx, 48
    cmp rcx, 65532
    je .Lasm_GetGlobal.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetGlobal.try_env_binding:
    movzx edx, BYTE PTR [rax + 60]
    test rdx, rdx
    jz .Lasm_GetGlobal.slow
    movzx edx, BYTE PTR [rax + 61]
    test rdx, rdx
    jnz .Lasm_GetGlobal.slow_env
    mov edx, DWORD PTR [rax + 56]
    mov rax, QWORD PTR [rcx + 48]
    mov rax, QWORD PTR [rax + rdx * 8]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_GetGlobal.slow
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetGlobal.slow_env:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_get_global_env_binding)
    test rax, rax
    jnz .Lasm_GetGlobal.slow
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_GetGlobal.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_global)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetGlobal:
    mov rax, QWORD PTR [rbx + 8]
    mov rdx, QWORD PTR [rax + 24]
    mov rcx, QWORD PTR [rax + 32]
    mov eax, DWORD PTR [r14 + r13 + 12]
    imul rax, rax, 64
    mov rsi, QWORD PTR [rbx + 80]
    mov rsi, QWORD PTR [rsi + 160]
    add rax, rsi
    mov rdi, QWORD PTR [rax + 48]
    mov rsi, QWORD PTR [rcx + 56]
    test rsi, rsi
    jz .Lasm_SetGlobal.zero_m1
    mov rsi, QWORD PTR [rsi + 120]
    jmp .Lasm_SetGlobal.done_m1
.Lasm_SetGlobal.zero_m1:
    mov rsi, 0
.Lasm_SetGlobal.done_m1:
    cmp rdi, rsi
    jne .Lasm_SetGlobal.slow
    mov rsi, QWORD PTR [rdx + 16]
    mov rdi, QWORD PTR [rax + 24]
    cmp rdi, rsi
    jne .Lasm_SetGlobal.try_env_binding
    mov esi, DWORD PTR [rsi + 92]
    mov edi, DWORD PTR [rax + 4]
    mov r8d, DWORD PTR [rax + 8]
    cmp r8, rsi
    jne .Lasm_SetGlobal.try_env_binding
    mov rcx, QWORD PTR [rdx + 24]
    mov rax, QWORD PTR [rcx + rdi * 8]
    shr rax, 48
    cmp rax, 65532
    je .Lasm_SetGlobal.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov QWORD PTR [rcx + rdi * 8], rsi
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_SetGlobal.try_env_binding:
    movzx edx, BYTE PTR [rax + 60]
    test rdx, rdx
    jz .Lasm_SetGlobal.slow
    movzx edx, BYTE PTR [rax + 61]
    test rdx, rdx
    jnz .Lasm_SetGlobal.slow_env
    mov edx, DWORD PTR [rax + 56]
    mov rax, QWORD PTR [rcx + 48]
    mov rax, QWORD PTR [rax + rdx * 8]
    movabs rsi, 9221964661971222528
    cmp rax, rsi
    je .Lasm_SetGlobal.slow
    mov rax, QWORD PTR [rcx + 24]
    test rax, rax
    jz .Lasm_SetGlobal.load_environment_flags_m4
    mov rsi, QWORD PTR [rax + 40]
    cmp rdx, rsi
    jae .Lasm_SetGlobal.load_environment_local_flags_m4
    mov rax, QWORD PTR [rax + 56]
    movzx esi, BYTE PTR [rax + rdx]
    jmp .Lasm_SetGlobal.done_m4
.Lasm_SetGlobal.load_environment_local_flags_m4:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    mov rdi, rdx
    sub rdi, rsi
    movzx esi, BYTE PTR [rax + rdi]
    jmp .Lasm_SetGlobal.done_m4
.Lasm_SetGlobal.load_environment_flags_m4:
    mov rax, QWORD PTR [rcx + 56]
    mov rax, QWORD PTR [rax + 40]
    movzx esi, BYTE PTR [rax + rdx]
.Lasm_SetGlobal.done_m4:
    and rsi, 2
    test rsi, rsi
    jz .Lasm_SetGlobal.slow
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rsi, QWORD PTR [r15 + rax * 8]
    mov rax, QWORD PTR [rcx + 48]
    mov QWORD PTR [rax + rdx * 8], rsi
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_SetGlobal.slow_env:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_set_global_env_binding)
    test rax, rax
    jnz .Lasm_SetGlobal.slow
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_SetGlobal.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_set_global)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Call:
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rsi, rcx
    shr rsi, 48
    cmp rsi, 65529
    jne .Lasm_Call.call_slow
    mov rdx, rcx
    shl rdx, 16
    shr rdx, 16
    movzx eax, BYTE PTR [rdx + 10]
    test eax, 128
    jz .Lasm_Call.call_slow
    test eax, 64
    jz .Lasm_Call.call_try_native
    mov rax, QWORD PTR [rdx + 72]
    mov rdi, QWORD PTR [rax + 48]
    mov rcx, QWORD PTR [rax + 56]
    bt rcx, 32
    jnc .Lasm_Call.call_slow
    bt rcx, 33
    jc .Lasm_Call.call_interp_inline
    movabs r10, 9221964661971222528
    bt rcx, 34
    jnc .Lasm_Call.this_ready
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov r10, QWORD PTR [r15 + rax * 8]
    bt rcx, 35
    jc .Lasm_Call.this_ready
    mov rsi, r10
    shr rsi, 48
    mov r9, rsi
    and r9, 65534
    cmp r9, 32766
    je .Lasm_Call.sloppy_global_this
    cmp rsi, 65529
    je .Lasm_Call.this_ready
    jmp .Lasm_Call.call_interp_inline
.Lasm_Call.sloppy_global_this:
    mov r9, QWORD PTR [rdx + 16]
    mov r9, QWORD PTR [r9 + 16]
    mov r9, QWORD PTR [r9 + 40]
    mov r9, QWORD PTR [r9 + 32]
    shl r9, 16
    shr r9, 16
    movabs r10, -1970324836974592
    or r10, r9
.Lasm_Call.this_ready:
    mov ecx, ecx
    mov esi, DWORD PTR [r14 + r13 + 20]
    mov rax, rcx
    cmp rax, rsi
    jae .Lasm_Call.arg_count_ready
    mov rax, rsi
.Lasm_Call.arg_count_ready:
    mov r8d, DWORD PTR [rdi + 388]
    mov r9d, DWORD PTR [rdi + 392]
    add r9, rax
    mov r11, r9
    shl r11, 3
    add r11, 120
    mov rsi, QWORD PTR [rbp - 48]
    lea rsi, [rsi + 15344]
    mov rcx, QWORD PTR [rsi + 8]
    mov rsi, QWORD PTR [rsi + 16]
    add r11, rcx
    cmp rsi, r11
    jae .Lasm_Call.stack_ok
    jmp .Lasm_Call.call_slow
.Lasm_Call.stack_ok:
    mov rsi, QWORD PTR [rbp - 48]
    mov QWORD PTR [rsi + 15352], r11
    lea rsi, [rcx + 120]
    mov DWORD PTR [rcx + 108], r9d
    mov DWORD PTR [rcx + 112], eax
    mov r9d, DWORD PTR [r14 + r13 + 20]
    mov DWORD PTR [rcx + 96], r9d
    mov r9, QWORD PTR [rdx + 16]
    mov r9, QWORD PTR [r9 + 16]
    mov QWORD PTR [rcx + 0], rdx
    mov QWORD PTR [rcx + 8], r9
    mov r11, QWORD PTR [rdx + 96]
    mov r9, QWORD PTR [rdx + 104]
    mov QWORD PTR [rcx + 32], r11
    mov QWORD PTR [rcx + 40], r11
    mov QWORD PTR [rcx + 48], r9
    mov QWORD PTR [rcx + 72], r10
    mov QWORD PTR [rcx + 80], rdi
    movabs rdi, 9221964661971222528
    mov QWORD PTR [rsi + 0], rdi
    mov QWORD PTR [rsi + 8], rdi
    mov QWORD PTR [rsi + 16], r10
    mov QWORD PTR [rsi + 24], rdi
    mov QWORD PTR [rsi + 32], rdi
    lea r9, [rcx + 16]
    lea r10, [rdx + 112]
    mov rdx, QWORD PTR [r10 + 8]
    mov r10, QWORD PTR [r10 + 0]
    mov QWORD PTR [r9 + 0], r10
    mov QWORD PTR [r9 + 8], rdx
    mov DWORD PTR [rcx + 56], 0
    mov DWORD PTR [rcx + 60], 0
    mov r9d, 4294967295
    mov DWORD PTR [rcx + 64], r9d
    mov BYTE PTR [rcx + 68], 0
    mov BYTE PTR [rcx + 69], 0
    mov BYTE PTR [rcx + 70], 0
    mov QWORD PTR [rcx + 88], rbx
    mov edx, DWORD PTR [r14 + r13 + 4]
    mov r9d, DWORD PTR [r14 + r13 + 8]
    lea r10, [r14 + r13]
    sub r10, r14
    add rdx, r10
    mov DWORD PTR [rcx + 100], edx
    mov DWORD PTR [rcx + 104], r9d
    mov rdx, r8
    shl rdx, 3
    mov r10, 40
.Lasm_Call.clear_registers_and_locals:
    mov r9, r10
    add r9, 8
    cmp r9, rdx
    jae .Lasm_Call.clear_registers_and_locals_tail
    mov QWORD PTR [rsi + r10], rdi
    mov QWORD PTR [rsi + r10 + 8], rdi
    add r10, 16
    jmp .Lasm_Call.clear_registers_and_locals
.Lasm_Call.clear_registers_and_locals_tail:
    cmp r10, rdx
    jae .Lasm_Call.copy_constants
    mov QWORD PTR [rsi + r10], rdi
.Lasm_Call.copy_constants:
    mov rdi, QWORD PTR [rcx + 80]
    mov r9, QWORD PTR [rdi + 400]
    mov rdi, QWORD PTR [rdi + 408]
    mov rdx, r8
    xor r10, r10
.Lasm_Call.copy_constants_loop:
    cmp r10, r9
    jae .Lasm_Call.copy_arguments
    mov r11, QWORD PTR [rdi + r10 * 8]
    mov QWORD PTR [rsi + rdx * 8], r11
    add r10, 1
    add rdx, 1
    jmp .Lasm_Call.copy_constants_loop
.Lasm_Call.copy_arguments:
    mov edi, DWORD PTR [r14 + r13 + 20]
    mov rdx, r8
    add rdx, r9
    lea r9, [rbx + 120]
    lea r8, [r14 + r13]
    add r8, 24
    add r8, 4
    xor r10, r10
.Lasm_Call.copy_arguments_loop:
    cmp r10, rdi
    jae .Lasm_Call.fill_missing_arguments
    mov r11d, DWORD PTR [r8 + r10 * 4]
    mov r11, QWORD PTR [r9 + r11 * 8]
    mov QWORD PTR [rsi + rdx * 8], r11
    add r10, 1
    add rdx, 1
    jmp .Lasm_Call.copy_arguments_loop
.Lasm_Call.fill_missing_arguments:
    mov r8, rdx
    add r8, rax
    sub r8, rdi
    movabs rax, 9222809086901354496
.Lasm_Call.fill_missing_arguments_loop:
    cmp rdx, r8
    jae .Lasm_Call.enter_callee
    mov QWORD PTR [rsi + rdx * 8], rax
    add rdx, 1
    jmp .Lasm_Call.fill_missing_arguments_loop
.Lasm_Call.enter_callee:
    mov r14, QWORD PTR [rcx + 80]
    mov r14, QWORD PTR [r14 + 104]
    mov rsi, QWORD PTR [rbp - 48]
    mov QWORD PTR [rsi + 15288], rcx
    mov rbx, rcx
    lea r15, [rbx + 120]
    xor r13, r13
    mov r13d, r13d
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Call.call_interp_inline:
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_try_inline_call)
    test rax, rax
    jnz .Lasm_Call.call_slow
    mov rsi, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rsi + 15288]
    lea r15, [rbx + 120]
    mov r9, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [r9 + 104]
    xor r13, r13
    mov r13d, r13d
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Call.call_try_native:
    movzx eax, BYTE PTR [rdx + 10]
    test eax, 2
    jz .Lasm_Call.call_slow
    mov edi, DWORD PTR [r14 + r13 + 20]
    mov rax, rdi
    shl rax, 3
    add rax, 120
    mov rsi, QWORD PTR [rbp - 48]
    lea rsi, [rsi + 15344]
    mov rcx, QWORD PTR [rsi + 8]
    mov rsi, QWORD PTR [rsi + 16]
    add rax, rcx
    cmp rsi, rax
    jae .Lasm_Call.native_interpreter_stack_ok
    jmp .Lasm_Call.call_slow
.Lasm_Call.native_interpreter_stack_ok:
    mov rsi, QWORD PTR [rbp - 48]
    lea rsi, [rsi + 15320]
    mov rsi, QWORD PTR [rsi + 0]
    add rsi, 32768
    cmp rbp, rsi
    jae .Lasm_Call.native_stack_space_ok
    jmp .Lasm_Call.call_slow
.Lasm_Call.native_stack_space_ok:
    mov rsi, QWORD PTR [rbp - 48]
    mov QWORD PTR [rsi + 15352], rax
    lea rsi, [rcx + 120]
    mov DWORD PTR [rcx + 108], edi
    mov DWORD PTR [rcx + 112], edi
    mov DWORD PTR [rcx + 96], edi
    mov r9, QWORD PTR [rdx + 16]
    mov r9, QWORD PTR [r9 + 16]
    mov QWORD PTR [rcx + 0], rdx
    mov QWORD PTR [rcx + 8], r9
    mov r11, QWORD PTR [rbx + 32]
    mov r9, QWORD PTR [rbx + 40]
    mov QWORD PTR [rcx + 32], r11
    mov QWORD PTR [rcx + 40], r9
    mov r9, QWORD PTR [rbx + 48]
    mov QWORD PTR [rcx + 48], r9
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov r10, QWORD PTR [r15 + rax * 8]
    mov QWORD PTR [rcx + 72], r10
    xor r9, r9
    lea r10, [rcx + 16]
    mov QWORD PTR [r10 + 0], r9
    mov QWORD PTR [r10 + 8], r9
    mov QWORD PTR [rcx + 80], r9
    mov DWORD PTR [rcx + 56], 0
    mov DWORD PTR [rcx + 60], 0
    mov r9d, 4294967295
    mov DWORD PTR [rcx + 64], r9d
    mov BYTE PTR [rcx + 68], 0
    mov BYTE PTR [rcx + 69], 0
    mov BYTE PTR [rcx + 70], 0
    lea rax, [r14 + r13]
    sub rax, r14
    mov DWORD PTR [rbx + 56], eax
    mov QWORD PTR [rcx + 88], rbx
    mov r8d, DWORD PTR [r14 + r13 + 4]
    add r8, rax
    mov DWORD PTR [rcx + 100], r8d
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov DWORD PTR [rcx + 104], eax
    lea r9, [rbx + 120]
    lea r8, [r14 + r13]
    add r8, 24
    add r8, 4
    xor r10, r10
.Lasm_Call.copy_native_arguments_loop:
    cmp r10, rdi
    jae .Lasm_Call.enter_raw_native
    mov r11d, DWORD PTR [r8 + r10 * 4]
    mov r11, QWORD PTR [r9 + r11 * 8]
    mov QWORD PTR [rsi + r10 * 8], r11
    add r10, 1
    jmp .Lasm_Call.copy_native_arguments_loop
.Lasm_Call.enter_raw_native:
    mov rsi, QWORD PTR [rbp - 48]
    mov QWORD PTR [rsi + 15288], rcx
    mov rbx, rcx
    lea r15, [rbx + 120]
    mov rdx, QWORD PTR [rdx + 96]
    mov r11, rdx
    mov rdi, QWORD PTR [rbp - 48]
    call r11
    mov rcx, rdx
    mov rdx, rax
    and rcx, 255
    test rcx, rcx
    jnz .Lasm_Call.call_raw_native_exception
    mov rcx, QWORD PTR [rbx + 88]
    mov rsi, QWORD PTR [rbp - 48]
    mov QWORD PTR [rsi + 15288], rcx
    mov QWORD PTR [rsi + 15352], rbx
    mov rbx, rcx
    lea r15, [rbx + 120]
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rdx
    mov ecx, DWORD PTR [r14 + r13 + 4]
    add r13d, ecx
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Call.call_raw_native_exception:
    mov rcx, rdx
    mov rdi, rcx
    call CSYM(asm_helper_handle_raw_native_exception)
    test rax, rax
    js .Lasm_Call.call_exit_asm
    mov rsi, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rsi + 15288]
    lea r15, [rbx + 120]
    mov r9, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [r9 + 104]
    mov eax, DWORD PTR [rbx + 56]
    mov r13, rax
    mov r13d, r13d
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_Call.call_exit_asm:
    jmp .Lexit
.Lasm_Call.call_slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathAbs:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinMathAbs.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinMathAbs.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinMathAbs.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 0
    jne .Lasm_CallBuiltinMathAbs.slow
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_CallBuiltinMathAbs.try_abs_int32
    btr rcx, 63
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathAbs.try_abs_int32:
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_CallBuiltinMathAbs.slow
    movsxd rdx, ecx
    test rdx, rdx
    jns .Lasm_CallBuiltinMathAbs.abs_positive
    neg edx
    jo .Lasm_CallBuiltinMathAbs.abs_overflow
.Lasm_CallBuiltinMathAbs.abs_positive:
    mov rcx, rdx
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathAbs.abs_overflow:
    movsxd rdx, ecx
    neg rdx
    cvtsi2sd xmm0, rdx
    movq rcx, xmm0
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathAbs.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_abs)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathFloor:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinMathFloor.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinMathFloor.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinMathFloor.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 5
    jne .Lasm_CallBuiltinMathFloor.slow
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_CallBuiltinMathFloor.slow
    movq xmm0, rcx
    roundsd xmm0, xmm0, 1
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_CallBuiltinMathFloor.bdi_not_int_m2
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_CallBuiltinMathFloor.bdi_not_int_m2
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_CallBuiltinMathFloor.bdi_not_int_m2
    test rdx, rdx
    jz .Lasm_CallBuiltinMathFloor.bdi_check_neg_zero_m2
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_CallBuiltinMathFloor.bdi_done_m2
.Lasm_CallBuiltinMathFloor.bdi_check_neg_zero_m2:
    movq rcx, xmm0
    test rcx, rcx
    js .Lasm_CallBuiltinMathFloor.bdi_not_int_m2
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_CallBuiltinMathFloor.bdi_done_m2
.Lasm_CallBuiltinMathFloor.bdi_not_int_m2:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_CallBuiltinMathFloor.canon_nan_3
.Lasm_CallBuiltinMathFloor.canon_nan_3_ret:
.Lasm_CallBuiltinMathFloor.bdi_done_m2:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathFloor.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_floor)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathFloor.canon_nan_3:
    movabs rcx, 9221120237041090560
    jmp .Lasm_CallBuiltinMathFloor.canon_nan_3_ret

.p2align 4
asm_handler_CallBuiltinMathCeil:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinMathCeil.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinMathCeil.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinMathCeil.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 4
    jne .Lasm_CallBuiltinMathCeil.slow
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_CallBuiltinMathCeil.slow
    movq xmm0, rcx
    roundsd xmm0, xmm0, 2
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_CallBuiltinMathCeil.bdi_not_int_m2
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_CallBuiltinMathCeil.bdi_not_int_m2
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_CallBuiltinMathCeil.bdi_not_int_m2
    test rdx, rdx
    jz .Lasm_CallBuiltinMathCeil.bdi_check_neg_zero_m2
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_CallBuiltinMathCeil.bdi_done_m2
.Lasm_CallBuiltinMathCeil.bdi_check_neg_zero_m2:
    movq rcx, xmm0
    test rcx, rcx
    js .Lasm_CallBuiltinMathCeil.bdi_not_int_m2
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_CallBuiltinMathCeil.bdi_done_m2
.Lasm_CallBuiltinMathCeil.bdi_not_int_m2:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_CallBuiltinMathCeil.canon_nan_3
.Lasm_CallBuiltinMathCeil.canon_nan_3_ret:
.Lasm_CallBuiltinMathCeil.bdi_done_m2:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathCeil.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_ceil)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathCeil.canon_nan_3:
    movabs rcx, 9221120237041090560
    jmp .Lasm_CallBuiltinMathCeil.canon_nan_3_ret

.p2align 4
asm_handler_CallBuiltinMathSqrt:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinMathSqrt.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinMathSqrt.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinMathSqrt.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 9
    jne .Lasm_CallBuiltinMathSqrt.slow
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_CallBuiltinMathSqrt.slow
    movq xmm0, rcx
    sqrtsd xmm0, xmm0
    cvttsd2si rdx, xmm0
    mov rcx, 0x8000000000000000
    cmp rdx, rcx
    je .Lasm_CallBuiltinMathSqrt.bdi_not_int_m2
    movsxd rcx, edx
    cmp rdx, rcx
    jne .Lasm_CallBuiltinMathSqrt.bdi_not_int_m2
    cvtsi2sd xmm3, rdx
    ucomisd xmm0, xmm3
    jne .Lasm_CallBuiltinMathSqrt.bdi_not_int_m2
    test rdx, rdx
    jz .Lasm_CallBuiltinMathSqrt.bdi_check_neg_zero_m2
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_CallBuiltinMathSqrt.bdi_done_m2
.Lasm_CallBuiltinMathSqrt.bdi_check_neg_zero_m2:
    movq rcx, xmm0
    test rcx, rcx
    js .Lasm_CallBuiltinMathSqrt.bdi_not_int_m2
    mov ecx, edx
    movabs rax, 9221683186994511872
    or rcx, rax
    jmp .Lasm_CallBuiltinMathSqrt.bdi_done_m2
.Lasm_CallBuiltinMathSqrt.bdi_not_int_m2:
    movq rcx, xmm0
    ucomisd xmm0, xmm0
    jp .Lasm_CallBuiltinMathSqrt.canon_nan_3
.Lasm_CallBuiltinMathSqrt.canon_nan_3_ret:
.Lasm_CallBuiltinMathSqrt.bdi_done_m2:
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathSqrt.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_sqrt)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathSqrt.canon_nan_3:
    movabs rcx, 9221120237041090560
    jmp .Lasm_CallBuiltinMathSqrt.canon_nan_3_ret

.p2align 4
asm_handler_CallBuiltinMathExp:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinMathExp.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinMathExp.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinMathExp.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 3
    jne .Lasm_CallBuiltinMathExp.slow
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rdx, rcx
    shr rdx, 48
    and rdx, 32760
    cmp rdx, 32760
    je .Lasm_CallBuiltinMathExp.slow
    movq xmm0, rcx
    mov rdi, rcx
    call CSYM(asm_helper_math_exp)
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinMathExp.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_exp)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathLog:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_log)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathPow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_pow)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathImul:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_imul)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathRandom:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_random)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathRound:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_round)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathSin:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_sin)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathCos:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_cos)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMathTan:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_math_tan)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinRegExpPrototypeExec:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_regexp_prototype_exec)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinRegExpPrototypeReplace:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_regexp_prototype_replace)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinRegExpPrototypeSplit:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_regexp_prototype_split)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinOrdinaryHasInstance:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_ordinary_has_instance)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinArrayIteratorPrototypeNext:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_array_iterator_prototype_next)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinMapIteratorPrototypeNext:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_map_iterator_prototype_next)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinSetIteratorPrototypeNext:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_set_iterator_prototype_next)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinStringIteratorPrototypeNext:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_string_iterator_prototype_next)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinStringFromCharCode:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinStringFromCharCode.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinStringFromCharCode.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinStringFromCharCode.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 21
    jne .Lasm_CallBuiltinStringFromCharCode.slow
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_CallBuiltinStringFromCharCode.slow
    movsxd rcx, ecx
    and rcx, 65535
    cmp rcx, 128
    jae .Lasm_CallBuiltinStringFromCharCode.single_code_unit
    mov rdi, rcx
    call CSYM(asm_helper_single_ascii_character_string)
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinStringFromCharCode.single_code_unit:
    mov rdi, rcx
    call CSYM(asm_helper_single_utf16_code_unit_string)
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinStringFromCharCode.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_string_from_char_code)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinStringPrototypeCharCodeAt:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 22
    jne .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65530
    jne .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    mov rdi, rcx
    shl rdi, 16
    shr rdi, 16
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    movsxd rdx, ecx
    test rdx, rdx
    js .Lasm_CallBuiltinStringPrototypeCharCodeAt.out_of_bounds
    movzx ecx, BYTE PTR [rdi + 10]
    cmp rcx, 0
    jne .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    mov rsi, QWORD PTR [rdi + 16]
    test rsi, rsi
    jz .Lasm_CallBuiltinStringPrototypeCharCodeAt.slow
    movzx ecx, BYTE PTR [rdi + 16]
    and rcx, 1
    test rcx, rcx
    jz .Lasm_CallBuiltinStringPrototypeCharCodeAt.long_storage_m1
    movzx ecx, BYTE PTR [rdi + 16]
    shr rcx, 2
    cmp rdx, rcx
    jae .Lasm_CallBuiltinStringPrototypeCharCodeAt.out_of_bounds
    mov rcx, rdi
    add rcx, 17
    movzx ecx, BYTE PTR [rcx + rdx]
    jmp .Lasm_CallBuiltinStringPrototypeCharCodeAt.done_m1
.Lasm_CallBuiltinStringPrototypeCharCodeAt.long_storage_m1:
    mov rcx, QWORD PTR [rsi + 8]
    test rcx, rcx
    js .Lasm_CallBuiltinStringPrototypeCharCodeAt.utf16_storage_m1
    cmp rdx, rcx
    jae .Lasm_CallBuiltinStringPrototypeCharCodeAt.out_of_bounds
    add rsi, 32
    movzx ecx, BYTE PTR [rsi + rdx]
    jmp .Lasm_CallBuiltinStringPrototypeCharCodeAt.done_m1
.Lasm_CallBuiltinStringPrototypeCharCodeAt.utf16_storage_m1:
    shl rcx, 1
    shr rcx, 1
    cmp rdx, rcx
    jae .Lasm_CallBuiltinStringPrototypeCharCodeAt.out_of_bounds
    mov rcx, rdx
    add rcx, rdx
    add rsi, 32
    movzx ecx, WORD PTR [rsi + rcx]
.Lasm_CallBuiltinStringPrototypeCharCodeAt.done_m1:
    movabs rax, 9221683186994511872
    or rcx, rax
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinStringPrototypeCharCodeAt.out_of_bounds:
    movabs rcx, 9221120237041090560
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinStringPrototypeCharCodeAt.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_string_prototype_char_code_at)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallBuiltinStringPrototypeCharAt:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rdx, QWORD PTR [r15 + rax * 8]
    mov rcx, rdx
    shr rcx, 48
    cmp rcx, 65529
    jne .Lasm_CallBuiltinStringPrototypeCharAt.slow
    shl rdx, 16
    shr rdx, 16
    movzx ecx, BYTE PTR [rdx + 10]
    and rcx, 128
    test rcx, rcx
    jz .Lasm_CallBuiltinStringPrototypeCharAt.slow
    movzx ecx, BYTE PTR [rdx + 65]
    test rcx, rcx
    jz .Lasm_CallBuiltinStringPrototypeCharAt.slow
    movzx ecx, BYTE PTR [rdx + 64]
    cmp rcx, 23
    jne .Lasm_CallBuiltinStringPrototypeCharAt.slow
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65530
    jne .Lasm_CallBuiltinStringPrototypeCharAt.slow
    mov rdi, rcx
    shl rdi, 16
    shr rdi, 16
    mov eax, DWORD PTR [r14 + r13 + 16]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 32762
    jne .Lasm_CallBuiltinStringPrototypeCharAt.slow
    movsxd rdx, ecx
    test rdx, rdx
    js .Lasm_CallBuiltinStringPrototypeCharAt.empty
    movzx ecx, BYTE PTR [rdi + 10]
    cmp rcx, 0
    jne .Lasm_CallBuiltinStringPrototypeCharAt.slow
    mov rsi, QWORD PTR [rdi + 16]
    test rsi, rsi
    jz .Lasm_CallBuiltinStringPrototypeCharAt.slow
    movzx ecx, BYTE PTR [rdi + 16]
    and rcx, 1
    test rcx, rcx
    jz .Lasm_CallBuiltinStringPrototypeCharAt.long_storage_m1
    movzx ecx, BYTE PTR [rdi + 16]
    shr rcx, 2
    cmp rdx, rcx
    jae .Lasm_CallBuiltinStringPrototypeCharAt.empty
    mov rcx, rdi
    add rcx, 17
    movzx ecx, BYTE PTR [rcx + rdx]
    jmp .Lasm_CallBuiltinStringPrototypeCharAt.done_m1
.Lasm_CallBuiltinStringPrototypeCharAt.long_storage_m1:
    mov rcx, QWORD PTR [rsi + 8]
    test rcx, rcx
    js .Lasm_CallBuiltinStringPrototypeCharAt.utf16_storage_m1
    cmp rdx, rcx
    jae .Lasm_CallBuiltinStringPrototypeCharAt.empty
    add rsi, 32
    movzx ecx, BYTE PTR [rsi + rdx]
    jmp .Lasm_CallBuiltinStringPrototypeCharAt.done_m1
.Lasm_CallBuiltinStringPrototypeCharAt.utf16_storage_m1:
    shl rcx, 1
    shr rcx, 1
    cmp rdx, rcx
    jae .Lasm_CallBuiltinStringPrototypeCharAt.empty
    mov rcx, rdx
    add rcx, rdx
    add rsi, 32
    movzx ecx, WORD PTR [rsi + rcx]
.Lasm_CallBuiltinStringPrototypeCharAt.done_m1:
    cmp rcx, 128
    jae .Lasm_CallBuiltinStringPrototypeCharAt.slow
    mov rdi, rcx
    call CSYM(asm_helper_single_ascii_character_string)
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinStringPrototypeCharAt.empty:
    mov rcx, 0
    mov rdi, rcx
    call CSYM(asm_helper_empty_string)
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 24
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_CallBuiltinStringPrototypeCharAt.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_builtin_string_prototype_char_at)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetObjectPropertyIterator:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_object_property_iterator)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ObjectPropertyIteratorNext:
    mov eax, DWORD PTR [r14 + r13 + 12]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_ObjectPropertyIteratorNext.slow
    mov rax, rcx
    shl rax, 16
    shr rax, 16
    movzx edi, BYTE PTR [rax + 160]
    mov rcx, 0
    cmp rdi, rcx
    je .Lasm_ObjectPropertyIteratorNext.slow
    mov rcx, QWORD PTR [rax + 104]
    mov r8, QWORD PTR [rax + 112]
    mov rdx, QWORD PTR [rax + 72]
    mov rsi, QWORD PTR [rdx + 16]
    cmp rsi, r8
    jne .Lasm_ObjectPropertyIteratorNext.slow
    movzx r8d, BYTE PTR [rax + 152]
    test r8, r8
    jz .Lasm_ObjectPropertyIteratorNext.check_receiver
    mov esi, DWORD PTR [rsi + 92]
    mov r8d, DWORD PTR [rax + 156]
    cmp rsi, r8
    jne .Lasm_ObjectPropertyIteratorNext.slow
.Lasm_ObjectPropertyIteratorNext.check_receiver:
    mov rsi, 2
    cmp rdi, rsi
    jne .Lasm_ObjectPropertyIteratorNext.check_proto
    movzx esi, BYTE PTR [rdx + 11]
    mov rdi, 1
    cmp rsi, rdi
    jne .Lasm_ObjectPropertyIteratorNext.slow
    mov edx, DWORD PTR [rdx + 12]
    mov esi, DWORD PTR [rax + 136]
    cmp rdx, rsi
    jne .Lasm_ObjectPropertyIteratorNext.slow
.Lasm_ObjectPropertyIteratorNext.check_proto:
    mov rdx, QWORD PTR [rax + 120]
    test rdx, rdx
    jz .Lasm_ObjectPropertyIteratorNext.next_key
    movzx edx, BYTE PTR [rdx + 10]
    test rdx, rdx
    jz .Lasm_ObjectPropertyIteratorNext.slow
.Lasm_ObjectPropertyIteratorNext.next_key:
    mov esi, DWORD PTR [rax + 136]
    mov edx, DWORD PTR [rax + 140]
    cmp rdx, rsi
    jae .Lasm_ObjectPropertyIteratorNext.named
    mov rcx, QWORD PTR [rcx + 56]
    mov rcx, QWORD PTR [rcx + rdx * 8]
    add rdx, 1
    mov DWORD PTR [rax + 140], edx
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    movabs rcx, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ObjectPropertyIteratorNext.named:
    mov rdx, QWORD PTR [rax + 144]
    mov rdi, QWORD PTR [rcx + 40]
    sub rdi, rsi
    cmp rdx, rdi
    jae .Lasm_ObjectPropertyIteratorNext.done
    mov rdi, rdx
    add rdi, rsi
    mov rcx, QWORD PTR [rcx + 56]
    mov rcx, QWORD PTR [rcx + rdi * 8]
    add rdx, 1
    mov QWORD PTR [rax + 144], rdx
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rcx
    movabs rcx, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ObjectPropertyIteratorNext.done:
    mov rdx, QWORD PTR [rax + 128]
    test rdx, rdx
    jz .Lasm_ObjectPropertyIteratorNext.store_done
    mov rcx, 0
    mov QWORD PTR [rax + 72], rcx
    mov QWORD PTR [rdx + 8], rax
    mov QWORD PTR [rax + 128], rcx
.Lasm_ObjectPropertyIteratorNext.store_done:
    movabs rcx, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 8]
    mov QWORD PTR [r15 + r11 * 8], rcx
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ObjectPropertyIteratorNext.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_object_property_iterator_next)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_IteratorClose:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_iterator_close)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_IteratorNext:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_iterator_next)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_IteratorNextUnpack:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_iterator_next_unpack)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_IteratorToArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_iterator_to_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallConstruct:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_construct)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallDirectEval:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_direct_eval)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallWithArgumentArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_with_argument_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallDirectEvalWithArgumentArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_direct_eval_with_argument_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CallConstructWithArgumentArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_call_construct_with_argument_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SuperCallWithArgumentArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_super_call_with_argument_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewObject:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_object)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewObjectWithNoPrototype:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_object_with_no_prototype)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CacheObjectShape:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_cache_object_shape)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_InitObjectLiteralProperty:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_init_object_literal_property)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewPrimitiveArray:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_primitive_array)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewRegExp:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_regexp)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewReferenceError:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_reference_error)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewTypeError:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_type_error)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_InstanceOf:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_instance_of)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_In:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_in)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_IsCallable:
    mov eax, DWORD PTR [r14 + r13 + 8]
    mov rcx, QWORD PTR [r15 + rax * 8]
    mov rax, rcx
    shr rax, 48
    cmp rax, 65529
    jne .Lasm_IsCallable.not_callable
    mov rax, rcx
    shl rax, 16
    shr rax, 16
    movzx eax, BYTE PTR [rax + 10]
    test eax, 128
    jz .Lasm_IsCallable.not_callable
    movabs rax, 9221401712017801217
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_IsCallable.not_callable:
    movabs rax, 9221401712017801216
    mov r11d, DWORD PTR [r14 + r13 + 4]
    mov QWORD PTR [r15 + r11 * 8], rax
    add r13d, 16
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_IsConstructor:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_is_constructor)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_AddPrivateName:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_add_private_name)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateAsyncFromSyncIterator:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_async_from_sync_iterator)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateDataPropertyOrThrow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_data_property_or_throw)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateImmutableBinding:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_immutable_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateMutableBinding:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_mutable_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateRestParams:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_rest_params)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateArguments:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_arguments)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateLexicalEnvironment:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_lexical_environment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreatePrivateEnvironment:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_private_environment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_CreateVariableEnvironment:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_create_variable_environment)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DeleteById:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_delete_by_id)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DeleteByValue:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_delete_by_value)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_DeleteVariable:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_delete_variable)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetCompletionFields:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_completion_fields)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_SetCompletionType:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_set_completion_type)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetTemplateObject:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_template_object)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_NewFunction:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_new_function)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_Typeof:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_typeof)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_LeavePrivateEnvironment:
    mov rax, QWORD PTR [rbx + 48]
    mov rax, QWORD PTR [rax + 16]
    mov QWORD PTR [rbx + 48], rax
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_ResolveThisBinding:
    mov rax, QWORD PTR [r15 + 16]
    movabs rcx, 9221964661971222528
    cmp rax, rcx
    je .Lasm_ResolveThisBinding.slow
    add r13d, 8
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]
.Lasm_ResolveThisBinding.slow:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_resolve_this_binding)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_GetPrivateById:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_get_private_by_id)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.p2align 4
asm_handler_PutPrivateById:
    mov DWORD PTR [rbx + 56], r13d
    mov rdi, QWORD PTR [rbp - 48]
    mov esi, r13d
    lea rdx, [r14 + r13]
    call CSYM(asm_slow_path_put_private_by_id)
    test rax, rax
    js .Lexit
    mov rcx, QWORD PTR [rbp - 48]
    mov rbx, QWORD PTR [rcx + 15288]
    mov rcx, QWORD PTR [rbx + 80]
    mov r14, QWORD PTR [rcx + 104]
    lea r15, [rbx + 120]
    mov r13d, eax
    movzx eax, BYTE PTR [r14 + r13]
    jmp [r12 + rax * 8]

.Lexit:
    add rsp, 8
    pop r15
    .cfi_restore r15
    pop r14
    .cfi_restore r14
    pop r13
    .cfi_restore r13
    pop r12
    .cfi_restore r12
    pop rbx
    .cfi_restore rbx
    pop rbp
    .cfi_restore rbp
    .cfi_def_cfa rsp, 8
    ret

.cfi_endproc

.section .note.GNU-stack,"",@progbits
