Function at 0x100a8c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x4158
call fcn.101b6c00
mov eax, dword [0x102230c0]
xor eax, esp
mov dword [esp + 0x4154], eax
mov eax, dword [0x10242574]
push esi
push edi
cmp dword [eax], 0
jne 0x100a8c98
mov ecx, 0x1035ad58
call fcn.100ab880
pop edi
pop esi
mov ecx, dword [esp + 0x4154]
xor ecx, esp
call fcn.101b5daa
mov esp, ebp
pop ebp
ret
cmp dword [0x1035ad68], 0
je 0x100aafbc
mov ecx, dword [0x1035ad60]
mov eax, dword [0x1035ad5c]
dec ecx
and ecx, dword [0x1035ad64]
mov ecx, dword [eax + ecx*4]
movss xmm0, dword [ecx + 0x3f10]
ucomiss xmm0, dword [0x102155e4]
lahf
test ah, 0x44
jnp 0x100aafbc
push ecx
lea ecx, [esp + 0x24]
call fcn.100aaff0
call fcn.100ab810
mov eax, dword [0x10242574]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100a8d74
mov eax, dword [0x10242574]
mov ecx, dword [0x10241d9c]
mov esi, dword [eax]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x104691ec]
cmp eax, dword [ecx + 4]
jle 0x100a8d58
push 0x104691ec
call fcn.101b633d
add esp, 4
cmp dword [0x104691ec], 0xffffffff
jne 0x100a8d58
mov edx, 0xc60bf9f2
mov ecx, 0x10205f61
call fcn.1007d300
mov ecx, eax
call fcn.100ce970
push 0x104691ec
mov dword [0x104691e4], eax
call fcn.101b62ec
add esp, 4
mov eax, dword [0x104691e4]
movd xmm0, dword [esi + eax]
mov eax, dword [0x10240c7c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0xc]
mulss xmm0, dword [eax + 0x20]
jmp 0x100a8d81
mov eax, dword [0x10240c7c]
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [esp + 0x3f30]
andps xmm0, xmmword [0x10215bb0]
comiss xmm0, dword [0x1021521c]
jbe 0x100a92a7
cmp byte [esp + 0x3f2c], 0
je 0x100a9013
cmp byte [0x1020640b], 0
movups xmm0, xmmword [str._ZGFSS]
movups xmmword [esp + 0x3f40], xmm0
movq xmm0, qword [0x10206404]
movq qword [esp + 0x3f50], xmm0
je 0x100a8f5c
xor edx, edx
cmp dword [0x10241d90], 2
mov dword [esp + 0x18], edx
jl 0x100a8f25
movaps xmm0, xmmword [0x102158e0]
lea esi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
xor ecx, ecx
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100a8e20
jmp 0x100a8f5c
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x18
jl 0x100a8f25
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]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a8f87
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
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a8fe0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027870
call fcn.100cc620
mov ecx, dword [esp + 0x3f94]
cmp ecx, 0xf
jbe 0x100a9298
mov edx, dword [esp + 0x3f80]
jmp 0x100a926f
movups xmm0, xmmword [0x102063c4]
mov eax, dword [0x102063e4]
xor edx, edx
cmp dword [0x10241d90], 2
movups xmmword [esp + 0x4000], xmm0
mov dword [esp + 0x4020], eax
movups xmm0, xmmword [0x102063d4]
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x4010], xmm0
jl 0x100a9190
movaps xmm0, xmmword [0x102158e0]
lea esi, [esp + 0x4004]
movaps xmm4, xmmword [0x10215760]
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100a9082
mov dword [esp + 0x14], edx
cmp edx, 0x24
jge 0x100a91c7
nop
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x4000], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x24
jl 0x100a9190
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 0x100a91f2
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 0x100a9245
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027870
call fcn.100cc620
mov ecx, dword [esp + 0x3f54]
cmp ecx, 0xf
jbe 0x100a9298
mov edx, dword [esp + 0x3f40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a928e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, 0x1035ad58
call fcn.100ab880
jmp 0x100aaf87
cmp byte [esp + 0x3ee4], 0
je 0x100aaf87
mov eax, dword [0x10240c88]
push dword [esp + 0x3f34]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [esp + 0x18], eax
test eax, eax
je 0x100aaf87
mov edx, dword [esp + 0x3f10]
test edx, edx
je 0x100aaf87
mov ecx, dword [0x10240c88]
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 0x100aaf87
cmp dword [ecx + 0xac], 0
jle 0x100aaf87
mov eax, dword [ecx + 0xb0]
add eax, ecx
mov dword [esp + 0x1c], eax
je 0x100aaf87
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.10089a90
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.10089b80
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x3f80], xmm0
movss xmm0, dword [esp + 0x3f80]
mulss xmm0, dword [0x1021510c]
mov dword [esp + 0x3f88], eax
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f40], xmm0
call fcn.101dcd10
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x3f84]
mulss xmm0, dword [0x1021510c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f80], xmm0
call fcn.101dcd10
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f80]
mulss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x10215588]
addss xmm1, dword [esp + 0x3f20]
movss dword [esp + 0x3f70], xmm1
call fcn.101ddf90
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f40]
mulss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x10215588]
addss xmm1, dword [esp + 0x3f24]
movss dword [esp + 0x3f74], xmm1
call fcn.101ddf90
mov ecx, dword [esp + 0x3f38]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x10215be0]
mulss xmm0, dword [0x10215588]
addss xmm0, dword [esp + 0x3f28]
movss dword [esp + 0x3f78], xmm0
cmp ecx, 0xffffffff
jg 0x100a94d5
lea edi, [esp + 0x8bc]
jmp 0x100a950b
cmp dword [esp + 0x8b8], ecx
jbe 0x100aafd0
mov edx, dword [esp + 0x8b4]
mov eax, dword [esp + 0x8a8]
add edx, ecx
test eax, eax
je 0x100a94fa
mov eax, dword [eax]
jmp 0x100a94fc
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 + 0x24]
call fcn.1008b1a0
test al, al
jne 0x100a9753
inc esi
cmp esi, 0x13
jl 0x100a9510
movups xmm0, xmmword [0x1020635c]
mov ax, word [0x10206374]
mov word [esp + 0x4018], ax
movups xmmword [esp + 0x4000], xmm0
movq xmm0, qword [0x1020636c]
movq qword [esp + 0x4010], xmm0
test ah, ah
je 0x100a9707
xor edx, edx
cmp dword [0x10241d90], 2
mov dword [esp + 0x14], edx
jl 0x100a96d0
movaps xmm0, xmmword [0x102158e0]
lea esi, [esp + 0x4004]
movaps xmm4, xmmword [0x10215760]
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [edx + esi]
xorps xmm1, xmm0
movd dword [edx + esi], xmm1
add edx, 8
cmp edx, 0x18
jl 0x100a95c0
mov dword [esp + 0x14], edx
cmp edx, 0x1a
jge 0x100a9707
nop dword [eax]
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x4000], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x1a
jl 0x100a96d0
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 0x100a9730
sub ecx, esi
lea eax, [esp + 0x4018]
push ecx
push eax
mov ecx, edx
call fcn.10027870
call fcn.100cc620
jmp 0x100aaf87
movups xmm0, xmmword [0x102063a0]
mov al, byte [0x102063b0]
xor edx, edx
mov esi, dword [0x10241d90]
mov byte [esp + 0x3f50], al
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x3f40], xmm0
cmp esi, 2
jl 0x100a98d0
movaps xmm0, xmmword [0x102158e0]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100a97c0
mov dword [esp + 0x14], edx
cmp edx, 0x11
jge 0x100a9907
nop dword [eax]
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x11
jl 0x100a98d0
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 0x100a9932
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x40d8]
push eax
call fcn.101a9ae0
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 0x100a9990
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
movups xmm0, xmmword [0x10206328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100a9b57
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100a9b20
movaps xmm0, xmmword [0x102158e0]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
xor ecx, ecx
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100a9a11
jmp 0x100a9b57
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100a9b20
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]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a9b82
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 + 0x24]
lea ecx, [esp + 0x3fec]
call fcn.10029860
lea eax, [esp + 0x3fc0]
push eax
lea eax, [esp + 0x3fe4]
push eax
push dword [esp + 0x24]
lea ecx, [esp + 0x40cc]
call fcn.10029860
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100a9c1c
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9c12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3f94]
cmp ecx, 0xf
jbe 0x100a9c58
mov edx, dword [esp + 0x3f80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9c4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100a9c94
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9c8a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100a9cd0
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a9cc6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov edx, dword [esp + 0x3f38]
lea ecx, [esp + 0x4030]
call fcn.10003e20
movups xmm0, xmmword [0x10206338]
mov cl, byte [0x10206358]
xor edx, edx
mov byte [esp + 0x3f60], cl
mov edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x3f40], xmm0
movups xmm0, xmmword [0x10206348]
movups xmmword [esp + 0x3f50], xmm0
cmp esi, 2
jl 0x100a9e70
movaps xmm0, xmmword [0x102158e0]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100a9d60
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
cmp edx, 0x21
jge 0x100a9ea7
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x21
jl 0x100a9e70
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 0x100a9ed2
sub ecx, edx
lea eax, [esp + 0x3f40]
push ecx
push eax
lea ecx, [esp + 0x3fe8]
call fcn.10027870
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x40d8]
push eax
call fcn.101a9ae0
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 0x100a9f30
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
movups xmm0, xmmword [0x10206328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aa0f7
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100aa0c0
movaps xmm0, xmmword [0x102158e0]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
xor ecx, ecx
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100a9fb1
mov edi, dword [esp + 0x1c]
jmp 0x100aa0f7
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100aa0c0
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 0x100aa122
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 + 0x24]
lea ecx, [esp + 0x4064]
call fcn.10029860
lea eax, [esp + 0x3fe0]
push eax
lea eax, [esp + 0x405c]
push eax
push dword [esp + 0x24]
lea ecx, [esp + 0x409c]
call fcn.10029860
push edi
lea eax, [esp + 0x4094]
push eax
push dword [esp + 0x24]
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 0x100aa237
mov edx, dword [esp + 0x4090]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa22d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafd5
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100aa273
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa269
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafd5
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aa2af
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa2a5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafd5
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aa2eb
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa2e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafd5
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aa327
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa31d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafd5
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x4044]
cmp ecx, 0xf
jbe 0x100aa363
mov edx, dword [esp + 0x4030]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa359
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafd5
push ecx
push edx
call fcn.101b60a3
add esp, 8
movups xmm0, xmmword [0x10206384]
mov al, byte [0x1020639c]
xor edx, edx
mov byte [esp + 0x4048], al
mov dword [esp + 0x14], edx
movups xmmword [esp + 0x4030], xmm0
movq xmm0, qword [0x10206394]
movq qword [esp + 0x4040], xmm0
cmp esi, 2
jl 0x100aa4e0
movaps xmm0, xmmword [0x102158e0]
lea edi, [esp + 0x4034]
movaps xmm4, xmmword [0x10215760]
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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, 0x18
jl 0x100aa3d0
mov dword [esp + 0x14], edx
cmp edx, 0x19
jge 0x100aa517
nop dword [eax]
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x4030], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x19
jl 0x100aa4e0
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 0x100aa542
sub ecx, edx
lea eax, [esp + 0x4030]
push ecx
push eax
lea ecx, [esp + 0x3fa8]
call fcn.10027870
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x40d8]
push eax
mov ecx, edi
call fcn.101a9ae0
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 0x100aa5a0
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
movups xmm0, xmmword [0x10206328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aa767
xor edx, edx
mov dword [esp + 0x14], edx
cmp esi, 2
jl 0x100aa730
movaps xmm0, xmmword [0x102158e0]
lea edi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
xor ecx, ecx
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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 0x100aa621
mov edi, dword [esp + 0x18]
jmp 0x100aa767
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x10
jl 0x100aa730
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 0x100aa792
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 + 0x24]
lea ecx, [esp + 0x4064]
call fcn.10029860
lea eax, [esp + 0x3fa0]
push eax
lea eax, [esp + 0x405c]
push eax
push dword [esp + 0x24]
lea ecx, [esp + 0x400c]
call fcn.10029860
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100aa82c
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa822
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aa868
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa85e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aa8a4
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa89a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aa8e0
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aa8d6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov eax, dword [str.PRHI_M_]
xor edx, edx
movq xmm0, qword [0x102063b4]
mov dword [esp + 0x3f78], eax
mov ax, word [0x102063c0]
mov word [esp + 0x3f7c], ax
mov al, byte [0x102063c2]
movq qword [esp + 0x3f70], xmm0
mov byte [esp + 0x3f7e], al
mov dword [esp + 0x18], edx
cmp esi, 2
jl 0x100aaa32
movaps xmm2, xmmword [0x10215760]
mov edx, 8
movaps xmm4, xmmword [0x10215c10]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
mov eax, dword [0x102158e0]
psrad xmm1, 5
mov dword [esp + 0x18], edx
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x102157e0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x102157a0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x102158a0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x102063b4]
xorps xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0x3f70], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x102157e0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x102158a0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x3f74]
xorps xmm1, xmm0
movd dword [esp + 0x3f74], xmm1
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f70], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0xf
jl 0x100aaa32
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]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aaa94
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.101a9ae0
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 0x100aaaf0
sub ecx, edx
lea eax, [esp + 0x40d8]
push ecx
push eax
lea ecx, [esp + 0x3fc8]
call fcn.10027870
movups xmm0, xmmword [0x10206328]
movups xmmword [esp + 0x3f40], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100aacb7
xor edx, edx
mov dword [esp + 0x18], edx
cmp esi, 2
jl 0x100aac80
movaps xmm0, xmmword [0x102158e0]
lea esi, [esp + 0x3f44]
movaps xmm4, xmmword [0x10215760]
xor ecx, ecx
movaps xmm3, xmmword [0x10215c10]
movaps xmm5, xmmword [0x102157e0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x102158a0]
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, 0x10
jl 0x100aab71
jmp 0x100aacb7
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x32
xor byte [esp + edx + 0x3f40], cl
inc edx
mov dword [esp + 0x18], edx
cmp edx, 0x10
jl 0x100aac80
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 0x100aace2
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 + 0x24]
lea ecx, [esp + 0x4064]
call fcn.10029860
lea eax, [esp + 0x3fa0]
push eax
lea eax, [esp + 0x405c]
push eax
push dword [esp + 0x24]
lea ecx, [esp + 0x40b4]
call fcn.10029860
mov ecx, dword [esp + 0x406c]
cmp ecx, 0xf
jbe 0x100aad7c
mov edx, dword [esp + 0x4058]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aad72
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3ff4]
cmp ecx, 0xf
jbe 0x100aadb8
mov edx, dword [esp + 0x3fe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aadae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fd4]
cmp ecx, 0xf
jbe 0x100aadf4
mov edx, dword [esp + 0x3fc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aadea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x3fb4]
cmp ecx, 0xf
jbe 0x100aae30
mov edx, dword [esp + 0x3fa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aae26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
cmp dword [esp + 0x3f38], 1
jne 0x100aae51
mov eax, dword [0x10240c80]
cmp byte [eax + 0xf24], 0
je 0x100aae68
lea eax, [esp + 0x40a8]
jmp 0x100aae6f
jle 0x100aae68
mov eax, dword [0x10240c80]
cmp byte [eax + 0xf24], 0
lea eax, [esp + 0x4070]
jne 0x100aae6f
lea eax, [esp + 0x40c0]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10020a50
call fcn.100cc620
mov eax, dword [esp + 0x3f34]
cmp eax, 0x41
jae 0x100aafda
mov ecx, dword [esp + 0x40bc]
imul eax, eax, 0x3ef0
inc dword [eax + 0x102536f8]
cmp ecx, 0xf
jbe 0x100aaed7
mov edx, dword [esp + 0x40a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aaecd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x4014]
cmp ecx, 0xf
jbe 0x100aaf13
mov edx, dword [esp + 0x4000]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aaf09
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x4084]
cmp ecx, 0xf
jbe 0x100aaf4f
mov edx, dword [esp + 0x4070]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aaf45
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x40d4]
cmp ecx, 0xf
jbe 0x100aaf87
mov edx, dword [esp + 0x40c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aaf7d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100aafdf
push ecx
push edx
call fcn.101b60a3
add esp, 8
lea ecx, [esp + 0x3e6c]
call fcn.1002bf20
lea ecx, [esp + 0x8a8]
call fcn.100906a0
mov eax, dword [esp + 0x8a8]
push 8
push eax
mov dword [esp + 0x8b0], 0
call fcn.101b60a3
add esp, 8
mov ecx, dword [esp + 0x415c]
pop edi
pop esi
xor ecx, esp
call fcn.101b5daa
mov esp, ebp
pop ebp
ret
call fcn.100947c0
call fcn.101bb1d6
call fcn.10090690
call fcn.101bb1d6
int3