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

Disassembly:
fld dword [0x5f0414]
push ebx
push esi
push edi
mov ebx, ecx
sub esp, 0x48
fstp dword [esp + 4]
fld dword [0x5f0414]
fstp dword [esp + 8]
cmp dword [ebx + 0x188], 0
jne 0x4596d0
mov eax, dword [0x6fb49c]
mov dword [ebx + 0x188], eax
inc dword [ebx + 0x1c]
mov edi, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
cmp edi, eax
jle 0x4596e4
mov dword [ebx + 0x1c], 1
mov eax, dword [ebx + 0x14]
mov esi, dword [ebx + 0x1c]
cmp esi, eax
jne 0x4596f4
mov byte [ebx + 3], 1
jmp 0x4596f8
mov byte [ebx + 3], 0
cmp byte [ebx + 2], 0
jne 0x459990
mov edx, dword [ebx + 0x188]
mov al, byte [edx + 0x50]
and al, 7
cmp al, 2
jne 0x459913
add edx, 0x34
fld dword [edx]
fstp dword [esp + 0x18]
fld dword [edx + 4]
fstp dword [esp + 0x1c]
fld dword [edx + 8]
fstp dword [esp + 0x20]
mov eax, dword [ebx + 0x188]
add eax, 0x34
fld dword [eax]
fstp dword [esp + 0x18]
fld dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [eax + 8]
fstp dword [esp + 0x20]
mov ecx, dword [ebx + 0x188]
add ecx, 4
fld dword [0x5f0414]
mov eax, ecx
fcomp dword [eax + 0x10]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x459782
fld dword [0x5f0414]
fcomp dword [ecx + 0x14]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x459782
fld dword [0x5f0414]
jmp 0x45978f
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.0048cc30
pop ecx
pop ecx
fstp dword [esp + 8]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov eax, dword [ebx + 0x188]
fld dword [eax + 0x14]
fstp dword [esp + 0x24]
mov eax, dword [ebx + 0x188]
lea ecx, [esp + 0x24]
fld dword [eax + 0x18]
fstp dword [esp + 0x28]
call fcn.004ba560
fldz
fldz
fld dword [esp + 0x28]
fstp st(2)
fld st(1)
fmul st(0)
fld dword [esp + 0x24]
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp st(2)
fld dword [0x5f0414]
fcomp st(2)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x459816
fld dword [esp + 0x24]
fdiv st(2)
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fdiv st(2)
fstp dword [esp + 0x28]
mov edi, dword [ebx + 0x188]
add edi, 0x78
fld dword [esp + 0x24]
mov eax, edi
fmul dword [eax]
fstp st(2)
fld dword [esp + 0x28]
fmul dword [edi + 4]
fstp st(1)
fld st(1)
fadd st(1)
fcomp dword [0x5f0414]
fnstsw ax
test ah, 0x45
jne 0x459894
fld st(0)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp st(2)
fld st(1)
fmul dword [0x5f0620]
fcomp dword [0x5f0410]
fnstsw ax
test ah, 0x45
jne 0x459878
fld dword [0x5f0410]
jmp 0x45988e
fld st(0)
fsqrt
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp st(2)
fld st(1)
fmul dword [0x5f0620]
fstp st(2)
fld st(1)
jmp 0x4598ec
fld st(0)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp st(2)
fld st(1)
fmul dword [0x5f0624]
fcomp dword [0x5f0464]
fnstsw ax
test ah, 0x45
jne 0x4598d0
fld dword [0x5f0464]
jmp 0x4598e6
fld st(0)
fsqrt
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp st(2)
fld st(1)
fmul dword [0x5f0624]
fstp st(2)
fld st(1)
fchs
fstp dword [esp + 4]
fld dword [0x5f0628]
fmul dword [ebx + 0xd0]
fld dword [0x5f062c]
fmul dword [esp + 4]
faddp st(1)
fstp dword [ebx + 0xd0]
jmp 0x459f93
lea eax, [edx + 0x34]
fld dword [eax]
fstp dword [esp + 0x18]
fld dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [eax + 8]
fstp dword [esp + 0x20]
mov esi, dword [ebx + 0x188]
add esi, 4
fld dword [0x5f0414]
mov eax, esi
fcomp dword [eax + 0x10]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x459963
fld dword [0x5f0414]
fcomp dword [esi + 0x14]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x459963
fld dword [0x5f0414]
jmp 0x459970
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.0048cc30
pop ecx
pop ecx
fstp dword [esp + 8]
fld dword [0x5f0414]
fstp dword [esp + 4]
fld dword [esp + 4]
fstp dword [ebx + 0xd0]
jmp 0x4599ae
fld dword [ebx + 0x104]
fstp dword [esp + 0x18]
fld dword [ebx + 0x108]
fstp dword [esp + 0x1c]
fld dword [ebx + 0x10c]
fstp dword [esp + 0x20]
movsx eax, word [ebx + 0xc]
dec eax
cmp eax, 0x2b
ja case.0x4599bc.5
jmp dword [eax*4 + 0x5f0b84]
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00463eb0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00464390
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045be60
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00463a70
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045c090
jmp 0x459d2a
cmp byte [0x5f03d8], 0
je 0x459a86
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045ff70
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045e3a0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045ccc0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00462420
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00461af0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00460e00
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045b470
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00461940
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00462fc0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00461730
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00463130
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045c400
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00464d10
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045da20
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.00459fa0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045dc20
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045d2f0
jmp 0x459d2a
mov ecx, ebx
call fcn.004656c0
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045c590
jmp 0x459d2a
lea eax, [esp + 0x18]
mov ecx, ebx
push dword [esp + 4]
push dword [ebx + 0xd0]
push dword [esp + 0x10]
push eax
call fcn.0045ab30
jmp 0x459d2a
mov ecx, ebx
call fcn.00465000
jmp 0x459d2a
mov ecx, ebx
call fcn.004653c0
jmp 0x459d2a
mov dword [ebx + 0x14c], 0
mov dword [ebx + 0x150], 0
mov dword [ebx + 0x154], 0
mov dword [ebx + 0x140], 0
mov dword [ebx + 0x144], 0x3f800000
mov dword [ebx + 0x148], 0
mov dword [ebx + 0x164], 0
mov dword [ebx + 0x168], 0
mov dword [ebx + 0x16c], 0x3f800000
fldz
fld dword [ebx + 0x14c]
fsub dword [ebx + 0xf8]
lea edi, [esp + 0x30]
fstp dword [esp + 0x3c]
fld dword [ebx + 0x150]
fsub dword [ebx + 0xfc]
lea esi, [esp + 0x3c]
fstp dword [esp + 0x40]
fld dword [ebx + 0x154]
fsub dword [ebx + 0x100]
fstp dword [esp + 0x44]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x34]
fst st(1)
fmul st(0)
fld dword [esp + 0x30]
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
mov dword [esp + 0x10], eax
fst dword [esp]
push dword [esp + 0x34]
fstp st(0)
call fcn.0048cc30
pop ecx
pop ecx
fstp dword [ebx + 0x9c]
push dword [esp + 0x38]
push dword [esp + 0x10]
call fcn.0048cc30
fstp dword [ebx + 0xa0]
cmp byte [0x6fad81], 0
pop ecx
pop ecx
jne 0x459deb
lea eax, [ebx + 0x9c]
lea edx, [ebx + 0xb0]
lea ecx, [ebx + 0xa0]
push edx
push eax
lea eax, [ebx + 0x164]
lea edi, [ebx + 0xf8]
push ecx
push eax
lea eax, [ebx + 0x14c]
mov ecx, ebx
push edi
push eax
call fcn.00459300
mov byte [ebx + 7], 0
mov byte [ebx + 8], 0
mov byte [ebx + 9], 0
fld dword [ebx + 0x14c]
fstp dword [ebx + 0x158]
fld dword [ebx + 0x150]
fstp dword [ebx + 0x15c]
fld dword [ebx + 0x154]
fstp dword [ebx + 0x160]
movzx eax, byte [0x6fad6e]
imul eax, eax, 0x1a4
add eax, 0x6facf8
add eax, 0x1a4
cmp eax, ebx
jne 0x459f58
mov ax, word [ebx + 0xc]
cmp ax, 0x12
je 0x459e54
cmp ax, 0x10
je 0x459e54
cmp ax, 0x16
jne 0x459f0b
mov esi, dword [ebx + 0x188]
mov al, byte [esi + 0x50]
and al, 7
cmp al, 2
jne 0x459f0b
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.004932f0
test al, al
je 0x459e97
mov ecx, ebx
call fcn.00458600
cmp dword [ebx + 0x28], 0
je 0x459e8e
mov byte [0x6fad55], 1
mov dword [ebx + 0x28], 0
jmp 0x459f0b
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493290
test al, al
je 0x459ec7
mov ecx, ebx
call fcn.00458c40
cmp dword [ebx + 0x28], 1
je 0x459ebe
mov byte [0x6fad55], 1
mov dword [ebx + 0x28], 1
jmp 0x459f0b
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.004932c0
test al, al
je 0x459ef7
mov ecx, ebx
call fcn.00458fb0
cmp dword [ebx + 0x28], 2
je 0x459eee
mov byte [0x6fad55], 1
mov dword [ebx + 0x28], 2
jmp 0x459f0b
cmp dword [ebx + 0x28], 3
je 0x459f04
mov byte [0x6fad55], 1
mov dword [ebx + 0x28], 3
cmp word [ebx + 0xc], 4
jne 0x459f58
mov edx, dword [ebx + 0x188]
mov al, byte [edx + 0x50]
and al, 7
cmp al, 3
jne 0x459f58
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493320
test al, al
je 0x459f51
mov ecx, ebx
call fcn.00458600
cmp dword [ebx + 0x28], 0
je 0x459f48
mov byte [0x6fad55], 1
mov dword [ebx + 0x28], 0
jmp 0x459f58
mov dword [ebx + 0x28], 3
mov ax, word [ebx + 0xc]
cmp ax, 7
je 0x459f85
cmp ax, 8
je 0x459f85
cmp ax, 0x22
je 0x459f85
cmp ax, 0x10
je 0x459f85
cmp ax, 0x2c
je 0x459f85
mov ecx, ebx
call fcn.004583e0
test al, al
je 0x459f8c
mov ecx, ebx
call fcn.004574c0
add esp, 0x48
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x4599ae