Function at 0x100a91a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x4158
call fcn.101b60c0
mov eax, dword [0x102220c0]
xor eax, esp
mov dword [esp + 0x4154], eax
mov eax, dword [0x10241574]
push esi
push edi
cmp dword [eax], 0
jne 0x100a91e8
mov ecx, 0x10359d60
call fcn.100abd20
pop edi
pop esi
mov ecx, dword [esp + 0x4154]
xor ecx, esp
call fcn.101b526a
mov esp, ebp
pop ebp
ret
cmp dword [0x10359d70], 0
je 0x100ab47a
mov ecx, dword [0x10359d68]
mov eax, dword [0x10359d64]
dec ecx
and ecx, dword [0x10359d6c]
mov ecx, dword [eax + ecx*4]
movss xmm0, dword [ecx + 0x3f10]
ucomiss xmm0, dword [0x1021482c]
lahf
test ah, 0x44
jnp 0x100ab47a
push ecx
lea ecx, [esp + 0x24]
call fcn.100ab4b0
call fcn.100abcb0
mov eax, dword [0x10241574]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a92c4
mov eax, dword [0x10241574]
mov ecx, dword [0x10240d9c]
mov esi, dword [eax]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x104681f4]
cmp eax, dword [ecx + 4]
jle 0x100a92a8
push 0x104681f4
call fcn.101b57fd
add esp, 4
cmp dword [0x104681f4], 0xffffffff
jne 0x100a92a8
mov edx, 0xc60bf9f2
mov ecx, 0x10204f61
call fcn.1007d240
mov ecx, eax
call fcn.100cef40
push 0x104681f4
mov dword [0x104681ec], eax
call fcn.101b57ac
add esp, 4
mov eax, dword [0x104681ec]
movd xmm0, dword [esi + eax]
mov eax, dword [0x1023fc7c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0xc]
mulss xmm0, dword [eax + 0x20]
jmp 0x100a92d1
mov eax, dword [0x1023fc7c]
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [esp + 0x3f30]
andps xmm0, xmmword [0x10214dd0]
comiss xmm0, dword [0x1021445c]
jbe 0x100a97e7
cmp byte [esp + 0x3f2c], 0
je 0x100a9556
cmp byte [0x102053eb], 0
movups xmm0, xmmword [str.UPIHYY]
movups xmmword [esp + 0x3f40], xmm0
movq xmm0, qword [0x102053e4]
movq qword [esp + 0x3f50], xmm0
je 0x100a94a3
xor edx, edx
cmp dword [0x10240d90], 2
mov dword [esp + 0x14], edx
jl 0x100a9470
movaps xmm0, xmmword [0x10214b30]
lea esi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov edx, dword [esp + 0x3f70]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ecx + esi]
xorps xmm1, xmm0
movd dword [ecx + esi], xmm1
add ecx, 8
cmp ecx, 0x18
jl 0x100a9370
jmp 0x100a94a3
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x18
jl 0x100a9470
xorps xmm0, xmm0
mov dword [esp + 0x3f90], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3f80], xmm0
mov dword [esp + 0x3f94], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a94d0
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3f88]
call fcn.10027870
cmp dword [esp + 0x3f94], 0xf
lea edx, [esp + 0x3f80]
xorps xmm0, xmm0
cmova edx, dword [esp + 0x3f80]
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9523
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027870
call fcn.100ccbf0
mov ecx, dword [esp + 0x3f94]
cmp ecx, 0xf
jbe 0x100a97d8
mov edx, dword [esp + 0x3f80]
jmp 0x100a97af
movups xmm0, xmmword [0x1020536c]
mov eax, dword [0x1020538c]
xor edx, edx
cmp dword [0x10240d90], 2
movups xmmword [esp + 0x4000], xmm0
mov dword [esp + 0x4020], eax
movups xmm0, xmmword [0x1020537c]
mov dword [esp + 0x1c], edx
movups xmmword [esp + 0x4010], xmm0
jl 0x100a96d4
movaps xmm0, xmmword [0x10214b30]
lea esi, [esp + 0x4004]
movaps xmm4, xmmword [0x102149a0]
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov ecx, dword [esp + 0x3f70]
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + edx + 0x4000]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + edx + 0x4000], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esi + edx]
xorps xmm1, xmm0
movd dword [esi + edx], xmm1
add edx, 8
cmp edx, 0x20
jl 0x100a95d0
mov dword [esp + 0x1c], edx
cmp edx, 0x24
jge 0x100a9707
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x4000], cl
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0x24
jl 0x100a96d4
xorps xmm0, xmm0
mov dword [esp + 0x3f50], 0
lea ecx, [esp + 0x4000]
movaps xmmword [esp + 0x3f40], xmm0
mov dword [esp + 0x3f54], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9732
sub ecx, edx
lea eax, [esp + 0x4000]
push ecx
push eax
lea ecx, [esp + 0x3f48]
call fcn.10027870
cmp dword [esp + 0x3f54], 0xf
lea edx, [esp + 0x3f40]
xorps xmm0, xmm0
cmova edx, dword [esp + 0x3f40]
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9785
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027870
call fcn.100ccbf0
mov ecx, dword [esp + 0x3f54]
cmp ecx, 0xf
jbe 0x100a97d8
mov edx, dword [esp + 0x3f40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a97ce
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, 0x10359d60
call fcn.100abd20
jmp 0x100ab445
cmp byte [esp + 0x3ee4], 0
je 0x100ab445
mov eax, dword [0x1023fc88]
push dword [esp + 0x3f34]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [esp + 0x1c], eax
test eax, eax
je 0x100ab445
mov edx, dword [esp + 0x3f10]
test edx, edx
je 0x100ab445
mov ecx, dword [0x1023fc88]
push edx
mov ecx, dword [ecx + 0x40]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
mov ecx, eax
test ecx, ecx
je 0x100ab445
cmp dword [ecx + 0xac], 0
jle 0x100ab445
mov eax, dword [ecx + 0xb0]
add eax, ecx
mov dword [esp + 0x18], eax
je 0x100ab445
movss xmm0, dword [esp + 0x3f20]
lea eax, [esp + 0x3f70]
subss xmm0, dword [esp + 0x3f14]
push eax
lea ecx, [esp + 0x3f44]
movss dword [esp + 0x3f44], xmm0
movss xmm0, dword [esp + 0x3f28]
subss xmm0, dword [esp + 0x3f1c]
movss dword [esp + 0x3f48], xmm0
movss xmm0, dword [esp + 0x3f2c]
subss xmm0, dword [esp + 0x3f20]
movss dword [esp + 0x3f4c], xmm0
call fcn.10089fb0
xorps xmm1, xmm1
lea ecx, [esp + 0x3f40]
movss xmm0, dword [eax]
subss xmm0, xmm1
movss dword [esp + 0x3f40], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, xmm1
movss dword [esp + 0x3f44], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, xmm1
movss dword [esp + 0x3f48], xmm0
call fcn.1008a0a0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x3f80], xmm0
movss xmm0, dword [esp + 0x3f80]
mulss xmm0, dword [0x1021434c]
mov dword [esp + 0x3f88], eax
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f40], xmm0
call fcn.101dc1e0
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x3f84]
mulss xmm0, dword [0x1021434c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f80], xmm0
call fcn.101dc1e0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f80]
mulss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x102147cc]
addss xmm1, dword [esp + 0x3f20]
movss dword [esp + 0x3f70], xmm1
call fcn.101dd460
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f40]
mulss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x102147cc]
addss xmm1, dword [esp + 0x3f24]
movss dword [esp + 0x3f74], xmm1
call fcn.101dd460
mov ecx, dword [esp + 0x3f38]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x10214e00]
mulss xmm0, dword [0x102147cc]
addss xmm0, dword [esp + 0x3f28]
movss dword [esp + 0x3f78], xmm0
cmp ecx, 0xffffffff
jg 0x100a9a15
lea edi, [esp + 0x8bc]
jmp 0x100a9a4b
cmp dword [esp + 0x8b8], ecx
jbe 0x100ab48e
mov edx, dword [esp + 0x8b4]
mov eax, dword [esp + 0x8a8]
add edx, ecx
test eax, eax
je 0x100a9a3a
mov eax, dword [eax]
jmp 0x100a9a3c
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
mov edi, dword [eax + ecx*4]
add edi, 0x68
xor esi, esi
nop dword [eax]
lea eax, [esp + 0x3f70]
mov edx, esi
push eax
lea eax, [esp + 0x3f18]
mov ecx, edi
push eax
push dword [esp + 0x20]
call fcn.1008b6b0
test al, al
jne 0x100a9c83
inc esi
cmp esi, 0x13
jl 0x100a9a50
movups xmm0, xmmword [0x10205390]
mov ax, word [0x102053a8]
mov word [esp + 0x4018], ax
movups xmmword [esp + 0x4000], xmm0
movq xmm0, qword [0x102053a0]
movq qword [esp + 0x4010], xmm0
test ah, ah
je 0x100a9c37
xor edx, edx
cmp dword [0x10240d90], 2
mov dword [esp + 0x1c], edx
jl 0x100a9c04
movaps xmm0, xmmword [0x10214b30]
lea esi, [esp + 0x4004]
movaps xmm4, xmmword [0x102149a0]
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov ecx, dword [esp + 0x3f70]
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + edx + 0x4000]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + edx + 0x4000], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esi + edx]
xorps xmm1, xmm0
movd dword [esi + edx], xmm1
add edx, 8
cmp edx, 0x18
jl 0x100a9b00
mov dword [esp + 0x1c], edx
cmp edx, 0x1a
jge 0x100a9c37
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x4000], cl
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0x1a
jl 0x100a9c04
sub esp, 0x18
lea ecx, [esp + 0x4018]
mov edx, esp
lea esi, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9c60
sub ecx, esi
lea eax, [esp + 0x4018]
push ecx
push eax
mov ecx, edx
call fcn.10027870
call fcn.100ccbf0
jmp 0x100ab445
movups xmm0, xmmword [0x102053f4]
mov al, byte [0x10205404]
xor edx, edx
mov esi, dword [0x10240d90]
mov byte [esp + 0x3f50], al
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x3f40], xmm0
cmp esi, 2
jl 0x100a9df4
movaps xmm0, xmmword [0x10214b30]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov ecx, dword [esp + 0x3f70]
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + edx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + edx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [edx + edi]
xorps xmm1, xmm0
movd dword [edx + edi], xmm1
add edx, 8
cmp edx, 0x10
jl 0x100a9cf0
mov dword [esp + 0x14], edx
cmp edx, 0x11
jge 0x100a9e27
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x11
jl 0x100a9df4
xorps xmm0, xmm0
mov dword [esp + 0x3fd0], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3fc0], xmm0
mov dword [esp + 0x3fd4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9e52
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x40d8]
push eax
call fcn.101a8fb0
xorps xmm0, xmm0
mov dword [esp + 0x3fb0], 0
lea ecx, [esp + 0x40d8]
movaps xmmword [esp + 0x3fa0], xmm0
mov dword [esp + 0x3fb4], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9eb0
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
movups xmm0, xmmword [0x10205328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aa063
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100aa030
movaps xmm0, xmmword [0x10214b30]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov edx, dword [esp + 0x3f70]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ecx + edi]
xorps xmm1, xmm0
movd dword [ecx + edi], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x100a9f31
jmp 0x100aa063
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100aa030
xorps xmm0, xmm0
mov dword [esp + 0x3f90], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3f80], xmm0
mov dword [esp + 0x3f94], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa090
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3f88]
call fcn.10027870
lea eax, [esp + 0x3fa0]
push eax
lea eax, [esp + 0x3f84]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x3fec]
call fcn.10029860
lea eax, [esp + 0x3fc0]
push eax
lea eax, [esp + 0x3fe4]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x40cc]
call fcn.10029860
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aa12a
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa120
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3f94]
cmp ecx, 0xf
jbe 0x100aa166
mov edx, dword [esp + 0x3f80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa15c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aa1a2
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa198
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aa1de
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa1d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov edx, dword [esp + 0x3f38]
lea ecx, [esp + 0x4030]
call fcn.10003e20
movups xmm0, xmmword [0x10205348]
mov cl, byte [0x10205368]
xor edx, edx
mov byte [esp + 0x3f60], cl
mov edi, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x3f40], xmm0
movups xmm0, xmmword [0x10205358]
movups xmmword [esp + 0x3f50], xmm0
cmp esi, 2
jl 0x100aa370
movaps xmm0, xmmword [0x10214b30]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov ecx, dword [esp + 0x3f70]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + edx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + edx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [edx + edi]
xorps xmm1, xmm0
movd dword [edx + edi], xmm1
add edx, 8
cmp edx, 0x20
jl 0x100aa263
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp edx, 0x21
jge 0x100aa3a3
nop dword [eax + eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x21
jl 0x100aa370
xorps xmm0, xmm0
mov dword [esp + 0x3ff0], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3fe0], xmm0
mov dword [esp + 0x3ff4], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa3d0
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fe8]
call fcn.10027870
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x40d8]
push eax
call fcn.101a8fb0
xorps xmm0, xmm0
mov dword [esp + 0x3fb0], 0
lea ecx, [esp + 0x40d8]
movaps xmmword [esp + 0x3fa0], xmm0
mov dword [esp + 0x3fb4], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa430
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
movups xmm0, xmmword [0x10205328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aa5e5
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100aa5b2
movaps xmm0, xmmword [0x10214b30]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov edx, dword [esp + 0x3f70]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ecx + edi]
xorps xmm1, xmm0
movd dword [ecx + edi], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x100aa4b1
mov edi, dword [esp + 0x18]
jmp 0x100aa5e5
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100aa5b2
xorps xmm0, xmm0
mov dword [esp + 0x3fd0], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3fc0], xmm0
mov dword [esp + 0x3fd4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa610
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
lea eax, [esp + 0x3fa0]
push eax
lea eax, [esp + 0x3fc4]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x4064]
call fcn.10029860
lea eax, [esp + 0x3fe0]
push eax
lea eax, [esp + 0x405c]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x409c]
call fcn.10029860
push edi
lea eax, [esp + 0x4094]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x3f8c]
call fcn.10029860
cmp dword [esp + 0x3f94], 0xf
lea ecx, [esp + 0x3f80]
mov eax, dword [esp + 0x3f90]
cmova ecx, dword [esp + 0x3f80]
mov byte [eax + ecx], 0
movaps xmm0, xmmword [esp + 0x3f80]
mov ecx, dword [esp + 0x40a4]
movaps xmmword [esp + 0x4070], xmm0
movq xmm0, qword [esp + 0x3f90]
movq qword [esp + 0x4080], xmm0
mov dword [esp + 0x3f90], 0
mov dword [esp + 0x3f94], 0xf
mov byte [esp + 0x3f80], 0
cmp ecx, 0xf
jbe 0x100aa725
mov edx, dword [esp + 0x4090]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa71b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab493
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100aa761
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa757
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab493
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aa79d
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa793
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab493
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aa7d9
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa7cf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab493
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aa815
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa80b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab493
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x4044]
cmp ecx, 0xf
jbe 0x100aa851
mov edx, dword [esp + 0x4030]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa847
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab493
push ecx
push edx
call fcn.101b5563
add esp, 8
movups xmm0, xmmword [0x102053b8]
mov al, byte [0x102053d0]
xor edx, edx
mov byte [esp + 0x4048], al
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x4030], xmm0
movq xmm0, qword [0x102053c8]
movq qword [esp + 0x4040], xmm0
cmp esi, 2
jl 0x100aa9c4
movaps xmm0, xmmword [0x10214b30]
lea edi, [esp + 0x4034]
movaps xmm4, xmmword [0x102149a0]
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov ecx, dword [esp + 0x3f70]
nop
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + edx + 0x4030]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + edx + 0x4030], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [edi + edx]
xorps xmm1, xmm0
movd dword [edi + edx], xmm1
add edx, 8
cmp edx, 0x18
jl 0x100aa8c0
mov dword [esp + 0x14], edx
cmp edx, 0x19
jge 0x100aa9f7
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x4030], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x19
jl 0x100aa9c4
xorps xmm0, xmm0
mov dword [esp + 0x3fb0], 0
lea ecx, [esp + 0x4030]
movaps xmmword [esp + 0x3fa0], xmm0
mov dword [esp + 0x3fb4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aaa22
sub ecx, edx
lea eax, [esp + 0x4030]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x40d8]
push eax
mov ecx, edi
call fcn.101a8fb0
xorps xmm0, xmm0
mov dword [esp + 0x3fd0], 0
lea ecx, [esp + 0x40d8]
movaps xmmword [esp + 0x3fc0], xmm0
mov dword [esp + 0x3fd4], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aaa80
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
movups xmm0, xmmword [0x10205328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aac35
xor edx, edx
mov dword [esp + 0x18], edx
cmp esi, 2
jl 0x100aac02
movaps xmm0, xmmword [0x10214b30]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov edx, dword [esp + 0x3f70]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [edi + ecx]
xorps xmm1, xmm0
movd dword [edi + ecx], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x100aab01
mov edi, dword [esp + 0x1c]
jmp 0x100aac35
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x10
jl 0x100aac02
xorps xmm0, xmm0
mov dword [esp + 0x3ff0], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3fe0], xmm0
mov dword [esp + 0x3ff4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aac60
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fe8]
call fcn.10027870
lea eax, [esp + 0x3fc0]
push eax
lea eax, [esp + 0x3fe4]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x4064]
call fcn.10029860
lea eax, [esp + 0x3fa0]
push eax
lea eax, [esp + 0x405c]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x400c]
call fcn.10029860
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100aacfa
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aacf0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aad36
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aad2c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aad72
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aad68
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aadae
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aada4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov eax, dword [str._67_7F]
xor edx, edx
movq xmm0, qword [0x10205338]
mov dword [esp + 0x3f78], eax
mov ax, word [0x10205344]
mov word [esp + 0x3f7c], ax
mov al, byte [0x10205346]
movq qword [esp + 0x3f70], xmm0
mov byte [esp + 0x3f7e], al
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100aaf00
movaps xmm2, xmmword [0x102149a0]
mov edx, 8
movaps xmm4, xmmword [0x10214db0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
mov eax, dword [0x10214b30]
movaps xmm0, xmm1
mov dword [esp + 0x14], edx
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10214a10]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x102149e0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x10205338]
xorps xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0x3f70], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10214a10]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x3f74]
xorps xmm1, xmm0
movd dword [esp + 0x3f74], xmm1
nop dword [eax + eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f70], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xf
jl 0x100aaf00
xorps xmm0, xmm0
mov dword [esp + 0x3fb0], 0
lea ecx, [esp + 0x3f70]
movaps xmmword [esp + 0x3fa0], xmm0
mov dword [esp + 0x3fb4], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aaf60
sub ecx, edx
lea eax, [esp + 0x3f70]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
lea eax, [esp + 0x40d8]
mov ecx, edi
push eax
call fcn.101a8fb0
xorps xmm0, xmm0
mov dword [esp + 0x3fd0], 0
lea ecx, [esp + 0x40d8]
movaps xmmword [esp + 0x3fc0], xmm0
mov dword [esp + 0x3fd4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aafb8
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
movups xmm0, xmmword [0x10205328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100ab173
xor edx, edx
mov dword [esp + 0x18], edx
cmp esi, 2
jl 0x100ab140
movaps xmm0, xmmword [0x10214b30]
lea esi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102149a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214db0]
movaps xmm5, xmmword [0x10214a10]
movaps xmmword [esp + 0x3f70], xmm0
mov edx, dword [esp + 0x3f70]
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f40]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f40], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x10214ac0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esi + ecx]
xorps xmm1, xmm0
movd dword [esi + ecx], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x100ab040
jmp 0x100ab173
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x10
jl 0x100ab140
xorps xmm0, xmm0
mov dword [esp + 0x3ff0], 0
lea ecx, [esp + 0x3f40]
movaps xmmword [esp + 0x3fe0], xmm0
mov dword [esp + 0x3ff4], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ab1a0
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fe8]
call fcn.10027870
lea eax, [esp + 0x3fc0]
push eax
lea eax, [esp + 0x3fe4]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x4064]
call fcn.10029860
lea eax, [esp + 0x3fa0]
push eax
lea eax, [esp + 0x405c]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x40b4]
call fcn.10029860
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100ab23a
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab230
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100ab276
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab26c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100ab2b2
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab2a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100ab2ee
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab2e4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
cmp dword [esp + 0x3f38], 1
jne 0x100ab30f
mov eax, dword [0x1023fc80]
cmp byte [eax + 0xf24], 0
je 0x100ab326
lea eax, [esp + 0x40a8]
jmp 0x100ab32d
jle 0x100ab326
mov eax, dword [0x1023fc80]
cmp byte [eax + 0xf24], 0
lea eax, [esp + 0x4070]
jne 0x100ab32d
lea eax, [esp + 0x40c0]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10020a50
call fcn.100ccbf0
mov eax, dword [esp + 0x3f34]
cmp eax, 0x41
jae 0x100ab498
mov ecx, dword [esp + 0x40bc]
imul eax, eax, 0x3ef0
inc dword [eax + 0x10252700]
cmp ecx, 0xf
jbe 0x100ab395
mov edx, dword [esp + 0x40a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab38b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x4014]
cmp ecx, 0xf
jbe 0x100ab3d1
mov edx, dword [esp + 0x4000]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab3c7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x4084]
cmp ecx, 0xf
jbe 0x100ab40d
mov edx, dword [esp + 0x4070]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab403
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x40d4]
cmp ecx, 0xf
jbe 0x100ab445
mov edx, dword [esp + 0x40c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ab43b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ab49d
push ecx
push edx
call fcn.101b5563
add esp, 8
lea ecx, [esp + 0x3e6c]
call fcn.1002bf20
lea ecx, [esp + 0x8a8]
call fcn.10090bf0
mov eax, dword [esp + 0x8a8]
push 8
push eax
mov dword [esp + 0x8b0], 0
call fcn.101b5563
add esp, 8
mov ecx, dword [esp + 0x415c]
pop edi
pop esi
xor ecx, esp
call fcn.101b526a
mov esp, ebp
pop ebp
ret
call fcn.10094d20
call fcn.101ba696
call fcn.10090be0
call fcn.101ba696
int3