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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x6c]
test esi, esi
push edi
mov ebx, ecx
je 0x595ff2
mov eax, dword [esp + 0x74]
test eax, eax
je 0x595ff2
mov ecx, dword [esi + 8]
mov ax, word [ecx + 0x16]
cmp ax, 0x6d
je 0x595dd1
cmp ax, 0x34
je 0x595dd1
cmp word [ecx + 0x10], 0x52
je 0x595dd1
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0xc]
push esi
push 2
push 1
push eax
push ecx
mov ecx, dword [edx + 0x78]
push 0x6d
mov dword [esp + 0x88], 0x41700000
xor edi, edi
call fcn.004a1270
mov ecx, eax
test ecx, ecx
je 0x595d27
fld dword [ecx + 0x38]
fsub dword [esi + 0x38]
fld dword [ecx + 0x3c]
fsub dword [esi + 0x3c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcom dword [0x645184]
fnstsw ax
test ah, 1
je 0x595d25
fstp dword [esp + 0x70]
mov edi, ecx
jmp 0x595d27
fstp st(0)
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0xc]
push esi
push 2
push 1
push eax
push ecx
mov ecx, dword [edx + 0x78]
push 0x52
call fcn.004a1270
mov ecx, eax
test ecx, ecx
je 0x595d78
fld dword [ecx + 0x38]
fsub dword [esi + 0x38]
fld dword [ecx + 0x3c]
fsub dword [esi + 0x3c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcom dword [esp + 0x70]
fnstsw ax
test ah, 1
je 0x595d76
fstp dword [esp + 0x70]
mov edi, ecx
jmp 0x595d78
fstp st(0)
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0xc]
push esi
push 2
push 1
push eax
push ecx
mov ecx, dword [edx + 0x78]
push 0x34
call fcn.004a1420
mov ecx, eax
test ecx, ecx
je 0x595dc1
fld dword [ecx + 0x38]
fsub dword [esi + 0x38]
fld dword [ecx + 0x3c]
fsub dword [esi + 0x3c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [esp + 0x70]
fnstsw ax
test ah, 1
je 0x595dc1
mov edi, ecx
test edi, edi
je 0x595ff2
mov ebp, edi
mov dword [esp + 0x70], ebp
jmp 0x595dd7
mov dword [esp + 0x70], esi
mov ebp, esi
xor esi, esi
cmp ebp, esi
je 0x595ff2
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0x2a]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fmul dword [0x63478c]
fcomp dword [ebp + 0x30]
fnstsw ax
test ah, 1
je 0x595ff2
mov edx, dword [esp + 0x74]
mov ecx, ebp
push edx
call fcn.00539280
mov eax, dword [ebp]
mov ecx, ebp
fstp dword [esp + 0x74]
call dword [eax + 0x128]
fsub dword [0x634598]
fcomp dword [esp + 0x74]
fnstsw ax
test ah, 1
jne 0x595ff2
mov eax, dword [ebp + 0x24]
cmp eax, esi
jne 0x595e3f
xor ecx, ecx
jmp 0x595e42
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x18], 0x14
mov al, byte [edx + 0x30]
sub eax, ecx
cmp eax, 0x14
jg 0x595e5d
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xfc]
mov dword [esp + 0x10], esi
cmp eax, esi
jle 0x595ff2
lea eax, [esp + 0x1c]
mov dword [esp + 0x74], esi
mov esi, 1
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x104]
lea ecx, [esi - 1]
lea edx, [eax - 1]
cmp ecx, edx
jle 0x595efb
cmp esi, eax
jl 0x595e9b
lea ebp, [eax + 0x20]
cmp ebp, esi
jg 0x595e9d
mov ebp, esi
lea eax, [ebp*4]
push eax
call fcn.0061317d
mov edi, eax
add esp, 4
test edi, edi
je 0x595ef7
mov ecx, dword [ebx + 0x104]
xor eax, eax
test ecx, ecx
jle 0x595edc
cmp eax, ebp
jge 0x595edc
mov ecx, dword [ebx + 0xf8]
inc eax
mov edx, dword [ecx + eax*4 - 4]
mov dword [edi + eax*4 - 4], edx
mov ecx, dword [ebx + 0x104]
cmp eax, ecx
jl 0x595ebf
mov eax, dword [ebx + 0xf8]
push eax
call fcn.00613172
add esp, 4
mov dword [ebx + 0xf8], edi
mov dword [ebx + 0x104], ebp
mov ebp, dword [esp + 0x70]
mov ecx, dword [ebx + 0xf8]
mov edx, dword [esp + 0x74]
mov eax, dword [edx + ecx]
mov ecx, dword [ebx + 0xf4]
push eax
mov edx, dword [ecx + 0xf0]
mov ecx, dword [edx + 0x8c]
call fcn.00603f70
mov edi, eax
test edi, edi
je 0x595f9c
cmp byte [edi + 0x48], 2
ja 0x595f9c
mov ecx, edi
call fcn.00539bc0
mov ecx, eax
call fcn.005d65b0
cmp eax, 0x258
jne 0x595f69
mov ecx, edi
call fcn.00539bc0
mov ecx, eax
call fcn.004133f0
cmp eax, 0x2bc
jne 0x595f9c
mov ecx, edi
call fcn.00539bc0
mov ecx, eax
call fcn.005d67e0
cmp eax, 0x32
jg 0x595f9c
push ebp
mov ecx, edi
call fcn.00539280
fcomp dword [0x637be0]
fnstsw ax
test ah, 0x41
je 0x595f9c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc eax
mov dword [ecx], edi
add ecx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x595fbd
mov edx, dword [esp + 0x74]
mov ecx, dword [ebx + 0xfc]
inc esi
add edx, 4
mov dword [esp + 0x74], edx
lea eax, [esi - 1]
cmp eax, ecx
jl 0x595e80
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x595ff2
mov edx, dword [ebx + 0xf4]
push 0xffffffffffffffff
push 0xbf800000
push 0xbf800000
push ebp
push 0
push 5
push eax
mov eax, dword [edx + 0xf0]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 0x68]
call fcn.005a1940
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 8