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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x168
mov eax, dword [0x766480]
xor eax, esp
mov dword [esp + 0x164], eax
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], edi
cmp dword [esi + 0x1138], 0
je 0x604aee
mov eax, dword [edi]
lea ecx, [esp + 0xc0]
push ecx
push 0x100
push edi
call dword [eax + 0x98]
mov eax, dword [edi]
lea ecx, [esp + 0x128]
push ecx
push 2
push edi
call dword [eax + 0x98]
mov eax, dword [edi]
push 3
push 0x16
push edi
call dword [eax + 0xc8]
mov eax, dword [edi]
push 1
push 0
push edi
call dword [eax + 0xb8]
mov eax, dword [edi]
push 0xf8f0b4
push 0
push edi
call dword [eax + 0xb0]
cmp dword [0x747940], 0
je 0x6044f5
mov eax, dword [edi]
push 1
push 0x97
push edi
call dword [eax + 0xc8]
movss xmm0, dword [0x70196c]
movaps xmmword [esp + 0x110], xmm0
movss xmm0, dword [esi + 0xac]
cvtps2pd xmm0, xmm0
mov dword [esp + 0x10c], 0x3f800000
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movaps xmm1, xmmword [esp + 0x110]
sub esp, 0x10
mov eax, dword [esp + 0x11c]
mov ecx, esp
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x711e48]
movss dword [esp + 0xc], xmm0
xorps xmm0, xmm0
unpcklps xmm1, xmm0
movq qword [ecx], xmm1
mov dword [ecx + 8], eax
lea ecx, [esp + 0x50]
call fcn.0065ec40
movss xmm1, dword [0x7110e4]
xor ecx, ecx
mov dword [esi + 0x1140], 0
mov dword [esp + 0x14], ecx
nop dword [eax]
mov dword [esp + 0x2c], 0
lea edx, [ecx*4]
mov edi, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
nop dword [eax]
mov cl, byte [esi + eax + 0xb0]
cmp cl, 0xff
je 0x6047c3
movd xmm0, dword [esp + 0x14]
and cl, 0x3f
mov eax, dword [esi + 0x1134]
cvtdq2ps xmm0, xmm0
mov byte [esp + 0xf], cl
lea ecx, [esp + 0x80]
mulss xmm0, xmm1
addss xmm0, dword [esp + 0xf0]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [edx + eax]
lea eax, [esp + 0x20]
movss dword [esp + 0x24], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push eax
mulss xmm0, xmm1
addss xmm0, dword [esp + 0xfc]
movss dword [esp + 0x2c], xmm0
call fcn.0065ee30
movups xmm0, xmmword [esp + 0x80]
movzx ecx, byte [esp + 0xf]
movups xmmword [esi + 0x1c], xmm0
movups xmm0, xmmword [esp + 0x90]
movups xmmword [esi + 0x2c], xmm0
movups xmm0, xmmword [esp + 0xa0]
movups xmmword [esi + 0x3c], xmm0
movups xmm0, xmmword [esp + 0xb0]
movups xmmword [esi + 0x4c], xmm0
movss xmm1, dword [esi + 0x50]
subss xmm1, dword [0x7012b4]
movss xmm0, dword [esi + 0x4c]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esi + 0x54]
movss dword [esp + 0x78], xmm0
movss dword [esi + 0x50], xmm1
mov eax, dword [ecx*4 + 0x130f320]
movss dword [esp + 0x74], xmm1
movq xmm0, qword [eax + 0x22c]
movq qword [esi + 0x10], xmm0
mov eax, dword [eax + 0x234]
mov dword [esi + 0x18], eax
mov eax, dword [ecx*4 + 0x130f320]
movq xmm0, qword [eax + 0x220]
movq qword [esi + 4], xmm0
mov eax, dword [eax + 0x228]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
mov cl, byte [esi + eax + 0xb0]
test cl, cl
jns 0x604698
mov ecx, esi
call fcn.005f4440
test al, al
je 0x6047b7
movss xmm0, dword [esp + 0x20]
lea eax, [esp + 0x128]
movss dword [esp + 0x110], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x114], xmm0
movss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x11c], xmm0
lea eax, [esp + 0x114]
jmp 0x6046ec
test cl, 0x40
je 0x6047bb
mov ecx, esi
call fcn.005f4440
test al, al
je 0x6047b7
movss xmm0, dword [esp + 0x20]
lea eax, [esp + 0x128]
movss dword [esp + 0x104], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x108], xmm0
movss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x110], xmm0
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00402d1a
imul ecx, dword [esi + 0x1140], 0x8c
mov eax, dword [esi + 0x113c]
movss xmm0, dword [esp + 0x38]
mov dl, byte [esp + 0xf]
movss dword [ecx + eax + 4], xmm0
imul ecx, dword [esi + 0x1140], 0x8c
mov eax, dword [esi + 0x113c]
movups xmm0, xmmword [esp + 0x40]
movups xmmword [ecx + eax + 8], xmm0
movups xmm0, xmmword [esp + 0x50]
movups xmmword [ecx + eax + 0x18], xmm0
movups xmm0, xmmword [esp + 0x60]
movups xmmword [ecx + eax + 0x28], xmm0
movups xmm0, xmmword [esp + 0x70]
movups xmmword [ecx + eax + 0x38], xmm0
mov eax, dword [esi + 0x113c]
imul ecx, dword [esi + 0x1140], 0x8c
movups xmm0, xmmword [esi + 0x1c]
movups xmmword [ecx + eax + 0x48], xmm0
movups xmm0, xmmword [esi + 0x2c]
movups xmmword [ecx + eax + 0x58], xmm0
movups xmm0, xmmword [esi + 0x3c]
movups xmmword [ecx + eax + 0x68], xmm0
movups xmm0, xmmword [esi + 0x4c]
movups xmmword [ecx + eax + 0x78], xmm0
mov eax, dword [esi + 0x113c]
imul ecx, dword [esi + 0x1140], 0x8c
mov byte [ecx + eax + 0x88], dl
imul ecx, dword [esi + 0x1140], 0x8c
mov eax, dword [esi + 0x113c]
mov edx, dword [esp + 0x10]
mov dword [ecx + eax], edx
inc dword [esi + 0x1140]
mov eax, dword [esp + 0x10]
movss xmm1, dword [0x7110e4]
add dword [esp + 0x18], 0x104
inc edi
mov edx, dword [esp + 0x18]
add eax, 0x41
mov dword [esp + 0x10], eax
cmp edi, 0x41
jl 0x604530
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x41
jl 0x604510
push 0x5da050
push 0x8c
push dword [esi + 0x1140]
push dword [esi + 0x113c]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
mov edi, dword [esp + 0x2c]
add esp, 0x10
cmp dword [esi + 0x1140], 0
mov dword [esp + 0x14], 0
jle 0x604aa9
xor eax, eax
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x113c]
mov eax, dword [ecx + eax]
mov al, byte [eax + esi + 0xb0]
test al, al
jns 0x604991
cmp byte [0x743ce9], 0
mov byte [esp + 0xf], 0
je 0x6048fa
movss xmm1, dword [0xf897c4]
movss xmm2, dword [0xf897c8]
subss xmm2, dword [esi + 0x50]
subss xmm1, dword [esi + 0x4c]
movss xmm0, dword [0xf897cc]
subss xmm0, dword [esi + 0x54]
mov dword [esp + 0x1c], ecx
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x6048ab
sqrtsd xmm0, xmm0
jmp 0x6048b0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0xf897dc]
addss xmm0, dword [0x700e28]
comiss xmm0, xmm1
jb 0x6048f6
mov eax, dword [edi]
push 0xf89790
push 1
push edi
call dword [eax + 0xb0]
mov eax, dword [edi]
push 1
push 1
push edi
call dword [eax + 0xb8]
mov ecx, dword [esi + 0x113c]
mov byte [esp + 0xf], 1
jmp 0x6048fa
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0x48
add ecx, eax
cmp dword [0x747940], 0
mov eax, dword [edi]
push ecx
mov eax, dword [eax + 0x94]
je 0x60493d
push 0x101
push edi
call eax
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x113c]
add edx, 8
mov ecx, dword [edi]
add eax, edx
push eax
push 0x100
push edi
call dword [ecx + 0x94]
jmp 0x604945
push 0x100
push edi
call eax
mov eax, dword [edi]
push 0xaa
push 0x18
push edi
call dword [eax + 0xc8]
mov eax, dword [esi + 0x113c]
mov ecx, dword [esp + 0x10]
push edi
movzx ecx, byte [ecx + eax + 0x88]
mov ecx, dword [ecx*4 + 0x130f320]
call fcn.005e8000
cmp byte [esp + 0xf], 1
jne 0x604a87
mov eax, dword [edi]
push 0
push 1
push edi
call dword [eax + 0xb8]
jmp 0x604a87
test al, 0x40
je 0x604a87
mov eax, dword [esp + 0x10]
add eax, 0x48
add ecx, eax
cmp dword [0x747940], 0
mov eax, dword [edi]
push ecx
mov eax, dword [eax + 0x94]
je 0x6049dc
push 0x101
push edi
call eax
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x113c]
add edx, 8
mov ecx, dword [edi]
add eax, edx
push eax
push 0x100
push edi
call dword [ecx + 0x94]
jmp 0x6049e4
push 0x100
push edi
call eax
mov eax, dword [edi]
push 0x50
push 0x18
push edi
call dword [eax + 0xc8]
mov eax, dword [edi]
push 0
push 0xe
push edi
call dword [eax + 0xc8]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x113c]
movzx eax, byte [ecx + eax + 0x88]
mov ecx, dword [eax*4 + 0x130f398]
test ecx, ecx
je 0x604a21
push edi
call fcn.005e8000
cmp dword [0x131f0f0], 0
je 0x604a7a
mov eax, dword [edi]
push 1
push 0xe
push edi
call dword [eax + 0xc8]
mov eax, dword [edi]
push 0
push 0xa8
push edi
call dword [eax + 0xc8]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x113c]
movzx eax, byte [ecx + eax + 0x88]
mov ecx, dword [eax*4 + 0x130f398]
test ecx, ecx
je 0x604a6a
push edi
call fcn.005e8000
mov eax, dword [edi]
push 7
push 0xa8
push edi
call dword [eax + 0xc8]
mov eax, dword [edi]
push 1
push 0xe
push edi
call dword [eax + 0xc8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc ecx
add eax, 0x8c
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
cmp ecx, dword [esi + 0x1140]
jl 0x604830
mov eax, dword [edi]
push 0xee
push 0x18
push edi
call dword [eax + 0xc8]
mov eax, dword [edi]
push 2
push 0x11
push 0
push edi
call dword [eax + 0xfc]
mov eax, dword [edi]
lea ecx, [esp + 0xc0]
push ecx
push 0x100
push edi
call dword [eax + 0x94]
mov eax, dword [edi]
push 0
push 0x97
push edi
call dword [eax + 0xc8]
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
xor ecx, esp
call fcn.006dfb52
mov esp, ebp
pop ebp
ret 4