// File: /workspace/github_c_makefile_star2_O0/wjmelements[P]evm/tst/evm.c
// Function: test_staticcallSstore
void test_staticcallSstore() {
    evmInit();

    address_t from = AddressFromHex42("0x4a6f6B9fF1fc974096f9063a45Fd12bD5B928AD1");
    uint64_t gas = 58103;
    val_t value;
    value[0] = 0;
    value[1] = 0;
    value[2] = 0;


    // 60213610600e576020355f3555005b5f35545f52595ff3
#define PROGRAM_STORAGE \
        PUSH1, 33, CALLDATASIZE, LT, PUSH1, 14, JUMPI, \
        PUSH1, 32, CALLDATALOAD, PUSH0, CALLDATALOAD, SSTORE, \
        STOP, \
        JUMPDEST, \
        PUSH0, CALLDATALOAD, SLOAD, PUSH0, MSTORE, \
        MSIZE, PUSH0, RETURN
    op_t storageTester[] = {
        PROGRAM_STORAGE
    };

    // 7660213610600e576020355f3555005b5f35545f52595ff33d5260176009f3
    op_t constructStorageTester[] = {
        PUSH23, PROGRAM_STORAGE, RETURNDATASIZE, MSTORE,
        PUSH1, 23, PUSH1, 9, RETURN
    };
#undef PROGRAM_STORAGE

    data_t input;
    input.size = sizeof(constructStorageTester);
    input.content = constructStorageTester;

    result_t result = txCreate(from, gas, value, input);
    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0x80d9b122);
    assert(UPPER(LOWER(result.status)) == 0xdc3a16fdc41f96cf);
    assert(LOWER(LOWER(result.status)) == 0x010ffe7e38d227c3);
    assert(result.returnData.size == sizeof(storageTester));
    assert(memcmp(result.returnData.content, storageTester, sizeof(storageTester)) == 0);
    assert(result.gasRemaining == 0);

    address_t storageTest = AddressFromUint256(&result.status);

    // 365f5f37595f365f7380d9b122dc3a16fdc41f96cf010ffe7e38d227c35afa602557595ffd5b595ff3
#define PROGRAM_STATICCALL \
        CALLDATASIZE, PUSH0, PUSH0, CALLDATACOPY, \
        MSIZE, PUSH0, CALLDATASIZE, PUSH0, PUSH20, ACCOUNT0, GAS, STATICCALL, \
        PUSH1, 37, JUMPI, \
        MSIZE, PUSH0, REVERT, \
        JUMPDEST, MSIZE, PUSH0, RETURN

    op_t staticCaller[] = {
        PROGRAM_STATICCALL
    };
    // 60298060093d393df3365f5f37595f365f7380d9b122dc3a16fdc41f96cf010ffe7e38d227c35afa602557595ffd5b595ff3
    op_t createStaticCaller[] = {
        PUSH1, 41, DUP1, PUSH1, 9, RETURNDATASIZE, CODECOPY, RETURNDATASIZE, RETURN,
        PROGRAM_STATICCALL
    };

    input.size = sizeof(createStaticCaller);
    input.content = createStaticCaller;
    gas = 0xf250;
    result = txCreate(from, gas, value, input);
    // 0x47784b21780d1e1d5efcd005c5fe542813b6d71e
    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0x47784b21);
    assert(UPPER(LOWER(result.status)) == 0x780d1e1d5efcd005);
    assert(LOWER(LOWER(result.status)) == 0xc5fe542813b6d71e);
    assert(result.returnData.size == sizeof(staticCaller));
    assert(memcmp(result.returnData.content, staticCaller, sizeof(staticCaller)) == 0);
    assert(result.gasRemaining == 0);

    address_t staticCall = AddressFromUint256(&result.status);
    op_t params[64];
    bzero(params, 64);
    input.content = params;

    // STATICCALL into SLOAD, returning 0
    input.size = 0;
    gas = 0x64c2;
    result = txCall(from, gas, staticCall, value, input, NULL);
    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0);
    assert(UPPER(LOWER(result.status)) == 0);
    assert(LOWER(LOWER(result.status)) == 1);
    assert(result.returnData.size == 0);
    assert(result.gasRemaining == 15);

    // STATICCALL into SLOAD, returning 32
    input.size = 32;
    gas = 25928;
    result = txCall(from, gas, staticCall, value, input, NULL);
    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0);
    assert(UPPER(LOWER(result.status)) == 0);
    assert(LOWER(LOWER(result.status)) == 1);
    assert(result.returnData.size == 32);
    assert(memcmp(result.returnData.content, params, result.returnData.size) == 0);
    assert(result.gasRemaining == 15);

    // SSTORE directly; success
    input.size = 64;
    gas = 23589;
    result = txCall(from, gas, storageTest, value, input, NULL);
    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0);
    assert(UPPER(LOWER(result.status)) == 0);
    assert(LOWER(LOWER(result.status)) == 1);
    assert(result.returnData.size == 0);
    assert(result.gasRemaining == 101);

    // STATICCALL into SSTORE; forbidden
    gas = 0x10000;
    result = txCall(from, gas, staticCall, value, input, NULL);
    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0);
    assert(UPPER(LOWER(result.status)) == 0);
    assert(LOWER(LOWER(result.status)) == 0);
    assert(result.returnData.size == 64);
    assert(result.gasRemaining == 633);

    evmFinalize();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x320, %rsp            # imm = 0x320
movb $0x0, %al
callq 0xcfc0
leaq -0x18(%rbp), %rdi
leaq 0x133b7(%rip), %rsi     # 0x1b004
addq $0x2, %rsi
callq 0x3380
movq $0xe2f7, -0x20(%rbp)    # imm = 0xE2F7
movl $0x0, -0x2c(%rbp)
movl $0x0, -0x28(%rbp)
movl $0x0, -0x24(%rbp)
movq 0x17946(%rip), %rax     # 0x1f5c0
movq %rax, -0x50(%rbp)
movq 0x17943(%rip), %rax     # 0x1f5c8
movq %rax, -0x48(%rbp)
movl 0x17941(%rip), %eax     # 0x1f5d0
movl %eax, -0x40(%rbp)
movw 0x1793b(%rip), %ax      # 0x1f5d4
movw %ax, -0x3c(%rbp)
movb 0x17933(%rip), %al      # 0x1f5d6
movb %al, -0x3a(%rbp)
movq 0x17933(%rip), %rax     # 0x1f5e0
movq %rax, -0x70(%rbp)
movq 0x17930(%rip), %rax     # 0x1f5e8
movq %rax, -0x68(%rbp)
movq 0x1792d(%rip), %rax     # 0x1f5f0
movq %rax, -0x60(%rbp)
movl 0x1792b(%rip), %eax     # 0x1f5f8
movl %eax, -0x58(%rbp)
movw 0x17925(%rip), %ax      # 0x1f5fc
movw %ax, -0x54(%rbp)
movb 0x1791d(%rip), %al      # 0x1f5fe
movb %al, -0x52(%rbp)
movq $0x1f, -0x80(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq -0xc0(%rbp), %rdi
leaq -0x18(%rbp), %rax
movq (%rax), %r9
movq %r9, (%rsp)
movq 0x8(%rax), %r9
movq %r9, 0x8(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x10(%rsp)
callq 0xe270
cmpq $0x0, -0xb0(%rbp)
jne 0x7d37
jmp 0x7d56
leaq 0x132f1(%rip), %rdi     # 0x1b02f
leaq 0x1330b(%rip), %rsi     # 0x1b050
movl $0x586, %edx            # imm = 0x586
leaq 0x14845(%rip), %rcx     # 0x1c596
callq 0x3040
movl $0x80d9b122, %eax       # imm = 0x80D9B122
cmpq %rax, -0xa8(%rbp)
jne 0x7d66
jmp 0x7d85
leaq 0x132fe(%rip), %rdi     # 0x1b06b
leaq 0x132dc(%rip), %rsi     # 0x1b050
movl $0x587, %edx            # imm = 0x587
leaq 0x14816(%rip), %rcx     # 0x1c596
callq 0x3040
movabsq $-0x23c5e9023be06931, %rax # imm = 0xDC3A16FDC41F96CF
cmpq %rax, -0xa0(%rbp)
jne 0x7d9a
jmp 0x7db9
leaq 0x132f4(%rip), %rdi     # 0x1b095
leaq 0x132a8(%rip), %rsi     # 0x1b050
movl $0x588, %edx            # imm = 0x588
leaq 0x147e2(%rip), %rcx     # 0x1c596
callq 0x3040
movabsq $0x10ffe7e38d227c3, %rax # imm = 0x10FFE7E38D227C3
cmpq %rax, -0x98(%rbp)
jne 0x7dce
jmp 0x7ded
leaq 0x132f2(%rip), %rdi     # 0x1b0c7
leaq 0x13274(%rip), %rsi     # 0x1b050
movl $0x589, %edx            # imm = 0x589
leaq 0x147ae(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x17, -0xc0(%rbp)
jne 0x7df9
jmp 0x7e18
leaq 0x147b3(%rip), %rdi     # 0x1c5b3
leaq 0x13249(%rip), %rsi     # 0x1b050
movl $0x58a, %edx            # imm = 0x58A
leaq 0x14783(%rip), %rcx     # 0x1c596
callq 0x3040
movq -0xb8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movl $0x17, %edx
callq 0x3090
cmpl $0x0, %eax
jne 0x7e34
jmp 0x7e53
leaq 0x147a8(%rip), %rdi     # 0x1c5e3
leaq 0x1320e(%rip), %rsi     # 0x1b050
movl $0x58b, %edx            # imm = 0x58B
leaq 0x14748(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0x90(%rbp)
jne 0x7e5f
jmp 0x7e7e
leaq 0x132af(%rip), %rdi     # 0x1b115
leaq 0x131e3(%rip), %rsi     # 0x1b050
movl $0x58c, %edx            # imm = 0x58C
leaq 0x1471d(%rip), %rcx     # 0x1c596
callq 0x3040
leaq -0xc0(%rbp), %rsi
addq $0x10, %rsi
leaq -0xd8(%rbp), %rdi
callq 0x6b50
leaq -0x110(%rbp), %rdi
leaq 0x1775d(%rip), %rsi     # 0x1f600
movl $0x29, %edx
callq 0x30c0
leaq -0x150(%rbp), %rdi
leaq 0x17775(%rip), %rsi     # 0x1f630
movl $0x32, %edx
callq 0x30c0
movq $0x32, -0x80(%rbp)
leaq -0x150(%rbp), %rax
movq %rax, -0x78(%rbp)
movq $0xf250, -0x20(%rbp)    # imm = 0xF250
movq -0x20(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq -0x190(%rbp), %rdi
leaq -0x18(%rbp), %rax
movq (%rax), %r9
movq %r9, (%rsp)
movq 0x8(%rax), %r9
movq %r9, 0x8(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x10(%rsp)
callq 0xe270
leaq -0xc0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
movl $0x40, %edx
callq 0x30c0
cmpq $0x0, -0xb0(%rbp)
jne 0x7f3b
jmp 0x7f5a
leaq 0x130ed(%rip), %rdi     # 0x1b02f
leaq 0x13107(%rip), %rsi     # 0x1b050
movl $0x5a6, %edx            # imm = 0x5A6
leaq 0x14641(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x47784b21, -0xa8(%rbp) # imm = 0x47784B21
jne 0x7f69
jmp 0x7f88
leaq 0x138b4(%rip), %rdi     # 0x1b824
leaq 0x130d9(%rip), %rsi     # 0x1b050
movl $0x5a7, %edx            # imm = 0x5A7
leaq 0x14613(%rip), %rcx     # 0x1c596
callq 0x3040
movabsq $0x780d1e1d5efcd005, %rax # imm = 0x780D1E1D5EFCD005
cmpq %rax, -0xa0(%rbp)
jne 0x7f9d
jmp 0x7fbc
leaq 0x138aa(%rip), %rdi     # 0x1b84e
leaq 0x130a5(%rip), %rsi     # 0x1b050
movl $0x5a8, %edx            # imm = 0x5A8
leaq 0x145df(%rip), %rcx     # 0x1c596
callq 0x3040
movabsq $-0x3a01abd7ec4928e2, %rax # imm = 0xC5FE542813B6D71E
cmpq %rax, -0x98(%rbp)
jne 0x7fd1
jmp 0x7ff0
leaq 0x138a8(%rip), %rdi     # 0x1b880
leaq 0x13071(%rip), %rsi     # 0x1b050
movl $0x5a9, %edx            # imm = 0x5A9
leaq 0x145ab(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x29, -0xc0(%rbp)
jne 0x7ffc
jmp 0x801b
leaq 0x1462d(%rip), %rdi     # 0x1c630
leaq 0x13046(%rip), %rsi     # 0x1b050
movl $0x5aa, %edx            # imm = 0x5AA
leaq 0x14580(%rip), %rcx     # 0x1c596
callq 0x3040
movq -0xb8(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movl $0x29, %edx
callq 0x3090
cmpl $0x0, %eax
jne 0x803a
jmp 0x8059
leaq 0x1461e(%rip), %rdi     # 0x1c65f
leaq 0x13008(%rip), %rsi     # 0x1b050
movl $0x5ab, %edx            # imm = 0x5AB
leaq 0x14542(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0x90(%rbp)
jne 0x8065
jmp 0x8084
leaq 0x130a9(%rip), %rdi     # 0x1b115
leaq 0x12fdd(%rip), %rsi     # 0x1b050
movl $0x5ac, %edx            # imm = 0x5AC
leaq 0x14517(%rip), %rcx     # 0x1c596
callq 0x3040
leaq -0xc0(%rbp), %rsi
addq $0x10, %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x6b50
leaq -0x1f0(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3060
leaq -0x1f0(%rbp), %rax
movq %rax, -0x78(%rbp)
movq $0x0, -0x80(%rbp)
movq $0x64c2, -0x20(%rbp)    # imm = 0x64C2
movq -0x20(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq -0x230(%rbp), %rdi
leaq -0x18(%rbp), %r10
leaq -0x1a8(%rbp), %rax
xorl %r9d, %r9d
movq (%r10), %r11
movq %r11, (%rsp)
movq 0x8(%r10), %r11
movq %r11, 0x8(%rsp)
movl 0x10(%r10), %r10d
movl %r10d, 0x10(%rsp)
movq (%rax), %r10
movq %r10, 0x18(%rsp)
movq 0x8(%rax), %r10
movq %r10, 0x20(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x28(%rsp)
callq 0xdaa0
leaq -0xc0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
movl $0x40, %edx
callq 0x30c0
cmpq $0x0, -0xb0(%rbp)
jne 0x8148
jmp 0x8167
leaq 0x12ee0(%rip), %rdi     # 0x1b02f
leaq 0x12efa(%rip), %rsi     # 0x1b050
movl $0x5b7, %edx            # imm = 0x5B7
leaq 0x14434(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa8(%rbp)
jne 0x8173
jmp 0x8192
leaq 0x13414(%rip), %rdi     # 0x1b58e
leaq 0x12ecf(%rip), %rsi     # 0x1b050
movl $0x5b8, %edx            # imm = 0x5B8
leaq 0x14409(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa0(%rbp)
jne 0x819e
jmp 0x81bd
leaq 0x133c8(%rip), %rdi     # 0x1b56d
leaq 0x12ea4(%rip), %rsi     # 0x1b050
movl $0x5b9, %edx            # imm = 0x5B9
leaq 0x143de(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x1, -0x98(%rbp)
jne 0x81c9
jmp 0x81e8
leaq 0x1358f(%rip), %rdi     # 0x1b75f
leaq 0x12e79(%rip), %rsi     # 0x1b050
movl $0x5ba, %edx            # imm = 0x5BA
leaq 0x143b3(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xc0(%rbp)
jne 0x81f4
jmp 0x8213
leaq 0x12efe(%rip), %rdi     # 0x1b0f9
leaq 0x12e4e(%rip), %rsi     # 0x1b050
movl $0x5bb, %edx            # imm = 0x5BB
leaq 0x14388(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0xf, -0x90(%rbp)
jne 0x821f
jmp 0x823e
leaq 0x14484(%rip), %rdi     # 0x1c6aa
leaq 0x12e23(%rip), %rsi     # 0x1b050
movl $0x5bc, %edx            # imm = 0x5BC
leaq 0x1435d(%rip), %rcx     # 0x1c596
callq 0x3040
movq $0x20, -0x80(%rbp)
movq $0x6548, -0x20(%rbp)    # imm = 0x6548
movq -0x20(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq -0x270(%rbp), %rdi
leaq -0x18(%rbp), %r10
leaq -0x1a8(%rbp), %rax
xorl %r9d, %r9d
movq (%r10), %r11
movq %r11, (%rsp)
movq 0x8(%r10), %r11
movq %r11, 0x8(%rsp)
movl 0x10(%r10), %r10d
movl %r10d, 0x10(%rsp)
movq (%rax), %r10
movq %r10, 0x18(%rsp)
movq 0x8(%rax), %r10
movq %r10, 0x20(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x28(%rsp)
callq 0xdaa0
leaq -0xc0(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl $0x40, %edx
callq 0x30c0
cmpq $0x0, -0xb0(%rbp)
jne 0x82cd
jmp 0x82ec
leaq 0x12d5b(%rip), %rdi     # 0x1b02f
leaq 0x12d75(%rip), %rsi     # 0x1b050
movl $0x5c2, %edx            # imm = 0x5C2
leaq 0x142af(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa8(%rbp)
jne 0x82f8
jmp 0x8317
leaq 0x1328f(%rip), %rdi     # 0x1b58e
leaq 0x12d4a(%rip), %rsi     # 0x1b050
movl $0x5c3, %edx            # imm = 0x5C3
leaq 0x14284(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa0(%rbp)
jne 0x8323
jmp 0x8342
leaq 0x13243(%rip), %rdi     # 0x1b56d
leaq 0x12d1f(%rip), %rsi     # 0x1b050
movl $0x5c4, %edx            # imm = 0x5C4
leaq 0x14259(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x1, -0x98(%rbp)
jne 0x834e
jmp 0x836d
leaq 0x1340a(%rip), %rdi     # 0x1b75f
leaq 0x12cf4(%rip), %rsi     # 0x1b050
movl $0x5c5, %edx            # imm = 0x5C5
leaq 0x1422e(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x20, -0xc0(%rbp)
jne 0x8379
jmp 0x8398
leaq 0x12dc7(%rip), %rdi     # 0x1b147
leaq 0x12cc9(%rip), %rsi     # 0x1b050
movl $0x5c6, %edx            # imm = 0x5C6
leaq 0x14203(%rip), %rcx     # 0x1c596
callq 0x3040
movq -0xb8(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
movq -0xc0(%rbp), %rdx
callq 0x3090
cmpl $0x0, %eax
jne 0x83b9
jmp 0x83d8
leaq 0x14304(%rip), %rdi     # 0x1c6c4
leaq 0x12c89(%rip), %rsi     # 0x1b050
movl $0x5c7, %edx            # imm = 0x5C7
leaq 0x141c3(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0xf, -0x90(%rbp)
jne 0x83e4
jmp 0x8403
leaq 0x142bf(%rip), %rdi     # 0x1c6aa
leaq 0x12c5e(%rip), %rsi     # 0x1b050
movl $0x5c8, %edx            # imm = 0x5C8
leaq 0x14198(%rip), %rcx     # 0x1c596
callq 0x3040
movq $0x40, -0x80(%rbp)
movq $0x5c25, -0x20(%rbp)    # imm = 0x5C25
movq -0x20(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq -0x2b0(%rbp), %rdi
leaq -0x18(%rbp), %r10
leaq -0xd8(%rbp), %rax
xorl %r9d, %r9d
movq (%r10), %r11
movq %r11, (%rsp)
movq 0x8(%r10), %r11
movq %r11, 0x8(%rsp)
movl 0x10(%r10), %r10d
movl %r10d, 0x10(%rsp)
movq (%rax), %r10
movq %r10, 0x18(%rsp)
movq 0x8(%rax), %r10
movq %r10, 0x20(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x28(%rsp)
callq 0xdaa0
leaq -0xc0(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
movl $0x40, %edx
callq 0x30c0
cmpq $0x0, -0xb0(%rbp)
jne 0x8492
jmp 0x84b1
leaq 0x12b96(%rip), %rdi     # 0x1b02f
leaq 0x12bb0(%rip), %rsi     # 0x1b050
movl $0x5ce, %edx            # imm = 0x5CE
leaq 0x140ea(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa8(%rbp)
jne 0x84bd
jmp 0x84dc
leaq 0x130ca(%rip), %rdi     # 0x1b58e
leaq 0x12b85(%rip), %rsi     # 0x1b050
movl $0x5cf, %edx            # imm = 0x5CF
leaq 0x140bf(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa0(%rbp)
jne 0x84e8
jmp 0x8507
leaq 0x1307e(%rip), %rdi     # 0x1b56d
leaq 0x12b5a(%rip), %rsi     # 0x1b050
movl $0x5d0, %edx            # imm = 0x5D0
leaq 0x14094(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x1, -0x98(%rbp)
jne 0x8513
jmp 0x8532
leaq 0x13245(%rip), %rdi     # 0x1b75f
leaq 0x12b2f(%rip), %rsi     # 0x1b050
movl $0x5d1, %edx            # imm = 0x5D1
leaq 0x14069(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xc0(%rbp)
jne 0x853e
jmp 0x855d
leaq 0x12bb4(%rip), %rdi     # 0x1b0f9
leaq 0x12b04(%rip), %rsi     # 0x1b050
movl $0x5d2, %edx            # imm = 0x5D2
leaq 0x1403e(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x65, -0x90(%rbp)
jne 0x8569
jmp 0x8588
leaq 0x1419b(%rip), %rdi     # 0x1c70b
leaq 0x12ad9(%rip), %rsi     # 0x1b050
movl $0x5d3, %edx            # imm = 0x5D3
leaq 0x14013(%rip), %rcx     # 0x1c596
callq 0x3040
movq $0x10000, -0x20(%rbp)   # imm = 0x10000
movq -0x20(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq -0x2f0(%rbp), %rdi
leaq -0x18(%rbp), %r10
leaq -0x1a8(%rbp), %rax
xorl %r9d, %r9d
movq (%r10), %r11
movq %r11, (%rsp)
movq 0x8(%r10), %r11
movq %r11, 0x8(%rsp)
movl 0x10(%r10), %r10d
movl %r10d, 0x10(%rsp)
movq (%rax), %r10
movq %r10, 0x18(%rsp)
movq 0x8(%rax), %r10
movq %r10, 0x20(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x28(%rsp)
callq 0xdaa0
leaq -0xc0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
movl $0x40, %edx
callq 0x30c0
cmpq $0x0, -0xb0(%rbp)
jne 0x860f
jmp 0x862e
leaq 0x12a19(%rip), %rdi     # 0x1b02f
leaq 0x12a33(%rip), %rsi     # 0x1b050
movl $0x5d8, %edx            # imm = 0x5D8
leaq 0x13f6d(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa8(%rbp)
jne 0x863a
jmp 0x8659
leaq 0x12f4d(%rip), %rdi     # 0x1b58e
leaq 0x12a08(%rip), %rsi     # 0x1b050
movl $0x5d9, %edx            # imm = 0x5D9
leaq 0x13f42(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0xa0(%rbp)
jne 0x8665
jmp 0x8684
leaq 0x12f01(%rip), %rdi     # 0x1b56d
leaq 0x129dd(%rip), %rsi     # 0x1b050
movl $0x5da, %edx            # imm = 0x5DA
leaq 0x13f17(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x0, -0x98(%rbp)
jne 0x8690
jmp 0x86af
leaq 0x12f18(%rip), %rdi     # 0x1b5af
leaq 0x129b2(%rip), %rsi     # 0x1b050
movl $0x5db, %edx            # imm = 0x5DB
leaq 0x13eec(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x40, -0xc0(%rbp)
jne 0x86bb
jmp 0x86da
leaq 0x12cf9(%rip), %rdi     # 0x1b3bb
leaq 0x12987(%rip), %rsi     # 0x1b050
movl $0x5dc, %edx            # imm = 0x5DC
leaq 0x13ec1(%rip), %rcx     # 0x1c596
callq 0x3040
cmpq $0x279, -0x90(%rbp) # imm = 0x279
jne 0x86e9
jmp 0x8708
leaq 0x14036(%rip), %rdi     # 0x1c726
leaq 0x12959(%rip), %rsi     # 0x1b050
movl $0x5dd, %edx            # imm = 0x5DD
leaq 0x13e93(%rip), %rcx     # 0x1c596
callq 0x3040
movb $0x0, %al
callq 0xd4d0
addq $0x320, %rsp            # imm = 0x320
popq %rbp
retq
nopl (%rax,%rax)