// File: /workspace/github_c_makefile_star2_O0/FredTheDino[P]Fog/src/rain/editor_main.cpp
// Function: setup(int, char**)
void setup(int argc, char **argv) {
    // Commandline parsing, sets globalstate
    for (s32 i = 1; i < argc; i++) {
        char *val = argv[i];
        if (*val != '-') {
            if (path) {
                printf("Multiple files given replacing '%s' with '%s'.", path, argv[i]);
            }
            path = argv[i];
        } else {
            // Parse flags
            val++;
            if (*val == '-') val++;
            switch (*val) {
                default:
                    printf("Unkown argument '%s', ignoring.", argv[i]);
            };
        }
    }



    global_editor.sprites = std::vector<EditableSprite>();
    global_editor.cursor = fog_V2(0.5, 0.5);
    global_editor.current_sprite = 0;
    b8 no_path_passed = true;
    if (path != nullptr) {
        // NOTE(ed): Code bellow is copied from the asset loader. Might need to be a
        // unified function.
        FILE *sprite_file = fopen(path, "rb");
        while (sprite_file) {
            char *line = nullptr;
            size_t line_n = 0;
            getline(&line, &line_n, sprite_file);

            if (feof(sprite_file))
                break;

            char *ptr = line;
            u32 i = 0;
            char *name = ptr + i;
            for (; i < line_n; i++) if (ptr[i] == ':') { ptr[i] = '\0'; break; }
            char *res = ptr + i + 1;
            for (; i < line_n; i++) if (ptr[i] == ':') { ptr[i] = '\0'; break; }
            char *num = ptr + i + 1;
            for (; i < line_n; i++) if (ptr[i] == ':') { ptr[i] = '\0'; break; }
            char *points_str = ptr + i + 1;
            for (; i < line_n; i++) if (ptr[i] == ':') { ptr[i] = '\0'; break; }

            // TODO(ed): Parse points, and stuff
#define CHECK_FOR_ERROR(ptr)                                  \
            do {                                                      \
                if (ptr == endptr) {                                  \
                    fprintf(stderr, "Failed to parse number in sprite file '%s'", \
                            path);                      \
                    fclose(sprite_file);                              \
                    return;                                           \
                }                                                     \
            } while (false);

            char *endptr;
            u32 num_points = strtol(num, &endptr, 10);
            CHECK_FOR_ERROR(num);
            std::vector<Vec2> points = std::vector<Vec2>(num_points);
            for (u32 p = 0; p < num_points; p++) {
                char *endptr;
                Vec4 point;
                while (isspace(*points_str)) points_str++;
                points_str += 1; // (
                for (u32 coord = 0; coord < 4; coord++) {
                    point._[coord] = strtod(points_str, &endptr);
                    CHECK_FOR_ERROR(points_str);
                    points_str = endptr;
                }
                points_str += 1; // )
                points[p] = fog_V2(point.z, point.w);
            }
#undef CHECK_FOR_ERROR

            u32 resource_hash = res[0] == '#' ? atoi(res + 1): fog_asset_asset_hash(res);
            // Reverse the hash
            for (u32 i = 0; i < fog_asset_num(); i++) {
                if (fog_asset_num() == resource_hash) {
                    resource_hash = i;
                }
            }

            EditableSprite sprite = {
                points,
                resource_hash,
            };
            memcpy(name, sprite.name, MIN(MAX_TEXT_LENGTH, strlen(name)));
            global_editor.sprites.push_back(sprite);
            no_path_passed = false;
            free(line);
        }
        if (sprite_file)
            fclose(sprite_file);
    } else {
        path = "default.spr";
    }

    if (no_path_passed) {
        create_new_sprite();

    }

    // Sprite editor
    fog_input_add(K(a), (u32) In::EDIT_PLACE, Player::P1);
    fog_input_add(K(s), (u32) In::EDIT_SELECT, Player::P1);
    fog_input_add(K(d), (u32) In::EDIT_REMOVE, Player::P1);
    fog_input_add(K(r), (u32) In::EDIT_RENAME, Player::P1);
    fog_input_add(K(u), (u32) In::EDIT_NEXT_SPRITE, Player::P1);
    fog_input_add(K(i), (u32) In::EDIT_PREV_SPRITE, Player::P1);
    fog_input_add(K(n), (u32) In::EDIT_NEXT_SPRITE_SHEET, Player::P1);
    fog_input_add(K(p), (u32) In::EDIT_PREV_SPRITE_SHEET, Player::P1);
    fog_input_add(K(j), (u32) In::EDIT_SNAP_SMALLER, Player::P1);
    fog_input_add(K(k), (u32) In::EDIT_SNAP_LARGER, Player::P1);
    fog_input_add(K(w), (u32) In::EDIT_SAVE, Player::P1);
    fog_input_add(K(c), (u32) In::EDIT_ADD_SPRITE, Player::P1);
    fog_input_add(K(r), (u32) In::EDIT_RENAME, Player::P1);
    fog_input_add(K(LSHIFT), (u32) In::TWEAK_STEP, Player::P1);
    fog_input_add(K(LCTRL), (u32) In::TWEAK_SMOOTH, Player::P1);

    fog_input_add(A(LEFTX, Player::P1), (u32) In::EDIT_MOVE_RIGHT_LEFT, Player::P1);
    fog_input_add(A(LEFTY, Player::P1), (u32) In::EDIT_MOVE_UP_DOWN, Player::P1);
    fog_input_add(A(RIGHTY, Player::P1), (u32) In::EDIT_ZOOM_IN_OUT, Player::P1);
    fog_input_add(B(B, Player::P1), (u32) In::EDIT_PLACE, Player::P1);
    fog_input_add(B(A, Player::P1), (u32) In::EDIT_SELECT, Player::P1);
    fog_input_add(B(Y, Player::P1), (u32) In::EDIT_REMOVE, Player::P1);
    fog_input_add(B(LEFTSHOULDER, Player::P1), (u32) In::TWEAK_STEP, Player::P1);
    fog_input_add(B(DPAD_DOWN, Player::P1), (u32) In::EDIT_SNAP_SMALLER, Player::P1);
    fog_input_add(B(DPAD_UP, Player::P1), (u32) In::EDIT_SNAP_LARGER, Player::P1);
    fog_input_add(A(TRIGGERRIGHT, Player::P1), (u32) In::EDIT_NEXT_SPRITE, Player::P1);
    fog_input_add(A(TRIGGERLEFT, Player::P1), (u32) In::EDIT_PREV_SPRITE, Player::P1);
    fog_input_add(B(DPAD_RIGHT, Player::P1), (u32) In::EDIT_NEXT_SPRITE_SHEET, Player::P1);
    fog_input_add(B(DPAD_LEFT, Player::P1), (u32) In::EDIT_PREV_SPRITE_SHEET, Player::P1);
    fog_input_add(B(START, Player::P1), (u32) In::EDIT_SAVE, Player::P1);
    fog_input_add(B(BACK, Player::P1), (u32) In::EDIT_ADD_SPRITE, Player::P1);

    fog_renderer_fetch_camera(0)->position = fog_V2(0.5, 0.5);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x200, %rsp            # imm = 0x200
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0x2ec1
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x2e71
cmpq $0x0, 0x66fb7(%rip)     # 0x69df0
je 0x2e5c
movq 0x66fae(%rip), %rsi     # 0x69df0
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x422bc(%rip), %rdi     # 0x45111
movb $0x0, %al
callq 0x2080
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x66f81(%rip)     # 0x69df0
jmp 0x2eb1
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x2e95
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x42298(%rip), %rdi     # 0x45140
movb $0x0, %al
callq 0x2080
jmp 0x2eb1
jmp 0x2eb3
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x2e09
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x5650
movq -0x148(%rbp), %rsi
leaq 0x66ed2(%rip), %rdi     # 0x69dc0
callq 0x5670
movq -0x148(%rbp), %rdi
callq 0x56a0
movss 0x42109(%rip), %xmm1    # 0x45010
movaps %xmm1, %xmm0
callq 0x372e0
movlpd %xmm0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, 0x66eb9(%rip)     # 0x69dd8
movl $0x0, 0x66e8f(%rip)     # 0x69db8
movb $0x1, -0x49(%rbp)
cmpq $0x0, 0x66ebb(%rip)     # 0x69df0
je 0x351e
movq 0x66eae(%rip), %rdi     # 0x69df0
leaq 0x42217(%rip), %rsi     # 0x45160
callq 0x2520
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x350c
movq $0x0, -0x60(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x58(%rbp), %rdx
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x96e0
movq -0x58(%rbp), %rdi
callq 0x2040
cmpl $0x0, %eax
je 0x2f91
jmp 0x350c
movq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movl $0x0, -0x74(%rbp)
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x80(%rbp)
movl -0x74(%rbp), %eax
cmpq -0x68(%rbp), %rax
jae 0x2fe1
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x2fd4
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movb $0x0, (%rax,%rcx)
jmp 0x2fe1
jmp 0x2fd6
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x2fae
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
addq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
movl -0x74(%rbp), %eax
cmpq -0x68(%rbp), %rax
jae 0x3029
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x301c
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movb $0x0, (%rax,%rcx)
jmp 0x3029
jmp 0x301e
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x2ff6
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
addq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
movl -0x74(%rbp), %eax
cmpq -0x68(%rbp), %rax
jae 0x3071
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x3064
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movb $0x0, (%rax,%rcx)
jmp 0x3071
jmp 0x3066
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x303e
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
addq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
movl -0x74(%rbp), %eax
cmpq -0x68(%rbp), %rax
jae 0x30b9
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x30ac
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
movb $0x0, (%rax,%rcx)
jmp 0x30b9
jmp 0x30ae
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x3086
movq -0x90(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movl $0xa, %edx
callq 0x2420
movl %eax, -0xa4(%rbp)
movq -0x90(%rbp), %rax
cmpq -0xa0(%rbp), %rax
jne 0x3114
movq 0x65ef2(%rip), %rax     # 0x68fe0
movq (%rax), %rdi
movq 0x66cf8(%rip), %rdx     # 0x69df0
leaq 0x42064(%rip), %rsi     # 0x45163
movb $0x0, %al
callq 0x2170
movq -0x58(%rbp), %rdi
callq 0x2270
jmp 0x39e2
jmp 0x3116
movl -0xa4(%rbp), %eax
movq %rax, -0x158(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x5480
movq -0x158(%rbp), %rsi
movq -0x150(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
callq 0x54a0
jmp 0x3152
leaq -0xc1(%rbp), %rdi
callq 0x5570
movl $0x0, -0xd8(%rbp)
movl -0xd8(%rbp), %eax
cmpl -0xa4(%rbp), %eax
jae 0x330c
jmp 0x317c
movq -0x98(%rbp), %rax
movsbl (%rax), %edi
callq 0x2380
cmpl $0x0, %eax
je 0x31c7
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
jmp 0x317c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0xc1(%rbp), %rdi
callq 0x5570
jmp 0x39eb
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
movl $0x0, -0xf4(%rbp)
cmpl $0x4, -0xf4(%rbp)
jae 0x329c
movq -0x98(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x2540
cvtsd2ss %xmm0, %xmm0
movl -0xf4(%rbp), %eax
movss %xmm0, -0xf0(%rbp,%rax,4)
movq -0x98(%rbp), %rax
cmpq -0xe0(%rbp), %rax
jne 0x3276
movq 0x65db3(%rip), %rax     # 0x68fe0
movq (%rax), %rdi
movq 0x66bb9(%rip), %rdx     # 0x69df0
leaq 0x41f25(%rip), %rsi     # 0x45163
xorl %eax, %eax
callq 0x2170
movq -0x58(%rbp), %rdi
callq 0x2270
jmp 0x3250
movl $0x1, -0xf8(%rbp)
jmp 0x34bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x34fb
jmp 0x3278
jmp 0x327a
movq -0xe0(%rbp), %rax
movq %rax, -0x98(%rbp)
movl -0xf4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf4(%rbp)
jmp 0x31e3
movq -0x98(%rbp), %rax
incq %rax
movq %rax, -0x98(%rbp)
movss -0xe8(%rbp), %xmm0
movss -0xe4(%rbp), %xmm1
callq 0x372e0
movaps %xmm0, -0x170(%rbp)
jmp 0x32cb
movaps -0x170(%rbp), %xmm0
movlpd %xmm0, -0x100(%rbp)
movl -0xd8(%rbp), %eax
movl %eax, %esi
leaq -0xc0(%rbp), %rdi
callq 0x53f0
movq -0x100(%rbp), %rcx
movq %rcx, (%rax)
movl -0xd8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd8(%rbp)
jmp 0x3168
movq -0x88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x3336
movq -0x88(%rbp), %rdi
addq $0x1, %rdi
callq 0x21e0
cltq
movq %rax, -0x178(%rbp)
jmp 0x335b
movq -0x88(%rbp), %rdi
callq 0x36c70
movq %rax, -0x180(%rbp)
jmp 0x334b
movq -0x180(%rbp), %rax
movq %rax, -0x178(%rbp)
jmp 0x335b
movq -0x178(%rbp), %rax
movl %eax, -0x104(%rbp)
movl $0x0, -0x108(%rbp)
movl -0x108(%rbp), %eax
movq %rax, -0x190(%rbp)
callq 0x36ce0
movq %rax, -0x188(%rbp)
jmp 0x338d
movq -0x190(%rbp), %rax
movq -0x188(%rbp), %rcx
cmpq %rcx, %rax
jae 0x33df
callq 0x36ce0
movq %rax, -0x198(%rbp)
jmp 0x33ae
movq -0x198(%rbp), %rax
movl -0x104(%rbp), %ecx
cmpq %rcx, %rax
jne 0x33cc
movl -0x108(%rbp), %eax
movl %eax, -0x104(%rbp)
jmp 0x33ce
movl -0x108(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x108(%rbp)
jmp 0x3372
leaq -0x138(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x5700
jmp 0x33f4
movl -0x104(%rbp), %eax
movq %rax, -0x120(%rbp)
leaq -0x138(%rbp), %rdi
addq $0x20, %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x21c0
movq -0x80(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0x138(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x1a0(%rbp)
movq -0x80(%rbp), %rdi
callq 0x2250
movq %rax, %rcx
movl $0x10, %eax
cmpq %rcx, %rax
jae 0x3459
movl $0x10, %eax
movq %rax, -0x1b0(%rbp)
jmp 0x3469
movq -0x80(%rbp), %rdi
callq 0x2250
movq %rax, -0x1b0(%rbp)
movq -0x1a0(%rbp), %rsi
movq -0x1a8(%rbp), %rdi
movq -0x1b0(%rbp), %rdx
callq 0x2090
leaq 0x66936(%rip), %rdi     # 0x69dc0
leaq -0x138(%rbp), %rsi
callq 0x55c0
jmp 0x3498
movb $0x0, -0x49(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2140
leaq -0x138(%rbp), %rdi
callq 0x5630
movl $0x0, -0xf8(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x5510
movl -0xf8(%rbp), %eax
testl %eax, %eax
je 0x34d8
jmp 0x34d3
jmp 0x39e2
jmp 0x2f52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x5630
leaq -0xc0(%rbp), %rdi
callq 0x5510
jmp 0x39eb
cmpq $0x0, -0x58(%rbp)
je 0x351c
movq -0x58(%rbp), %rdi
callq 0x2270
jmp 0x352c
leaq 0x41c69(%rip), %rax     # 0x4518e
movq %rax, 0x668c4(%rip)     # 0x69df0
cmpb $0x0, -0x49(%rbp)
je 0x3537
callq 0x2ce0
movl $0x61, %edi
callq 0x38760
movl %eax, %edi
movl $0x1, %edx
movl %edx, -0x1b4(%rbp)
movl %edx, %esi
callq 0x384b0
movl $0x73, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x2, %esi
movl %esi, -0x1ec(%rbp)
callq 0x384b0
movl $0x64, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x3, %esi
movl %esi, -0x1e8(%rbp)
callq 0x384b0
movl $0x72, %edi
movl %edi, -0x1f4(%rbp)
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x4, %esi
movl %esi, -0x1bc(%rbp)
callq 0x384b0
movl $0x75, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x5, %esi
movl %esi, -0x1d8(%rbp)
callq 0x384b0
movl $0x69, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x6, %esi
movl %esi, -0x1c4(%rbp)
callq 0x384b0
movl $0x6e, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x7, %esi
movl %esi, -0x1d0(%rbp)
callq 0x384b0
movl $0x70, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x8, %esi
movl %esi, -0x1c8(%rbp)
callq 0x384b0
movl $0x6a, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x9, %esi
movl %esi, -0x1e0(%rbp)
callq 0x384b0
movl $0x6b, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0xa, %esi
movl %esi, -0x1dc(%rbp)
callq 0x384b0
movl $0x77, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0xb, %esi
movl %esi, -0x1c0(%rbp)
callq 0x384b0
movl $0x63, %edi
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0xc, %esi
movl %esi, -0x1b8(%rbp)
callq 0x384b0
movl -0x1f4(%rbp), %edi
callq 0x38760
movl -0x1bc(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl $0x400000e1, %edi       # imm = 0x400000E1
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x10, %esi
movl %esi, -0x1e4(%rbp)
callq 0x384b0
movl $0x400000e0, %edi       # imm = 0x400000E0
callq 0x38760
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0x11, %esi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl %eax, %esi
xorl %edi, %edi
movl %edi, -0x1f0(%rbp)
callq 0x38780
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0xd, %esi
movl %esi, -0x1cc(%rbp)
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1b4(%rbp), %edi
movl %eax, %esi
callq 0x38780
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0xe, %esi
movl %esi, -0x1d4(%rbp)
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1e8(%rbp), %edi
movl %eax, %esi
callq 0x38780
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl $0xf, %esi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1b4(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1b4(%rbp), %edx
movl %eax, %edi
movl %edx, %esi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1f0(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1ec(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1e8(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1e8(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1e0(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1e4(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1b8(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1e0(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1c0(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1dc(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1d8(%rbp), %edi
movl %eax, %esi
callq 0x38780
movl -0x1d8(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1bc(%rbp), %edi
movl %eax, %esi
callq 0x38780
movl -0x1c4(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1d4(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1d0(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1cc(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1c8(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1c4(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1c0(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movl -0x1b4(%rbp), %edi
callq 0x2800
movl -0x1bc(%rbp), %edi
movl %eax, %esi
callq 0x387a0
movl -0x1b8(%rbp), %esi
movl -0x1b4(%rbp), %edx
movl %eax, %edi
callq 0x384b0
movss 0x4164f(%rip), %xmm1    # 0x45010
movaps %xmm1, %xmm0
callq 0x372e0
movlpd %xmm0, -0x140(%rbp)
xorl %edi, %edi
callq 0x389e0
movq -0x140(%rbp), %rcx
movq %rcx, (%rax)
addq $0x200, %rsp            # imm = 0x200
popq %rbp
retq
movq -0xd0(%rbp), %rdi
callq 0x2310
nopw (%rax,%rax)