Function at 0x426038
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 [0x454120]
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 0x426494
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 [0x454120], eax
mov eax, dword [esp + 0x94]
and eax, 7
mov dword [esp + 0x48], eax
mov ecx, dword [eax*4 + 0x4487a0]
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 0x426173
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 0x42614b
fstp st(0)
mov esi, dword [esp]
jmp 0x426175
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 [0x447040]
fldz
fucompi st(1)
ja 0x4264d8
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 0x4264a4
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 0x426249
fstp st(0)
fmul dword [0x447074]
fsubrp st(1)
fld dword [0x447070]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fxch st(1)
jmp 0x426202
fstp st(1)
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x42621c
fxch st(2)
fstp dword [esp + 0x30]
fstp dword [esp + 0x38]
fstp dword [esp + 0x34]
mov dword [esp + 0x2c], edi
jmp 0x426222
fstp st(0)
fstp st(0)
fstp st(0)
add ebx, 1
cmp ebx, 0x10
je 0x426392
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 0x426392
lea ebp, [ebx + ebx]
cmp ebx, 2
je 0x42637b
mov eax, dword [esp + 8]
imul eax, dword [ebx*4 + 0x44e100]
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 [0x447048]
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 [0x447040]
add esp, 0x18
fldz
fucompi st(1)
ja 0x4264b5
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 0x426320
add eax, 2
cmp eax, 4
ja 0x426371
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 0x426375
fmul dword [0x447048]
fld dword [esp + 0x10]
fld dword [0x447068]
fmul st(1)
fsub st(2)
fld dword [0x44706c]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
cmp dword [esp + 0x24], edi
jg 0x4261e4
fstp st(1)
cmp dword [esp + 0x3c], edi
jle 0x4261fe
fstp st(0)
fld dword [esp + 0x10]
fmul dword [0x447060]
fsubrp st(1)
fld dword [0x447048]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fxch st(1)
jmp 0x426202
fstp st(0)
jmp 0x426377
fstp st(0)
fldz
jmp 0x426320
mov edx, dword [esp + 8]
lea eax, [edi + edx]
mov edx, dword [esp + 0x40]
cmp eax, edx
cmovg eax, dword [esp + 8]
jmp 0x426269
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 0x426489
fxch st(1)
fadd dword [0x447040]
fdivp st(1)
mov edi, dword [esp + 0x48]
mov ebx, dword [edi*4 + 0x447320]
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 0x4263e3
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 [0x447068]
fmul st(1), st(0)
fxch st(2)
mov edx, 1
fcompi st(1)
fstp st(0)
ja 0x42644a
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 0x426452
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 [0x454120], eax
add esp, 0x64
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
fstp st(0)
fld1
jmp 0x4263bc
mov ecx, dword [esp + 0x40]
lea edx, [ecx - 1]
mov dword [esp + 8], edx
jmp 0x4260c6
fstp dword [esp + 0x34]
mov edi, dword [esp + 8]
mov dword [esp + 0x2c], edi
jmp 0x42639c
fxch st(2)
fstp dword [esp + 4]
fstp dword [esp]
sub esp, 4
fstp dword [esp]
call fcn.0043f188
pop eax
fld dword [esp]
fld dword [esp + 4]
fxch st(2)
jmp 0x4262e5
fxch st(1)
mov dword [esp + 4], ecx
fstp dword [esp]
push edx
fstp dword [esp]
call fcn.0043f188
pop ecx
mov ecx, dword [esp + 4]
fld dword [esp]
fxch st(1)
jmp 0x42619b