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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x150
mov edi, edx
mov esi, ecx
mov ebp, dword [esp + 0x164]
mov eax, dword [0x102a2000]
xor eax, esp
mov dword [esp + 0x14c], eax
cmp dword [ecx + 0x3c], 0
je 0x100c575d
pxor xmm0, xmm0
movdqu xmmword [esp + 0x13c], xmm0
movdqu xmmword [esp + 0x130], xmm0
movdqu xmmword [esp + 0x120], xmm0
mov dword [esp + 0x11c], 1
movdqu xmmword [esp + 0x10c], xmm0
movdqu xmmword [esp + 0xfc], xmm0
movdqu xmmword [esp + 0xec], xmm0
lea eax, [esp + 0x11c]
mov ecx, esi
mov edx, edi
push eax
call fcn.100c4310
add esp, 4
test eax, eax
je 0x100c5785
mov eax, dword [esp + 0x148]
lea ecx, [eax + eax]
shl eax, 4
sub eax, ecx
push eax
call fcn.1009ca00
add esp, 4
mov dword [ebp], eax
mov dword [esp + 0x114], eax
lea eax, [esp + 0xec]
mov ecx, esi
mov edx, edi
push eax
call fcn.100c4310
add esp, 4
test eax, eax
je 0x100c5785
mov ebp, dword [esp + 0x118]
jmp 0x100c578e
cmp dword [esi + 0xc], edi
jle 0x100c5785
mov ecx, dword [esi + 0x30]
cmp ecx, 1
jg 0x100c5785
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x10]
add edx, eax
test ecx, ecx
je 0x100c57a9
mov ecx, dword [edx + edi*4]
mov edx, dword [edx + edi*4 + 4]
bswap ecx
bswap edx
cmp ecx, edx
jne 0x100c57cc
mov dword [ebp], 0
xor ebp, ebp
mov ecx, dword [esp + 0x14c]
xor ecx, esp
call fcn.100ea0d3
mov eax, ebp
add esp, 0x150
pop esi
pop edi
pop ebx
pop ebp
ret
movzx ecx, byte [edx + edi*2]
movzx ebx, byte [edx + edi*2 + 1]
shl ecx, 9
lea ecx, [ecx + ebx*2]
movzx ebx, byte [edx + edi*2 + 2]
movzx edx, byte [edx + edi*2 + 3]
shl ebx, 9
lea edx, [ebx + edx*2]
cmp ecx, edx
je 0x100c5785
mov edx, ebp
xor ebp, ebp
add ecx, dword [esi + 0x18]
mov dword [edx], 0
js 0x100c578e
lea edx, [eax + ecx]
movzx eax, word [eax + ecx]
rol ax, 8
test ax, ax
jle 0x100c5e0b
movzx edi, ax
movzx eax, byte [edx + edi*2 + 0xa]
mov dword [esp + 8], eax
movzx esi, byte [edx + edi*2 + 8]
shl esi, 8
movzx eax, byte [edx + edi*2 + 9]
mov dword [esp + 0x20], eax
add eax, esi
mov dword [esp + 0x18], eax
lea eax, [eax + edi*2]
lea ecx, [eax + eax]
shl eax, 4
sub eax, ecx
movzx ecx, byte [edx + edi*2 + 0xb]
mov dword [esp + 0x68], ecx
add eax, 0xe
push eax
mov ebx, edx
call fcn.1009ca00
add esp, 4
test eax, eax
je 0x100c578e
lea ecx, [edi + edi]
mov dword [esp + 0x1c], ecx
lea ecx, [ebx + edi*2]
add ecx, 0xa
add ebx, 0xa
mov dword [esp], ebx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 8]
shl edx, 8
add edx, dword [esp + 0x68]
lea ebp, [ecx + edx]
add ebp, 2
add esi, dword [esp + 0x20]
lea ecx, [esi + esi]
shl esi, 4
sub esi, ecx
add esi, 0xe
lea ecx, [edi + edi*8]
lea ecx, [ecx + ecx*2]
mov dword [esp + 8], ecx
add ecx, edi
mov dword [esp + 0x40], eax
add eax, ecx
add eax, 0xc
xor ebx, ebx
xor edx, edx
xor ecx, ecx
jmp 0x100c589c
dec cl
mov byte [eax + ebx], dl
add ebx, 0xe
cmp esi, ebx
je 0x100c58b7
test cl, cl
jne 0x100c5890
movzx edx, byte [ebp]
test dl, 8
jne 0x100c58ae
inc ebp
xor ecx, ecx
jmp 0x100c5892
movzx ecx, byte [ebp + 1]
add ebp, 2
jmp 0x100c5892
add edi, dword [esp + 0x40]
add edi, dword [esp + 8]
xor edx, edx
xor ebx, ebx
mov dword [esp + 8], esi
jmp 0x100c58f9
movzx esi, byte [ebp]
inc ebp
mov dword [esp + 0x20], ebp
mov ebp, eax
mov eax, edi
mov edi, esi
neg edi
test cl, 0x10
cmovne edi, esi
mov esi, dword [esp + 8]
add ebx, edi
mov edi, eax
mov eax, ebp
mov ebp, dword [esp + 0x20]
mov word [edi + edx], bx
add edx, 0xe
cmp esi, edx
je 0x100c5917
movzx ecx, byte [edi + edx + 0xc]
test cl, 2
jne 0x100c58c9
test cl, 0x10
jne 0x100c58ee
movzx ecx, word [ebp]
rol cx, 8
add ebx, ecx
add ebp, 2
jmp 0x100c58ee
xor edx, edx
xor ebx, ebx
jmp 0x100c593e
movzx esi, byte [ebp]
inc ebp
mov edi, esi
neg edi
test cl, 0x20
cmovne edi, esi
mov esi, dword [esp + 8]
add ebx, edi
mov word [eax + edx - 0xa], bx
add edx, 0xe
cmp esi, edx
je 0x100c595b
movzx ecx, byte [eax + edx]
test cl, 4
jne 0x100c591d
test cl, 0x20
jne 0x100c5932
movzx ecx, word [ebp]
rol cx, 8
add ebx, ecx
add ebp, 2
jmp 0x100c5932
xor ebp, ebp
xor esi, esi
mov dword [esp + 0xdc], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 4], 0
xor ebx, ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x44], 0
xor edx, edx
jmp 0x100c5a5c
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xdc]
xor edx, edx
mov dl, cl
mov dword [esp + 0x44], edx
lea ecx, [ebp + 1]
mov dword [esp + 0x68], ecx
lea ecx, [ebp*2]
shl ebp, 4
sub ebp, ecx
mov byte [esi + ebp + 0xc], 1
mov edx, dword [esp + 8]
mov word [esi + ebp], dx
mov dword [esp + 4], ebx
mov word [esi + ebp + 2], bx
mov dword [esi + ebp + 4], 0
mov ecx, dword [esp]
movzx ecx, word [ecx + eax*2]
rol cx, 8
movzx ecx, cx
inc ecx
mov dword [esp + 0x98], ecx
inc eax
mov dword [esp + 0xdc], eax
xor ecx, ecx
mov al, 1
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x78], eax
mov ebp, dword [esp + 0x68]
mov ebx, edx
lea esi, [edi + 1]
mov edx, ecx
cmp edi, dword [esp + 0x18]
jge 0x100c5dd9
mov dword [esp + 0xa8], ebp
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x1c]
lea edi, [esi + eax]
lea ecx, [edi + edi]
mov dword [esp + 0x58], edi
shl edi, 4
sub edi, ecx
mov ebx, dword [esp + 0x30]
movzx eax, byte [ebx + edi + 0xc]
movzx ebp, word [ebx + edi]
movzx edi, word [ebx + edi + 2]
movsx ebx, bp
mov dword [esp + 0x20], ebx
movsx ebx, di
cmp dword [esp + 0x98], esi
mov dword [esp + 0x68], esi
jne 0x100c5b2f
mov byte [esp + 0x98], al
test esi, esi
mov dword [esp + 0xc8], ebx
je 0x100c5c2e
cmp dword [esp + 0x44], 0
je 0x100c5c53
test edx, edx
je 0x100c5cce
mov ebp, dword [esp + 0xa8]
lea ecx, [ebp + 1]
lea esi, [ebp*2]
shl ebp, 4
sub ebp, esi
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0xb8]
lea esi, [eax + edx]
shr esi, 1
mov edi, dword [esp + 0x30]
mov byte [edi + ebp + 0xc], 3
mov word [edi + ebp], si
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x78]
lea esi, [eax + ebx]
shr esi, 1
mov word [edi + ebp + 2], si
mov word [edi + ebp + 4], dx
mov word [edi + ebp + 6], bx
mov ebx, eax
mov ebp, ecx
mov eax, dword [esp + 0x58]
jmp 0x100c5ce1
test al, 1
jne 0x100c5bb7
mov ecx, 1
test edx, edx
je 0x100c5ca3
mov ebp, dword [esp + 0xa8]
lea eax, [ebp + 1]
mov dword [esp + 0xd8], eax
lea esi, [ebp*2]
shl ebp, 4
sub ebp, esi
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x20]
lea esi, [ecx + edx]
shr esi, 1
mov eax, dword [esp + 0x30]
mov byte [eax + ebp + 0xc], 3
mov word [eax + ebp], si
mov edi, dword [esp + 0x48]
lea esi, [edi + ebx]
shr esi, 1
mov word [eax + ebp + 2], si
mov word [eax + ebp + 4], cx
mov ecx, 1
mov word [eax + ebp + 6], di
mov dword [esp + 0x58], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0xd8]
jmp 0x100c5c21
test edx, edx
mov eax, dword [esp + 0x88]
cmove eax, edx
mov dword [esp + 0xc8], eax
sete al
cmovne edx, dword [esp + 0x48]
mov esi, dword [esp + 0xa8]
lea ebx, [esi + esi]
mov dword [esp + 0x20], ebx
mov ebx, esi
shl ebx, 4
sub ebx, dword [esp + 0x20]
xor al, 3
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x30]
movzx ecx, byte [esp + 0x20]
mov byte [eax + ebx + 0xc], cl
mov word [eax + ebx], bp
mov ebp, esi
mov word [eax + ebx + 2], di
mov ecx, dword [esp + 0xc8]
mov word [eax + ebx + 4], cx
mov word [eax + ebx + 6], dx
inc ebp
xor ecx, ecx
mov al, 1
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x68]
jmp 0x100c5a4d
mov edi, esi
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0xb8]
movzx ecx, byte [esp + 0x98]
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
jmp 0x100c5d66
mov ebp, dword [esp + 0xa8]
mov ebx, ebp
shl ebx, 4
sub ebx, ebp
sub ebx, ebp
mov esi, dword [esp + 0x40]
lea eax, [esi + ebx]
lea edi, [esi + ebx]
add edi, 0xc
test edx, edx
je 0x100c5d1a
mov byte [edi], 3
mov edx, dword [esp + 8]
mov word [eax], dx
mov ecx, dword [esp + 4]
mov word [edi - 0xa], cx
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x88]
mov word [esi + ebx + 4], dx
mov edx, dword [esp + 0x48]
jmp 0x100c5d39
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], eax
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0xa8]
jmp 0x100c5a4d
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov esi, ebp
shl esi, 4
sub esi, ebp
sub esi, ebp
mov byte [edi + esi + 0xc], 3
mov edx, dword [esp + 8]
mov word [edi + esi], dx
mov ecx, dword [esp + 4]
mov word [edi + esi + 2], cx
mov ecx, dword [esp + 0xb8]
mov word [edi + esi + 4], cx
mov edx, ebx
mov esi, edi
movzx ecx, byte [esp + 0x98]
jmp 0x100c5d45
mov byte [edi], 2
mov edx, dword [esp + 8]
mov word [eax], dx
mov ecx, dword [esp + 4]
mov word [edi - 0xa], cx
mov esi, dword [esp + 0x30]
mov word [esi + ebx + 4], 0
xor edx, edx
movzx ecx, byte [esp + 0x98]
mov eax, dword [esp + 0x58]
mov edi, ebp
shl edi, 4
sub edi, ebp
sub edi, ebp
mov word [esi + edi + 6], dx
inc ebp
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc8]
test cl, 1
sete cl
jne 0x100c59b4
lea esi, [eax*2 + 2]
inc eax
mov edx, eax
shl edx, 4
mov edi, edx
sub edi, esi
mov esi, dword [esp + 0x30]
movsx ebx, word [esi + edi]
mov esi, dword [esp + 0x30]
test byte [esi + edi + 0xc], 1
mov esi, dword [esp + 0x30]
jne 0x100c5dbf
add ebx, dword [esp + 0x20]
sar ebx, 1
mov dword [esp + 8], ebx
add eax, eax
sub edx, eax
movsx ebx, word [esi + edx + 2]
add ebx, dword [esp + 0xc8]
sar ebx, 1
mov edi, dword [esp + 0x68]
jmp 0x100c59cb
movzx ebx, bx
mov dword [esp + 8], ebx
add eax, eax
sub edx, eax
movzx ebx, word [esi + edx + 2]
mov edi, dword [esp + 0x68]
inc edi
jmp 0x100c59cb
cmp dword [esp + 0x44], 0
je 0x100c65b4
cmp byte [esp + 0x58], 0
mov edx, dword [esp + 0x30]
mov dword [esp + 8], ebx
je 0x100c65f4
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x78]
mov ebx, dword [esp + 0xb8]
jmp 0x100c6647
mov dword [esp], edx
xor ebp, ebp
mov edx, 0
cmp ax, 0xffff
jne 0x100c6698
add dword [esp], 0xa
xor eax, eax
xor edi, edi
jmp 0x100c5e3a
mov ebp, edi
mov eax, dword [esp + 0x18]
mov edx, eax
test bl, 0x20
je 0x100c6698
mov dword [esp + 0x18], eax
mov dword [esp + 0x11c], 0
mov ecx, dword [esp]
movzx ebx, byte [ecx + 1]
lea eax, [ecx + 4]
test bl, 2
jne 0x100c5e60
xorps xmm0, xmm0
jmp 0x100c5ee4
movzx eax, byte [eax]
test bl, 1
jne 0x100c5e90
movzx eax, al
shl eax, 8
pxor xmm0, xmm0
pinsrw xmm0, eax, 1
movzx eax, byte [ecx + 5]
shl eax, 8
pinsrw xmm0, eax, 3
psrad xmm0, 0x18
cvtdq2ps xmm0, xmm0
lea eax, [ecx + 6]
jmp 0x100c5ee4
mov ecx, dword [esp]
movzx edx, byte [ecx + 5]
mov ecx, dword [esp]
movzx ecx, byte [ecx + 7]
mov dword [esp + 0x30], ecx
movzx eax, al
mov ebp, ebx
mov ecx, edi
mov edi, dword [esp]
movzx edi, byte [edi + 6]
shl edi, 8
or edi, eax
movd xmm0, edi
mov edi, ecx
pxor xmm1, xmm1
punpcklbw xmm1, xmm0
movd xmm0, edx
mov ecx, dword [esp]
pinsrw xmm0, word [esp + 0x30], 1
por xmm0, xmm1
punpcklwd xmm0, xmm0
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
lea eax, [ecx + 8]
movzx ecx, word [ecx + 2]
test bl, 8
movups xmmword [esp + 0xdc], xmm0
jne 0x100c5f23
test bl, 0x40
jne 0x100c5f52
test bl, bl
js 0x100c6518
mov dword [esp], eax
movss xmm0, dword [0x10147700]
movups xmmword [esp + 0x78], xmm0
movaps xmm0, xmmword [0x1014a990]
movups xmmword [esp + 0x48], xmm0
jmp 0x100c5fa8
movzx edx, word [eax]
rol dx, 8
movsx edx, dx
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
mulss xmm0, dword [0x10152744]
add eax, 2
pxor xmm1, xmm1
movss xmm1, xmm0
movups xmmword [esp + 0x78], xmm1
movq xmm0, xmm0
jmp 0x100c5f98
movzx edx, word [eax]
rol dx, 8
movsx edx, dx
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movzx edx, word [eax + 2]
rol dx, 8
movsx edx, dx
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
movss xmm2, dword [0x10152744]
mulss xmm0, xmm2
mulss xmm1, xmm2
add eax, 4
xorps xmm2, xmm2
movss xmm2, xmm0
movups xmmword [esp + 0x78], xmm2
movq xmm0, xmm1
shufps xmm0, xmmword [0x10146ac0], 0xe2
movups xmmword [esp + 0x48], xmm0
mov dword [esp], eax
rol cx, 8
movzx edx, cx
mov ecx, esi
lea eax, [esp + 0x11c]
push eax
call fcn.100c5690
add esp, 4
test eax, eax
jle 0x100c5e29
movups xmm4, xmmword [esp + 0x48]
movaps xmm0, xmm4
movups xmm3, xmmword [esp + 0x78]
shufps xmm0, xmm3, 0x11
shufps xmm0, xmm3, 0xe2
mulps xmm0, xmm0
movaps xmm1, xmm3
unpcklps xmm1, xmm4
mulps xmm1, xmm1
addps xmm1, xmm0
cvtps2pd xmm0, xmm1
sqrtpd xmm0, xmm0
cvtpd2ps xmm5, xmm0
mov ebp, dword [esp + 0x11c]
xor edx, edx
cmp eax, 9
mov dword [esp + 0x1c], eax
jb 0x100c63e8
mov edx, eax
mov ecx, eax
and ecx, 7
mov eax, 8
cmove ecx, eax
sub edx, ecx
movaps xmm0, xmm4
shufps xmm0, xmm4, 0
movups xmmword [esp + 0x20], xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0
movups xmmword [esp + 0x68], xmm0
movups xmm0, xmmword [esp + 0xdc]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movups xmmword [esp + 0x30], xmm1
movapd xmm1, xmm5
shufps xmm1, xmm5, 0
movups xmmword [esp + 8], xmm1
shufps xmm4, xmm4, 0x55
movups xmmword [esp + 0xa8], xmm4
shufps xmm3, xmm3, 0x55
movups xmmword [esp + 0xc8], xmm3
shufps xmm0, xmm0, 0x55
movups xmmword [esp + 0x98], xmm0
movups xmmword [esp + 0x88], xmm5
shufps xmm5, xmm5, 0x55
movups xmmword [esp + 0x58], xmm5
lea ecx, [ebp + 0x68]
mov eax, edx
nop word cs:[eax + eax]
xorps xmm1, xmm1
pinsrw xmm1, word [ecx - 0x30], 1
pinsrw xmm1, word [ecx - 0x22], 3
pinsrw xmm1, word [ecx - 0x14], 5
pinsrw xmm1, word [ecx - 6], 7
psrad xmm1, 0x10
xorps xmm2, xmm2
pinsrw xmm2, word [ecx - 0x68], 1
pinsrw xmm2, word [ecx - 0x5a], 3
pinsrw xmm2, word [ecx - 0x4c], 5
pinsrw xmm2, word [ecx - 0x3e], 7
cvtdq2ps xmm1, xmm1
psrad xmm2, 0x10
cvtdq2ps xmm2, xmm2
xorps xmm3, xmm3
pinsrw xmm3, word [ecx - 0x66], 1
pinsrw xmm3, word [ecx - 0x58], 3
pinsrw xmm3, word [ecx - 0x4a], 5
pinsrw xmm3, word [ecx - 0x3c], 7
psrad xmm3, 0x10
xorps xmm5, xmm5
pinsrw xmm5, word [ecx - 0x2e], 1
pinsrw xmm5, word [ecx - 0x20], 3
pinsrw xmm5, word [ecx - 0x12], 5
cvtdq2ps xmm4, xmm3
pinsrw xmm5, word [ecx - 4], 7
psrad xmm5, 0x10
cvtdq2ps xmm5, xmm5
movups xmm7, xmmword [esp + 0x20]
movaps xmm3, xmm7
mulps xmm3, xmm5
mulps xmm7, xmm4
movups xmm0, xmmword [esp + 0x68]
movaps xmm6, xmm0
mulps xmm6, xmm2
addps xmm6, xmm7
mulps xmm0, xmm1
addps xmm0, xmm3
movups xmm3, xmmword [esp + 0x30]
addps xmm0, xmm3
addps xmm6, xmm3
movups xmm3, xmmword [esp + 8]
mulps xmm6, xmm3
mulps xmm0, xmm3
cvttps2dq xmm3, xmm0
cvttps2dq xmm6, xmm6
movups xmm0, xmmword [esp + 0xa8]
mulps xmm5, xmm0
mulps xmm4, xmm0
movups xmm0, xmmword [esp + 0xc8]
mulps xmm2, xmm0
addps xmm2, xmm4
mulps xmm1, xmm0
addps xmm1, xmm5
movups xmm0, xmmword [esp + 0x98]
addps xmm1, xmm0
addps xmm2, xmm0
movups xmm0, xmmword [esp + 0x58]
mulps xmm2, xmm0
mulps xmm1, xmm0
cvttps2dq xmm1, xmm1
cvttps2dq xmm2, xmm2
pshufhw xmm4, xmm6, 0xe8
punpcklwd xmm6, xmm2
movd dword [ecx - 0x68], xmm6
pshufd xmm5, xmm6, 0xee
movd dword [ecx - 0x5a], xmm5
pshufhw xmm2, xmm2, 0xe8
pshufd xmm2, xmm2, 0xaa
pshufd xmm4, xmm4, 0xaa
punpcklwd xmm4, xmm2
movd dword [ecx - 0x4c], xmm4
pshufd xmm2, xmm4, 0x55
movd dword [ecx - 0x3e], xmm2
pshufhw xmm2, xmm3, 0xe8
punpcklwd xmm3, xmm1
movd dword [ecx - 0x30], xmm3
pshufd xmm3, xmm3, 0xee
movd dword [ecx - 0x22], xmm3
pshufhw xmm1, xmm1, 0xe8
pshufd xmm1, xmm1, 0xaa
pshufd xmm2, xmm2, 0xaa
punpcklwd xmm2, xmm1
movd dword [ecx - 0x14], xmm2
pshufd xmm1, xmm2, 0x55
movd dword [ecx - 6], xmm1
pxor xmm1, xmm1
pinsrw xmm1, word [ecx - 0x2c], 1
pinsrw xmm1, word [ecx - 0x1e], 3
pinsrw xmm1, word [ecx - 0x10], 5
pinsrw xmm1, word [ecx - 2], 7
psrad xmm1, 0x10
cvtdq2ps xmm1, xmm1
pxor xmm2, xmm2
pinsrw xmm2, word [ecx - 0x64], 1
pinsrw xmm2, word [ecx - 0x56], 3
pinsrw xmm2, word [ecx - 0x48], 5
pinsrw xmm2, word [ecx - 0x3a], 7
psrad xmm2, 0x10
pxor xmm3, xmm3
pinsrw xmm3, word [ecx - 0x62], 1
pinsrw xmm3, word [ecx - 0x54], 3
pinsrw xmm3, word [ecx - 0x46], 5
pinsrw xmm3, word [ecx - 0x38], 7
cvtdq2ps xmm2, xmm2
psrad xmm3, 0x10
cvtdq2ps xmm4, xmm3
pxor xmm3, xmm3
pinsrw xmm3, word [ecx - 0x2a], 1
pinsrw xmm3, word [ecx - 0x1c], 3
pinsrw xmm3, word [ecx - 0xe], 5
pinsrw xmm3, word [ecx], 7
psrad xmm3, 0x10
cvtdq2ps xmm0, xmm3
movups xmmword [esp + 0xb8], xmm0
movups xmm3, xmmword [esp + 0x20]
movaps xmm7, xmm3
mulps xmm7, xmm0
mulps xmm3, xmm4
movups xmm0, xmmword [esp + 0x68]
movaps xmm6, xmm0
mulps xmm6, xmm2
addps xmm6, xmm3
movaps xmm3, xmm0
mulps xmm3, xmm1
addps xmm3, xmm7
movups xmm7, xmmword [esp + 0xa8]
mulps xmm4, xmm7
movups xmm5, xmmword [esp + 0xc8]
mulps xmm2, xmm5
addps xmm2, xmm4
movups xmm0, xmmword [esp + 0x30]
addps xmm6, xmm0
movups xmm0, xmmword [esp + 8]
mulps xmm6, xmm0
cvttps2dq xmm4, xmm6
movups xmm0, xmmword [esp + 0xb8]
mulps xmm0, xmm7
mulps xmm1, xmm5
addps xmm1, xmm0
movups xmm6, xmmword [esp + 0x98]
addps xmm2, xmm6
movups xmm0, xmmword [esp + 0x58]
mulps xmm2, xmm0
cvttps2dq xmm2, xmm2
pshufhw xmm5, xmm4, 0xe8
punpcklwd xmm4, xmm2
movd dword [ecx - 0x64], xmm4
pshufd xmm4, xmm4, 0xee
movd dword [ecx - 0x56], xmm4
pshufhw xmm2, xmm2, 0xe8
pshufd xmm2, xmm2, 0xaa
pshufd xmm4, xmm5, 0xaa
punpcklwd xmm4, xmm2
movups xmm2, xmmword [esp + 0x30]
addps xmm3, xmm2
movups xmm2, xmmword [esp + 8]
mulps xmm3, xmm2
cvttps2dq xmm2, xmm3
addps xmm1, xmm6
mulps xmm1, xmm0
cvttps2dq xmm1, xmm1
movd dword [ecx - 0x48], xmm4
pshufd xmm3, xmm4, 0x55
movd dword [ecx - 0x3a], xmm3
pshufhw xmm3, xmm2, 0xe8
punpcklwd xmm2, xmm1
movd dword [ecx - 0x2c], xmm2
pshufd xmm2, xmm2, 0xee
movd dword [ecx - 0x1e], xmm2
pshufhw xmm1, xmm1, 0xe8
pshufd xmm1, xmm1, 0xaa
pshufd xmm2, xmm3, 0xaa
punpcklwd xmm2, xmm1
movd dword [ecx - 0x10], xmm2
pshufd xmm1, xmm2, 0x55
movd dword [ecx - 2], xmm1
add ecx, 0x70
add eax, 0xfffffff8
jne 0x100c60a0
movups xmm3, xmmword [esp + 0x78]
mov eax, dword [esp + 0x1c]
movups xmm4, xmmword [esp + 0x48]
movups xmm5, xmmword [esp + 0x88]
mov dword [esp + 0x20], ebx
movups xmm2, xmmword [esp + 0xdc]
movlhps xmm2, xmm2
movlhps xmm4, xmm4
movlhps xmm3, xmm3
movlhps xmm5, xmm5
lea ebx, [edx + edx]
mov ecx, eax
sub ecx, edx
shl edx, 4
sub edx, ebx
mov dword [esp + 8], ebp
add edx, ebp
nop word cs:[eax + eax]
xorpd xmm0, xmm0
pinsrw xmm0, word [edx], 1
pinsrw xmm0, word [edx + 4], 3
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
unpcklps xmm0, xmm0
mulps xmm0, xmm3
xorps xmm1, xmm1
pinsrw xmm1, word [edx + 2], 1
pinsrw xmm1, word [edx + 6], 3
psrad xmm1, 0x10
cvtdq2ps xmm1, xmm1
unpcklps xmm1, xmm1
mulps xmm1, xmm4
addps xmm1, xmm0
addps xmm1, xmm2
mulps xmm1, xmm5
cvttps2dq xmm0, xmm1
packssdw xmm0, xmm0
movq qword [edx], xmm0
add edx, 0xe
dec ecx
jne 0x100c6420
mov eax, dword [esp + 0x1c]
lea ebp, [eax + edi]
mov ecx, ebp
shl ecx, 4
sub ecx, ebp
sub ecx, ebp
push ecx
call fcn.1009ca00
add esp, 4
test eax, eax
je 0x100c66a6
mov ebx, eax
test edi, edi
mov edx, eax
jle 0x100c64bd
mov ecx, edi
shl ecx, 4
sub ecx, edi
sub ecx, edi
push ecx
push dword [esp + 0x1c]
push edx
mov dword [esp + 0x3c], edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x3c]
add esp, 0xc
lea eax, [edi + edi]
shl edi, 4
sub edi, eax
mov eax, edx
add eax, edi
mov edx, dword [esp + 0x1c]
lea ecx, [edx + edx]
shl edx, 4
sub edx, ecx
push edx
push dword [esp + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x18]
test edi, edi
je 0x100c64f4
push edi
call fcn.1009ca30
add esp, 4
push dword [esp + 8]
call fcn.1009ca30
add esp, 4
mov edx, ebx
mov eax, ebx
mov edi, ebp
mov ebx, dword [esp + 0x20]
test bl, 0x20
jne 0x100c5e3a
jmp 0x100c6698
mov ebp, edi
mov edi, ebx
movzx ebx, byte [eax]
movzx edx, byte [eax + 1]
mov dword [esp + 0x20], edx
movzx edx, byte [eax + 4]
mov dword [esp + 8], edx
movzx edx, byte [eax + 5]
mov dword [esp + 0x30], edx
movzx edx, byte [eax + 2]
shl edx, 8
or edx, ebx
mov ebx, edi
mov edi, ebp
movd xmm0, edx
movzx edx, byte [eax + 3]
shl edx, 8
add edx, dword [esp + 0x20]
movd xmm1, edx
punpcklbw xmm1, xmm0
punpcklwd xmm0, xmm1
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
movaps xmm2, xmmword [0x10152750]
mulps xmm0, xmm2
movups xmmword [esp + 0x78], xmm0
movzx edx, byte [eax + 6]
shl edx, 8
add edx, dword [esp + 8]
movd xmm0, edx
movzx edx, byte [eax + 7]
shl edx, 8
add edx, dword [esp + 0x30]
movd xmm1, edx
punpcklbw xmm1, xmm0
punpcklwd xmm0, xmm1
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
mulps xmm0, xmm2
movups xmmword [esp + 0x48], xmm0
add eax, 8
jmp 0x100c5fa5
mov eax, ebp
shl eax, 4
sub eax, ebp
sub eax, ebp
mov esi, dword [esp + 0x40]
lea ecx, [esi + eax]
add ecx, 0xc
add esi, eax
cmp byte [esp + 0x58], 0
mov edx, dword [esp + 0x30]
je 0x100c6669
mov byte [ecx], 2
mov word [esi], bx
mov esi, dword [esp + 4]
mov word [ecx - 0xa], si
mov word [edx + eax + 4], 0
xor edi, edi
jmp 0x100c6689
lea eax, [ebp + 1]
mov dword [esp + 0x20], eax
lea ecx, [ebp*2]
shl ebp, 4
sub ebp, ecx
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0xb8]
lea ecx, [ebx + eax]
shr ecx, 1
mov byte [edx + ebp + 0xc], 3
mov word [edx + ebp], cx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x78]
lea ecx, [edi + esi]
shr ecx, 1
mov word [edx + ebp + 2], cx
mov word [edx + ebp + 4], ax
mov word [edx + ebp + 6], si
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 4]
mov ecx, ebp
shl ecx, 4
sub ecx, ebp
sub ecx, ebp
mov byte [edx + ecx + 0xc], 3
mov eax, dword [esp + 8]
mov word [edx + ecx], ax
mov word [edx + ecx + 2], si
mov word [edx + ecx + 4], bx
jmp 0x100c6689
mov byte [ecx], 3
mov word [esi], bx
mov esi, dword [esp + 4]
mov word [ecx - 0xa], si
mov ecx, dword [esp + 0x88]
mov word [edx + eax + 4], cx
mov eax, dword [esp + 0x48]
mov edi, eax
mov ecx, ebp
shl ecx, 4
sub ecx, ebp
sub ecx, ebp
mov word [edx + ecx + 6], di
inc ebp
mov eax, dword [esp + 0x164]
mov dword [eax], edx
jmp 0x100c578e
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100c66b7
push eax
call fcn.1009ca30
add esp, 4
push dword [esp + 8]
call fcn.1009ca30
add esp, 4
jmp 0x100c578c