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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x44
mov ebx, eax
mov dword [esp], edx
mov ebp, ecx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x58], 1
je 0x424a7b
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x74]
push eax
push 1
push dword [esp + 0x70]
push dword [esp + 0x6c]
push dword [esp + 0x70]
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x4c]
mov eax, ebx
call fcn.00416f68
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x60]
fld dword [0x446f84]
fld st(0)
fimul dword [esp + 0x50]
fstp dword [esp + 0x28]
fimul dword [esp + 0x54]
add esp, 0x20
cmp dword [esp + 0x58], 2
je 0x424923
mov eax, dword [esp + 0x5c]
mov ecx, eax
sub ecx, esi
mov esi, ecx
shr esi, 0x1f
add esi, ecx
sar esi, 1
cmp esi, eax
cmovg esi, eax
xor ecx, ecx
test esi, esi
cmovs esi, ecx
sub eax, esi
mov dword [esp + 4], eax
mov edi, dword [ebx + 0x20]
sub edi, edx
mov dword [ebx + 0x20], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
mov edx, eax
movzx ecx, byte [esp + 0x60]
sar edx, cl
mov dword [esp + 0x14], edx
mov edx, dword [esp + 4]
cmp esi, edx
jl 0x42488b
fstp dword [esp + 0x1c]
push eax
push dword [esp + 0x74]
push 0x3f800000
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
push esi
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
mov eax, ebx
call fcn.00423f30
mov dword [esp + 0x38], eax
sub edi, dword [ebx + 0x20]
sub esi, edi
add esp, 0x20
cmp esi, 0x18
fld dword [esp + 0x1c]
jle 0x42475e
mov eax, dword [esp + 0xc]
test eax, eax
je 0x42475e
sub esi, 0x18
add dword [esp + 4], esi
push dword [esp + 0x14]
push 0
sub esp, 4
fstp dword [esp]
push 0
push dword [esp + 0x78]
push 0
push dword [esp + 0x78]
push dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
mov edx, ebp
mov eax, ebx
call fcn.00423f30
mov edi, dword [esp + 0x38]
or edi, eax
mov eax, edi
add esp, 0x20
mov edi, dword [ebx + 4]
test edi, edi
je 0x424883
mov dword [esp + 4], eax
mov edx, dword [ebx + 0x2c]
fldz
fst dword [esp + 0x24]
fstp dword [esp + 0x28]
and edx, 7
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x28]
push ecx
push dword [esp + 0x60]
push ebp
push dword [esp + 0x10]
push ebp
call dword [edx*4 + 0x4487a0]
fld dword [esp + 0x20]
fld dword [esp + 0x3c]
fmul st(1)
fst dword [esp + 0x3c]
fld st(1)
fmulp st(2)
fxch st(1)
fadd dword [esp + 0x40]
fxch st(1)
fadd st(0)
fld st(1)
fsub st(1)
fxch st(2)
faddp st(1)
add esp, 0x18
fld dword [0x446fc0]
fcomi st(1)
mov eax, dword [esp + 4]
ja 0x424ab1
fcompi st(2)
fldz
ja 0x424ab9
fucompi st(2)
ja 0x424b87
fxch st(1)
fsqrt
fdivr dword [0x446f70]
fldz
fucompi st(2)
ja 0x424b66
fxch st(1)
fsqrt
fdivr dword [0x446f70]
mov esi, dword [esp + 0x58]
test esi, esi
jle 0x42487f
mov ecx, dword [esp]
mov ebx, ebp
mov edx, dword [esp + 0x58]
add edx, edx
lea esi, [edx + edx]
add esi, ecx
fld dword [esp + 8]
fmul dword [ecx]
fld dword [ebx]
fld st(1)
fsub st(1)
fmul st(4)
fstp dword [ecx]
faddp st(1)
fmul st(1)
fstp dword [ebx]
add ecx, 4
add ebx, 4
cmp esi, ecx
jne 0x42484d
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x424a60
jmp 0x424883
fstp st(0)
fstp st(0)
add esp, 0x44
pop ebx
pop esi
pop edi
pop ebp
ret
push dword [esp + 0x14]
push 0
sub esp, 4
fstp dword [esp]
push 0
push dword [esp + 0x78]
push 0
push dword [esp + 0x78]
push dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
mov edx, ebp
mov eax, ebx
call fcn.00423f30
mov dword [esp + 0x34], eax
sub edi, dword [ebx + 0x20]
mov eax, dword [esp + 0x24]
sub eax, edi
add esp, 0x20
cmp eax, 0x18
jle 0x4248d8
cmp dword [esp + 0xc], 0x4000
je 0x4248d8
sub eax, 0x18
add esi, eax
push dword [esp + 0x18]
push dword [esp + 0x74]
push 0x3f800000
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
push esi
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
mov eax, ebx
call fcn.00423f30
mov esi, dword [esp + 0x34]
or esi, eax
mov eax, esi
add esp, 0x20
mov esi, dword [ebx + 4]
test esi, esi
jne 0x42479d
add esp, 0x44
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, eax
xor eax, eax
test edi, 0xffffbfff
setne al
add eax, eax
add eax, eax
add eax, eax
mov ecx, dword [esp + 0x5c]
sub ecx, eax
add edx, eax
sub dword [ebx + 0x20], edx
cmp edi, 0x2000
jg 0x424a8f
mov edi, dword [esp]
mov esi, ebp
test eax, eax
je 0x424a9c
mov eax, dword [esp + 4]
test eax, eax
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x1c]
je 0x424b15
fld dword [edi]
fmul dword [esi + 4]
fld dword [edi + 4]
fmul dword [esi]
fsubp st(1)
push 1
fldz
xor eax, eax
fcompi st(1)
fstp st(0)
seta al
push eax
mov dword [esp + 0xc], eax
push dword [esp + 0x1c]
call fcn.00418944
add esp, 0xc
mov eax, dword [esp + 4]
lea edx, [eax + eax]
lea eax, [edx - 1]
mov dword [esp + 4], eax
mov eax, 1
sub eax, edx
mov dword [esp + 0xc], eax
fld dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
fstp dword [esp + 0x14]
push dword [esp + 0x18]
push dword [esp + 0x74]
push 0x3f800000
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
push ecx
mov ecx, 2
mov edx, edi
mov eax, ebx
call fcn.00423f30
fild dword [esp + 0x24]
fmul dword [edi + 4]
fstp dword [esi]
fild dword [esp + 0x2c]
fmul dword [edi]
fstp dword [esi + 4]
add esp, 0x20
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x424883
mov edi, dword [esp]
fld dword [esp + 8]
fld dword [edi]
fmul st(1)
fstp dword [edi]
fmul dword [edi + 4]
fstp dword [edi + 4]
fld dword [esp + 0x14]
fld dword [ebp]
fmul st(1)
fst dword [ebp]
fxch st(1)
fmul dword [ebp + 4]
fstp dword [ebp + 4]
fld dword [edi]
fsubr st(1), st(0)
fxch st(1)
fstp dword [edi]
fadd dword [ebp]
fstp dword [ebp]
fld dword [edi + 4]
fld dword [ebp + 4]
fsubr st(1)
fstp dword [edi + 4]
fadd dword [ebp + 4]
fstp dword [ebp + 4]
mov edx, 4
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x424883
mov ecx, ebp
add edx, edx
add edx, ebp
fld dword [ecx]
fchs
fstp dword [ecx]
add ecx, 4
cmp ecx, edx
jne 0x424a66
add esp, 0x44
pop ebx
pop esi
pop edi
pop ebp
ret
push dword [esp + 0x6c]
mov eax, ebx
call fcn.00424560
pop edx
add esp, 0x44
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, ebp
mov esi, dword [esp]
test eax, eax
jne 0x42495a
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0xffffffff
jmp 0x4249b9
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x424abf
fstp st(0)
fstp st(0)
fstp st(0)
mov edx, dword [esp + 0x58]
add edx, edx
lea ebx, [edx + edx]
mov edi, ebp
mov esi, dword [esp]
cmp ebx, 4
jae 0x424afc
test bl, 2
je 0x424ad9
movsw word es:[edi], word [esi]
and ebx, 1
je 0x424adf
movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x424883
mov ecx, dword [esp + 0x58]
test ecx, ecx
jg 0x424a60
jmp 0x424883
test ebp, 1
jne 0x424b44
test edi, 2
jne 0x424b55
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x424ad2
push 1
push dword [esp + 0x18]
call fcn.00418544
lea edx, [eax + eax]
lea eax, [edx - 1]
mov dword [esp + 0xc], eax
mov eax, 1
sub eax, edx
mov dword [esp + 0x14], eax
pop eax
pop edx
fld dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
jmp 0x4249b9
movzx ecx, byte [esi]
mov byte [ebp], cl
lea edi, [ebp + 1]
add esi, 1
sub ebx, 1
jmp 0x424b04
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub ebx, 2
jmp 0x424b0c
mov dword [esp + 0xc], eax
fstp dword [esp + 4]
push edi
fstp dword [esp]
call fcn.0043f188
pop eax
mov eax, dword [esp + 0xc]
fld dword [esp + 4]
fxch st(1)
jmp 0x42482f
mov dword [esp + 0xc], eax
fstp dword [esp + 4]
push eax
fstp dword [esp]
call fcn.0043f188
pop eax
mov eax, dword [esp + 0xc]
fld dword [esp + 4]
fxch st(1)
jmp 0x42481b