Function at 0x401970
Capabilities:
Encode data using xor

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
sub esp, 0x258
mov eax, dword [0x4e5258]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
push esi
push edi
mov edi, dword [ebx + 0xc]
mov esi, edi
or esi, dword [ebx + 0x10]
mov dword [ebp - 0x64], edx
je 0x402d61
mov esi, dword [ebx + 0x10]
test esi, esi
jne 0x4019bf
cmp edi, 0x100
jb 0x402636
movdqu xmm0, xmmword [edx]
movdqu xmm1, xmmword [edx + 0x10]
movdqu xmm2, xmmword [edx + 0x20]
movdqu xmm3, xmmword [edx + 0x30]
pshufd xmm4, xmm0, 0
movdqa xmmword [ebp - 0x180], xmm4
pshufd xmm4, xmm1, 0x55
movdqa xmmword [ebp - 0x210], xmm4
pshufd xmm4, xmm2, 0xaa
movdqa xmmword [ebp - 0x160], xmm4
pshufd xmm4, xmm3, 0xff
movdqa xmmword [ebp - 0x200], xmm4
lea esi, [eax + 0xc0]
mov dword [ebp - 0x50], esi
pshufd xmm4, xmm3, 0
movdqa xmmword [ebp - 0x1a0], xmm4
pshufd xmm4, xmm0, 0x55
movdqa xmmword [ebp - 0x220], xmm4
pshufd xmm4, xmm1, 0xaa
lea esi, [ecx + 0xc0]
mov dword [ebp - 0x5c], esi
movdqa xmmword [ebp - 0x1c0], xmm4
lea esi, [eax + 0x80]
pshufd xmm4, xmm2, 0xff
movdqa xmmword [ebp - 0x1f0], xmm4
mov dword [ebp - 0x4c], esi
pshufd xmm4, xmm0, 0xaa
lea esi, [ecx + 0x80]
movdqa xmmword [ebp - 0x1e0], xmm4
pshufd xmm4, xmm1, 0xff
mov dword [ebp - 0x54], esi
lea esi, [eax + 0x40]
movdqa xmmword [ebp - 0x170], xmm4
pshufd xmm4, xmm1, 0
pshufd xmm1, xmm2, 0x55
mov dword [ebp - 0x60], esi
movdqa xmmword [ebp - 0x190], xmm1
lea esi, [ecx + 0x40]
pshufd xmm1, xmm3, 0xaa
pshufd xmm0, xmm0, 0xff
movdqa xmmword [ebp - 0x240], xmm4
movdqa xmmword [ebp - 0x1b0], xmm1
movdqa xmmword [ebp - 0x1d0], xmm0
mov dword [ebp - 0x58], esi
jmp 0x401ac3
mov edx, dword [ebp - 0x64]
mov edi, dword [edx + 0x34]
mov edx, dword [edx + 0x20]
xor esi, esi
or esi, edx
mov dword [ebp - 0x144], edi
mov edx, edi
xor edi, edi
or edx, edi
movd xmm0, edx
movd xmm2, esi
movd xmm3, edx
movd xmm1, esi
movdqa xmm6, xmmword [ebp - 0x210]
movdqa xmm5, xmmword [ebp - 0x190]
add esi, 4
adc edx, edi
punpckldq xmm3, xmm0
movdqa xmm0, xmmword [0x4c5bc0]
mov edi, dword [ebp - 0x64]
punpckldq xmm1, xmm2
movdqa xmm2, xmmword [0x4c5bd0]
punpckldq xmm1, xmm3
paddq xmm0, xmm1
paddq xmm2, xmm1
movdqa xmm1, xmm0
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
movdqa xmm2, xmm1
punpckldq xmm2, xmm0
punpckhdq xmm1, xmm0
movdqa xmm0, xmmword [ebp - 0x220]
movdqa xmmword [ebp - 0xb0], xmm0
movdqa xmm0, xmmword [ebp - 0x1e0]
movdqa xmmword [ebp - 0x140], xmm0
movdqa xmm0, xmmword [ebp - 0x1d0]
movdqa xmmword [ebp - 0xf0], xmm0
movdqa xmm0, xmmword [ebp - 0x1b0]
movdqa xmmword [ebp - 0x80], xmm0
movdqa xmm0, xmmword [ebp - 0x200]
movdqa xmmword [ebp - 0xa0], xmm0
movdqa xmm0, xmmword [ebp - 0x1c0]
movdqa xmmword [ebp - 0xd0], xmm0
movdqa xmm0, xmmword [ebp - 0x170]
movdqa xmmword [ebp - 0x110], xmm0
movdqa xmm0, xmmword [ebp - 0x1f0]
movdqa xmmword [ebp - 0x130], xmm0
movdqa xmm0, xmmword [ebp - 0x160]
movdqa xmmword [ebp - 0xc0], xmm0
movdqa xmm0, xmmword [ebp - 0x180]
mov dword [edi + 0x34], edx
movdqa xmmword [ebp - 0x120], xmm0
movdqa xmm0, xmmword [ebp - 0x1a0]
movdqa xmm7, xmm4
movdqa xmmword [ebp - 0x230], xmm2
movdqa xmmword [ebp - 0x250], xmm1
mov dword [edi + 0x20], esi
movdqa xmm3, xmm1
movdqa xmm4, xmm2
mov edx, 0xa
jmp 0x401c18
movdqa xmm0, xmmword [ebp - 0x90]
movdqa xmm1, xmm7
paddd xmm1, xmmword [ebp - 0x120]
movdqa xmm2, xmm1
pslld xmm2, 7
pxor xmm0, xmm2
movdqa xmm2, xmm6
paddd xmm2, xmmword [ebp - 0xb0]
psrld xmm1, 0x19
pxor xmm0, xmm1
movdqa xmm1, xmm3
movdqa xmm3, xmm2
psrld xmm2, 0x19
pslld xmm3, 7
pxor xmm1, xmm3
pxor xmm1, xmm2
movdqa xmm2, xmmword [ebp - 0x120]
paddd xmm2, xmm0
movdqa xmm3, xmm2
psrld xmm2, 0x17
pslld xmm3, 9
pxor xmm4, xmm3
pxor xmm4, xmm2
movdqa xmm2, xmmword [ebp - 0xb0]
paddd xmm2, xmm1
movdqa xmm3, xmm2
psrld xmm2, 0x17
pslld xmm3, 9
pxor xmm5, xmm3
pxor xmm5, xmm2
movdqa xmm2, xmm0
paddd xmm2, xmm4
movdqa xmm3, xmm2
pslld xmm3, 0xd
pxor xmm7, xmm3
psrld xmm2, 0x13
pxor xmm7, xmm2
movdqa xmm3, xmm6
movdqa xmmword [ebp - 0x100], xmm7
movdqa xmm2, xmm1
paddd xmm2, xmm5
movdqa xmm6, xmm2
pslld xmm6, 0xd
pxor xmm3, xmm6
movdqa xmm6, xmmword [ebp - 0x120]
psrld xmm2, 0x13
pxor xmm3, xmm2
movdqa xmm2, xmm4
paddd xmm2, xmm7
movdqa xmm7, xmm2
pslld xmm7, 0x12
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0xd0]
paddd xmm7, xmmword [ebp - 0x140]
psrld xmm2, 0xe
pxor xmm6, xmm2
movdqa xmmword [ebp - 0xe0], xmm3
movdqa xmmword [ebp - 0x120], xmm6
movdqa xmm2, xmm5
paddd xmm2, xmm3
movdqa xmm3, xmmword [ebp - 0xb0]
movdqa xmm6, xmm2
pslld xmm6, 0x12
pxor xmm3, xmm6
psrld xmm2, 0xe
pxor xmm3, xmm2
movdqa xmm2, xmmword [ebp - 0x80]
movdqa xmmword [ebp - 0xb0], xmm3
movdqa xmm3, xmm7
pslld xmm3, 7
pxor xmm2, xmm3
movdqa xmm3, xmmword [ebp - 0xa0]
psrld xmm7, 0x19
pxor xmm2, xmm7
movdqa xmm7, xmmword [ebp - 0x110]
paddd xmm7, xmmword [ebp - 0xf0]
movdqa xmm6, xmm7
pslld xmm6, 7
pxor xmm3, xmm6
movdqa xmm6, xmmword [ebp - 0x140]
psrld xmm7, 0x19
pxor xmm3, xmm7
paddd xmm6, xmm2
movdqa xmmword [ebp - 0x80], xmm6
pslld xmm6, 9
movdqa xmm7, xmmword [ebp - 0xc0]
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x80]
psrld xmm6, 0x17
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xf0]
paddd xmm6, xmm3
movdqa xmmword [ebp - 0xa0], xmm6
pslld xmm6, 9
movdqa xmmword [ebp - 0xc0], xmm7
movdqa xmm7, xmmword [ebp - 0x130]
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xa0]
psrld xmm6, 0x17
pxor xmm7, xmm6
movdqa xmmword [ebp - 0x130], xmm7
movdqa xmm7, xmmword [ebp - 0xd0]
movdqa xmm6, xmm2
paddd xmm6, xmmword [ebp - 0xc0]
movdqa xmmword [ebp - 0x80], xmm6
pslld xmm6, 0xd
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x80]
psrld xmm6, 0x13
pxor xmm7, xmm6
movdqa xmmword [ebp - 0xd0], xmm7
movdqa xmm7, xmmword [ebp - 0x110]
movdqa xmm6, xmm3
paddd xmm6, xmmword [ebp - 0x130]
movdqa xmmword [ebp - 0x90], xmm6
pslld xmm6, 0xd
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x90]
psrld xmm6, 0x13
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
paddd xmm6, xmmword [ebp - 0xd0]
movdqa xmmword [ebp - 0x90], xmm6
pslld xmm6, 0x12
movdqa xmmword [ebp - 0x110], xmm7
movdqa xmm7, xmmword [ebp - 0x140]
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x90]
psrld xmm6, 0xe
pxor xmm7, xmm6
movdqa xmmword [ebp - 0x140], xmm7
movdqa xmm6, xmm3
paddd xmm6, xmmword [ebp - 0x120]
movdqa xmmword [ebp - 0xa0], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xe0]
pslld xmm7, 7
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0xa0]
psrld xmm7, 0x19
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0xf0]
movdqa xmmword [ebp - 0xe0], xmm6
movdqa xmm6, xmmword [ebp - 0x130]
paddd xmm6, xmmword [ebp - 0x110]
movdqa xmmword [ebp - 0x90], xmm6
pslld xmm6, 0x12
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x90]
psrld xmm6, 0xe
pxor xmm7, xmm6
movdqa xmmword [ebp - 0xf0], xmm7
movdqa xmm6, xmm0
paddd xmm6, xmmword [ebp - 0xb0]
movdqa xmmword [ebp - 0x80], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xd0]
pslld xmm7, 7
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x80]
psrld xmm7, 0x19
pxor xmm6, xmm7
movdqa xmmword [ebp - 0xd0], xmm6
movdqa xmm6, xmmword [ebp - 0x120]
paddd xmm6, xmmword [ebp - 0xe0]
movdqa xmmword [ebp - 0x80], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
pslld xmm7, 9
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x80]
psrld xmm7, 0x17
pxor xmm6, xmm7
movdqa xmmword [ebp - 0xc0], xmm6
movdqa xmm6, xmmword [ebp - 0xb0]
paddd xmm6, xmmword [ebp - 0xd0]
movdqa xmmword [ebp - 0xa0], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x130]
pslld xmm7, 9
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0xa0]
psrld xmm7, 0x17
pxor xmm6, xmm7
movdqa xmmword [ebp - 0x130], xmm6
movdqa xmm6, xmmword [ebp - 0xe0]
paddd xmm6, xmmword [ebp - 0xc0]
movdqa xmm7, xmm6
pslld xmm7, 0xd
pxor xmm3, xmm7
psrld xmm6, 0x13
pxor xmm3, xmm6
movdqa xmm6, xmmword [ebp - 0xd0]
movdqa xmmword [ebp - 0xa0], xmm3
movdqa xmm3, xmmword [ebp - 0x130]
paddd xmm6, xmm3
movdqa xmm7, xmm6
pslld xmm7, 0xd
pxor xmm0, xmm7
movdqa xmm7, xmmword [ebp - 0x120]
psrld xmm6, 0x13
pxor xmm0, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
paddd xmm6, xmmword [ebp - 0xa0]
movdqa xmmword [ebp - 0x90], xmm0
paddd xmm3, xmmword [ebp - 0x90]
movdqa xmm0, xmm6
pslld xmm0, 0x12
pxor xmm7, xmm0
movdqa xmm0, xmmword [ebp - 0xb0]
psrld xmm6, 0xe
pxor xmm7, xmm6
movdqa xmm6, xmm3
psrld xmm3, 0xe
movdqa xmmword [ebp - 0x120], xmm7
pslld xmm6, 0x12
pxor xmm0, xmm6
movdqa xmm6, xmmword [ebp - 0x140]
pxor xmm0, xmm3
movdqa xmm3, xmmword [ebp - 0x110]
movdqa xmmword [ebp - 0xb0], xmm0
movdqa xmm0, xmm1
paddd xmm0, xmm6
movdqa xmm7, xmm0
pslld xmm7, 7
pxor xmm3, xmm7
psrld xmm0, 0x19
pxor xmm3, xmm0
movdqa xmm0, xmmword [ebp - 0xf0]
movdqa xmmword [ebp - 0x110], xmm3
movdqa xmm3, xmm2
paddd xmm3, xmm0
movdqa xmmword [ebp - 0x80], xmm3
movdqa xmm7, xmm3
movdqa xmm3, xmmword [ebp - 0x100]
pslld xmm7, 7
pxor xmm3, xmm7
movdqa xmm7, xmmword [ebp - 0x80]
psrld xmm7, 0x19
pxor xmm3, xmm7
movdqa xmm7, xmm6
paddd xmm7, xmmword [ebp - 0x110]
movdqa xmmword [ebp - 0x100], xmm3
movdqa xmm3, xmm7
dec edx
pslld xmm3, 9
pxor xmm4, xmm3
psrld xmm7, 0x17
pxor xmm4, xmm7
movdqa xmm7, xmmword [ebp - 0x100]
movdqa xmmword [ebp - 0xf0], xmm4
movdqa xmm3, xmm0
paddd xmm3, xmm7
movdqa xmm4, xmm3
pslld xmm4, 9
pxor xmm5, xmm4
movdqa xmm4, xmmword [ebp - 0x110]
paddd xmm4, xmmword [ebp - 0xf0]
psrld xmm3, 0x17
pxor xmm5, xmm3
movdqa xmm3, xmm4
pslld xmm3, 0xd
pxor xmm3, xmm1
psrld xmm4, 0x13
pxor xmm3, xmm4
movdqa xmm1, xmm7
paddd xmm1, xmm5
movdqa xmm4, xmm1
psrld xmm1, 0x13
pslld xmm4, 0xd
pxor xmm2, xmm4
movdqa xmm4, xmmword [ebp - 0xf0]
pxor xmm2, xmm1
movdqa xmmword [ebp - 0x80], xmm2
movdqa xmm1, xmm4
paddd xmm1, xmm3
movdqa xmm2, xmm1
pslld xmm2, 0x12
pxor xmm6, xmm2
psrld xmm1, 0xe
pxor xmm6, xmm1
movdqa xmm1, xmm5
paddd xmm1, xmmword [ebp - 0x80]
movdqa xmm2, xmm1
pslld xmm2, 0x12
pxor xmm0, xmm2
psrld xmm1, 0xe
movdqa xmmword [ebp - 0x140], xmm6
movdqa xmm6, xmmword [ebp - 0xe0]
pxor xmm0, xmm1
movdqa xmmword [ebp - 0xf0], xmm0
jne 0x401c10
paddd xmm6, xmmword [ebp - 0x210]
movdqa xmm0, xmmword [ebp - 0xc0]
paddd xmm0, xmmword [ebp - 0x160]
movdqa xmm2, xmmword [ebp - 0x120]
paddd xmm2, xmmword [ebp - 0x180]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
movdqa xmmword [ebp - 0xe0], xmm6
movdqa xmmword [ebp - 0xc0], xmm0
movdqa xmm0, xmmword [ebp - 0xa0]
paddd xmm0, xmmword [ebp - 0x200]
movdqa xmm1, xmm2
punpckhdq xmm2, xmmword [ebp - 0xe0]
punpckldq xmm1, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
punpckldq xmm6, xmm0
movdqa xmmword [ebp - 0xa0], xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
punpckhdq xmm6, xmm0
movdqa xmm0, xmm1
punpcklqdq xmm1, xmmword [ebp - 0xa0]
punpckhqdq xmm0, xmmword [ebp - 0xa0]
movdqa xmmword [ebp - 0x100], xmm6
movdqu xmm6, xmmword [eax]
pxor xmm1, xmm6
movdqu xmmword [ecx], xmm1
movdqu xmm6, xmmword [edx]
movdqa xmmword [ebp - 0xe0], xmm0
movdqa xmm1, xmmword [ebp - 0xe0]
pxor xmm1, xmm6
movdqa xmm6, xmmword [ebp - 0xb0]
paddd xmm6, xmmword [ebp - 0x220]
movdqu xmmword [esi], xmm1
mov esi, dword [ebp - 0x4c]
movdqu xmm1, xmmword [esi]
add dword [ebp - 0x58], 0x10
movdqa xmm0, xmm2
punpcklqdq xmm2, xmmword [ebp - 0x100]
punpckhqdq xmm0, xmmword [ebp - 0x100]
pxor xmm2, xmm1
movdqu xmmword [edi], xmm2
mov edi, dword [ebp - 0x50]
movdqu xmm1, xmmword [edi]
mov edi, dword [ebp - 0x5c]
movdqa xmm2, xmmword [ebp - 0x130]
paddd xmm2, xmmword [ebp - 0x1f0]
add dword [ebp - 0x50], 0x10
add dword [ebp - 0x54], 0x10
add dword [ebp - 0x5c], 0x10
pxor xmm0, xmm1
movdqa xmm1, xmmword [ebp - 0xd0]
paddd xmm1, xmmword [ebp - 0x1c0]
movdqu xmmword [edi], xmm0
movdqa xmm0, xmmword [ebp - 0x90]
paddd xmm0, xmmword [ebp - 0x1a0]
mov edi, dword [ebp - 0x58]
movdqa xmmword [ebp - 0xd0], xmm1
movdqa xmmword [ebp - 0xb0], xmm6
movdqa xmm1, xmm0
punpckhdq xmm0, xmmword [ebp - 0xb0]
punpckldq xmm1, xmm6
movdqa xmm6, xmmword [ebp - 0xd0]
punpckldq xmm6, xmm2
movdqa xmmword [ebp - 0x90], xmm6
movdqa xmm6, xmmword [ebp - 0xd0]
punpckhdq xmm6, xmm2
movdqa xmm2, xmm1
punpckhqdq xmm2, xmmword [ebp - 0x90]
punpcklqdq xmm1, xmmword [ebp - 0x90]
movdqa xmmword [ebp - 0xa0], xmm6
movdqu xmm6, xmmword [eax + 0x10]
pxor xmm1, xmm6
movdqa xmmword [ebp - 0xb0], xmm2
movdqu xmmword [ecx + 0x10], xmm1
movdqu xmm6, xmmword [edx + 0x10]
movdqa xmm1, xmmword [ebp - 0xb0]
movdqa xmm2, xmm0
punpckhqdq xmm2, xmmword [ebp - 0xa0]
pxor xmm1, xmm6
movdqu xmmword [edi], xmm1
punpcklqdq xmm0, xmmword [ebp - 0xa0]
movdqu xmm1, xmmword [esi + 0x10]
mov edi, dword [ebp - 0x54]
paddd xmm3, xmmword [ebp - 0x250]
paddd xmm4, xmmword [ebp - 0x230]
pxor xmm0, xmm1
movdqu xmmword [edi], xmm0
mov edi, dword [ebp - 0x50]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x5c]
add dword [ebp - 0x58], 0x10
pxor xmm2, xmm0
movdqu xmmword [edi], xmm2
movdqa xmm2, xmmword [ebp - 0x140]
paddd xmm2, xmmword [ebp - 0x1e0]
mov edi, dword [ebp - 0x58]
add dword [ebp - 0x54], 0x10
add dword [ebp - 0x50], 0x10
add dword [ebp - 0x5c], 0x10
movdqa xmm0, xmm3
movdqa xmm3, xmmword [ebp - 0x110]
paddd xmm3, xmmword [ebp - 0x170]
paddd xmm5, xmmword [ebp - 0x190]
movdqa xmm6, xmm2
punpckhdq xmm2, xmm3
punpckldq xmm6, xmm3
add dword [ebp - 0x58], 0x10
movdqa xmm1, xmm4
punpckldq xmm1, xmm0
punpckhdq xmm4, xmm0
movdqa xmm0, xmm4
movdqa xmm4, xmm2
movdqa xmm2, xmm1
punpckhqdq xmm2, xmm6
punpcklqdq xmm1, xmm6
movdqu xmm6, xmmword [eax + 0x20]
pxor xmm1, xmm6
movdqu xmmword [ecx + 0x20], xmm1
movdqu xmm1, xmmword [edx + 0x20]
pxor xmm2, xmm1
movdqu xmmword [edi], xmm2
movdqu xmm1, xmmword [esi + 0x20]
mov edi, dword [ebp - 0x54]
movdqa xmm2, xmmword [ebp - 0x80]
paddd xmm2, xmmword [ebp - 0x1b0]
add dword [ebp - 0x54], 0x10
movdqa xmm3, xmm0
punpcklqdq xmm0, xmm4
pxor xmm0, xmm1
movdqu xmmword [edi], xmm0
mov edi, dword [ebp - 0x50]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x5c]
add dword [ebp - 0x50], 0x10
add dword [ebp - 0x5c], 0x10
punpckhqdq xmm3, xmm4
movdqa xmm4, xmmword [ebp - 0x240]
pxor xmm3, xmm0
movdqu xmmword [edi], xmm3
movdqa xmm3, xmmword [ebp - 0xf0]
paddd xmm3, xmmword [ebp - 0x1d0]
mov edi, dword [ebp - 0x58]
movdqa xmm6, xmm2
punpckhdq xmm2, xmm3
paddd xmm7, xmm4
movdqa xmm0, xmm7
punpckldq xmm0, xmm5
punpckldq xmm6, xmm3
punpckhdq xmm7, xmm5
movdqa xmm5, xmm2
movdqa xmm2, xmm0
punpcklqdq xmm0, xmm6
punpckhqdq xmm2, xmm6
movdqu xmm6, xmmword [eax + 0x30]
pxor xmm0, xmm6
movdqa xmm1, xmm7
movdqu xmmword [ecx + 0x30], xmm0
movdqu xmm0, xmmword [edx + 0x30]
movdqa xmm3, xmm1
punpckhqdq xmm3, xmm5
pxor xmm2, xmm0
add dword [ebx + 0xc], 0xffffff00
movdqu xmmword [edi], xmm2
movdqu xmm0, xmmword [esi + 0x30]
adc dword [ebx + 0x10], 0xffffffff
mov edi, dword [ebp - 0x54]
add dword [ebp - 0x58], 0xd0
add dword [ebp - 0x54], 0xd0
punpcklqdq xmm1, xmm5
pxor xmm1, xmm0
movdqu xmmword [edi], xmm1
mov edi, dword [ebp - 0x50]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x5c]
add dword [ebp - 0x5c], 0xd0
add dword [ebp - 0x50], 0xd0
add esi, 0x100
mov dword [ebp - 0x4c], esi
mov esi, dword [ebx + 0x10]
add edx, 0x100
add ecx, 0x100
add eax, 0x100
pxor xmm3, xmm0
movdqu xmmword [edi], xmm3
mov dword [ebp - 0x60], edx
test esi, esi
ja 0x401ac0
mov edi, dword [ebx + 0xc]
jb 0x402633
cmp edi, 0x100
jae 0x401ac0
mov edx, dword [ebp - 0x64]
test esi, esi
jne 0x402643
cmp edi, 0x40
jb 0x4029e4
movdqu xmm7, xmmword [edx]
movdqu xmm3, xmmword [edx + 0x10]
movdqu xmm6, xmmword [edx + 0x20]
movdqu xmm2, xmmword [edx + 0x30]
movdqa xmm0, xmm7
movdqa xmmword [ebp - 0x90], xmm3
movdqa xmmword [ebp - 0x100], xmm6
movdqa xmmword [ebp - 0x80], xmm2
mov edx, 5
movdqa xmm1, xmm3
paddd xmm1, xmm0
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
pxor xmm2, xmm4
pxor xmm2, xmm1
pshufd xmm4, xmm2, 0x93
movdqa xmm5, xmm2
movdqa xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm2, xmm6
movdqa xmm6, xmm1
psrld xmm1, 0x17
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm1
paddd xmm5, xmm2
movdqa xmm1, xmm5
psrld xmm1, 0x13
pslld xmm5, 0xd
pxor xmm3, xmm5
pxor xmm3, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm3
movdqa xmm5, xmm1
psrld xmm1, 0xe
pslld xmm5, 0x12
pxor xmm0, xmm5
pxor xmm0, xmm1
pshufd xmm3, xmm3, 0x39
movdqa xmm1, xmm4
paddd xmm1, xmm0
movdqa xmm5, xmm1
psrld xmm1, 0x19
pslld xmm5, 7
pxor xmm3, xmm5
pxor xmm3, xmm1
pshufd xmm5, xmm3, 0x93
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
psrld xmm1, 0x17
pshufd xmm2, xmm2, 0x4e
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm1
paddd xmm3, xmm2
movdqa xmm1, xmm3
psrld xmm1, 0x13
pslld xmm3, 0xd
pxor xmm4, xmm3
pxor xmm4, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm4
movdqa xmm3, xmm1
psrld xmm1, 0xe
pslld xmm3, 0x12
pxor xmm0, xmm3
pxor xmm0, xmm1
pshufd xmm3, xmm4, 0x39
movdqa xmm1, xmm5
paddd xmm1, xmm0
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
pxor xmm3, xmm4
pxor xmm3, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
pshufd xmm2, xmm2, 0x4e
pslld xmm6, 9
psrld xmm1, 0x17
pshufd xmm4, xmm3, 0x93
pxor xmm2, xmm6
pxor xmm2, xmm1
paddd xmm3, xmm2
movdqa xmm1, xmm3
pslld xmm3, 0xd
pxor xmm5, xmm3
dec edx
psrld xmm1, 0x13
pxor xmm5, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm5
movdqa xmm3, xmm1
psrld xmm1, 0xe
pslld xmm3, 0x12
pxor xmm0, xmm3
pxor xmm0, xmm1
movdqa xmm1, xmm4
paddd xmm1, xmm0
pshufd xmm3, xmm5, 0x39
movdqa xmm5, xmm1
psrld xmm1, 0x19
pslld xmm5, 7
pxor xmm3, xmm5
pxor xmm3, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
pshufd xmm2, xmm2, 0x4e
psrld xmm1, 0x17
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm1
movdqa xmm5, xmm3
paddd xmm5, xmm2
movdqa xmm1, xmm5
psrld xmm1, 0x13
pslld xmm5, 0xd
pxor xmm4, xmm5
pxor xmm4, xmm1
pshufd xmm6, xmm2, 0x4e
paddd xmm2, xmm4
movdqa xmm1, xmm2
pshufd xmm2, xmm4, 0x39
movdqa xmm4, xmm1
pslld xmm4, 0x12
pxor xmm0, xmm4
psrld xmm1, 0xe
pshufd xmm3, xmm3, 0x93
pxor xmm0, xmm1
jne 0x402674
paddd xmm2, xmmword [ebp - 0x80]
paddd xmm3, xmmword [ebp - 0x90]
paddd xmm6, xmmword [ebp - 0x100]
movd edi, xmm2
xor edi, dword [eax + 0x10]
paddd xmm0, xmm7
mov dword [ebp - 0x60], edi
mov edi, dword [eax]
movd dword [ebp - 0x4c], xmm0
xor edi, dword [ebp - 0x4c]
movd edx, xmm3
xor edx, dword [eax + 0x30]
movd esi, xmm6
xor esi, dword [eax + 0x20]
mov dword [ecx + 0x30], edx
mov edx, dword [ebp - 0x60]
mov dword [ecx], edi
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x20], esi
pshufd xmm2, xmm2, 0x39
movd edi, xmm2
xor edi, dword [eax + 0x24]
pshufd xmm1, xmm3, 0x39
mov dword [ebp - 0x60], edi
mov edi, dword [eax + 0x14]
movd edx, xmm1
xor edx, dword [eax + 4]
pshufd xmm0, xmm0, 0x39
movd dword [ebp - 0x4c], xmm0
xor edi, dword [ebp - 0x4c]
pshufd xmm3, xmm6, 0x39
movd esi, xmm3
xor esi, dword [eax + 0x34]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x60]
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x34], esi
pshufd xmm2, xmm2, 0x39
pshufd xmm1, xmm1, 0x39
movd edx, xmm1
xor edx, dword [eax + 0x18]
movd edi, xmm2
xor edi, dword [eax + 0x38]
pshufd xmm0, xmm0, 0x39
mov dword [ebp - 0x4c], edi
pshufd xmm3, xmm3, 0x39
movd edi, xmm0
xor edi, dword [eax + 0x28]
movd esi, xmm3
xor esi, dword [eax + 8]
mov dword [ecx + 0x18], edx
mov edx, dword [ebp - 0x4c]
mov dword [ecx + 0x38], edx
mov dword [ecx + 8], esi
mov dword [ecx + 0x28], edi
pshufd xmm1, xmm1, 0x39
movd edx, xmm1
xor edx, dword [eax + 0x2c]
pshufd xmm1, xmm3, 0x39
movd esi, xmm1
xor esi, dword [eax + 0x1c]
pshufd xmm1, xmm2, 0x39
movd edi, xmm1
xor edi, dword [eax + 0xc]
pshufd xmm0, xmm0, 0x39
mov dword [ebp - 0x4c], edi
movd edi, xmm0
xor edi, dword [eax + 0x3c]
mov dword [ecx + 0x2c], edx
mov edx, dword [ebp - 0x4c]
mov dword [ecx + 0xc], edx
mov edx, dword [ebp - 0x64]
mov dword [ecx + 0x1c], esi
mov dword [ecx + 0x3c], edi
mov esi, dword [edx + 0x20]
inc esi
mov edi, dword [edx + 0x34]
jne 0x4029b3
inc edi
mov dword [edx + 0x34], edi
mov edi, dword [ebx + 0xc]
mov dword [edx + 0x20], esi
mov esi, dword [ebx + 0x10]
add ecx, 0x40
add eax, 0x40
add edi, 0xffffffc0
adc esi, 0xffffffff
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], esi
test esi, esi
ja 0x402643
jb 0x4029f0
cmp edi, 0x40
jae 0x402643
test esi, esi
jne 0x4029f0
test edi, edi
je 0x402d61
movdqu xmm7, xmmword [edx]
movdqu xmm3, xmmword [edx + 0x10]
movdqu xmm6, xmmword [edx + 0x20]
movdqu xmm2, xmmword [edx + 0x30]
movdqa xmm0, xmm7
movdqa xmmword [ebp - 0x90], xmm3
movdqa xmmword [ebp - 0x100], xmm6
movdqa xmmword [ebp - 0x80], xmm2
mov edx, 5
movdqa xmm1, xmm3
paddd xmm1, xmm0
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
pxor xmm2, xmm4
pxor xmm2, xmm1
pshufd xmm4, xmm2, 0x93
movdqa xmm5, xmm2
movdqa xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm2, xmm6
movdqa xmm6, xmm1
psrld xmm1, 0x17
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm1
paddd xmm5, xmm2
movdqa xmm1, xmm5
psrld xmm1, 0x13
pslld xmm5, 0xd
pxor xmm3, xmm5
pxor xmm3, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm3
movdqa xmm5, xmm1
psrld xmm1, 0xe
pslld xmm5, 0x12
pxor xmm0, xmm5
pxor xmm0, xmm1
pshufd xmm3, xmm3, 0x39
movdqa xmm1, xmm4
paddd xmm1, xmm0
movdqa xmm5, xmm1
psrld xmm1, 0x19
pslld xmm5, 7
pxor xmm3, xmm5
pxor xmm3, xmm1
pshufd xmm5, xmm3, 0x93
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
psrld xmm1, 0x17
pshufd xmm2, xmm2, 0x4e
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm1
paddd xmm3, xmm2
movdqa xmm1, xmm3
psrld xmm1, 0x13
pslld xmm3, 0xd
pxor xmm4, xmm3
pxor xmm4, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm4
movdqa xmm3, xmm1
psrld xmm1, 0xe
pslld xmm3, 0x12
pxor xmm0, xmm3
pxor xmm0, xmm1
pshufd xmm3, xmm4, 0x39
movdqa xmm1, xmm5
paddd xmm1, xmm0
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
pxor xmm3, xmm4
pxor xmm3, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
pshufd xmm2, xmm2, 0x4e
pslld xmm6, 9
psrld xmm1, 0x17
pshufd xmm4, xmm3, 0x93
pxor xmm2, xmm6
pxor xmm2, xmm1
paddd xmm3, xmm2
movdqa xmm1, xmm3
pslld xmm3, 0xd
pxor xmm5, xmm3
dec edx
psrld xmm1, 0x13
pxor xmm5, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm5
movdqa xmm3, xmm1
psrld xmm1, 0xe
pslld xmm3, 0x12
pxor xmm0, xmm3
pxor xmm0, xmm1
movdqa xmm1, xmm4
paddd xmm1, xmm0
pshufd xmm3, xmm5, 0x39
movdqa xmm5, xmm1
psrld xmm1, 0x19
pslld xmm5, 7
pxor xmm3, xmm5
pxor xmm3, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
pshufd xmm2, xmm2, 0x4e
psrld xmm1, 0x17
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm1
movdqa xmm5, xmm3
paddd xmm5, xmm2
movdqa xmm1, xmm5
psrld xmm1, 0x13
pslld xmm5, 0xd
pxor xmm4, xmm5
pxor xmm4, xmm1
pshufd xmm6, xmm2, 0x4e
paddd xmm2, xmm4
movdqa xmm1, xmm2
pshufd xmm2, xmm4, 0x39
movdqa xmm4, xmm1
pslld xmm4, 0x12
pxor xmm0, xmm4
psrld xmm1, 0xe
pshufd xmm3, xmm3, 0x93
pxor xmm0, xmm1
jne 0x402a21
paddd xmm3, xmmword [ebp - 0x90]
paddd xmm6, xmmword [ebp - 0x100]
paddd xmm2, xmmword [ebp - 0x80]
paddd xmm0, xmm7
movd edx, xmm0
mov dword [ebp - 0x48], edx
movd dword [ebp - 0x4c], xmm3
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x18], edx
movd dword [ebp - 0x60], xmm6
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x28], edx
pshufd xmm0, xmm0, 0x39
movd edx, xmm0
mov dword [ebp - 0x34], edx
pshufd xmm1, xmm3, 0x39
movd dword [ebp - 0x4c], xmm1
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x44], edx
pshufd xmm3, xmm6, 0x39
movd dword [ebp - 0x60], xmm3
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x14], edx
pshufd xmm0, xmm0, 0x39
movd edx, xmm0
mov dword [ebp - 0x20], edx
movd edi, xmm2
pshufd xmm1, xmm1, 0x39
movd edx, xmm1
mov dword [ebp - 0x30], edx
pshufd xmm2, xmm2, 0x39
pshufd xmm3, xmm3, 0x39
mov dword [ebp - 0x38], edi
movd edi, xmm2
movd edx, xmm3
mov dword [ebp - 0x40], edx
pshufd xmm2, xmm2, 0x39
pshufd xmm0, xmm0, 0x39
movd edx, xmm2
mov dword [ebp - 0x10], edx
movd edx, xmm0
mov dword [ebp - 0xc], edx
pshufd xmm0, xmm1, 0x39
movd edx, xmm0
mov dword [ebp - 0x1c], edx
pshufd xmm0, xmm3, 0x39
movd edx, xmm0
mov dword [ebp - 0x2c], edx
pshufd xmm0, xmm2, 0x39
movd edx, xmm0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x64], 0
test esi, esi
jb 0x402d53
ja 0x402d28
cmp dword [ebx + 0xc], 0
jbe 0x402d53
lea edi, [ebp - 0x48]
sub edi, eax
sub ecx, eax
mov dword [ebp - 0x4c], ecx
jmp 0x402d37
mov ecx, dword [ebp - 0x4c]
mov dl, byte [edi + eax]
xor dl, byte [eax]
inc dword [ebp - 0x64]
mov byte [ecx + eax], dl
xor edx, edx
inc eax
cmp edx, esi
jb 0x402d37
ja 0x402d53
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebx + 0xc]
jb 0x402d34
lea edx, [ebp - 0x48]
push 0x40
push edx
call fcn.00401340
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004adff8
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret