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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x228
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x224], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push esi
mov dword [esp + 0x48], eax
movzx ecx, byte [edx]
mov esi, dword [eax]
push edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x64], esi
lea eax, [ecx + edi]
cmp esi, eax
cmovb eax, esi
mov esi, ecx
sub eax, edi
movzx edi, byte [edx + 1]
sub esi, eax
movzx edx, byte [edx + 2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x60], edi
add edi, dword [ebp + 0x18]
mov dword [esp + 0x5c], esi
cmp dword [eax + 4], edi
cmovb edi, dword [eax + 4]
mov eax, dword [esp + 0x60]
sub eax, edi
mov dword [esp + 0x58], edi
add eax, dword [ebp + 0x18]
imul eax, ecx
mov ecx, dword [ebp + 0x1c]
add edx, ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
cmp dword [eax + 8], edx
cmovb edx, dword [eax + 8]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x10501f2f
cmp dword [edx + 4], 1
jne 0x10501f2f
cmp dword [edx + 8], 2
jne 0x10501f2f
cmp dword [edx + 0xc], 3
jne 0x10501f2f
mov byte [esp + 0x12], al
mov byte [esp + 0x13], al
jmp 0x10501f5c
mov byte [esp + 0x12], 1
cmp eax, 6
je 0x10501f57
cmp dword [edx + 4], 6
mov byte [esp + 0x12], 1
je 0x10501f57
cmp dword [edx + 8], 6
je 0x10501f57
cmp dword [edx + 0xc], 6
je 0x10501f57
mov byte [esp + 0x13], 0
jmp 0x10501f5c
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x4c]
xor esi, esi
mov dword [esp + 0x14], esi
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10502bc0
cmp ecx, dword [esp + 0x48]
jae 0x10503159
movaps xmm4, xmmword [0x109be560]
movss xmm3, dword [0x108fc6ec]
movss xmm1, dword [0x105fe8e4]
movss xmm2, dword [0x105f14d0]
nop word [eax + eax]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], eax
cmp eax, edi
jae 0x10502b93
nop dword [eax]
imul eax, dword [esp + 0x64]
add eax, dword [ebp + 0x14]
lea edi, [ecx + eax*4]
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x10502b72
movups xmmword [esp + 0x1a8], xmm4
nop dword [eax]
sub eax, ecx
mov ecx, 4
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], ecx
xor ecx, ecx
movss xmm0, dword [eax + esi*4 + 0x6c0]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [eax + esi*4 + 0x6c4]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [eax + esi*4 + 0x6c8]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [eax + esi*4 + 0x6cc]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [eax + esi*4 + 0xa20]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [eax + esi*4 + 0xa24]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + esi*4 + 0xa28]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [eax + esi*4 + 0xa2c]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [eax + esi*4]
minss xmm0, dword [0x109be560]
movss xmm4, dword [eax + esi*4 + 0x360]
movss xmm5, dword [eax + esi*4 + 0x364]
movss xmm6, dword [eax + esi*4 + 0x368]
movss xmm7, dword [eax + esi*4 + 0x36c]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x120], xmm0
movss xmm0, dword [eax + esi*4 + 4]
minss xmm0, dword [esp + 0x1ac]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x124], xmm0
movss xmm0, dword [eax + esi*4 + 8]
minss xmm0, dword [esp + 0x1b0]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x128], xmm0
movss xmm0, dword [eax + esi*4 + 0xc]
minss xmm0, dword [esp + 0x1b4]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x12c], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0xf0], xmm0
nop
cvttss2si eax, dword [esp + ecx + 0xf0]
mov dword [esp + ecx + 0xe0], eax
add ecx, 4
cmp ecx, 0x10
jl 0x10502130
minss xmm4, xmm2
xor ecx, ecx
minss xmm5, xmm2
minss xmm6, xmm2
minss xmm7, xmm2
mulss xmm4, xmm3
mulss xmm5, xmm3
mulss xmm6, xmm3
addss xmm4, xmm1
mulss xmm7, xmm3
addss xmm5, xmm1
addss xmm6, xmm1
movss dword [esp + 0x130], xmm4
addss xmm7, xmm1
movss dword [esp + 0x134], xmm5
movss dword [esp + 0x138], xmm6
movss dword [esp + 0x13c], xmm7
movaps xmm0, xmmword [esp + 0x130]
movaps xmmword [esp + 0xf0], xmm0
nop
cvttss2si eax, dword [esp + ecx + 0xf0]
mov dword [esp + ecx + 0xd0], eax
add ecx, 4
cmp ecx, 0x10
jl 0x105021b0
movss xmm0, dword [esp + 0x18]
xor ecx, ecx
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x140], xmm0
movss xmm0, dword [esp + 0x2c]
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x144], xmm0
movss xmm0, dword [esp + 0x30]
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x148], xmm0
movss xmm0, dword [esp + 0x68]
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x14c], xmm0
movaps xmm0, xmmword [esp + 0x140]
movaps xmmword [esp + 0xf0], xmm0
nop word [eax + eax]
cvttss2si eax, dword [esp + ecx + 0xf0]
mov dword [esp + ecx + 0xc0], eax
add ecx, 4
cmp ecx, 0x10
jl 0x10502250
movss xmm4, dword [esp + 0x6c]
xor ecx, ecx
movss xmm5, dword [esp + 0x20]
movaps xmm0, xmm4
minss xmm0, xmm2
movss xmm6, dword [esp + 0x40]
movss xmm7, dword [esp + 0x34]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x150], xmm0
movaps xmm0, xmm5
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x154], xmm0
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x158], xmm0
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x15c], xmm0
movaps xmm0, xmmword [esp + 0x150]
movaps xmmword [esp + 0xf0], xmm0
nop dword [eax]
nop word [eax + eax]
cvttss2si eax, dword [esp + ecx + 0xf0]
mov dword [esp + ecx + 0xb0], eax
add ecx, 4
cmp ecx, 0x10
jl 0x10502300
cmp byte [esp + 0x12], 0
je 0x10502648
cmp byte [esp + 0x13], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x1f8], xmm0
movaps xmm0, xmmword [0x10617190]
movups xmmword [esp + 0x208], xmm0
movups xmm0, xmmword [esp + 0xe0]
movups xmmword [esp + 0x1b8], xmm0
movups xmm0, xmmword [esp + 0xd0]
movups xmmword [esp + 0x1c8], xmm0
movups xmm0, xmmword [esp + 0xc0]
movups xmmword [esp + 0x1d8], xmm0
movups xmm0, xmmword [esp + 0xb0]
movups xmmword [esp + 0x1e8], xmm0
je 0x105025f5
mov eax, dword [ebp + 0xc]
addss xmm4, xmm4
addss xmm5, xmm5
addss xmm6, xmm6
addss xmm7, xmm7
movss xmm0, dword [eax + esi*4 + 4]
addss xmm0, xmm0
movss xmm1, dword [eax + esi*4]
addss xmm1, xmm1
subss xmm4, xmm2
subss xmm5, xmm2
subss xmm6, xmm2
subss xmm0, xmm2
subss xmm1, xmm2
mulss xmm4, xmm4
subss xmm7, xmm2
movss dword [esp + 0x20], xmm5
movss dword [esp + 0x18], xmm0
movss xmm0, dword [eax + esi*4 + 8]
addss xmm0, xmm0
mulss xmm1, xmm1
movss dword [esp + 0x40], xmm6
movss dword [esp + 0x34], xmm7
subss xmm0, xmm2
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [eax + esi*4 + 0xc]
addss xmm0, xmm0
subss xmm0, xmm2
movss dword [esp + 0x30], xmm0
movaps xmm0, xmm2
subss xmm0, xmm1
xorps xmm1, xmm1
subss xmm0, xmm4
maxss xmm0, xmm1
cvtss2sd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x10502430
sqrtsd xmm0, xmm0
jmp 0x10502435
call fcn.10521110
movss xmm1, dword [0x105fe8e4]
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm1
addss xmm0, xmm1
minss xmm0, dword [0x105f14d0]
mulss xmm0, dword [0x108fc6ec]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x18]
mulss xmm1, xmm1
movss dword [esp + 0x160], xmm0
movss xmm0, dword [0x105f14d0]
subss xmm0, xmm1
movss xmm1, dword [esp + 0x20]
mulss xmm1, xmm1
subss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm0, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x105024a0
sqrtsd xmm0, xmm0
jmp 0x105024a5
call fcn.10521110
movss xmm1, dword [0x105fe8e4]
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm1
addss xmm0, xmm1
minss xmm0, dword [0x105f14d0]
mulss xmm0, dword [0x108fc6ec]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x2c]
mulss xmm1, xmm1
movss dword [esp + 0x164], xmm0
movss xmm0, dword [0x105f14d0]
subss xmm0, xmm1
movss xmm1, dword [esp + 0x40]
mulss xmm1, xmm1
subss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm0, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x10502510
sqrtsd xmm0, xmm0
jmp 0x10502515
call fcn.10521110
movss xmm1, dword [0x105fe8e4]
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm1
addss xmm0, xmm1
minss xmm0, dword [0x105f14d0]
mulss xmm0, dword [0x108fc6ec]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x30]
mulss xmm1, xmm1
movss dword [esp + 0x168], xmm0
movss xmm0, dword [0x105f14d0]
subss xmm0, xmm1
movss xmm1, dword [esp + 0x34]
mulss xmm1, xmm1
subss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm0, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x10502580
sqrtsd xmm0, xmm0
jmp 0x10502585
call fcn.10521110
movss xmm1, dword [0x105fe8e4]
xor ecx, ecx
movss xmm2, dword [0x105f14d0]
movss xmm3, dword [0x108fc6ec]
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm1
addss xmm0, xmm1
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x16c], xmm0
movaps xmm0, xmmword [esp + 0x160]
movaps xmmword [esp + 0xf0], xmm0
cvttss2si eax, dword [esp + ecx + 0xf0]
mov dword [esp + ecx + 0x70], eax
add ecx, 4
cmp ecx, 0x10
jl 0x105025d0
movups xmm0, xmmword [esp + 0x70]
mov edx, dword [ebp + 0x20]
movups xmmword [esp + 0x218], xmm0
mov eax, dword [edx]
add eax, eax
movups xmm0, xmmword [esp + eax*8 + 0x1b8]
mov eax, dword [edx + 4]
add eax, eax
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [esp + eax*8 + 0x1b8]
mov eax, dword [edx + 8]
add eax, eax
movups xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [esp + eax*8 + 0x1b8]
mov eax, dword [edx + 0xc]
add eax, eax
movups xmmword [esp + 0xc0], xmm0
movups xmm0, xmmword [esp + eax*8 + 0x1b8]
movups xmmword [esp + 0xb0], xmm0
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [ecx + esi*4 + 0xc]
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jnp 0x1050268a
mov dword [esp + 0x68], closesocket
mov dword [esp + 0xa8], htons
mov dword [esp + 0x94], htons
mov dword [esp + 0x50], closesocket
mov dword [esp + 0x54], 8
jmp 0x105026b8
mov dword [esp + 0x68], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
movss xmm0, dword [ecx + esi*4 + 8]
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jnp 0x105026f4
mov dword [esp + 0x30], closesocket
mov edx, 4
mov dword [esp + 0xa4], htons
mov dword [esp + 0x98], htons
mov dword [esp + 0x34], closesocket
jmp 0x1050271c
mov dword [esp + 0x30], 0
xor edx, edx
mov dword [esp + 0xa4], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x34], 0
movss xmm0, dword [ecx + esi*4 + 4]
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jnp 0x10502758
mov dword [esp + 0x2c], closesocket
mov ecx, 2
mov dword [esp + 0xa0], htons
mov dword [esp + 0x9c], htons
mov dword [esp + 0x20], closesocket
jmp 0x10502780
mov dword [esp + 0x2c], 0
xor ecx, ecx
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x20], 0
mov eax, dword [ebp + 0xc]
movss xmm0, dword [eax + esi*4]
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jnp 0x105027bb
mov dword [esp + 0x18], closesocket
mov eax, 1
mov dword [esp + 0x6c], closesocket
mov dword [esp + 0xac], htons
mov dword [esp + 0x40], closesocket
jmp 0x105027e0
mov dword [esp + 0x18], 0
xor eax, eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0x40], 0
or eax, dword [esp + 0x54]
or eax, edx
or eax, ecx
je 0x10502a31
movaps xmm4, xmmword [0x10617190]
cmp dword [esp + 0x50], 0
movaps xmm0, xmm4
mov edi, dword [esp + 0xec]
mov esi, dword [esp + 0xe8]
mov edx, dword [esp + 0xe4]
psrldq xmm0, 0xc
mov ecx, dword [esp + 0xe0]
movd eax, xmm0
movaps xmm0, xmm4
psrldq xmm0, 8
cmovne edi, eax
cmp dword [esp + 0x34], 0
movd eax, xmm0
movaps xmm0, xmm4
psrldq xmm0, 4
mov dword [esp + 0x17c], edi
cmovne esi, eax
cmp dword [esp + 0x20], 0
movd eax, xmm0
mov dword [esp + 0x178], esi
mov esi, dword [esp + 0xdc]
cmovne edx, eax
cmp dword [esp + 0x40], 0
movd eax, xmm4
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0xd8]
cmovne ecx, eax
xor eax, eax
cmp dword [esp + 0x94], eax
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0xd4]
cmovne esi, eax
cmp dword [esp + 0x98], eax
movaps xmm0, xmmword [esp + 0x170]
cmovne edx, eax
movaps xmmword [esp + 0xe0], xmm0
cmp dword [esp + 0x9c], eax
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
cmovne ecx, eax
mov dword [esp + 0x188], edx
mov eax, dword [esp + 0xd0]
xor edi, edi
cmp dword [esp + 0xac], edi
mov edx, dword [esp + 0xc4]
cmovne eax, edi
mov dword [esp + 0x184], ecx
cmp dword [esp + 0xa8], 0
mov edi, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x180], eax
mov dword [esp + 0x18c], esi
movaps xmm0, xmmword [esp + 0x180]
mov esi, dword [esp + 0xc8]
movaps xmmword [esp + 0xd0], xmm0
movaps xmm0, xmm4
psrldq xmm0, 0xc
movd eax, xmm0
movaps xmm0, xmm4
psrldq xmm0, 8
cmovne edi, eax
cmp dword [esp + 0xa4], 0
movd eax, xmm0
movaps xmm0, xmm4
psrldq xmm0, 4
mov dword [esp + 0x19c], edi
mov edi, dword [esp + 0xbc]
cmovne esi, eax
cmp dword [esp + 0xa0], 0
movd eax, xmm0
mov dword [esp + 0x198], esi
cmovne edx, eax
cmp dword [esp + 0x6c], 0
movd eax, xmm4
mov dword [esp + 0x194], edx
cmovne ecx, eax
cmp dword [esp + 0x68], 0
mov dword [esp + 0x190], ecx
movaps xmm0, xmmword [esp + 0x190]
movaps xmmword [esp + 0xc0], xmm0
mov esi, dword [esp + 0xb8]
movaps xmm0, xmm4
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
psrldq xmm0, 0xc
movd eax, xmm0
movaps xmm0, xmm4
psrldq xmm0, 8
cmovne edi, eax
cmp dword [esp + 0x30], 0
movd eax, xmm0
movaps xmm0, xmm4
psrldq xmm0, 4
mov dword [esp + 0x10c], edi
mov edi, dword [esp + 0x3c]
cmovne esi, eax
cmp dword [esp + 0x2c], 0
movd eax, xmm0
mov dword [esp + 0x108], esi
cmovne edx, eax
cmp dword [esp + 0x18], 0
movd eax, xmm4
mov dword [esp + 0x104], edx
cmovne ecx, eax
mov dword [esp + 0x100], ecx
movaps xmm0, xmmword [esp + 0x100]
movaps xmmword [esp + 0xb0], xmm0
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
shl eax, 8
add eax, dword [esp + 0xcc]
shl eax, 8
add eax, dword [esp + 0xdc]
shl ecx, 8
add ecx, dword [esp + 0xc0]
shl edx, 8
add edx, dword [esp + 0xc4]
shl esi, 8
add esi, dword [esp + 0xc8]
shl eax, 8
add eax, dword [esp + 0xec]
shl ecx, 8
add ecx, dword [esp + 0xd0]
shl edx, 8
add edx, dword [esp + 0xd4]
shl esi, 8
add esi, dword [esp + 0xd8]
mov dword [esp + 0x11c], eax
xor eax, eax
shl ecx, 8
add ecx, dword [esp + 0xe0]
shl edx, 8
add edx, dword [esp + 0xe4]
shl esi, 8
add esi, dword [esp + 0xe8]
cmp dword [esp + 0x38], eax
mov dword [esp + 0x110], ecx
setle al
mov dword [esp + 0x114], edx
dec eax
mov dword [esp + 0x118], esi
mov dword [esp + 0x18], eax
xor eax, eax
cmp dword [esp + 0x38], 1
setle al
dec eax
mov dword [esp + 0x3c], eax
xor eax, eax
cmp dword [esp + 0x38], 2
setle al
dec eax
cmp dword [esp + 0x38], 3
jle 0x10502b1d
movups xmm0, xmmword [esp + 0x110]
movups xmmword [edi], xmm0
jmp 0x10502b3e
test eax, eax
je 0x10502b29
mov dword [edi + 4], edx
mov dword [edi + 8], esi
jmp 0x10502b3c
cmp dword [esp + 0x3c], 0
je 0x10502b35
mov dword [edi + 4], edx
jmp 0x10502b3c
cmp dword [esp + 0x18], 0
je 0x10502b3e
mov dword [edi], ecx
mov ecx, dword [esp + 0x1c]
add edi, 0x10
mov esi, dword [esp + 0x14]
add ecx, 4
add esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jb 0x10501ff0
movaps xmm4, xmmword [0x109be560]
mov eax, dword [esp + 0x24]
add esi, dword [esp + 0x5c]
inc eax
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], eax
cmp eax, edi
jb 0x10501fc0
mov ecx, dword [ebp + 0x1c]
add esi, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x14], esi
mov dword [ebp + 0x1c], ecx
cmp ecx, dword [esp + 0x48]
jb 0x10501fa0
pop edi
pop esi
mov ecx, dword [esp + 0x224]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x10502eff
cmp ecx, dword [esp + 0x48]
jae 0x10503159
movss xmm1, dword [0x105f14d0]
nop dword [eax + eax]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp + 0x18]
cmp eax, dword [esp + 0x58]
jae 0x10502ed9
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebp + 0xc]
shl eax, 2
add ecx, 0x6c0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x64]
shl eax, 3
mov dword [esp + 0x30], eax
lea ecx, [ecx + esi*4]
mov eax, dword [esp + 0x64]
imul eax, dword [ebp + 0x18]
add eax, dword [ebp + 0x14]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x58]
sub edi, dword [ebp + 0x18]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
nop word [eax + eax]
cmp dword [esp + 0x28], 0
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
jbe 0x10502eb9
mov eax, dword [esp + 0x28]
add esi, eax
cmp byte [esp + 0x12], 0
mov dword [esp + 0x14], esi
lea edi, [ecx + eax*4]
mov eax, ecx
mov ecx, dword [esp + 0x28]
je 0x10502de0
mov dword [esp + 0x1c], ecx
mov ecx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], ecx
nop
cmp byte [esp + 0x13], 0
movss xmm0, dword [eax - 0x360]
movss xmm2, dword [eax - 0x6c0]
movss dword [esp + 0x74], xmm0
movss xmm0, dword [eax]
movss dword [esp + 0x78], xmm0
movss xmm0, dword [eax + 0x360]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0x3f800000
movss dword [esp + 0x70], xmm2
movss dword [esp + 0x7c], xmm0
je 0x10502d2f
addss xmm2, xmm2
addss xmm0, xmm0
subss xmm2, xmm1
subss xmm0, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
subss xmm1, xmm2
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x10502d0a
sqrtsd xmm0, xmm0
jmp 0x10502d0f
call fcn.10521110
mov edx, dword [ebp + 0x20]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x105fe8e4]
addss xmm0, dword [0x105fe8e4]
movss dword [esp + 0x88], xmm0
mov eax, dword [edx + 8]
mov esi, dword [edx]
mov edi, dword [edx + 4]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0xc]
push ecx
movss xmm0, dword [esp + eax*4 + 0x74]
movss dword [esp], xmm0
call fcn.104ff950
mov ecx, dword [esp + 0x48]
mov word [esp + 0x3c], ax
movss xmm0, dword [esp + ecx*4 + 0x74]
movss dword [esp], xmm0
call fcn.104ff950
movss xmm0, dword [esp + edi*4 + 0x74]
mov word [esp + 0x44], ax
movss dword [esp], xmm0
call fcn.104ff950
movss xmm0, dword [esp + esi*4 + 0x74]
mov di, ax
movss dword [esp], xmm0
call fcn.104ff950
mov edx, dword [esp + 0x24]
add esp, 4
movss xmm1, dword [0x105f14d0]
movzx ecx, ax
mov ax, word [esp + 0x40]
mov word [edx + 4], ax
mov ax, word [esp + 0x38]
mov word [edx + 6], ax
mov eax, dword [esp + 0x24]
mov word [edx], cx
add eax, 4
mov word [edx + 2], di
add edx, 8
sub dword [esp + 0x1c], 1
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x24], eax
jne 0x10502c80
jmp 0x10502ea1
mov dword [esp + 0x1c], ecx
mov ecx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], ecx
movss xmm0, dword [eax - 0x6c0]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [eax - 0x360]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [eax]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [eax + 0x360]
push ecx
movss dword [esp], xmm0
call fcn.104ff950
movss xmm0, dword [esp + 0x48]
mov word [esp + 0x3c], ax
movss dword [esp], xmm0
call fcn.104ff950
movss xmm0, dword [esp + 0x40]
mov di, ax
movss dword [esp], xmm0
call fcn.104ff950
movss xmm0, dword [esp + 0x1c]
mov si, ax
movss dword [esp], xmm0
call fcn.104ff950
mov edx, dword [esp + 0x24]
add esp, 4
movzx ecx, ax
mov ax, word [esp + 0x38]
mov word [edx + 6], ax
mov eax, dword [esp + 0x24]
mov word [edx], cx
add eax, 4
mov word [edx + 2], si
mov word [edx + 4], di
add edx, 8
sub dword [esp + 0x1c], 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jne 0x10502df2
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
movss xmm1, dword [0x105f14d0]
add eax, dword [esp + 0x30]
add esi, dword [esp + 0x5c]
add ecx, dword [esp + 0x2c]
sub edi, 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
jne 0x10502c40
mov ecx, dword [ebp + 0x1c]
add esi, dword [esp + 0x60]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, dword [esp + 0x48]
jb 0x10502be0
pop edi
pop esi
mov ecx, dword [esp + 0x224]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
cmp ecx, dword [esp + 0x48]
jae 0x10503159
movss xmm4, dword [0x105f14d0]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp + 0x18]
cmp eax, dword [esp + 0x58]
jae 0x10503143
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
shl eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
shl eax, 2
mov dword [esp + 0x44], eax
mov eax, ecx
imul ecx, dword [ebp + 0x18]
shl eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
add ecx, dword [ebp + 0x14]
shl ecx, 4
add ecx, edi
lea eax, [eax + esi*4]
mov edi, dword [esp + 0x58]
add eax, 0x6c0
sub edi, dword [ebp + 0x18]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x28], 0
mov esi, ecx
jbe 0x1050311b
mov ecx, dword [esp + 0x28]
mov edi, eax
mov edx, ecx
mov dword [esp + 0x24], ecx
add dword [esp + 0x14], edx
add eax, dword [esp + 0x44]
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x12]
nop dword [eax]
movss xmm0, dword [edi - 0x6c0]
movss xmm1, dword [edi - 0x360]
movss xmm3, dword [edi]
movss xmm2, dword [edi + 0x360]
test al, al
je 0x105030e9
cmp byte [esp + 0x13], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0x3f800000
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x74], xmm1
movss dword [esp + 0x78], xmm3
movss dword [esp + 0x7c], xmm2
je 0x1050306a
addss xmm0, xmm0
movaps xmm1, xmm4
addss xmm2, xmm2
subss xmm0, xmm4
subss xmm2, xmm4
mulss xmm0, xmm0
mulss xmm2, xmm2
subss xmm1, xmm0
xorps xmm0, xmm0
subss xmm1, xmm2
maxss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x10503039
sqrtsd xmm0, xmm0
jmp 0x1050303e
call fcn.10521110
movss xmm4, dword [0x105f14d0]
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x24]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x105fe8e4]
addss xmm0, dword [0x105fe8e4]
movss dword [esp + 0x88], xmm0
mov eax, dword [edx]
movss xmm0, dword [esp + eax*4 + 0x70]
mov eax, dword [edx + 4]
movss dword [esp + 0x110], xmm0
movss xmm0, dword [esp + eax*4 + 0x70]
mov eax, dword [edx + 8]
movss dword [esp + 0x114], xmm0
movss xmm0, dword [esp + eax*4 + 0x70]
mov eax, dword [edx + 0xc]
movss dword [esp + 0x118], xmm0
movss xmm0, dword [esp + eax*4 + 0x70]
mov al, byte [esp + 0x12]
movss dword [esp + 0x11c], xmm0
movaps xmm0, xmmword [esp + 0x110]
movaps xmmword [esp + 0x100], xmm0
movss xmm2, dword [esp + 0x10c]
movss xmm3, dword [esp + 0x108]
movss xmm1, dword [esp + 0x104]
movss xmm0, dword [esp + 0x100]
movss dword [esi], xmm0
add edi, 4
movss dword [esi + 4], xmm1
movss dword [esi + 8], xmm3
movss dword [esi + 0xc], xmm2
add esi, 0x10
sub ecx, 1
mov dword [esp + 0x24], ecx
jne 0x10502fa0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x5c]
add ecx, dword [esp + 0x30]
add eax, dword [esp + 0x2c]
sub edi, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], edi
jne 0x10502f71
mov ecx, dword [ebp + 0x1c]
add esi, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x14], esi
mov dword [ebp + 0x1c], ecx
cmp ecx, dword [esp + 0x48]
jb 0x10502f11
mov ecx, dword [esp + 0x22c]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret