Function at 0x42463c
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 0x424a8b
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.00416f78
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 [0x446714]
fld st(0)
fimul dword [esp + 0x50]
fstp dword [esp + 0x28]
fimul dword [esp + 0x54]
add esp, 0x20
cmp dword [esp + 0x58], 2
je 0x424933
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 0x42489b
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.00423f40
mov dword [esp + 0x38], eax
sub edi, dword [ebx + 0x20]
sub esi, edi
add esp, 0x20
cmp esi, 0x18
fld dword [esp + 0x1c]
jle 0x42476e
mov eax, dword [esp + 0xc]
test eax, eax
je 0x42476e
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.00423f40
mov edi, dword [esp + 0x38]
or edi, eax
mov eax, edi
add esp, 0x20
mov edi, dword [ebx + 4]
test edi, edi
je 0x424893
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 + 0x447f40]
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 [0x446750]
fcomi st(1)
mov eax, dword [esp + 4]
ja 0x424ac1
fcompi st(2)
fldz
ja 0x424ac9
fucompi st(2)
ja 0x424b97
fxch st(1)
fsqrt
fdivr dword [0x446700]
fldz
fucompi st(2)
ja 0x424b76
fxch st(1)
fsqrt
fdivr dword [0x446700]
mov esi, dword [esp + 0x58]
test esi, esi
jle 0x42488f
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 0x42485d
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x424a70
jmp 0x424893
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.00423f40
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 0x4248e8
cmp dword [esp + 0xc], 0x4000
je 0x4248e8
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.00423f40
mov esi, dword [esp + 0x34]
or esi, eax
mov eax, esi
add esp, 0x20
mov esi, dword [ebx + 4]
test esi, esi
jne 0x4247ad
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 0x424a9f
mov edi, dword [esp]
mov esi, ebp
test eax, eax
je 0x424aac
mov eax, dword [esp + 4]
test eax, eax
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x1c]
je 0x424b25
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.00418954
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.00423f40
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 0x424893
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 0x424893
mov ecx, ebp
add edx, edx
add edx, ebp
fld dword [ecx]
fchs
fstp dword [ecx]
add ecx, 4
cmp ecx, edx
jne 0x424a76
add esp, 0x44
pop ebx
pop esi
pop edi
pop ebp
ret
push dword [esp + 0x6c]
mov eax, ebx
call fcn.00424570
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 0x42496a
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0xffffffff
jmp 0x4249c9
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x424acf
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 0x424b0c
test bl, 2
je 0x424ae9
movsw word es:[edi], word [esi]
and ebx, 1
je 0x424aef
movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x424893
mov ecx, dword [esp + 0x58]
test ecx, ecx
jg 0x424a70
jmp 0x424893
test ebp, 1
jne 0x424b54
test edi, 2
jne 0x424b65
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x424ae2
push 1
push dword [esp + 0x18]
call fcn.00418554
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 0x4249c9
movzx ecx, byte [esi]
mov byte [ebp], cl
lea edi, [ebp + 1]
add esi, 1
sub ebx, 1
jmp 0x424b14
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub ebx, 2
jmp 0x424b1c
mov dword [esp + 0xc], eax
fstp dword [esp + 4]
push edi
fstp dword [esp]
call fcn.0043f198
pop eax
mov eax, dword [esp + 0xc]
fld dword [esp + 4]
fxch st(1)
jmp 0x42483f
mov dword [esp + 0xc], eax
fstp dword [esp + 4]
push eax
fstp dword [esp]
call fcn.0043f198
pop eax
mov eax, dword [esp + 0xc]
fld dword [esp + 4]
fxch st(1)
jmp 0x42482b