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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x64
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
mov eax, dword [0x4520e4]
mov dword [esp + 0x44], eax
mov eax, edi
shr eax, 0x1f
add eax, edi
mov ebp, eax
sar ebp, 1
mov dword [esp + 0x40], ebp
mov edx, dword [esp + 0x80]
shr edx, 0x1f
add edx, dword [esp + 0x80]
sar edx, 1
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
mov ecx, esi
shr ecx, 0x1f
add ecx, esi
sar ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, ebx
shr ecx, 0x1f
add ecx, ebx
sar ecx, 1
mov dword [esp + 0xc], ecx
and eax, 0xfffffffe
add eax, eax
mov esi, dword [esp + 0x78]
add esi, eax
cmp edx, ebp
jge 0x425fd4
lea ecx, [edx + 1]
mov dword [esp + 8], edx
mov dword [esp], ecx
mov ebx, dword [esp + 0x88]
mov dword [ebx], edx
mov ebx, dword [esp + 0x44]
mov ebp, ebx
neg ebp
and ebp, 3
add ebp, ebx
add eax, 4
add eax, ebp
mov dword [0x4520e4], eax
mov eax, dword [esp + 0x94]
and eax, 7
mov dword [esp + 0x48], eax
mov ecx, dword [eax*4 + 0x4491e0]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 8]
add eax, eax
mov dword [esp + 0x18], eax
lea ebx, [eax + eax]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x14]
mov eax, esi
sub eax, ebx
push eax
push esi
push esi
call ecx
fld dword [esp + 0x68]
fst dword [ebp]
add esp, 0x18
lea edx, [esi - 4]
mov eax, 1
cmp edi, 1
mov ecx, dword [esp]
jle 0x425cb3
mov dword [esp], esi
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0xc]
fld dword [edx]
fmul st(0)
faddp st(1)
fld dword [edx + edi*4]
fmul st(0)
fsubp st(1)
fldz
fcomi st(1)
fcmovbe st(0), st(1)
fstp dword [ebp + eax*4]
add eax, 1
sub edx, 4
cmp esi, eax
jge 0x425c8b
fstp st(0)
mov esi, dword [esp]
jmp 0x425cb5
fstp st(0)
fld dword [ebp + ebx]
fld st(0)
fstp dword [esp + 0x30]
fld dword [esp + 0x4c]
fxch st(1)
fmul dword [esp + 0x50]
fadd dword [0x447a80]
fldz
fucompi st(1)
ja 0x426018
fsqrt
fdivr st(1)
mov eax, dword [esp + 0x18]
add ecx, ecx
shr ecx, 2
mov edi, ecx
mov ebx, dword [esp + 0x14]
cmp ebx, ecx
jg 0x425fe4
mov eax, ebx
lea ebx, [ebx + ebx]
mov dword [esp + 0x3c], ebx
add eax, ebx
mov dword [esp + 0x24], eax
fst dword [esp + 0x34]
fxch st(1)
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], eax
mov ebx, 2
mov dword [esp + 0x28], ebp
fstp dword [esp + 0x38]
fstp dword [esp + 0x10]
jmp 0x425d89
fstp st(0)
fmul dword [0x447ab4]
fsubrp st(1)
fld dword [0x447ab0]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fxch st(1)
jmp 0x425d42
fstp st(1)
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x425d5c
fxch st(2)
fstp dword [esp + 0x30]
fstp dword [esp + 0x38]
fstp dword [esp + 0x34]
mov dword [esp + 0x2c], edi
jmp 0x425d62
fstp st(0)
fstp st(0)
fstp st(0)
add ebx, 1
cmp ebx, 0x10
je 0x425ed2
mov eax, dword [esp + 0x18]
add eax, ebx
add ebp, 2
xor edx, edx
div ebp
mov ecx, eax
mov edi, eax
cmp dword [esp + 0x14], eax
jg 0x425ed2
lea ebp, [ebx + ebx]
cmp ebx, 2
je 0x425ebb
mov eax, dword [esp + 8]
imul eax, dword [ebx*4 + 0x44eb20]
add eax, eax
add eax, ebx
xor edx, edx
div ebp
neg eax
add eax, eax
add eax, eax
neg ecx
add ecx, ecx
add ecx, ecx
lea edx, [esp + 0x54]
push edx
lea edx, [esp + 0x50]
push edx
push dword [esp + 0x14]
lea edx, [esi + eax]
mov dword [esp + 0x10], eax
push edx
lea edx, [esi + ecx]
mov dword [esp + 0x10], ecx
push edx
push esi
mov eax, dword [esp + 0x34]
call eax
fld dword [esp + 0x64]
fadd dword [esp + 0x6c]
fld dword [0x447a88]
fmul st(1), st(0)
fxch st(1)
fst dword [esp + 0x64]
mov eax, dword [esp + 0x40]
mov edx, eax
mov ecx, dword [esp + 0x18]
sub edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
fld dword [edx]
fadd dword [ecx]
fmulp st(2)
fld dword [esp + 0x68]
fmul st(2)
fadd dword [0x447a80]
add esp, 0x18
fldz
fucompi st(1)
ja 0x425ff5
fsqrt
fdivr st(1)
mov eax, edi
mov ecx, dword [esp + 0x20]
sub eax, ecx
lea edx, [eax + 1]
fld dword [esp + 0x90]
cmp edx, 2
jbe 0x425e60
add eax, 2
cmp eax, 4
ja 0x425eb1
mov edx, ebx
imul edx, ebx
lea eax, [edx + edx]
add eax, eax
add eax, edx
mov ecx, dword [esp + 8]
cmp eax, ecx
jge 0x425eb5
fmul dword [0x447a88]
fld dword [esp + 0x10]
fld dword [0x447aa8]
fmul st(1)
fsub st(2)
fld dword [0x447aac]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
cmp dword [esp + 0x24], edi
jg 0x425d24
fstp st(1)
cmp dword [esp + 0x3c], edi
jle 0x425d3e
fstp st(0)
fld dword [esp + 0x10]
fmul dword [0x447aa0]
fsubrp st(1)
fld dword [0x447a88]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fxch st(1)
jmp 0x425d42
fstp st(0)
jmp 0x425eb7
fstp st(0)
fldz
jmp 0x425e60
mov edx, dword [esp + 8]
lea eax, [edi + edx]
mov edx, dword [esp + 0x40]
cmp eax, edx
cmovg eax, dword [esp + 8]
jmp 0x425da9
fld dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
add eax, eax
fldz
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fld dword [esp + 0x30]
fxch st(1)
fcomi st(1)
jae 0x425fc9
fxch st(1)
fadd dword [0x447a80]
fdivp st(1)
mov edi, dword [esp + 0x48]
mov ebx, dword [edi*4 + 0x447d60]
mov edi, 1
mov ecx, dword [esp + 0x2c]
sub edi, ecx
add edi, edi
add edi, edi
add edi, esi
lea ebp, [esp + 0x58]
fstp dword [esp]
mov dword [esp + 4], eax
push dword [esp + 0xc]
push edi
push esi
call ebx
fstp dword [ebp]
sub edi, 4
add ebp, 4
add esp, 0xc
lea eax, [esp + 0x64]
cmp ebp, eax
jne 0x425f23
fld dword [esp]
mov eax, dword [esp + 4]
fld dword [esp + 0x60]
fld dword [esp + 0x58]
fld dword [esp + 0x5c]
fld st(2)
fsub st(2)
fld st(1)
fsub st(3)
fld dword [0x447aa8]
fmul st(1), st(0)
fxch st(2)
mov edx, 1
fcompi st(1)
fstp st(0)
ja 0x425f8a
fxch st(2)
fsub st(3)
fxch st(1)
fsubrp st(3)
fxch st(2)
fmulp st(1)
fxch st(1)
xor edx, edx
fcompi st(1)
fstp st(0)
seta dl
neg edx
jmp 0x425f92
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [esp + 0x34]
fxch st(1)
fcomi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
add eax, edx
cmp eax, dword [esp + 0x80]
cmovl eax, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
mov dword [esi], eax
mov eax, dword [esp + 0x44]
mov dword [0x4520e4], eax
add esp, 0x64
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
fstp st(0)
fld1
jmp 0x425efc
mov ecx, dword [esp + 0x40]
lea edx, [ecx - 1]
mov dword [esp + 8], edx
jmp 0x425c06
fstp dword [esp + 0x34]
mov edi, dword [esp + 8]
mov dword [esp + 0x2c], edi
jmp 0x425edc
fxch st(2)
fstp dword [esp + 4]
fstp dword [esp]
sub esp, 4
fstp dword [esp]
call fcn.0043ecc8
pop eax
fld dword [esp]
fld dword [esp + 4]
fxch st(2)
jmp 0x425e25
fxch st(1)
mov dword [esp + 4], ecx
fstp dword [esp]
push edx
fstp dword [esp]
call fcn.0043ecc8
pop ecx
mov ecx, dword [esp + 4]
fld dword [esp]
fxch st(1)
jmp 0x425cdb