Function at 0x42416c
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 0x4245bb
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.00416ba8
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 [0x4479c4]
fld st(0)
fimul dword [esp + 0x50]
fstp dword [esp + 0x28]
fimul dword [esp + 0x54]
add esp, 0x20
cmp dword [esp + 0x58], 2
je 0x424463
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 0x4243cb
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.00423a70
mov dword [esp + 0x38], eax
sub edi, dword [ebx + 0x20]
sub esi, edi
add esp, 0x20
cmp esi, 0x18
fld dword [esp + 0x1c]
jle 0x42429e
mov eax, dword [esp + 0xc]
test eax, eax
je 0x42429e
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.00423a70
mov edi, dword [esp + 0x38]
or edi, eax
mov eax, edi
add esp, 0x20
mov edi, dword [ebx + 4]
test edi, edi
je 0x4243c3
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 + 0x4491e0]
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 [0x447a00]
fcomi st(1)
mov eax, dword [esp + 4]
ja 0x4245f1
fcompi st(2)
fldz
ja 0x4245f9
fucompi st(2)
ja 0x4246c7
fxch st(1)
fsqrt
fdivr dword [0x4479b0]
fldz
fucompi st(2)
ja 0x4246a6
fxch st(1)
fsqrt
fdivr dword [0x4479b0]
mov esi, dword [esp + 0x58]
test esi, esi
jle 0x4243bf
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 0x42438d
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x4245a0
jmp 0x4243c3
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.00423a70
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 0x424418
cmp dword [esp + 0xc], 0x4000
je 0x424418
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.00423a70
mov esi, dword [esp + 0x34]
or esi, eax
mov eax, esi
add esp, 0x20
mov esi, dword [ebx + 4]
test esi, esi
jne 0x4242dd
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 0x4245cf
mov edi, dword [esp]
mov esi, ebp
test eax, eax
je 0x4245dc
mov eax, dword [esp + 4]
test eax, eax
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x1c]
je 0x424655
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.00418484
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.00423a70
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 0x4243c3
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 0x4243c3
mov ecx, ebp
add edx, edx
add edx, ebp
fld dword [ecx]
fchs
fstp dword [ecx]
add ecx, 4
cmp ecx, edx
jne 0x4245a6
add esp, 0x44
pop ebx
pop esi
pop edi
pop ebp
ret
push dword [esp + 0x6c]
mov eax, ebx
call fcn.004240a0
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 0x42449a
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0xffffffff
jmp 0x4244f9
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x4245ff
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 0x42463c
test bl, 2
je 0x424619
movsw word es:[edi], word [esi]
and ebx, 1
je 0x42461f
movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4243c3
mov ecx, dword [esp + 0x58]
test ecx, ecx
jg 0x4245a0
jmp 0x4243c3
test ebp, 1
jne 0x424684
test edi, 2
jne 0x424695
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x424612
push 1
push dword [esp + 0x18]
call fcn.00418084
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 0x4244f9
movzx ecx, byte [esi]
mov byte [ebp], cl
lea edi, [ebp + 1]
add esi, 1
sub ebx, 1
jmp 0x424644
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub ebx, 2
jmp 0x42464c
mov dword [esp + 0xc], eax
fstp dword [esp + 4]
push edi
fstp dword [esp]
call fcn.0043ecc8
pop eax
mov eax, dword [esp + 0xc]
fld dword [esp + 4]
fxch st(1)
jmp 0x42436f
mov dword [esp + 0xc], eax
fstp dword [esp + 4]
push eax
fstp dword [esp]
call fcn.0043ecc8
pop eax
mov eax, dword [esp + 0xc]
fld dword [esp + 4]
fxch st(1)
jmp 0x42435b