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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov esi, esp
mov eax, dword [0x42e0c0]
xor eax, ebp
mov dword [esi + 0x78], eax
cmp dword [0x42e2d8], 0xa
jl 0x4046a2
mov eax, dword [0x42e2dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4046a2
nop word cs:[eax + eax]
jmp 0x4046a0
movss xmm0, dword [ebp + 8]
push eax
mov ecx, esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x10], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x30], edx
mov esp, edx
mov dword [esi + 0x14], ecx
movss dword [ecx], xmm0
cmp dword [0x42e2e0], 0xa
jl 0x404702
mov ecx, dword [0x42e2e4]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x404702
nop word cs:[eax + eax]
jmp 0x404700
mov ecx, 0x1f3eef7f
mov edx, 0xa14c4038
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], ecx
mov edi, 0xcf88e4d4
mov ebx, 0xa0fef8b1
mov ecx, 0xa14c4038
mov edx, 0x1f0bc14f
mov dword [esi + 0xc], edx
mov dword [esi + 0x1c], ecx
lea edx, [esi + 0x60]
xor ecx, ecx
mov dword [esi + 0x34], edx
mov dword [esi + 8], edi
mov dword [esi + 0x18], ebx
nop word [eax + eax]
mov ecx, dword [esi + 0x2c]
mov dword [eax], ecx
mov ecx, dword [esi + 0x28]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x64], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x60], ecx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x68], edi
movaps xmm0, xmmword [eax]
mov ecx, dword [esi + 0x34]
xorps xmm0, xmmword [ecx]
movaps xmmword [eax], xmm0
push 0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtof]
add esp, 8
fstp dword [esi + 0x4c]
movss xmm0, dword [esi + 0x4c]
mov eax, dword [esi + 0x14]
mov ebx, dword [eax]
cmp dword [0x42e2e8], 0xa
jl 0x4047a5
mov eax, dword [0x42e2ec]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4049f0
mov eax, 0x907f760c
mov ecx, 0x2832f47e
mov edx, dword [esi + 0x10]
mov dword [edx + 4], eax
mov eax, 0xa0fef8b1
mov dword [edx], ecx
mov ecx, 0xcf88d0e3
mov dword [edx + 0xc], eax
mov dword [edx + 8], ecx
xor eax, eax
lea ecx, [esi + 0x60]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x60], eax
mov edi, dword [esi + 0x18]
mov dword [esi + 0x6c], edi
mov eax, dword [esi + 8]
mov dword [esi + 0x68], eax
movss dword [esi + 0x40], xmm0
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
sar ebx, 1
sub eax, ebx
mov ebx, edi
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov edx, 0xa14c4038
mov eax, 0x1f3eef7e
lea edi, [esi + 0x60]
xor ecx, ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x38], edx
mov dword [ecx + 4], edx
mov dword [esi + 0x3c], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], ebx
mov edx, dword [esi + 8]
mov dword [ecx + 8], edx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x60], eax
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x68], edx
movaps xmm0, xmmword [ecx]
xorps xmm0, xmmword [edi]
movaps xmmword [ecx], xmm0
push 0
push ecx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtof]
add esp, 8
fstp dword [esi + 0x48]
movss xmm0, dword [esi + 0x48]
movss xmm1, dword [esi + 0x40]
mulss xmm1, dword [ebp + 8]
movss xmm2, dword [esi + 0x10]
mulss xmm1, xmm2
mulss xmm1, xmm2
subss xmm0, xmm1
mulss xmm0, xmm2
mov eax, dword [esi + 0x14]
movss dword [eax], xmm0
cmp dword [0x42e2d8], 0xa
jl 0x404a12
mov eax, dword [0x42e2dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404a12
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0xc
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
cmp dword [0x42e2e0], 0xa
jl 0x4048da
mov ecx, dword [0x42e2e4]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x404a00
lea ecx, [esi + 0x60]
xor edx, edx
mov edx, dword [esi + 0x2c]
mov dword [eax], edx
mov edx, dword [esi + 0x28]
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ebx, dword [esi + 0x18]
mov dword [eax + 0xc], ebx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x64], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x60], edx
mov dword [esi + 0x6c], ebx
mov edx, dword [esi + 8]
mov dword [esi + 0x68], edx
movaps xmm0, xmmword [eax]
xorps xmm0, xmmword [ecx]
movaps xmmword [eax], xmm0
push 0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtof]
fstp st(0)
add esp, 8
cmp dword [0x42e2e8], 0xa
jl 0x40493f
mov eax, dword [0x42e2ec]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404a10
mov eax, dword [esi + 0x38]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [edi], eax
lea eax, [esi + 0x60]
xor ecx, ecx
mov ebx, dword [esi + 0x18]
mov dword [edi + 0xc], ebx
mov ecx, dword [esi + 8]
mov dword [edi + 8], ecx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x64], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x60], edx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x68], ecx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
push 0
push edi
mov edi, ecx
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtof]
call eax
fstp st(0)
add esp, 8
push eax
mov ecx, esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x10], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x30], edx
mov esp, edx
movss xmm0, dword [ebp + 8]
mov dword [esi + 0x14], ecx
movss dword [ecx], xmm0
cmp dword [0x42e2e0], 0xa
jl 0x404740
mov ecx, dword [0x42e2e4]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x404740
jmp 0x404700
jmp 0x4049f0
jmp 0x404a00
jmp 0x404a10
movss dword [esi + 0x44], xmm0
fld dword [esi + 0x44]
fstp xword [esi + 0x1c]
mov ecx, dword [esi + 0x78]
xor ecx, ebp
call fcn.0040dcad
fld xword [esi + 0x1c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret