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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x5c
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], eax
test al, al
jne 0x43f5d0
mov eax, dword [ecx + 0x30]
test eax, eax
jle 0x43f870
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x20], eax
sar eax, 0x1f
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], ecx
mov eax, ecx
test ecx, ecx
js 0x43f880
mov esi, dword [esp + 0x70]
sar eax, 0x1f
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x14]
test esi, esi
je 0x43f603
mov esi, 0x100000
xor edi, edi
cmp eax, 2
jle 0x43f820
fld dword [0x5a7ffc]
jmp 0x43f627
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], 0
mov esi, dword [esp + 0x70]
mov eax, dword [ebx + 0x14]
test esi, esi
jne 0x43f5b2
cmp eax, 2
jle 0x43f7b8
fld dword [0x5a8000]
mov ecx, dword [ebx + 0x20]
mov esi, 4
xor edi, edi
shl esi, cl
add esi, 0x100000
adc edi, 0
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], ecx
fild qword [esp + 0x18]
fmul st(1)
fld dword [0x5a8004]
fxch st(1)
fcomi st(1)
jae 0x43f7c8
fstp st(1)
fnstcw word [esp + 0x4e]
movzx eax, word [esp + 0x4e]
or ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp qword [esp + 0x18]
fldcw word [esp + 0x4e]
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], 0
adc edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], esi
add ecx, ecx
mov ebp, edi
mov dword [esp + 0x3c], edi
imul ebp, eax
mov eax, edx
mov dword [esp + 0x40], ecx
imul eax, esi
add ebp, eax
mov eax, dword [esp + 0x20]
mul esi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x28]
add edi, ebp
mov ebp, dword [esp + 0x2c]
mul ecx
imul ebp, ecx
mov ecx, dword [esp + 0x74]
add edx, ebp
add eax, esi
adc edx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
test ecx, ecx
je 0x43f800
mov eax, dword [esp + 0x74]
xor edx, edx
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x74], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov eax, edx
sbb eax, dword [esp + 0x1c]
jae 0x43f798
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x74], esi
sbb eax, edi
jae 0x43f830
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x74], edi
mov ecx, edx
mov eax, dword [esp + 0x20]
sbb ecx, ebp
jb 0x43f8a0
cmp byte [esp + 0x34], 0
jne 0x43f8c8
fstp st(0)
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004a1be0
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov edi, eax
mov dword [ebx + 0x30], eax
sar edi, 0x1f
mov edx, ebp
mov ecx, edi
mov edi, dword [esp + 0x38]
imul edx, eax
imul ecx, edi
add ecx, edx
mul edi
mov edi, dword [esp + 0x24]
add edx, ecx
sub esi, eax
mov eax, dword [esp + 0x40]
sbb edi, edx
mov edx, dword [esp + 0x44]
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
call fcn.004a1be0
cmp dword [esp + 0x48], eax
jg 0x43f910
jmp 0x43f7a8
fstp st(0)
jmp 0x43f7a8
fstp st(0)
lea esi, [esi]
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
fld dword [0x5a800c]
jmp 0x43f612
fnstcw word [esp + 0x4e]
fsubrp st(1)
movzx eax, word [esp + 0x4e]
or ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp qword [esp + 0x18]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x1c]
add eax, 0x80000000
mov dword [esp + 0x1c], eax
jmp 0x43f66b
fstp st(0)
mov ecx, 0xffffffff
xor ebx, ebx
cmp ecx, eax
sbb ebx, edx
cmovb eax, ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
fld dword [0x5a8000]
jmp 0x43f627
cmp byte [esp + 0x34], 0
jne 0x43f8c8
fstp st(0)
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
sub eax, esi
sbb edx, edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], edx
call fcn.004a1be0
mov dword [ebx + 0x34], eax
xor eax, eax
jmp 0x43f7aa
call fcn.00436a70
jmp 0x43f580
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x48], 2
jmp 0x43f5f8
cmp byte [esp + 0x34], 0
jne 0x43f8c8
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x30], 1
mov dword [ebx + 0x34], 0
test eax, eax
jne 0x43f7a0
lea esi, [esi]
fild qword [esp + 0x20]
fld dword [0x5a8008]
fsub st(1), st(0)
fxch st(1)
fcomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fdivrp st(1)
fld dword [0x5a8010]
fcompi st(1)
jbe 0x43f920
fldcw word [esp + 0x4c]
fistp qword [esp + 0x18]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x20], 0xf
jmp 0x43f7a8
mov dword [ebx + 0x34], eax
xor eax, eax
jmp 0x43f7aa
fstp st(0)
mov eax, 0x7ffe00
jmp 0x43f8f8