Function at 0x100a8af0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x4158
call fcn.101b5a80
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 0x100a8b38
mov ecx, 0x10359d58
call fcn.100ab660
pop edi
pop esi
mov ecx, dword [esp + 0x4154]
xor ecx, esp
call fcn.101b4c2a
mov esp, ebp
pop ebp
ret
cmp dword [0x10359d68], 0
je 0x100aadca
mov ecx, dword [0x10359d60]
mov eax, dword [0x10359d5c]
dec ecx
and ecx, dword [0x10359d64]
mov ecx, dword [eax + ecx*4]
movss xmm0, dword [ecx + 0x3f10]
ucomiss xmm0, dword [0x1021462c]
lahf
test ah, 0x44
jnp 0x100aadca
push ecx
lea ecx, [esp + 0x24]
call fcn.100aae00
call fcn.100ab5f0
mov eax, dword [0x10241574]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a8c14
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 [0x104681ec]
cmp eax, dword [ecx + 4]
jle 0x100a8bf8
push 0x104681ec
call fcn.101b51bd
add esp, 4
cmp dword [0x104681ec], 0xffffffff
jne 0x100a8bf8
mov edx, 0xc60bf9f2
mov ecx, 0x10204f61
call fcn.1007d240
mov ecx, eax
call fcn.100ce5a0
push 0x104681ec
mov dword [0x104681e4], eax
call fcn.101b516c
add esp, 4
mov eax, dword [0x104681e4]
movd xmm0, dword [esi + eax]
mov eax, dword [0x1023fc7c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0xc]
mulss xmm0, dword [eax + 0x20]
jmp 0x100a8c21
mov eax, dword [0x1023fc7c]
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [esp + 0x3f30]
andps xmm0, xmmword [0x10214c10]
comiss xmm0, dword [0x10214264]
jbe 0x100a9136
cmp byte [esp + 0x3f2c], 0
je 0x100a8ea6
cmp byte [0x102053ff], 0
movups xmm0, xmmword [str.YED__]
movups xmmword [esp + 0x3f40], xmm0
movq xmm0, qword [0x102053f8]
movq qword [esp + 0x3f50], xmm0
je 0x100a8df2
xor edx, edx
cmp dword [0x10240d90], 2
mov dword [esp + 0x14], edx
jl 0x100a8dc0
movaps xmm0, xmmword [0x10214950]
lea esi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a8cc0
jmp 0x100a8df2
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x18
jl 0x100a8dc0
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a8e20
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 0x100a8e73
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027870
call fcn.100cc250
mov ecx, dword [esp + 0x3f94]
cmp ecx, 0xf
jbe 0x100a9127
mov edx, dword [esp + 0x3f80]
jmp 0x100a90fe
movups xmm0, xmmword [0x102053a4]
mov eax, dword [0x102053c4]
xor edx, edx
cmp dword [0x10240d90], 2
movups xmmword [esp + 0x4000], xmm0
mov dword [esp + 0x4020], eax
movups xmm0, xmmword [0x102053b4]
mov dword [esp + 0x1c], edx
movups xmmword [esp + 0x4010], xmm0
jl 0x100a9024
movaps xmm0, xmmword [0x10214950]
lea esi, [esp + 0x4004]
movaps xmm4, xmmword [0x102147a0]
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a8f20
mov dword [esp + 0x1c], edx
cmp edx, 0x24
jge 0x100a9056
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x4000], cl
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0x24
jl 0x100a9024
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 0x100a9081
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 0x100a90d4
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027870
call fcn.100cc250
mov ecx, dword [esp + 0x3f54]
cmp ecx, 0xf
jbe 0x100a9127
mov edx, dword [esp + 0x3f40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a911d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, 0x10359d58
call fcn.100ab660
jmp 0x100aad95
cmp byte [esp + 0x3ee4], 0
je 0x100aad95
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 0x100aad95
mov edx, dword [esp + 0x3f10]
test edx, edx
je 0x100aad95
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 0x100aad95
cmp dword [ecx + 0xac], 0
jle 0x100aad95
mov eax, dword [ecx + 0xb0]
add eax, ecx
mov dword [esp + 0x18], eax
je 0x100aad95
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.100899c0
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.10089ab0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x3f80], xmm0
movss xmm0, dword [esp + 0x3f80]
mulss xmm0, dword [0x10214154]
mov dword [esp + 0x3f88], eax
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f40], xmm0
call fcn.101dbb90
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x3f84]
mulss xmm0, dword [0x10214154]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f80], xmm0
call fcn.101dbb90
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f80]
mulss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x102145d0]
addss xmm1, dword [esp + 0x3f20]
movss dword [esp + 0x3f70], xmm1
call fcn.101dce10
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f40]
mulss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x102145d0]
addss xmm1, dword [esp + 0x3f24]
movss dword [esp + 0x3f74], xmm1
call fcn.101dce10
mov ecx, dword [esp + 0x3f38]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x10214c40]
mulss xmm0, dword [0x102145d0]
addss xmm0, dword [esp + 0x3f28]
movss dword [esp + 0x3f78], xmm0
cmp ecx, 0xffffffff
jg 0x100a9364
lea edi, [esp + 0x8bc]
jmp 0x100a939a
cmp dword [esp + 0x8b8], ecx
jbe 0x100aadde
mov edx, dword [esp + 0x8b4]
mov eax, dword [esp + 0x8a8]
add edx, ecx
test eax, eax
je 0x100a9389
mov eax, dword [eax]
jmp 0x100a938b
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.1008b0c0
test al, al
jne 0x100a95d3
inc esi
cmp esi, 0x13
jl 0x100a93a0
movups xmm0, xmmword [0x10205388]
mov ax, word [0x102053a0]
mov word [esp + 0x4018], ax
movups xmmword [esp + 0x4000], xmm0
movq xmm0, qword [0x10205398]
movq qword [esp + 0x4010], xmm0
test ah, ah
je 0x100a9586
xor edx, edx
cmp dword [0x10240d90], 2
mov dword [esp + 0x1c], edx
jl 0x100a9554
movaps xmm0, xmmword [0x10214950]
lea esi, [esp + 0x4004]
movaps xmm4, xmmword [0x102147a0]
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a9450
mov dword [esp + 0x1c], edx
cmp edx, 0x1a
jge 0x100a9586
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x4000], cl
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0x1a
jl 0x100a9554
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a95b0
sub ecx, esi
lea eax, [esp + 0x4018]
push ecx
push eax
mov ecx, edx
call fcn.10027870
call fcn.100cc250
jmp 0x100aad95
movups xmm0, xmmword [0x10205400]
mov al, byte [0x10205410]
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 0x100a9744
movaps xmm0, xmmword [0x10214950]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a9640
mov dword [esp + 0x14], edx
cmp edx, 0x11
jge 0x100a9776
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x11
jl 0x100a9744
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 0x100a97a1
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.101a8950
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 + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9800
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
movups xmm0, xmmword [0x10205368]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100a99b2
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100a9980
movaps xmm0, xmmword [0x10214950]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a9881
jmp 0x100a99b2
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100a9980
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a99e0
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 0x100a9a7a
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9a70
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3f94]
cmp ecx, 0xf
jbe 0x100a9ab6
mov edx, dword [esp + 0x3f80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9aac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100a9af2
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9ae8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100a9b2e
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9b24
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov edx, dword [esp + 0x3f38]
lea ecx, [esp + 0x4030]
call fcn.10003e20
movups xmm0, xmmword [0x10205328]
mov cl, byte [0x10205348]
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 [0x10205338]
movups xmmword [esp + 0x3f50], xmm0
cmp esi, 2
jl 0x100a9cc0
movaps xmm0, xmmword [0x10214950]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a9bb3
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp edx, 0x21
jge 0x100a9cf2
nop dword [eax + eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x21
jl 0x100a9cc0
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9d20
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.101a8950
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 0x100a9d80
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
movups xmm0, xmmword [0x10205368]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100a9f34
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100a9f02
movaps xmm0, xmmword [0x10214950]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100a9e01
mov edi, dword [esp + 0x18]
jmp 0x100a9f34
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100a9f02
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]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9f60
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 0x100aa075
mov edx, dword [esp + 0x4090]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa06b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aade3
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100aa0b1
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa0a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aade3
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aa0ed
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa0e3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aade3
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aa129
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa11f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aade3
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aa165
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa15b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aade3
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x4044]
cmp ecx, 0xf
jbe 0x100aa1a1
mov edx, dword [esp + 0x4030]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa197
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aade3
push ecx
push edx
call fcn.101b4f23
add esp, 8
movups xmm0, xmmword [0x1020534c]
mov al, byte [0x10205364]
xor edx, edx
mov byte [esp + 0x4048], al
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x4030], xmm0
movq xmm0, qword [0x1020535c]
movq qword [esp + 0x4040], xmm0
cmp esi, 2
jl 0x100aa314
movaps xmm0, xmmword [0x10214950]
lea edi, [esp + 0x4034]
movaps xmm4, xmmword [0x102147a0]
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100aa210
mov dword [esp + 0x14], edx
cmp edx, 0x19
jge 0x100aa346
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x4030], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x19
jl 0x100aa314
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 0x100aa371
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.101a8950
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa3d0
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
movups xmm0, xmmword [0x10205368]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aa584
xor edx, edx
mov dword [esp + 0x18], edx
cmp esi, 2
jl 0x100aa552
movaps xmm0, xmmword [0x10214950]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100aa451
mov edi, dword [esp + 0x1c]
jmp 0x100aa584
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x10
jl 0x100aa552
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 0x100aa5b0
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 0x100aa64a
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa640
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aa686
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa67c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aa6c2
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa6b8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aa6fe
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa6f4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov eax, dword [0x10205380]
xor edx, edx
movq xmm0, qword [0x10205378]
mov dword [esp + 0x3f78], eax
mov ax, word [0x10205384]
mov word [esp + 0x3f7c], ax
mov al, byte [0x10205386]
movq qword [esp + 0x3f70], xmm0
mov byte [esp + 0x3f7e], al
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100aa850
movaps xmm2, xmmword [0x102147a0]
mov edx, 8
movaps xmm4, xmmword [0x10214900]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
mov eax, dword [0x10214950]
movaps xmm0, xmm1
mov dword [esp + 0x14], edx
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10214850]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x102147e0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x102148e0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x10205378]
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, 1
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10214850]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x102148e0]
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, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f70], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0xf
jl 0x100aa850
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa8b0
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.101a8950
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 0x100aa908
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
movups xmm0, xmmword [0x10205368]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aaac2
xor edx, edx
mov dword [esp + 0x18], edx
cmp esi, 2
jl 0x100aaa90
movaps xmm0, xmmword [0x10214950]
lea esi, [esp + 0x3f44]
movaps xmm4, xmmword [0x102147a0]
xor ecx, ecx
movaps xmm3, xmmword [0x10214900]
movaps xmm5, xmmword [0x10214850]
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, 1
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 [0x102148e0]
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, 1
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 [0x102148e0]
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 0x100aa990
jmp 0x100aaac2
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x34
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x10
jl 0x100aaa90
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 dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aaaf0
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 0x100aab8a
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aab80
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aabc6
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aabbc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aac02
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aabf8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aac3e
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aac34
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
cmp dword [esp + 0x3f38], 1
jne 0x100aac5f
mov eax, dword [0x1023fc80]
cmp byte [eax + 0xf24], 0
je 0x100aac76
lea eax, [esp + 0x40a8]
jmp 0x100aac7d
jle 0x100aac76
mov eax, dword [0x1023fc80]
cmp byte [eax + 0xf24], 0
lea eax, [esp + 0x4070]
jne 0x100aac7d
lea eax, [esp + 0x40c0]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10020a50
call fcn.100cc250
mov eax, dword [esp + 0x3f34]
cmp eax, 0x41
jae 0x100aade8
mov ecx, dword [esp + 0x40bc]
imul eax, eax, 0x3ef0
inc dword [eax + 0x102526f8]
cmp ecx, 0xf
jbe 0x100aace5
mov edx, dword [esp + 0x40a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aacdb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x4014]
cmp ecx, 0xf
jbe 0x100aad21
mov edx, dword [esp + 0x4000]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aad17
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x4084]
cmp ecx, 0xf
jbe 0x100aad5d
mov edx, dword [esp + 0x4070]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aad53
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x40d4]
cmp ecx, 0xf
jbe 0x100aad95
mov edx, dword [esp + 0x40c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aad8b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aaded
push ecx
push edx
call fcn.101b4f23
add esp, 8
lea ecx, [esp + 0x3e6c]
call fcn.1002bf20
lea ecx, [esp + 0x8a8]
call fcn.100905b0
mov eax, dword [esp + 0x8a8]
push 8
push eax
mov dword [esp + 0x8b0], 0
call fcn.101b4f23
add esp, 8
mov ecx, dword [esp + 0x415c]
pop edi
pop esi
xor ecx, esp
call fcn.101b4c2a
mov esp, ebp
pop ebp
ret
call fcn.10094690
call fcn.101ba056
call fcn.100905a0
call fcn.101ba056
int3