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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6599b5
push eax
mov eax, 0x1974
mov dword fs:[0], esp
call fcn.00645130
push ebx
push esi
lea esi, [ecx + 0x44]
push edi
mov dword [esp + 0x5c], ecx
push 5
mov ecx, esi
call fcn.00643e22
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [0x826818]
call fcn.004467b0
mov ebx, eax
xor edi, edi
cmp ebx, edi
je 0x592547
movsx dx, byte [ebx + 0xec]
push ebx
push edx
call fcn.004782e0
movsx eax, ax
add esp, 8
cmp eax, 0xc
je 0x590a9a
cmp eax, 1
mov dword [esp + 0x30], edi
jne 0x590aa2
mov dword [esp + 0x30], 1
push 0x6c7010
lea ecx, [esp + 0x38]
call fcn.00643d2c
mov eax, dword [ebx + 0xd0]
mov dword [esp + 0x1988], edi
cmp eax, 0x40400000
jne 0x590acb
push 0x6b62d4
jmp 0x590b02
cmp dword [ebx + 0xd0], 0x40c00000
jne 0x590ade
push 0x6b62d0
jmp 0x590b02
cmp dword [ebx + 0xd0], 0x41100000
jne 0x590af1
push 0x6b62cc
jmp 0x590b02
cmp dword [ebx + 0xd0], 0x41400000
jne 0x590b0b
push 0x6b62c8
lea ecx, [esp + 0x38]
call fcn.006440b6
push 0x6c7010
lea ecx, [esp + 0x14]
call fcn.00643d2c
push 0x6c7010
lea ecx, [esp + 0x30]
mov byte [esp + 0x198c], 1
call fcn.00643d2c
push 0x6c7010
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 2
call fcn.00643d2c
push 0x6c7010
lea ecx, [esp + 0x48]
mov byte [esp + 0x198c], 3
call fcn.00643d2c
push 0x6c7010
lea ecx, [esp + 0x4c]
mov byte [esp + 0x198c], 4
call fcn.00643d2c
push 0x6c7010
lea ecx, [esp + 0x2c]
mov byte [esp + 0x198c], 5
call fcn.00643d2c
lea ecx, [esp + 0xc]
mov byte [esp + 0x1988], 6
call fcn.00643d62
push ebx
mov byte [esp + 0x198c], 7
call fcn.00473df0
add esp, 4
test eax, eax
je 0x590bcc
push 0x6bf65c
lea ecx, [esp + 0x30]
call fcn.006440b6
mov eax, dword [esp + 0x2c]
mov ecx, esi
push eax
call fcn.00643d44
jmp 0x5924bc
cmp dword [ebx + 0x54], edi
jg 0x590bf0
push 0x6bf624
lea ecx, [esp + 0x30]
call fcn.006440b6
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.00643d44
jmp 0x5924bc
push 0x6bf5d4
lea ecx, [esp + 0x10]
call fcn.006440b6
lea edx, [esp + 0xc]
lea ecx, [esp + 0x2c]
push edx
call fcn.00643d38
mov eax, dword [ebx + 0x54]
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.00472230
add esp, 8
lea ecx, [esp + 0x58]
push 0
call fcn.00643f00
mov edi, dword [eax + 0xc]
push 0
lea ecx, [esp + 0x5c]
call fcn.00643f00
mov esi, dword [eax + 0x10]
push 0
lea ecx, [esp + 0x5c]
inc esi
call fcn.00643f00
mov eax, dword [eax + 0x14]
push edi
add eax, 0x76c
push esi
push eax
lea edx, [esp + 0x18]
push 0x6bf5bc
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x2c]
push eax
call fcn.00643d38
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push ecx
push edx
call fcn.004782e0
movsx esi, ax
add esp, 8
cmp esi, 7
je 0x590c9b
cmp esi, 0x12
je 0x590c94
push 0x6bf590
jmp 0x590ca0
push 0x6bf564
jmp 0x590ca0
push 0x6bf538
lea ecx, [esp + 0x30]
call fcn.00643efa
push 0x6bf52c
lea ecx, [esp + 0x1c]
call fcn.00643d2c
push 0x6bf520
push eax
lea eax, [esp + 0x48]
mov byte [esp + 0x1990], 8
push eax
call fcn.00643ea6
mov eax, dword [eax]
lea edi, [ebx + 0x18]
push ebx
push edi
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x1998], 9
mov dword [esp + 0x5c], edi
call fcn.00643d50
add esp, 0x10
lea ecx, [esp + 0x40]
mov byte [esp + 0x1988], 8
call fcn.00643d26
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 7
call fcn.00643d26
lea edx, [esp + 0xc]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.00644050
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x198c], 0xa
call fcn.00644098
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 7
call fcn.00643d26
push 0x6bf4e4
lea ecx, [esp + 0x10]
call fcn.006440b6
lea edx, [esp + 0xc]
push 0x69b108
lea eax, [esp + 0x1c]
push edx
push eax
call fcn.00643ea6
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x198c], 0xb
call fcn.00643d38
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 7
call fcn.00643d26
fld dword [ebx + 0x5c]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6b5fe8
push 0x6bf4d0
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
cmp esi, 7
je 0x590de0
cmp esi, 0x12
je 0x590de0
fld dword [ebx + 0x14]
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6bf4c8
push 0x6bf4b4
push eax
jmp 0x590df8
fld dword [ebx + 0x14]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf4ac
push 0x6bf4b4
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
cmp esi, 7
je 0x590e5f
cmp esi, 0x12
je 0x590e5f
mov esi, dword [esp + 0x30]
test esi, esi
je 0x590e32
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x590e39
fld dword [ebx + 0x6c]
fstp qword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push 0x6bf4ac
lea edx, [esp + 0x18]
push 0x6bf4d0
push edx
call fcn.00643d50
add esp, 0x14
jmp 0x590f00
fld dword [ebx + 0x14]
fcomp dword [ebx + 0x6c]
fnstsw ax
test ah, 0x40
jne 0x590e8e
fld dword [ebx + 0x6c]
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6bf4c8
push 0x6bf4d0
push eax
call fcn.00643d50
add esp, 0x14
jmp 0x590efc
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.00475ce0
add esp, 0x10
test eax, eax
je 0x590ee3
mov edx, dword [esp + 0x18]
mov ecx, dword [0x826818]
lea eax, [esp + 0x1c]
push edx
push eax
call fcn.004467b0
fld dword [eax + 0x14]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf4c8
push 0x6bf4d0
push ecx
call fcn.00643d50
add esp, 0x14
jmp 0x590efc
push 0
push 0x6bf4c8
lea edx, [esp + 0x14]
push 0x6bf4d0
push edx
call fcn.00643d50
add esp, 0x10
mov esi, dword [esp + 0x30]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
test esi, esi
je 0x590f24
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x590f2b
fld dword [ebx + 0x70]
fstp qword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push 0x6a2278
lea eax, [esp + 0x18]
push 0x6bf494
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0x78]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf48c
push 0x6bf478
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
test esi, esi
je 0x590f9e
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x590fa5
fld dword [ebx + 0x7c]
fstp qword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push 0x6b5fa8
lea eax, [esp + 0x18]
push 0x6bf464
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
test esi, esi
je 0x590fea
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x590ff4
fld dword [ebx + 0x80]
fstp qword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
push eax
push 0x6b5f94
lea ecx, [esp + 0x18]
push 0x6bf478
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
test esi, esi
je 0x591039
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x591043
fld dword [ebx + 0x84]
fstp qword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push 0x6b5f78
lea edx, [esp + 0x18]
push 0x6bf464
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
test esi, esi
je 0x591088
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x591092
fld dword [ebx + 0x88]
fstp qword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push 0x6b5f6c
lea eax, [esp + 0x18]
push 0x6bf478
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0x8c]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6b5f58
push 0x6bf464
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0x94]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6b5f44
push 0x6bf478
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0x98]
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6b5f30
push 0x6bf464
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0x9c]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6b5f1c
push 0x6bf464
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0xa4]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf458
push 0x6bf478
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0xa8]
sub esp, 8
fstp qword [esp]
push 0x6b5f00
lea eax, [esp + 0x18]
push 0x6bf464
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0xac]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6b5eec
push 0x6bf478
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0xb0]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6b5ed4
push 0x6bf464
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0xb4]
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6b5ebc
push 0x6bf478
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0xb8]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6b5eac
push 0x6bf464
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0xbc]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6b5e98
push 0x6bf478
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0xc0]
sub esp, 8
fstp qword [esp]
push 0x6b5e84
push 0x6bf464
lea eax, [esp + 0x1c]
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0xc4]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6b5e74
push 0x6bf478
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0xc8]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6b5e60
push 0x6bf464
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
mov ax, word [ebx + 0x50]
cmp ax, 1
jl 0x59139e
cmp ax, 0x20
jg 0x59139e
movsx eax, ax
lea edx, [esp + 0xc]
lea eax, [eax + eax*4]
lea ecx, [eax*2 + 0x6a727e]
push ecx
push 0x6bf44c
push 0x6bf440
push edx
jmp 0x5913b2
push 0x6c7010
push 0x6bf44c
lea eax, [esp + 0x14]
push 0x6bf440
push eax
call fcn.00643d50
add esp, 0x10
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
mov ax, word [ebx + 0x52]
cmp ax, 1
jl 0x5913f4
cmp ax, 0x34
jg 0x5913f4
movsx eax, ax
lea edx, [eax + eax*8 + 0x6a745f]
lea eax, [esp + 0xc]
push edx
push 0x6bf434
push 0x6bf424
push eax
jmp 0x591408
push 0x6c7010
push 0x6bf434
lea ecx, [esp + 0x14]
push 0x6bf424
push ecx
call fcn.00643d50
add esp, 0x10
lea edx, [esp + 0xc]
lea eax, [esp + 0x18]
push 0x69b108
push edx
push eax
call fcn.00643ea6
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x198c], 0xc
call fcn.00643d38
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 7
call fcn.00643d26
fld dword [ebx + 0x5c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x591477
fld dword [ebx + 0x98]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 0x41
jne 0x591477
fld dword [ebx + 0x98]
fdiv dword [ebx + 0x5c]
jmp 0x59147d
fld dword [ebx + 0xcc]
test esi, esi
je 0x5914a5
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf41c
push 0x6bf408
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
push edx
jmp 0x5914f8
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6b5de8
push 0x6bf3f8
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0xcc]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf3e8
push 0x6bf408
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0x5c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x59151c
fld dword [ebx + 0xc8]
fdiv dword [ebx + 0x5c]
jmp 0x591522
fld dword [0x663774]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6b5e2c
push 0x6bf3f8
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0x74]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 0x41
jne 0x591564
fld dword [ebx + 0x74]
jmp 0x59159a
fld dword [ebx + 0x5c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x591594
fld dword [ebx + 0xc4]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 0x41
jne 0x591594
fld dword [ebx + 0xc4]
fdiv dword [ebx + 0x5c]
jmp 0x59159a
fld dword [0x663774]
mov eax, dword [esp + 0x34]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push eax
push 0x6b5e14
push 0x6bf3d4
push ecx
call fcn.00643d50
add esp, 0x18
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0x5c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x5915e5
fld dword [ebx + 0x94]
fdiv dword [ebx + 0x5c]
jmp 0x5915eb
fld dword [0x663774]
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6b5e00
push 0x6bf3f8
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0x78]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x591637
fld dword [ebx + 0x98]
fmul qword [0x663768]
fdiv dword [ebx + 0x78]
jmp 0x59163d
fld dword [0x663774]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6b5dd0
push 0x6bf3c0
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0x5c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x591683
fld dword [ebx + 0xb0]
fdiv dword [ebx + 0x5c]
jmp 0x591689
fld dword [0x663774]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf3b0
push 0x6bf3f8
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0x9c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x5916db
fld dword [ebx + 0xa0]
fmul qword [0x663768]
fdiv dword [ebx + 0x9c]
jmp 0x5916e1
fld dword [0x663774]
sub esp, 8
lea eax, [esp + 0x14]
fstp qword [esp]
push 0x6bf3a0
push 0x6bf3c0
push eax
call fcn.00643d50
add esp, 0x14
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
fld dword [ebx + 0x8c]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x591730
fld dword [ebx + 0x7c]
fsub dword [ebx + 0xb8]
fdiv dword [ebx + 0x8c]
jmp 0x591736
fld dword [0x663774]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf394
push 0x6bf384
push edx
call fcn.00643d50
add esp, 0x14
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.00643d38
fld dword [ebx + 0x78]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x591788
fld dword [ebx + 0x90]
fadd dword [ebx + 0x8c]
fmul qword [0x663768]
fdiv dword [ebx + 0x78]
jmp 0x59178e
fld dword [0x663774]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf378
push 0x6bf3c0
push ecx
call fcn.00643d50
add esp, 0x14
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
fld dword [ebx + 0x98]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x5917e0
fld dword [ebx + 0xc4]
fdiv dword [ebx + 0x98]
fmul qword [0x663768]
jmp 0x5917e6
fld dword [0x663774]
mov eax, dword [esp + 0x34]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push eax
push 0x6bf368
push 0x6bf354
push ecx
call fcn.00643d50
add esp, 0x18
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call fcn.00643d38
push 0x69b108
lea ecx, [esp + 0x10]
call fcn.006440b6
cmp dword [ebx + 0xd0], 0x40400000
jne 0x591837
push 0x6bf344
jmp 0x59188c
cmp dword [ebx + 0xd0], 0x40c00000
jne 0x591859
push 0x6bf334
push 0x6bf328
lea ecx, [esp + 0x14]
push 0x6bf424
push ecx
jmp 0x59189b
cmp dword [ebx + 0xd0], 0x41100000
jne 0x59187b
push 0x6bf318
push 0x6bf328
lea edx, [esp + 0x14]
push 0x6bf424
push edx
jmp 0x59189b
cmp dword [ebx + 0xd0], 0x41400000
jne 0x5918a3
push 0x6bf308
push 0x6bf328
lea eax, [esp + 0x14]
push 0x6bf424
push eax
call fcn.00643d50
add esp, 0x10
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00643d38
mov al, byte [ebx + 0xec]
test al, al
je 0x5918c7
cmp al, 1
jne 0x59237b
mov edi, dword [esp + 0x4c]
push 0x6bf2fc
lea ecx, [esp + 0x44]
call fcn.00643d2c
push 0x6bf2f0
lea edx, [esp + 0x1c]
push eax
push edx
mov byte [esp + 0x1994], 0xd
call fcn.00643ea6
mov eax, dword [eax]
push ebx
push edi
push eax
lea eax, [esp + 0x50]
mov byte [esp + 0x1994], 0xe
push eax
call fcn.00643d50
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 0xd
call fcn.00643d26
lea ecx, [esp + 0x40]
mov byte [esp + 0x1988], 7
call fcn.00643d26
push 0x6bf4e4
lea ecx, [esp + 0x18]
call fcn.006440b6
push 0x69b108
lea ecx, [esp + 0x18]
call fcn.00643efa
push 0x6bf008
lea ecx, [esp + 0x10]
push 0x6bf2e8
push ecx
call fcn.00643d50
add esp, 0xc
lea edx, [esp + 0xc]
lea ecx, [esp + 0x14]
push edx
call fcn.00643d38
push 0x6bf012
lea eax, [esp + 0x10]
push 0x6bf2e0
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
push 0x6bf01c
lea edx, [esp + 0x10]
push 0x6bf2e8
push edx
call fcn.00643d50
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
push 0x6bf026
lea ecx, [esp + 0x10]
push 0x6bf2d8
push ecx
call fcn.00643d50
add esp, 0xc
lea edx, [esp + 0xc]
lea ecx, [esp + 0x14]
push edx
call fcn.00643d38
push 0x6bf030
lea eax, [esp + 0x10]
push 0x6bf2d0
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
push 0x6bf03a
lea edx, [esp + 0x10]
push 0x6bf2e8
push edx
call fcn.00643d50
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
push 0x6bf044
lea ecx, [esp + 0x10]
push 0x6bf2c8
push ecx
call fcn.00643d50
add esp, 0xc
lea edx, [esp + 0xc]
lea ecx, [esp + 0x14]
push edx
call fcn.00643d38
push 0x6bf04e
lea eax, [esp + 0x10]
push 0x6bf2c8
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
push 0x6bf058
lea edx, [esp + 0x10]
push 0x6bf2c8
push edx
call fcn.00643d50
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
push 0x6bf062
lea ecx, [esp + 0x10]
push 0x6bf2c8
push ecx
call fcn.00643d50
add esp, 0xc
lea edx, [esp + 0xc]
lea eax, [esp + 0x18]
push 0x69b108
push edx
push eax
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0xf
call fcn.00643d38
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 7
call fcn.00643d26
push 0x6bf270
lea ecx, [esp + 0x10]
call fcn.006440b6
lea ecx, [esp + 0xc]
push 0x69b108
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x10
call fcn.00643d38
lea ecx, [esp + 0x18]
mov byte [esp + 0x1988], 7
call fcn.00643d26
push 0x16a8
call fcn.00643b70
add esp, 4
mov ecx, dword [0x826818]
mov esi, eax
push 0
push 0xc8
push esi
push ebx
mov dword [esp + 0x2c], esi
call fcn.00447760
movsx eax, ax
dec eax
test eax, eax
jl 0x592199
lea ecx, [eax*8]
add esi, eax
sub ecx, eax
inc eax
mov dword [esp + 0x30], eax
lea esi, [esi + ecx*4 + 0x11]
movsx eax, byte [esi - 5]
lea edi, [eax - 1]
cmp edi, 0xd
ja case.0x591b84.6
xor edx, edx
mov dl, byte [edi + 0x592578]
jmp dword [edx*4 + 0x592560]
fld dword [esi + 8]
sub esp, 8
lea ecx, [eax + eax*2]
fstp qword [esp]
fld dword [esi]
sub esp, 8
lea edx, [eax + ecx*4 + 0x6bef43]
mov eax, dword [esi - 9]
lea ecx, [esp + 0x1c]
fstp qword [esp]
fld dword [esi + 4]
sub esp, 8
fstp qword [esp]
fld dword [esi - 4]
sub esp, 8
fstp qword [esp]
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
push edx
push eax
push 0x6bf238
push ecx
call fcn.00643d50
add esp, 0x40
lea edx, [esp + 0xc]
lea eax, [esp + 0x18]
push 0x69b108
push edx
push eax
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x11
call fcn.00643d38
mov byte [esp + 0x1988], 7
lea ecx, [esp + 0x18]
jmp 0x592182
mov ecx, dword [esi - 9]
lea edx, [esp + 0xc]
push ecx
push 0x6bf230
push edx
call fcn.00643d50
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
movsx eax, byte [esi - 5]
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4 + 0x6bef43]
lea eax, [esp + 0xc]
push edx
push 0x6bf228
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi + 4]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x591c9a
fld dword [esi + 4]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf220
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x591cb1
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf218
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi - 4]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x591cec
fld dword [esi - 4]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf220
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x591d03
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf218
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi + 8]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x591d3e
fld dword [esi + 8]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf220
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x591d55
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf218
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x591d8e
fld dword [esi]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf210
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x591da5
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf2e8
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
lea edx, [esp + 0x1c]
push 0x6bf1fc
push edx
call fcn.00643d50
add esp, 0x18
lea eax, [esp + 0xc]
lea ecx, [esp + 0x40]
push 0x69b108
push eax
push ecx
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x12
call fcn.00643d38
mov byte [esp + 0x1988], 7
lea ecx, [esp + 0x40]
jmp 0x592182
mov ecx, dword [esi - 9]
lea edx, [eax + eax*2]
push 0x6c7010
push 0x6c7010
lea eax, [eax + edx*4 + 0x6bef43]
push 0x6c7010
push eax
push ecx
lea edx, [esp + 0x20]
push 0x6bf1e4
push edx
call fcn.00643d50
add esp, 0x1c
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
fld dword [esi]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x591e79
fld dword [esi]
sub esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp]
push 0x6bf210
push ecx
call fcn.00643d50
add esp, 0x10
jmp 0x591e90
push 0x6c7010
lea edx, [esp + 0x10]
push 0x6bf2e8
push edx
call fcn.00643d50
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
fld dword [esi + 4]
push 0x6c7010
push 0x6c7010
sub esp, 8
lea ecx, [esp + 0x1c]
fstp qword [esp]
push 0x6c7010
push 0x6bf1cc
push ecx
call fcn.00643d50
add esp, 0x1c
lea edx, [esp + 0xc]
lea eax, [esp + 0x54]
push 0x69b108
push edx
push eax
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x13
call fcn.00643d38
mov byte [esp + 0x1988], 7
lea ecx, [esp + 0x54]
jmp 0x592182
mov ecx, dword [esi - 9]
lea edx, [esp + 0xc]
push ecx
push 0x6bf230
push edx
call fcn.00643d50
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00643d38
movsx eax, byte [esi - 5]
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4 + 0x6bef43]
lea eax, [esp + 0xc]
push edx
push 0x6bf228
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi + 4]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x591f7f
fld dword [esi + 4]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf1c0
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x591f96
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf218
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push 0x69b108
lea edx, [esp + 0x54]
push ecx
push edx
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x14
call fcn.00643d38
mov byte [esp + 0x1988], 7
lea ecx, [esp + 0x50]
jmp 0x592182
mov eax, dword [esi - 9]
lea ecx, [esp + 0xc]
push eax
push 0x6bf230
push ecx
call fcn.00643d50
add esp, 0xc
lea edx, [esp + 0xc]
lea ecx, [esp + 0x14]
push edx
call fcn.00643d38
movsx eax, byte [esi - 5]
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4 + 0x6bef43]
lea eax, [esp + 0xc]
push edx
push 0x6bf228
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi + 4]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x59204d
fld dword [esi + 4]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf1b4
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x592064
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf218
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00643d38
fld dword [esi - 4]
fcomp dword [0x65f998]
fnstsw ax
test ah, 0x41
jne 0x59209f
fld dword [esi - 4]
sub esp, 8
lea edx, [esp + 0x14]
fstp qword [esp]
push 0x6bf1a4
push edx
call fcn.00643d50
add esp, 0x10
jmp 0x5920b6
push 0x6c7010
lea eax, [esp + 0x10]
push 0x6bf218
push eax
call fcn.00643d50
add esp, 0xc
lea ecx, [esp + 0xc]
push 0x69b108
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x15
call fcn.00643d38
mov byte [esp + 0x1988], 7
lea ecx, [esp + 0x3c]
jmp 0x592182
mov eax, dword [esi - 9]
push 0x6bf194
push eax
lea ecx, [esp + 0x14]
push 0x6bf188
push ecx
call fcn.00643d50
add esp, 0x10
lea edx, [esp + 0xc]
lea ecx, [esp + 0x14]
push edx
call fcn.00643d38
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
push 0x6c7010
lea eax, [esp + 0x2c]
push 0x6bf160
push eax
call fcn.00643d50
add esp, 0x28
lea ecx, [esp + 0xc]
lea edx, [esp + 0x38]
push 0x69b108
push ecx
push edx
call fcn.00643ea6
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x198c], 0x16
call fcn.00643d38
mov byte [esp + 0x1988], 7
lea ecx, [esp + 0x38]
call fcn.00643d26
mov eax, dword [esp + 0x30]
sub esi, 0x1d
dec eax
mov dword [esp + 0x30], eax
jne 0x591b6c
mov ecx, 0x63f
xor eax, eax
lea edi, [esp + 0x81]
mov byte [esp + 0x80], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [0x826818]
push 0x64
stosb byte es:[edi], al
lea eax, [esp + 0x84]
push eax
push ebx
call fcn.00447800
mov esi, eax
test si, si
jle 0x59236a
push 0x6bf2fc
lea ecx, [esp + 0x40]
call fcn.00643d2c
push 0x6bf154
lea ecx, [esp + 0x3c]
push eax
push ecx
mov byte [esp + 0x1994], 0x17
call fcn.00643ea6
mov edx, dword [esp + 0x4c]
mov eax, dword [eax]
push ebx
push edx
push eax
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x1998], 0x18
call fcn.00643d50
add esp, 0x10
lea ecx, [esp + 0x38]
mov byte [esp + 0x1988], 0x17
call fcn.00643d26
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1988], 7
call fcn.00643d26
push 0x6bf4e4
lea ecx, [esp + 0x2c]
call fcn.006440b6
push 0x69b108
lea ecx, [esp + 0x2c]
call fcn.00643efa
push 0x6bf134
lea ecx, [esp + 0x2c]
call fcn.00643efa
push 0x69b108
lea ecx, [esp + 0x2c]
call fcn.00643efa
push 0x6bf270
lea ecx, [esp + 0x2c]
call fcn.00643efa
push 0x69b108
lea ecx, [esp + 0x2c]
call fcn.00643efa
movsx eax, si
lea esi, [eax - 1]
mov edx, esi
mov dword [esp + 0x38], esi
test edx, edx
mov dword [esp + 0x30], edx
jl 0x59236a
mov ecx, edx
shl ecx, 6
lea ebx, [esp + ecx + 0x95]
jmp 0x5922b9
mov esi, dword [esp + 0x38]
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x61]
mov byte [esp + 0x60], 0
rep stosd dword es:[edi], eax
cmp edx, esi
stosw word es:[edi], ax
jge 0x5922da
lea edi, [ebx + 0x33]
lea edx, [esp + 0x60]
jmp 0x5922e2
mov edi, dword [esp + 0x4c]
lea edx, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebx - 0xd]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebx - 4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x64]
push ecx
push edx
push eax
lea ecx, [esp + 0x1c]
push 0x6bf120
push ecx
call fcn.00643d50
add esp, 0x18
lea edx, [esp + 0xc]
lea eax, [esp + 0x3c]
push 0x69b108
push edx
push eax
call fcn.00643ea6
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x198c], 0x19
call fcn.00643d38
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1988], 7
call fcn.00643d26
mov edx, dword [esp + 0x30]
sub ebx, 0x40
dec edx
test edx, edx
mov dword [esp + 0x30], edx
jge 0x5922b5
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x59237b
push eax
call fcn.00643cfc
add esp, 4
mov edi, 0x6d4838
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5923d5
push 0x6bf0c4
lea ecx, [esp + 0x2c]
call fcn.00643efa
push 0x6d4838
lea ecx, [esp + 0x2c]
call fcn.00643efa
mov edi, 0x6d4938
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5923d5
push 0x69b108
lea ecx, [esp + 0x2c]
call fcn.00643efa
push 0x6d4938
lea ecx, [esp + 0x2c]
call fcn.00643efa
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
lea eax, [esp + 0x58]
push edx
push eax
call fcn.00644050
lea ecx, [esp + 0x44]
lea edx, [esp + 0x50]
push ecx
push eax
push edx
mov byte [esp + 0x1994], 0x1a
call fcn.00644050
lea ecx, [esp + 0x14]
lea edx, [esp + 0x3c]
push ecx
push eax
push edx
mov byte [esp + 0x1994], 0x1b
call fcn.00644050
lea ecx, [esp + 0x48]
lea edx, [esp + 0x38]
push ecx
mov bl, 0x1c
push eax
push edx
mov byte [esp + 0x1994], bl
call fcn.00644050
lea ecx, [esp + 0x28]
lea edx, [esp + 0x1c]
push ecx
push eax
push edx
mov byte [esp + 0x1994], 0x1d
call fcn.00644050
mov esi, dword [esp + 0x5c]
mov eax, dword [eax]
push eax
mov byte [esp + 0x198c], 0x1e
lea ecx, [esi + 0x44]
call fcn.00643d44
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1988], 0x1d
call fcn.00643d26
lea ecx, [esp + 0x38]
mov byte [esp + 0x1988], bl
call fcn.00643d26
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1988], 0x1b
call fcn.00643d26
lea ecx, [esp + 0x50]
mov byte [esp + 0x1988], 0x1a
call fcn.00643d26
lea ecx, [esp + 0x54]
mov byte [esp + 0x1988], 7
call fcn.00643d26
mov ecx, esi
call fcn.005936d0
lea ecx, [esp + 0xc]
mov byte [esp + 0x1988], 6
call fcn.00643d26
lea ecx, [esp + 0x28]
mov byte [esp + 0x1988], 5
call fcn.00643d26
lea ecx, [esp + 0x48]
mov byte [esp + 0x1988], 4
call fcn.00643d26
lea ecx, [esp + 0x44]
mov byte [esp + 0x1988], 3
call fcn.00643d26
lea ecx, [esp + 0x14]
mov byte [esp + 0x1988], 2
call fcn.00643d26
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1988], 1
call fcn.00643d26
lea ecx, [esp + 0x10]
mov byte [esp + 0x1988], 0
call fcn.00643d26
lea ecx, [esp + 0x34]
mov dword [esp + 0x1988], 0xffffffff
call fcn.00643d26
mov ecx, dword [esp + 0x1980]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8