Function at 0x59bbd0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1c8
mov eax, dword [0x623ec0]
xor eax, esp
mov dword [esp + 0x1c4], eax
mov edx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [esp + 0x1c], edi
cmp dword [0x9c25b0], edi
jne 0x59bc22
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x59bc22
mov eax, dword [ecx]
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov eax, dword [eax + 8]
push esi
call eax
cmp eax, 1
je case.default.0x59cc76
mov edx, dword [ebp + 0x14]
mov eax, dword [edi + 0x114]
cmp dword [eax + 0x28], 1
je case.default.0x59cc76
mov eax, dword [edi + 0x110]
cmp dword [eax + 0x28], 1
je case.default.0x59cc76
mov eax, dword [edi + 0x26f74]
cmp dword [eax + 0x28], 1
je case.default.0x59cc76
cmp dword [edi + 0x54], 1
je case.default.0x59cc76
mov eax, dword [edi + 0x26f50]
test eax, eax
je 0x59bc70
cmp dword [eax + 0x28], 1
je case.default.0x59cc76
cmp byte [0x6345e8], 0
jne 0x59bce4
mov eax, dword [edi + 0x26f3c]
cmp dword [eax + 0x28], 0
jne case.default.0x59cc76
cmp esi, 0x201
jne case.default.0x59cc76
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [edi + 0x26f4c]
add ecx, 0x1f4
cmp ecx, eax
ja case.default.0x59cc76
mov ecx, dword [edi + 0x26f3c]
push 1
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, edi
call fcn.0059a7d0
mov ecx, dword [edi + 0x26f40]
push 0
push 0xa62fe0
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp case.default.0x59cc76
cmp esi, 0x202
jne 0x59ccda
cmp dword [ebp + 0x10], 0
jle 0x59ccda
test edx, edx
jle 0x59ccda
mov ecx, dword [0x9c25a4]
mov eax, dword [ecx + 0xa8]
sub eax, dword [ecx + 0x388]
cmp dword [ebp + 0x10], eax
jge 0x59ccda
mov eax, dword [ecx + 0xac]
sub eax, dword [ecx + 0x38c]
cmp edx, eax
jge 0x59ccda
cmp dword [edi + 0x26fdc], 1
mov esi, dword [edi + 0x100]
jne 0x59c84b
test esi, esi
je 0x59bd55
mov ecx, dword [edi + 0x26f28]
push 1
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x28]
push 0x502
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x59bd76
cmp dword [eax + 0x28], 1
je case.default.0x59cc76
mov eax, dword [edi + 0x26f00]
lea edx, [edi + 0x26f00]
test eax, eax
je 0x59bd90
mov dword [eax + 0x200], 0
mov eax, dword [edi + 0x26f04]
test eax, eax
je 0x59bda4
mov dword [eax + 0x200], 0
mov eax, dword [edi + 0x26f08]
test eax, eax
je 0x59bdb8
mov dword [eax + 0x200], 0
mov eax, dword [edi + 0x26f0c]
test eax, eax
je 0x59bdcc
mov dword [eax + 0x200], 0
xor ecx, ecx
mov dword [esp + 0x18], ecx
test esi, esi
je 0x59bde9
mov eax, dword [edx]
test eax, eax
je 0x59bde9
cmp eax, esi
jne 0x59bde9
cmp dword [esi + 0x204], 1
je 0x59bdf2
inc ecx
add edx, 4
cmp ecx, 4
jl 0x59bdd2
mov eax, dword [0x9c25ac]
mov dword [esp + 0x18], ecx
cmp ecx, 4
jl 0x59be8c
mov dword [edi + 0x100], 0
mov byte [eax + 0x10e0], 0xff
mov ecx, dword [edi + 0x28]
push 0x502
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
movss xmm1, dword [0x626b1c]
mulss xmm1, dword [0x605248]
movss xmm0, dword [eax + 0x50]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp case.default.0x59cc76
mov ecx, dword [0x9c25cc]
test ecx, ecx
je 0x59be68
push 0x39
call fcn.004a8da0
test eax, eax
je 0x59be68
sub esp, 0xc
push 0
push ecx
mov ecx, eax
call fcn.004a86c0
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
push str.UISelCamAction3
mov ecx, edi
mov dword [edi + 0x26f60], eax
call fcn.0059ab20
jmp case.default.0x59cc76
mov byte [eax + 0x10e0], cl
mov eax, dword [edi + ecx*4 + 0x26f00]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x200], 1
test ecx, ecx
je 0x59bf15
movss xmm0, dword [0x626b1c]
mulss xmm0, dword [0x60527c]
cvttss2si eax, xmm0
movss xmm0, dword [ecx + 0x50]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x59bf15
mov ecx, dword [0x9c25cc]
test ecx, ecx
je 0x59bef6
push 0x39
call fcn.004a8da0
test eax, eax
je 0x59bef6
sub esp, 0xc
push 0
push ecx
mov ecx, eax
call fcn.004a86c0
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
push str.UISelCamAction2
mov ecx, edi
mov dword [edi + 0x26f5c], eax
call fcn.0059ab20
mov ecx, dword [edi + 0x28]
push 0x506
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
mov ecx, dword [edi + 0x28]
push 0x508
mov dword [esp + 0x4c], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x509
mov dword [esp + 0x50], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x521
mov dword [esp + 0x54], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x522
mov dword [esp + 0x58], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x523
mov dword [esp + 0x5c], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x524
mov dword [esp + 0x60], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x525
mov dword [esp + 0x64], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x526
mov dword [esp + 0x68], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x527
mov dword [esp + 0x6c], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x529
mov dword [esp + 0x70], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x52a
mov dword [esp + 0x2c], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
push 0x52b
mov dword [esp + 0x30], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x10], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push 0x52c
call edx
mov ecx, dword [edi + 0x28]
push 0x520
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [0x9c25ac]
mov dword [esp + 0x30], 0x7dd430
lea ecx, [esi + esi*8]
mov dword [esp + 0x34], 0x7dd4b0
shl ecx, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], 0x7dd530
mov dword [esp + 0x3c], 0x7dd5b0
movsx eax, word [ecx + eax + 0x118]
mov ecx, 0xa
mov dword [esp + 0xc], eax
cdq
idiv ecx
mov ecx, eax
cmp edx, 1
jne 0x59c08b
mov eax, dword [esp + 0xc]
mov dword [0x1ff5a08], eax
jmp 0x59c0a3
cmp edx, 6
jl 0x59c09e
mov eax, dword [esp + 0xc]
lea ecx, [edx - 6]
mov dword [0x1ff5a08], eax
jmp 0x59c0a3
mov ecx, 2
xor eax, eax
cmp ecx, 3
push 1
cmovle eax, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [edi + esi*4 + 0x26f00]
add eax, 0xfc
mov edx, dword [ecx]
push eax
call dword [edx + 0x80]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
push 0
mov eax, dword [ecx]
mov edx, dword [eax + 0x80]
mov eax, dword [0x9c25ac]
cmp word [edi + eax + 0x118], 0x28
jl 0x59c0f3
push 0x7e2ab0
jmp 0x59c0fb
mov eax, dword [esp + 0x24]
push dword [esp + eax*4 + 0x34]
call edx
push 0x80
lea eax, [esp + 0xcc]
push 0
push eax
call fcn.00468b40
mov eax, dword [0x9c25ac]
lea ecx, [esi + esi*2]
shl ecx, 4
add esp, 0xc
mov dword [esp + 0xc], ecx
movsx eax, word [ecx + eax + 0x58]
inc eax
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
push dword [eax + esi*4 + 0x360]
lea eax, [esp + 0xcc]
push str._10d
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
mov byte [ecx + 0xcdd], 1
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
push dword [eax + esi*8 + 0x374]
push dword [eax + esi*8 + 0x370]
lea eax, [esp + 0xd0]
push str._I64d
push eax
call fcn.00445aa0
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0xd8]
add esp, 0x10
mov eax, dword [ecx]
push 0
push edx
mov byte [ecx + 0xcdd], 1
call dword [eax + 0x80]
mov ecx, dword [0x9c25ac]
mov eax, edi
mov edi, dword [esp + 0x1c]
mov edx, 0xc7d
movzx eax, word [eax + ecx + 0x190]
cmp ax, dx
je 0x59c24c
mov edx, 0xc7e
cmp ax, dx
je 0x59c24c
mov edx, 0xc7f
cmp ax, dx
je 0x59c24c
mov edx, 0x23d
cmp ax, dx
je 0x59c24c
mov edx, 0x6e7
cmp ax, dx
je 0x59c24c
mov edx, 0x6ea
cmp ax, dx
je 0x59c24c
mov eax, dword [esp + 0xc]
movzx eax, word [eax + ecx + 0x58]
mov ecx, 0x190
cmp ax, cx
jle 0x59c242
mov eax, 0x5f3530
jmp 0x59c26e
cwde
lea eax, [eax*8 + 0x5f28b8]
jmp 0x59c26e
mov eax, dword [esp + 0xc]
movzx eax, word [eax + ecx + 0x58]
mov ecx, 0x190
cmp ax, cx
jle 0x59c266
mov eax, 0x5f28a8
jmp 0x59c26e
cwde
lea eax, [eax*8 + 0x5f1c30]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0xd0]
push str._I64d
push eax
call fcn.00445aa0
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0xd8]
add esp, 0x10
mov eax, dword [ecx]
push 0
push edx
mov byte [ecx + 0xcdd], 1
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movsx eax, word [ecx + eax + 0x78]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movsx eax, word [ecx + eax + 0x7a]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movsx eax, word [ecx + eax + 0x7c]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movsx eax, word [ecx + eax + 0x7e]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + eax + 0x80]
push eax
push 0x5fd138
lea eax, [esp + 0xd0]
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + eax + 0x82]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + eax + 0x84]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + eax + 0x86]
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [0x9c25ac]
mov ecx, dword [esp + 0x18]
cmp byte [ecx + eax + 0x11c], 0x1c
jne 0x59c4f6
mov al, byte [ecx + eax + 0x11d]
test al, al
je 0x59c4d0
movzx eax, al
push eax
lea eax, [esp + 0xcc]
push 0x5fd138
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0xd4]
add esp, 0xc
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
jmp 0x59c4f1
mov ecx, dword [esp + 0x24]
push 0
push 0x5fcdc8
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffff
mov eax, dword [ecx]
call dword [eax + 0x84]
mov eax, dword [0x9c25ac]
movzx edx, word [eax + esi*2 + 0x10]
movzx ecx, word [eax + esi*2 + 8]
mov dword [esp + 0x9c], 0x7dd630
mov dword [esp + 0xa0], 0x7dd6b0
mov dword [esp + 0xa4], 0x7dee30
mov dword [esp + 0xa8], 0x7e3830
mov dword [esp + 0xac], 0x7dd730
call fcn.0049a250
mov ecx, dword [edi + 0x28]
push 0x510
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
cmp ecx, 4
ja 0x59c571
mov edx, dword [eax]
push 0
push dword [esp + ecx*4 + 0xa0]
mov ecx, eax
call dword [edx + 0x80]
jmp 0x59c5c5
push 0x80
lea eax, [esp + 0x14c]
push 0
push eax
call fcn.00468b40
mov ecx, dword [0x9c25ac]
add esp, 0xc
movzx eax, word [ecx + esi*2 + 0x10]
push eax
movzx eax, word [ecx + esi*2 + 8]
push eax
lea eax, [esp + 0x150]
push str.__d___d_
push eax
call fcn.0045d4e0
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x158]
add esp, 0x10
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x80]
mov eax, dword [esp + 0x20]
cmp eax, 3
ja case.default.0x59c5d2
jmp dword [eax*4 + 0x59ccf4]
mov ecx, dword [edi + 0x26fa4]
push 0
push 0x7e10b0
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fa8]
push 0
push 0x7e1130
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fac]
push 0
push 0x7e11b0
mov eax, dword [ecx]
call dword [eax + 0x80]
push 0
push 0x7e1230
jmp 0x59c6fd
mov ecx, dword [edi + 0x26fa4]
push 0
push 0x7e12b0
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fa8]
push 0
push 0x7e1330
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fac]
push 0
push 0x7e13b0
mov eax, dword [ecx]
call dword [eax + 0x80]
push 0
push 0x7e1430
jmp 0x59c6fd
mov ecx, dword [edi + 0x26fa4]
push 0
push 0x7e14b0
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fa8]
push 0
push 0x7e1530
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fac]
push 0
push 0x7e15b0
mov eax, dword [ecx]
call dword [eax + 0x80]
push 0
push 0x7e1630
jmp 0x59c6fd
mov ecx, dword [edi + 0x26fa4]
push 0
push 0x7e16b0
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fa8]
push 0
push 0x7e1730
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x26fac]
push 0
push 0x7e17b0
mov eax, dword [ecx]
call dword [eax + 0x80]
push 0
push 0x7e1830
mov ecx, dword [edi + 0x26fb0]
mov eax, dword [ecx]
call dword [eax + 0x80]
push 1
push 1
push esi
mov ecx, edi
call fcn.0059a900
mov ecx, dword [edi + 0x28]
push 0x502
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
mov edx, eax
test edx, edx
je 0x59c787
mov ecx, dword [0x9c25a4]
mov eax, dword [edx]
push 1
mov ecx, dword [ecx + 0xa8]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x605750]
mov ecx, edx
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x626b18]
mulss xmm0, dword [0x605238]
subss xmm1, xmm0
movss xmm0, dword [0x626b1c]
mulss xmm0, dword [0x605120]
movss dword [edx + 0x4c], xmm1
movss dword [edx + 0x50], xmm0
call dword [eax + 0x60]
mov eax, dword [edi + esi*4 + 0x26f00]
mov ecx, dword [edi + 0x26fc8]
mov eax, dword [eax + 0xa54]
test eax, eax
jne 0x59c7a1
push eax
jmp 0x59c817
movzx eax, word [eax + 0x24a]
cmp ax, 0x13
jne 0x59c7b2
push 0
jmp 0x59c817
cwde
mov edx, 0xdaf
mov dword [ecx + 0xa4], eax
mov ecx, dword [edi + esi*4 + 0x26f00]
movzx eax, word [ecx + 0x21e]
cmp ax, dx
je 0x59c7ef
mov edx, 0xdb0
cmp ax, dx
je 0x59c7ef
mov edx, 0xdb1
cmp ax, dx
je 0x59c7ef
mov edx, 0xdb2
cmp ax, dx
jne 0x59c80f
mov eax, dword [ecx + 0xa54]
cmp word [eax + 0x24a], 2
jne 0x59c80f
mov eax, dword [edi + 0x26fc8]
mov dword [eax + 0xa4], 0x21
mov ecx, dword [edi + 0x26fc8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [0x9c25cc]
test ecx, ecx
je case.default.0x59cc76
push 0x39
call fcn.004a8da0
test eax, eax
je case.default.0x59cc76
sub esp, 0xc
push 0
push ecx
mov ecx, eax
call fcn.004a86c0
jmp case.default.0x59cc76
mov eax, dword [edi + 0x26f38]
cmp dword [eax + 0x28], 1
je case.default.0x59cc76
mov eax, dword [edi + 0x26f10]
lea ecx, [edi + 0x26f10]
test eax, eax
je 0x59c875
mov dword [eax + 0x200], 0
mov eax, dword [edi + 0x26f14]
test eax, eax
je 0x59c889
mov dword [eax + 0x200], 0
mov eax, dword [edi + 0x26f18]
test eax, eax
je 0x59c89d
mov dword [eax + 0x200], 0
mov eax, dword [edi + 0x26f1c]
test eax, eax
je 0x59c8b1
mov dword [eax + 0x200], 0
xorps xmm0, xmm0
xor eax, eax
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0xc], eax
test esi, esi
je 0x59c8eb
mov edx, dword [ecx]
test edx, edx
je 0x59c8eb
cmp edx, esi
jne 0x59c8eb
cmp dword [esi + 0x204], 1
je 0x59c907
inc eax
add ecx, 4
mov dword [esp + 0xc], eax
cmp eax, 4
jl 0x59c8d4
mov dword [edi + 0x100], 0
jmp case.default.0x59cc76
movaps xmm0, xmmword [0x605650]
mov dword [edx + 0x200], 1
mov ecx, dword [edi + eax*4 + 0x26f10]
mov eax, dword [0x9c25ac]
push 0x61a
mov dword [esp + 0xb4], str.856497
mov dword [esp + 0xb8], 0x602658
mov dword [eax + 0x21934], ecx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0xbc], 0x60265c
mov dword [esp + 0xc0], str.856497
mov dword [esp + 0x74], 0x602660
mov eax, dword [ecx]
mov dword [esp + 0x78], str.856497
mov dword [esp + 0x7c], 0x60265c
mov dword [esp + 0x80], 0x602664
mov eax, dword [eax + 0x48]
mov dword [esp + 0x84], 0x602668
mov dword [esp + 0x88], 0x602658
mov dword [esp + 0x8c], 0x602664
mov dword [esp + 0x90], 0x60266c
mov dword [esp + 0x34], 0x60265c
mov dword [esp + 0x38], 0x602658
mov dword [esp + 0x3c], 0x602658
mov dword [esp + 0x40], 0x60265c
movups xmmword [esp + 0xa0], xmm0
call eax
mov ecx, dword [edi + 0x28]
mov esi, eax
push 0x61b
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [esp + 0x1c]
mov edi, eax
push 0x61c
mov ecx, dword [ecx + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
push 0x61d
mov ecx, dword [eax + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
push 0
push dword [esp + eax*4 + 0xb4]
call dword [edx + 0x80]
mov ecx, dword [esp + 0xc]
mov eax, dword [edi]
push 0
push dword [esp + ecx*4 + 0x74]
mov ecx, edi
call dword [eax + 0x80]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
push 0
mov eax, dword [ecx]
push dword [esp + edi*4 + 0x84]
call dword [eax + 0x80]
mov ecx, dword [esp + 0x10]
push 0
push dword [esp + edi*4 + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x80]
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov eax, dword [esp + edi*4 + 0x9c]
push 0
push 1
push edi
mov dword [esi + 0x26fe0], eax
call fcn.0059a900
movaps xmm0, xmmword [0x605770]
movups xmmword [esp + 0x9c], xmm0
mov ecx, dword [esi + 0x28]
movaps xmm0, xmmword [0x605780]
movups xmmword [esp + 0x30], xmm0
push 0x1623
movaps xmm0, xmmword [0x605790]
mov eax, dword [ecx]
movups xmmword [esp + 0x84], xmm0
movaps xmm0, xmmword [0x605760]
mov eax, dword [eax + 0x48]
movups xmmword [esp + 0x74], xmm0
call eax
mov ecx, dword [esi + 0x28]
push 0x1624
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [esi + 0x28]
push 0x1625
mov dword [esp + 0x14], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [esi + 0x28]
push 0x1626
mov dword [esp + 0x30], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [esi + 0x28]
push 0x1627
mov dword [esp + 0x2c], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
call edx
mov dword [esp + 0xc], eax
cmp edi, 3
ja case.default.0x59cb78
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + edi*4 + 0x9c]
push 0x606
mov dword [eax + 0x54], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + edi*4 + 0x34]
mov dword [eax + 0x54], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + edi*4 + 0x84]
mov dword [eax + 0x54], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + edi*4 + 0x74]
mov dword [ecx + 0x54], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
push 1
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x60]
jmp dword [edi*4 + 0x59cd04]
mov ecx, dword [esi + 0x28]
push 0x1622
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
push 0
push 0x7dd430
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x80]
mov ecx, dword [esp + 0xc]
call fcn.004c8090
push 0x602670
jmp 0x59cc40
mov ecx, dword [esi + 0x28]
push 0x1622
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
push 0
push 0x7dd4b0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x80]
mov ecx, dword [esp + 0xc]
call fcn.004c8090
push str.UIchardescfoema.txt
jmp 0x59cc40
mov ecx, dword [esi + 0x28]
push 0x1622
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
push 0
push 0x7dd530
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x80]
mov ecx, dword [esp + 0xc]
call fcn.004c8090
push str.UIchardescbeast.txt
jmp 0x59cc40
mov ecx, dword [esi + 0x28]
push 0x1622
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
push 0
push 0x7dd5b0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x80]
mov ecx, dword [esp + 0xc]
call fcn.004c8090
push str.UIchardeschunter.txt
push dword [esp + 0x10]
call fcn.00590500
mov ecx, dword [0x9c25cc]
test ecx, ecx
je 0x59cc71
push 0x39
call fcn.004a8da0
test eax, eax
je 0x59cc6b
sub esp, 0xc
push 0
push ecx
mov ecx, eax
call fcn.004a86c0
mov ecx, dword [0x9c25cc]
cmp edi, 3
ja case.default.0x59cc76
jmp dword [edi*4 + 0x59cd14]
push 0
push 5
mov ecx, dword [esi + edi*4 + 0x26f10]
call fcn.005790f0
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x1c4]
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret 0x10
push 0
push 9
jmp 0x59cc81
push 0
push 8
jmp 0x59cc81
mov ecx, dword [esi + edi*4 + 0x26f10]
push 0
push 8
call fcn.005790f0
mov ecx, dword [0x9c25cc]
jmp 0x59cccc
test ecx, ecx
je case.default.0x59cc76
push 0x86
jmp 0x59c82c
mov ecx, dword [esp + 0x1cc]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret 0x10