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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebp, dword [esp + 0xa4]
mov edi, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov ebx, dword [ebp + 0xb4]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp + 0x20], eax
lea eax, [edi - 0x80000000]
mov dword [esp + 0x24], edx
mov edx, esi
or edx, eax
je 0x475c80
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, edx
lea edx, [ecx - 0x80000000]
or eax, edx
je 0x475c80
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp edx, edi
jle 0x475940
mov dword [ebx], esi
mov dword [ebx + 4], edi
xor eax, eax
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
jge 0x475ca0
mov eax, esi
sub eax, dword [esp + 0x20]
mov edx, edi
sbb edx, dword [esp + 0x24]
cmp edx, 0x7fffffff
ja 0x475926
jb 0x475961
cmp eax, 0xfffffffe
ja 0x475926
cmp edi, 0x7ffdffff
jle 0x475cf8
mov eax, esi
mov edx, edi
add eax, 1
adc edx, 0x80010000
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
fild qword [esp + 0x18]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fild dword [ebp + 0x10]
mov eax, esi
sub eax, dword [esp + 0x20]
mov edx, edi
sbb edx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
fild dword [ebp + 0x14]
fdivp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0x48]
mov eax, dword [ebx + 0x20]
fld qword [esp + 0x48]
test eax, eax
mov dword [esp + 0x2c], eax
je 0x475d20
mov edx, dword [esp + 0x2c]
xor ebp, ebp
mov ecx, edx
jmp 0x4759e6
fstp st(0)
add edx, 8
cmp ebp, 0x18f
je 0x475b05
fld qword [edx + 0xc78]
add ebp, 1
fld dword [0x687ca4]
fucompi st(1)
jbe 0x4759d5
lea eax, [ebp - 1]
cmp eax, 0x167
jbe 0x475cb0
cmp eax, 0x185
jle 0x475cc0
lea eax, [ebp - 0x187]
cmp eax, 2
jle 0x475cd0
mov dword [esp + 0x68], 0x18
mov dword [esp + 0x6c], 0x1e
mov dword [esp + 0x70], 0x3c
mov dword [esp + 0x74], 0xc
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x7c], 0x30
imul eax, dword [esp + ebp*4 - 0x5c0], 0x2ee0
lea esi, [esi]
mov dword [esp + 0x18], eax
add edx, 8
fild dword [esp + 0x18]
fmul st(2)
fdiv dword [0x687ca8]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fld st(0)
fistp qword [esp + 0x18]
fild qword [esp + 0x18]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fsubr st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fld st(0)
fadd qword [edx - 8]
fstp qword [edx - 8]
fmul st(0)
faddp st(2)
fxch st(1)
fstp qword [edx + 0xc70]
fld dword [0x687cac]
fld st(1)
fadd st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fistp qword [esp + 0x18]
fild qword [esp + 0x18]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fsubp st(2)
faddp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fld st(0)
fadd qword [edx + 0x18e8]
fstp qword [edx + 0x18e8]
fmul st(0)
fadd qword [edx + 0x2560]
fstp qword [edx + 0x2560]
cmp ebp, 0x18f
jne 0x4759e6
fstp st(0)
jmp 0x475b07
fstp st(0)
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
mov eax, 0xffffffff
sub eax, dword [esp + 0x38]
mov dword [esp + 0x18], edx
mov edx, 0x7fffffff
sbb edx, dword [esp + 0x3c]
cmp dword [esp + 0x34], edx
jg 0x475b5c
jge 0x475d11
add dword [esp + 0x18], 1
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
mov eax, dword [esp + 0x18]
mov edx, 0x66666667
imul edx
mov eax, dword [esp + 0x18]
sar edx, 2
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*4]
add eax, eax
cmp dword [esp + 0x18], eax
jne 0x475c23
fld xword [0x687cb0]
mov eax, dword [esp + 0x2c]
add eax, 0xc78
fld qword [ecx + 0xc78]
fld dword [0x687ca4]
fucompi st(1)
jbe 0x475c10
fild dword [esp + 0x18]
fld st(0)
fdivr qword [ecx]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fxch st(2)
fdiv st(1)
fxch st(2)
fmul st(0)
fsubp st(2)
fxch st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fucompi st(2)
jbe 0x475c14
fld st(0)
fdivr qword [ecx + 0x18f0]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fxch st(1)
fdivr qword [ecx + 0x2568]
fxch st(1)
fmul st(0)
fsubp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fucompi st(1)
jbe 0x475c16
fld dword [0x687cbc]
fst qword [ecx + 0xc78]
fstp qword [ecx + 0x2568]
jmp 0x475c16
fstp st(0)
jmp 0x475c16
fstp st(0)
add ecx, 8
cmp eax, ecx
jne 0x475b91
fstp st(0)
cmp dword [esp + 0x18], 3
jle 0x475926
cmp edi, 0x7ffdffff
setg dl
cmp dword [esp + 0x24], 0x7ffdffff
setg al
cmp dl, al
jne 0x475926
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0056c340
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
jmp 0x475926
lea ecx, [edi - 0x80000000]
xor eax, eax
or ecx, esi
jne 0x475926
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, esi
jae 0x475926
jmp 0x475946
imul eax, ebp, 0x3e9
jmp 0x475a60
imul eax, ebp, 0x2eec
sub eax, 0x3c7c38
jmp 0x475a60
mov dword [esp + 0x5c], 0x50
mov dword [esp + 0x60], 0x78
mov dword [esp + 0x64], 0xf0
imul eax, dword [esp + ebp*4 - 0x5c0], 0x2eec
jmp 0x475a60
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
fild qword [esp + 0x18]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
jmp 0x47598e
cmp dword [esp + 0x30], eax
ja 0x475b5c
jmp 0x475b3a
mov dword [esp], 0x31e0
fstp qword [esp + 0x18]
call fcn.0056e410
mov dword [ebx + 0x20], eax
mov ebx, dword [ebp + 0xb4]
fld qword [esp + 0x18]
mov eax, dword [ebx + 0x20]
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x4759cb
fstp st(0)
mov eax, 0xfffffff4
jmp 0x47592d