Function at 0x45b3b0
Capabilities:
Encode data using xor
Parse credit card information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d342d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x88
mov eax, dword [0x659bc0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movups xmm0, xmmword [0x64a130]
mov eax, dword [0x64a158]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x3c], eax
movups xmm0, xmmword [0x64a140]
mov al, byte [0x64a15c]
mov byte [ebp - 0x38], al
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x7c], edx
movq xmm0, qword [0x64a150]
movq qword [ebp - 0x44], xmm0
jl 0x45b560
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x60]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x64]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x64], 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 [0x64a6d0]
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, 0x28
jl 0x45b462
mov dword [ebp - 0x7c], edx
cmp edx, 0x2d
jge 0x45b58d
nop
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x64], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x2d
jl 0x45b560
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b5a8
sub ecx, edx
lea eax, [ebp - 0x64]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b5f0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45b645
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45b63b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [str.AWDSRSWP]
mov eax, dword [0x64a3b8]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x40], eax
movups xmm0, xmmword [0x64a3a0]
mov ax, word [0x64a3bc]
mov word [ebp - 0x3c], ax
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x7c], edx
movq xmm0, qword [0x64a3b0]
movq qword [ebp - 0x48], xmm0
jl 0x45b7c0
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x64]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
nop dword [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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x68]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x68], 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 [0x64a6d0]
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, 0x28
jl 0x45b6c0
mov dword [ebp - 0x7c], edx
cmp edx, 0x2e
jge 0x45b7ed
nop dword [eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x68], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x2e
jl 0x45b7c0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b808
sub ecx, edx
lea eax, [ebp - 0x68]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 1
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b850
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45b8a5
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45b89b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x6497dc]
mov ax, word [0x6497fc]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x5c], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x6497ec]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x4c], xmm0
jl 0x45ba00
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x58]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x5c], 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 [0x64a6d0]
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, 0x20
jl 0x45b903
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jge 0x45ba2d
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jl 0x45ba00
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ba48
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 2
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ba90
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45bae5
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45badb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
mov ecx, 0xf
lea edi, [ebp - 0x78]
mov esi, 0x649f80
xor edx, edx
cmp dword [0x665d98], 2
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x7c], edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jl 0x45bc40
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x74]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x78]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x78], 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 [0x64a6d0]
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, 0x38
jl 0x45bb40
mov dword [ebp - 0x7c], edx
cmp edx, 0x3f
jge 0x45bc6d
nop dword [eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x3f
jl 0x45bc40
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bc88
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 3
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bcd0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45bd25
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45bd1b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649208]
xor edx, edx
cmp dword [0x665d98], 2
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x78], xmm0
movups xmm0, xmmword [0x649218]
movups xmmword [ebp - 0x68], xmm0
movups xmm0, xmmword [0x649228]
movups xmmword [ebp - 0x58], xmm0
movups xmm0, xmmword [0x649238]
movups xmmword [ebp - 0x48], xmm0
jl 0x45be90
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x74]
movaps xmm4, xmmword [0x64a650]
xor ecx, ecx
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov edx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x78]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x78], 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 [0x64a6d0]
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, 0x40
jl 0x45bd91
jmp 0x45bebd
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x40
jl 0x45be90
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bed8
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 4
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bf20
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45bf75
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45bf6b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649e10]
mov al, byte [0x649e50]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x78], xmm0
mov byte [ebp - 0x38], al
movups xmm0, xmmword [0x649e20]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x68], xmm0
movups xmm0, xmmword [0x649e30]
movups xmmword [ebp - 0x58], xmm0
movups xmm0, xmmword [0x649e40]
movups xmmword [ebp - 0x48], xmm0
jl 0x45c0f0
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x74]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x78]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x78], 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 [0x64a6d0]
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, 0x40
jl 0x45bff0
mov dword [ebp - 0x7c], edx
cmp edx, 0x41
jge 0x45c11d
nop dword [eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x41
jl 0x45c0f0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c138
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 5
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c180
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45c1d5
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45c1cb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649598]
mov ax, word [0x6495d0]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x74], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x6495a8]
mov al, byte [0x6495d2]
mov byte [ebp - 0x3a], al
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x7c], edx
movups xmm0, xmmword [0x6495b8]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [0x6495c8]
movq qword [ebp - 0x44], xmm0
jl 0x45c350
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x70]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x74]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x74], 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 [0x64a6d0]
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, 0x38
jl 0x45c253
mov dword [ebp - 0x7c], edx
cmp edx, 0x3b
jge 0x45c37d
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x74], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x3b
jl 0x45c350
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c398
sub ecx, edx
lea eax, [ebp - 0x74]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 6
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c3e0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45c435
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45c42b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649b10]
mov eax, dword [0x649b48]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x3c], eax
movups xmm0, xmmword [0x649b20]
mov al, byte [0x649b4c]
mov byte [ebp - 0x38], al
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x7c], edx
movups xmm0, xmmword [0x649b30]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [0x649b40]
movq qword [ebp - 0x44], xmm0
jl 0x45c5b0
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x70]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x74]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x74], 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 [0x64a6d0]
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, 0x38
jl 0x45c4b1
mov dword [ebp - 0x7c], edx
cmp edx, 0x3d
jge 0x45c5dd
nop
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x74], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x3d
jl 0x45c5b0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c5f8
sub ecx, edx
lea eax, [ebp - 0x74]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 7
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c640
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45c695
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45c68b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649614]
mov eax, dword [0x64964c]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x3c], eax
movups xmm0, xmmword [0x649624]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x64], xmm0
movups xmm0, xmmword [0x649634]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [0x649644]
movq qword [ebp - 0x44], xmm0
jl 0x45c810
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x70]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
nop dword [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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x74]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x74], 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 [0x64a6d0]
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, 0x38
jl 0x45c710
mov dword [ebp - 0x7c], edx
cmp edx, 0x3c
jge 0x45c83d
nop dword [eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x74], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x3c
jl 0x45c810
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c858
sub ecx, edx
lea eax, [ebp - 0x74]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 8
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c8a0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45c8f5
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45c8eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649314]
mov ax, word [0x64934c]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x74], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x649324]
mov al, byte [0x64934e]
mov byte [ebp - 0x3a], al
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x7c], edx
movups xmm0, xmmword [0x649334]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [0x649344]
movq qword [ebp - 0x44], xmm0
jl 0x45ca70
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x70]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x74]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x74], 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 [0x64a6d0]
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, 0x38
jl 0x45c973
mov dword [ebp - 0x7c], edx
cmp edx, 0x3b
jge 0x45ca9d
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x74], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x3b
jl 0x45ca70
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cab8
sub ecx, edx
lea eax, [ebp - 0x74]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 9
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cb00
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov edx, dword [ebp - 0x18]
cmp edx, 0xf
jbe 0x45cb55
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45cb4b
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push edx
push ecx
call fcn.005ce99e
add esp, 8
mov ecx, 0xf
lea edi, [ebp - 0x78]
mov esi, 0x649f80
xor edx, edx
cmp dword [0x665d98], 2
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x7c], edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jl 0x45ccb0
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x74]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x78]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x78], 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 [0x64a6d0]
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, 0x38
jl 0x45cbb0
mov dword [ebp - 0x7c], edx
cmp edx, 0x3f
jge 0x45ccdd
nop dword [eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x3f
jl 0x45ccb0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ccf8
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0xa
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cd40
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45cd95
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45cd8b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649208]
xor edx, edx
cmp dword [0x665d98], 2
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x78], xmm0
movups xmm0, xmmword [0x649218]
movups xmmword [ebp - 0x68], xmm0
movups xmm0, xmmword [0x649228]
movups xmmword [ebp - 0x58], xmm0
movups xmm0, xmmword [0x649238]
movups xmmword [ebp - 0x48], xmm0
jl 0x45cf00
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x74]
movaps xmm4, xmmword [0x64a650]
xor ecx, ecx
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov edx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x78]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x78], 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 [0x64a6d0]
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, 0x40
jl 0x45ce01
jmp 0x45cf2d
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x40
jl 0x45cf00
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf48
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0xb
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf90
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45cfe5
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45cfdb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649e10]
mov al, byte [0x649e50]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x78], xmm0
mov byte [ebp - 0x38], al
movups xmm0, xmmword [0x649e20]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x68], xmm0
movups xmm0, xmmword [0x649e30]
movups xmmword [ebp - 0x58], xmm0
movups xmm0, xmmword [0x649e40]
movups xmmword [ebp - 0x48], xmm0
jl 0x45d160
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x74]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x78]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x78], 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 [0x64a6d0]
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, 0x40
jl 0x45d060
mov dword [ebp - 0x7c], edx
cmp edx, 0x41
jge 0x45d18d
nop dword [eax]
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x41
jl 0x45d160
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d1a8
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0xc
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d1f0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45d245
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d23b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x6497dc]
mov ax, word [0x6497fc]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x5c], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x6497ec]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x4c], xmm0
jl 0x45d3a0
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x58]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x5c], 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 [0x64a6d0]
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 0x45d2a3
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jge 0x45d3cd
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jl 0x45d3a0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d3e8
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0xd
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d430
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45d485
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d47b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649a5c]
mov ax, word [0x649a7c]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x5c], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x649a6c]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x4c], xmm0
jl 0x45d5e0
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x58]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x5c], 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 [0x64a6d0]
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 0x45d4e3
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jge 0x45d60d
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jl 0x45d5e0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d628
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0xe
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d670
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45d6c5
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d6bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649770]
mov ax, word [0x649790]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x5c], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x649780]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x4c], xmm0
jl 0x45d824
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x58]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x5c], 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 [0x64a6d0]
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, 0x20
jl 0x45d723
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jge 0x45d851
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jl 0x45d824
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d870
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0xf
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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 0x45d8b6
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45d90f
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d905
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
movups xmm0, xmmword [0x649ea4]
mov ax, word [0x649ec4]
xor edx, edx
cmp dword [0x665d98], 2
movups xmmword [ebp - 0x5c], xmm0
mov word [ebp - 0x3c], ax
movups xmm0, xmmword [0x649eb4]
mov dword [ebp - 0x7c], edx
movups xmmword [ebp - 0x4c], xmm0
jl 0x45da71
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x58]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
nop dword [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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x5c], 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 [0x64a6d0]
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, 0x20
jl 0x45d970
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jge 0x45da9e
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x22
jl 0x45da71
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45dac0
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0x10
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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 0x45db06
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45db5f
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45db55
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
cmp byte [0x649463], 0
movups xmm0, xmmword [0x649448]
mov eax, dword [0x649460]
mov dword [ebp - 0x3c], eax
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [0x649458]
movq qword [ebp - 0x44], xmm0
je 0x45dcfe
xor edx, edx
cmp dword [0x665d98], 2
mov dword [ebp - 0x7c], edx
jl 0x45dcd1
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x50]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x54]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x54], 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 [0x64a6d0]
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 0x45dbd0
mov dword [ebp - 0x7c], edx
cmp edx, 0x1c
jge 0x45dcfe
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x54], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x1c
jl 0x45dcd1
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45dd20
sub ecx, edx
lea eax, [ebp - 0x54]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00472fb0
mov dword [ebp - 4], 0x11
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x2c]
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 0x45dd66
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov dword [ebp - 4], 0xffffffff
add esp, 0x18
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x45ddbb
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ddb1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dffa
push ecx
push edx
call fcn.005ce99e
add esp, 8
mov eax, dword [0x649264]
movups xmm0, xmmword [0x649254]
mov dword [ebp - 0x1c], eax
mov ax, word [0x649268]
mov word [ebp - 0x18], ax
movups xmmword [ebp - 0x2c], xmm0
test ah, ah
je 0x45df4e
xor edx, edx
cmp dword [0x665d98], 2
mov dword [ebp - 0x7c], edx
jl 0x45df21
movaps xmm0, xmmword [0x64a720]
lea esi, [ebp - 0x28]
movaps xmm4, xmmword [0x64a650]
movaps xmm3, xmmword [0x64a6f0]
movaps xmm5, xmmword [0x64a670]
movaps xmmword [ebp - 0x90], xmm0
mov ecx, dword [ebp - 0x90]
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 [0x64a6d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x2c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x2c], 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 [0x64a6d0]
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, 0x10
jl 0x45de20
mov dword [ebp - 0x7c], edx
cmp edx, 0x16
jge 0x45df4e
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x7c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x2c], cl
inc edx
mov dword [ebp - 0x7c], edx
cmp edx, 0x16
jl 0x45df21
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45df70
sub ecx, edx
lea eax, [ebp - 0x2c]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00472fb0
mov dword [ebp - 4], 0x12
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x50]
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 0x45dfb6
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00472fb0
call fcn.0045b290
mov ecx, dword [ebp - 0x3c]
add esp, 0x18
cmp ecx, 0xf
jbe 0x45e00a
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e000
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45e000
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.005ce99e
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005ce5ea
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret