Function at 0x446748
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x288
mov eax, dword [0x46405c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
push esi
mov esi, ecx
mov ecx, dword [ebx + 0xc]
or ecx, dword [ebx + 0x10]
push edi
mov dword [ebp - 0x23c], esi
je 0x447be2
xor ecx, ecx
cmp dword [ebx + 0x10], ecx
ja 0x446772
cmp dword [ebx + 0xc], 0x100
jb 0x447427
movdqu xmm0, xmmword [esi]
movdqu xmm1, xmmword [esi + 0x10]
movdqu xmm2, xmmword [esi + 0x20]
movdqu xmm3, xmmword [esi + 0x30]
pshufd xmm4, xmm0, 0
movdqa xmmword [ebp - 0x140], xmm4
pshufd xmm4, xmm1, 0x55
movdqa xmmword [ebp - 0x1a0], xmm4
pshufd xmm4, xmm2, 0xaa
movdqa xmmword [ebp - 0x1e0], xmm4
pshufd xmm4, xmm3, 0xff
movdqa xmmword [ebp - 0x180], xmm4
pshufd xmm4, xmm3, 0
movdqa xmmword [ebp - 0x190], xmm4
pshufd xmm4, xmm0, 0x55
movdqa xmmword [ebp - 0x150], xmm4
pshufd xmm4, xmm1, 0xaa
push ecx
movdqa xmmword [ebp - 0x160], xmm4
pshufd xmm4, xmm2, 0xff
push ecx
movdqa xmmword [ebp - 0x170], xmm4
pshufd xmm4, xmm1, 0xff
pshufd xmm1, xmm1, 0
pshufd xmm6, xmm0, 0xaa
movdqa xmmword [ebp - 0x1d0], xmm1
push ecx
pshufd xmm1, xmm2, 0x55
pshufd xmm7, xmm3, 0xaa
pshufd xmm0, xmm0, 0xff
push 1
movdqa xmmword [ebp - 0x220], xmm6
movdqa xmmword [ebp - 0x1b0], xmm4
movdqa xmmword [ebp - 0x1f0], xmm1
movdqa xmmword [ebp - 0x200], xmm7
movdqa xmmword [ebp - 0x1c0], xmm0
call fcn.00448640
push ecx
push 2
push ecx
push 3
movdqa xmmword [ebp - 0x280], xmm0
call fcn.00448640
lea ecx, [eax + 0xc0]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + 0xc0]
mov dword [ebp - 0x24c], ecx
lea ecx, [eax + 0x80]
mov dword [ebp - 0x238], ecx
lea ecx, [edx + 0x80]
mov dword [ebp - 0x248], ecx
lea ecx, [eax + 0x40]
mov dword [ebp - 0x244], ecx
lea ecx, [edx + 0x40]
add esp, 0x20
movdqa xmmword [ebp - 0x270], xmm0
mov dword [ebp - 0x240], ecx
mov edi, dword [esi + 0x34]
mov esi, dword [esi + 0x20]
mov dword [ebp - 0x254], edi
xor edi, edi
mov dword [ebp - 0x250], edi
mov edi, dword [ebp - 0x254]
xor ecx, ecx
or ecx, esi
mov esi, dword [ebp - 0x250]
or edi, esi
push edi
push ecx
push edi
push ecx
call fcn.00448640
movdqa xmm1, xmmword [ebp - 0x280]
movdqa xmm2, xmmword [ebp - 0x270]
paddq xmm1, xmm0
mov esi, dword [ebp - 0x23c]
paddq xmm2, xmm0
movdqa xmm0, xmm1
punpckhdq xmm1, xmm2
movdqa xmm5, xmmword [ebp - 0x1f0]
punpckldq xmm0, xmm2
movdqa xmm2, xmm0
punpckhdq xmm0, xmm1
punpckldq xmm2, xmm1
movdqa xmm1, xmmword [ebp - 0x150]
movdqa xmmword [ebp - 0xa0], xmm1
movdqa xmm1, xmmword [ebp - 0x1c0]
movdqa xmmword [ebp - 0x120], xmm1
movdqa xmm1, xmmword [ebp - 0x180]
movdqa xmmword [ebp - 0x80], xmm1
movdqa xmm1, xmmword [ebp - 0x160]
movdqa xmmword [ebp - 0xc0], xmm1
movdqa xmm1, xmmword [ebp - 0x1a0]
movdqa xmmword [ebp - 0xb0], xmm1
movdqa xmm1, xmmword [ebp - 0x170]
movdqa xmmword [ebp - 0xe0], xmm1
movdqa xmm1, xmmword [ebp - 0x1e0]
add esp, 0x10
movdqa xmmword [ebp - 0x230], xmm0
movdqa xmmword [ebp - 0xd0], xmm1
movdqa xmm1, xmm0
movdqa xmm0, xmmword [ebp - 0x140]
add ecx, 4
movdqa xmmword [ebp - 0xf0], xmm0
movdqa xmm0, xmmword [ebp - 0x1d0]
adc edi, 0
movdqa xmmword [ebp - 0x90], xmm7
movdqa xmm7, xmmword [ebp - 0x1b0]
movdqa xmmword [ebp - 0x110], xmm0
movdqa xmm0, xmmword [ebp - 0x190]
push 0xa
mov dword [esi + 0x20], ecx
movdqa xmmword [ebp - 0x210], xmm2
mov dword [esi + 0x34], edi
movdqa xmmword [ebp - 0x100], xmm6
movdqa xmmword [ebp - 0x130], xmm7
movdqa xmmword [ebp - 0x70], xmm0
movdqa xmmword [ebp - 0x60], xmm2
pop ecx
movdqa xmm2, xmmword [ebp - 0x110]
movdqa xmm6, xmmword [ebp - 0xf0]
movdqa xmm0, xmmword [ebp - 0x70]
movdqa xmm4, xmm2
paddd xmm4, xmm6
movdqa xmm3, xmm4
pslld xmm3, 7
pxor xmm0, xmm3
psrld xmm4, 0x19
pxor xmm0, xmm4
movdqa xmm4, xmmword [ebp - 0xb0]
paddd xmm4, xmmword [ebp - 0xa0]
paddd xmm6, xmm0
movdqa xmm3, xmm4
pslld xmm3, 7
pxor xmm1, xmm3
movdqa xmm3, xmm6
psrld xmm6, 0x17
pslld xmm3, 9
psrld xmm4, 0x19
pxor xmm1, xmm4
movdqa xmm4, xmmword [ebp - 0x60]
pxor xmm4, xmm3
pxor xmm4, xmm6
movdqa xmm6, xmmword [ebp - 0xa0]
paddd xmm6, xmm1
movdqa xmm3, xmm6
psrld xmm6, 0x17
pslld xmm3, 9
pxor xmm5, xmm3
pxor xmm5, xmm6
movdqa xmm6, xmm0
paddd xmm6, xmm4
movdqa xmm3, xmm6
psrld xmm6, 0x13
pslld xmm3, 0xd
pxor xmm2, xmm3
pxor xmm2, xmm6
movdqa xmmword [ebp - 0x110], xmm2
movdqa xmm2, xmmword [ebp - 0xb0]
movdqa xmm6, xmm1
paddd xmm6, xmm5
movdqa xmm3, xmm6
psrld xmm6, 0x13
pslld xmm3, 0xd
pxor xmm2, xmm3
pxor xmm2, xmm6
movdqa xmmword [ebp - 0xb0], xmm2
movdqa xmm2, xmmword [ebp - 0xf0]
movdqa xmm6, xmm4
paddd xmm6, xmmword [ebp - 0x110]
movdqa xmm3, xmm6
psrld xmm6, 0xe
pslld xmm3, 0x12
pxor xmm2, xmm3
pxor xmm2, xmm6
movdqa xmmword [ebp - 0xf0], xmm2
movdqa xmm2, xmmword [ebp - 0xa0]
movdqa xmm6, xmm5
paddd xmm6, xmmword [ebp - 0xb0]
movdqa xmm3, xmm6
psrld xmm6, 0xe
pslld xmm3, 0x12
pxor xmm2, xmm3
pxor xmm2, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
paddd xmm6, xmmword [ebp - 0x100]
movdqa xmm3, xmm6
movdqa xmmword [ebp - 0xa0], xmm2
movdqa xmm2, xmmword [ebp - 0x90]
pslld xmm3, 7
psrld xmm6, 0x19
pxor xmm2, xmm3
movdqa xmm3, xmmword [ebp - 0x80]
pxor xmm2, xmm6
movdqa xmm6, xmm7
paddd xmm6, xmmword [ebp - 0x120]
movdqa xmm7, xmm6
pslld xmm7, 7
pxor xmm3, xmm7
psrld xmm6, 0x19
pxor xmm3, xmm6
movdqa xmm6, xmmword [ebp - 0x100]
paddd xmm6, xmm2
movdqa xmmword [ebp - 0x60], xmm6
movdqa xmm7, xmmword [ebp - 0xd0]
pslld xmm6, 9
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x60]
psrld xmm6, 0x17
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x120]
paddd xmm6, xmm3
movdqa xmmword [ebp - 0xd0], xmm7
movdqa xmm7, xmmword [ebp - 0xe0]
movdqa xmmword [ebp - 0x70], xmm6
pslld xmm6, 9
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0x70]
psrld xmm6, 0x17
pxor xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
movdqa xmmword [ebp - 0xe0], xmm7
movdqa xmm7, xmm2
paddd xmm7, xmmword [ebp - 0xd0]
movdqa xmmword [ebp - 0x60], xmm7
pslld xmm7, 0xd
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x60]
psrld xmm7, 0x13
pxor xmm6, xmm7
movdqa xmmword [ebp - 0xc0], xmm6
movdqa xmm6, xmmword [ebp - 0x130]
movdqa xmm7, xmm3
paddd xmm7, xmmword [ebp - 0xe0]
movdqa xmmword [ebp - 0x90], xmm7
pslld xmm7, 0xd
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x90]
psrld xmm7, 0x13
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x100]
movdqa xmmword [ebp - 0x130], xmm6
movdqa xmm6, xmmword [ebp - 0xd0]
paddd xmm6, xmmword [ebp - 0xc0]
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 - 0x100], xmm7
movdqa xmm6, xmm3
paddd xmm6, xmmword [ebp - 0xf0]
movdqa xmmword [ebp - 0x80], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xb0]
pslld xmm7, 7
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x80]
psrld xmm7, 0x19
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x120]
movdqa xmmword [ebp - 0xb0], xmm6
movdqa xmm6, xmmword [ebp - 0xe0]
paddd xmm6, xmmword [ebp - 0x130]
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 - 0x120], xmm7
movdqa xmm6, xmm0
paddd xmm6, xmmword [ebp - 0xa0]
movdqa xmmword [ebp - 0x60], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
pslld xmm7, 7
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x60]
psrld xmm7, 0x19
pxor xmm6, xmm7
movdqa xmmword [ebp - 0xc0], xmm6
movdqa xmm6, xmmword [ebp - 0xf0]
paddd xmm6, xmmword [ebp - 0xb0]
movdqa xmmword [ebp - 0x60], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xd0]
pslld xmm7, 9
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x60]
psrld xmm7, 0x17
pxor xmm6, xmm7
movdqa xmmword [ebp - 0xd0], xmm6
movdqa xmm6, xmmword [ebp - 0xa0]
paddd xmm6, xmmword [ebp - 0xc0]
movdqa xmmword [ebp - 0x70], xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xe0]
pslld xmm7, 9
pxor xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x70]
psrld xmm7, 0x17
pxor xmm6, xmm7
movdqa xmmword [ebp - 0xe0], xmm6
movdqa xmm6, xmmword [ebp - 0xb0]
paddd xmm6, xmmword [ebp - 0xd0]
movdqa xmm7, xmm6
psrld xmm6, 0x13
pslld xmm7, 0xd
pxor xmm3, xmm7
pxor xmm3, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
paddd xmm6, xmmword [ebp - 0xe0]
movdqa xmm7, xmm6
psrld xmm6, 0x13
movdqa xmmword [ebp - 0x80], xmm3
pslld xmm7, 0xd
pxor xmm0, xmm7
pxor xmm0, xmm6
movdqa xmm7, xmmword [ebp - 0x130]
movdqa xmmword [ebp - 0x70], xmm0
movdqa xmm0, xmmword [ebp - 0xd0]
paddd xmm0, xmm3
movdqa xmm3, xmmword [ebp - 0xf0]
movdqa xmm6, xmm0
psrld xmm0, 0xe
pslld xmm6, 0x12
pxor xmm3, xmm6
pxor xmm3, xmm0
movdqa xmm0, xmmword [ebp - 0xe0]
paddd xmm0, xmmword [ebp - 0x70]
movdqa xmm6, xmm0
movdqa xmmword [ebp - 0xf0], xmm3
movdqa xmm3, xmmword [ebp - 0xa0]
psrld xmm0, 0xe
pslld xmm6, 0x12
pxor xmm3, xmm6
pxor xmm3, xmm0
movdqa xmmword [ebp - 0xa0], xmm3
movdqa xmm0, xmm1
paddd xmm0, xmmword [ebp - 0x100]
movdqa xmm3, xmm0
pslld xmm3, 7
psrld xmm0, 0x19
pxor xmm7, xmm3
movdqa xmm3, xmmword [ebp - 0x110]
pxor xmm7, xmm0
movdqa xmm0, xmm2
paddd xmm0, xmmword [ebp - 0x120]
movdqa xmm6, xmm0
pslld xmm6, 7
pxor xmm3, xmm6
psrld xmm0, 0x19
pxor xmm3, xmm0
movdqa xmmword [ebp - 0x110], xmm3
movdqa xmm3, xmmword [ebp - 0x100]
movdqa xmm0, xmm3
paddd xmm0, xmm7
movdqa xmm6, xmm0
movdqa xmmword [ebp - 0x130], xmm7
pslld xmm6, 9
dec ecx
psrld xmm0, 0x17
pxor xmm4, xmm6
pxor xmm4, xmm0
movdqa xmmword [ebp - 0x60], xmm4
movdqa xmm4, xmmword [ebp - 0x120]
movdqa xmm0, xmm4
paddd xmm0, xmmword [ebp - 0x110]
movdqa xmm6, xmm0
psrld xmm0, 0x17
pslld xmm6, 9
pxor xmm5, xmm6
pxor xmm5, xmm0
movdqa xmm0, xmm7
paddd xmm0, xmmword [ebp - 0x60]
movdqa xmm6, xmm0
psrld xmm0, 0x13
pslld xmm6, 0xd
pxor xmm1, xmm6
pxor xmm1, xmm0
movdqa xmm0, xmmword [ebp - 0x110]
paddd xmm0, xmm5
movdqa xmm6, xmm0
psrld xmm0, 0x13
pslld xmm6, 0xd
pxor xmm2, xmm6
pxor xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x60]
paddd xmm0, xmm1
movdqa xmm6, xmm0
psrld xmm0, 0xe
pslld xmm6, 0x12
pxor xmm3, xmm6
pxor xmm3, xmm0
movdqa xmmword [ebp - 0x90], xmm2
movdqa xmm0, xmm5
paddd xmm0, xmm2
movdqa xmm2, xmm0
pslld xmm2, 0x12
pxor xmm4, xmm2
psrld xmm0, 0xe
pxor xmm4, xmm0
movdqa xmmword [ebp - 0x100], xmm3
movdqa xmmword [ebp - 0x120], xmm4
jne 0x4469f7
movdqa xmm0, xmmword [ebp - 0xb0]
paddd xmm0, xmmword [ebp - 0x1a0]
movdqa xmm6, xmmword [ebp - 0xf0]
paddd xmm6, xmmword [ebp - 0x140]
movdqa xmm2, xmmword [ebp - 0xd0]
paddd xmm2, xmmword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x244]
movdqa xmmword [ebp - 0xb0], xmm0
movdqa xmm0, xmmword [ebp - 0x80]
paddd xmm0, xmmword [ebp - 0x180]
movdqa xmm3, xmm0
movdqa xmm0, xmm6
punpckldq xmm0, xmmword [ebp - 0xb0]
punpckhdq xmm6, xmmword [ebp - 0xb0]
movdqa xmm4, xmm2
punpckldq xmm4, xmm3
punpckhdq xmm2, xmm3
movdqa xmm3, xmm0
punpckhqdq xmm3, xmm4
movdqa xmmword [ebp - 0x80], xmm4
punpcklqdq xmm0, xmmword [ebp - 0x80]
movdqa xmm4, xmm6
punpckhqdq xmm4, xmm2
movdqa xmmword [ebp - 0x130], xmm2
movdqu xmm2, xmmword [eax]
punpcklqdq xmm6, xmmword [ebp - 0x130]
pxor xmm0, xmm2
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [ecx]
mov ecx, dword [ebp - 0x240]
movdqa xmm2, xmmword [ebp - 0xc0]
paddd xmm2, xmmword [ebp - 0x160]
pxor xmm3, xmm0
movdqu xmmword [ecx], xmm3
mov ecx, dword [ebp - 0x238]
movdqu xmm0, xmmword [ecx]
mov ecx, dword [ebp - 0x248]
pxor xmm6, xmm0
movdqu xmmword [ecx], xmm6
mov ecx, dword [ebp - 0x234]
movdqu xmm0, xmmword [ecx]
mov ecx, dword [ebp - 0x24c]
movdqa xmm6, xmmword [ebp - 0x70]
paddd xmm6, xmmword [ebp - 0x190]
pxor xmm4, xmm0
movdqa xmm0, xmmword [ebp - 0xa0]
paddd xmm0, xmmword [ebp - 0x150]
movdqa xmmword [ebp - 0xa0], xmm0
movdqa xmm0, xmmword [ebp - 0xe0]
paddd xmm0, xmmword [ebp - 0x170]
movdqu xmmword [ecx], xmm4
movdqa xmm3, xmm0
movdqa xmm4, xmm2
punpckldq xmm4, xmm3
punpckhdq xmm2, xmm3
movdqa xmm0, xmm6
punpckldq xmm0, xmmword [ebp - 0xa0]
punpckhdq xmm6, xmmword [ebp - 0xa0]
movdqa xmm3, xmm0
push 0x10
pop ecx
add dword [ebp - 0x244], ecx
mov edi, dword [ebp - 0x244]
add dword [ebp - 0x238], ecx
add dword [ebp - 0x234], ecx
add dword [ebp - 0x240], ecx
add dword [ebp - 0x248], ecx
movdqa xmmword [ebp - 0x80], xmm4
punpcklqdq xmm0, xmmword [ebp - 0x80]
punpckhqdq xmm3, xmm4
add eax, ecx
movdqa xmm4, xmm6
add edx, ecx
add dword [ebp - 0x24c], ecx
movdqa xmmword [ebp - 0x70], xmm2
punpckhqdq xmm4, xmm2
movdqu xmm2, xmmword [eax]
pxor xmm0, xmm2
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [edi]
pxor xmm3, xmm0
mov edi, dword [ebp - 0x240]
punpcklqdq xmm6, xmmword [ebp - 0x70]
movdqu xmmword [edi], xmm3
mov edi, dword [ebp - 0x238]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x248]
paddd xmm1, xmmword [ebp - 0x230]
paddd xmm7, xmmword [ebp - 0x1b0]
movdqa xmm2, xmmword [ebp - 0x100]
add dword [ebp - 0x244], ecx
add dword [ebp - 0x240], ecx
add dword [ebp - 0x238], ecx
pxor xmm6, xmm0
movdqu xmmword [edi], xmm6
mov edi, dword [ebp - 0x234]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x24c]
movdqa xmm6, xmmword [ebp - 0x220]
pxor xmm4, xmm0
movdqu xmmword [edi], xmm4
movdqa xmm4, xmmword [ebp - 0x60]
paddd xmm4, xmmword [ebp - 0x210]
mov edi, dword [ebp - 0x244]
add dword [ebp - 0x248], ecx
add dword [ebp - 0x234], ecx
add dword [ebp - 0x24c], ecx
paddd xmm5, xmmword [ebp - 0x1f0]
add dword [ebp - 0x244], ecx
movdqa xmm3, xmm7
movdqa xmm0, xmm4
punpckldq xmm0, xmm1
punpckhdq xmm4, xmm1
movdqa xmm1, xmm0
paddd xmm2, xmm6
movdqa xmm7, xmm2
punpckldq xmm7, xmm3
punpcklqdq xmm0, xmm7
punpckhqdq xmm1, xmm7
add eax, ecx
movdqu xmm7, xmmword [eax]
pxor xmm0, xmm7
movdqa xmm7, xmmword [ebp - 0x200]
add edx, ecx
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x240]
add dword [ebp - 0x240], ecx
pxor xmm1, xmm0
movdqu xmmword [edi], xmm1
mov edi, dword [ebp - 0x238]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x248]
movdqa xmm1, xmmword [ebp - 0x90]
add dword [ebp - 0x238], ecx
add dword [ebp - 0x248], ecx
punpckhdq xmm2, xmm3
movdqa xmm3, xmm4
punpcklqdq xmm4, xmm2
pxor xmm4, xmm0
movdqu xmmword [edi], xmm4
mov edi, dword [ebp - 0x234]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x24c]
add dword [ebp - 0x234], ecx
punpckhqdq xmm3, xmm2
pxor xmm3, xmm0
movdqa xmm0, xmmword [ebp - 0x120]
paddd xmm0, xmmword [ebp - 0x1c0]
movdqu xmmword [edi], xmm3
movdqa xmm3, xmmword [ebp - 0x110]
paddd xmm3, xmmword [ebp - 0x1d0]
movdqa xmm2, xmm0
paddd xmm1, xmm7
movdqa xmm0, xmm3
add eax, ecx
add edx, ecx
add dword [ebp - 0x24c], ecx
movdqa xmm4, xmm1
punpckldq xmm0, xmm5
punpckldq xmm4, xmm2
punpckhdq xmm3, xmm5
mov ecx, dword [ebp - 0x244]
add dword [ebx + 0xc], 0xffffff00
punpckhdq xmm1, xmm2
movdqa xmm5, xmm1
adc dword [ebx + 0x10], 0xffffffff
movdqa xmm1, xmm0
punpcklqdq xmm0, xmm4
punpckhqdq xmm1, xmm4
movdqu xmm4, xmmword [eax]
pxor xmm0, xmm4
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [ecx]
mov ecx, dword [ebp - 0x240]
pxor xmm1, xmm0
movdqu xmmword [ecx], xmm1
mov ecx, dword [ebp - 0x238]
movdqu xmm0, xmmword [ecx]
mov ecx, dword [ebp - 0x248]
movdqa xmm2, xmm3
punpcklqdq xmm3, xmm5
pxor xmm3, xmm0
movdqu xmmword [ecx], xmm3
mov ecx, dword [ebp - 0x234]
movdqu xmm0, xmmword [ecx]
mov ecx, dword [ebp - 0x24c]
punpckhqdq xmm2, xmm5
pxor xmm2, xmm0
movdqu xmmword [ecx], xmm2
mov ecx, 0xd0
add dword [ebp - 0x240], ecx
add dword [ebp - 0x248], ecx
add dword [ebp - 0x24c], ecx
add dword [ebp - 0x244], ecx
add dword [ebp - 0x238], ecx
add dword [ebp - 0x234], ecx
add edx, ecx
add eax, ecx
xor ecx, ecx
cmp dword [ebx + 0x10], ecx
ja 0x4468a5
jb 0x447427
cmp dword [ebx + 0xc], 0x100
jae 0x4468a5
cmp dword [ebx + 0x10], ecx
jbe 0x447851
movdqu xmm0, xmmword [esi]
movdqu xmm7, xmmword [esi + 0x10]
movdqu xmm5, xmmword [esi + 0x20]
movdqu xmm2, xmmword [esi + 0x30]
push 5
movdqa xmmword [ebp - 0x90], xmm0
movdqa xmmword [ebp - 0x80], xmm7
movdqa xmmword [ebp - 0x60], xmm5
movdqa xmmword [ebp - 0x70], xmm2
pop ecx
movdqa xmm1, xmm7
paddd xmm1, xmm0
movdqa xmm3, xmm1
psrld xmm1, 0x19
pslld xmm3, 7
pxor xmm2, xmm3
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0x93
movdqa xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x17
pslld xmm4, 9
pxor xmm5, xmm4
pxor xmm5, xmm1
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x13
pslld xmm4, 0xd
movdqa xmm2, xmm7
pxor xmm2, xmm4
pxor xmm2, xmm1
movdqa xmm1, xmm5
paddd xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0xe
pslld xmm4, 0x12
pxor xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm1, xmm3
paddd xmm1, xmm0
movdqa xmm4, xmm1
psrld xmm1, 0x19
pshufd xmm2, xmm2, 0x39
pslld xmm4, 7
pxor xmm2, xmm4
pxor xmm2, xmm1
movdqa xmm6, xmm2
pshufd xmm4, xmm2, 0x93
movdqa xmm1, xmm0
paddd xmm1, xmm2
pshufd xmm2, xmm5, 0x4e
movdqa xmm5, xmm1
psrld xmm1, 0x17
pslld xmm5, 9
pxor xmm2, xmm5
pxor xmm2, xmm1
paddd xmm6, xmm2
movdqa xmm1, xmm6
movdqa xmm5, xmm1
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
movdqa xmm1, xmm4
paddd xmm1, xmm0
movdqa xmm5, xmm1
pshufd xmm3, xmm3, 0x39
pslld xmm5, 7
pxor xmm3, xmm5
psrld xmm1, 0x19
pxor xmm3, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
pshufd xmm2, xmm2, 0x4e
pslld xmm6, 9
movdqa xmm5, xmm3
pxor xmm2, xmm6
psrld xmm1, 0x17
pxor xmm2, xmm1
pshufd xmm3, xmm3, 0x93
paddd xmm5, xmm2
dec ecx
movdqa xmm1, xmm5
psrld xmm1, 0x13
pslld xmm5, 0xd
pxor xmm4, xmm5
pxor xmm4, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm4
movdqa xmm5, xmm1
psrld xmm1, 0xe
pslld xmm5, 0x12
pxor xmm0, xmm5
pxor xmm0, xmm1
movdqa xmm6, xmm0
pshufd xmm1, xmm4, 0x39
movdqa xmm0, xmm3
paddd xmm0, xmm6
movdqa xmm4, xmm0
psrld xmm0, 0x19
pslld xmm4, 7
pxor xmm1, xmm4
pxor xmm1, xmm0
movdqa xmm4, xmm1
pshufd xmm7, xmm1, 0x93
movdqa xmm0, xmm6
paddd xmm0, xmm1
pshufd xmm1, xmm2, 0x4e
movdqa xmm2, xmm0
psrld xmm0, 0x17
pslld xmm2, 9
pxor xmm1, xmm2
pxor xmm1, xmm0
paddd xmm4, xmm1
movdqa xmm0, xmm4
movdqa xmm2, xmm0
psrld xmm0, 0x13
pshufd xmm5, xmm1, 0x4e
pslld xmm2, 0xd
pxor xmm3, xmm2
pxor xmm3, xmm0
paddd xmm1, xmm3
movdqa xmm0, xmm1
pshufd xmm1, xmm3, 0x39
movdqa xmm2, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x12
psrld xmm0, 0xe
pxor xmm6, xmm1
pxor xmm6, xmm0
movdqa xmm0, xmm6
jne 0x44745d
paddd xmm7, xmmword [ebp - 0x80]
paddd xmm5, xmmword [ebp - 0x60]
paddd xmm0, xmmword [ebp - 0x90]
paddd xmm2, xmmword [ebp - 0x70]
movd ecx, xmm7
xor ecx, dword [eax + 0x30]
movd dword [ebp - 0x23c], xmm0
mov dword [ebp - 0x250], ecx
mov ecx, dword [eax + 0x20]
movd dword [ebp - 0x234], xmm5
xor dword [ebp - 0x234], ecx
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x23c]
movd edi, xmm2
xor edi, dword [eax + 0x10]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x250]
mov dword [edx + 0x30], ecx
mov ecx, dword [ebp - 0x234]
mov dword [edx + 0x20], ecx
mov ecx, edi
mov dword [edx + 0x10], ecx
mov dword [ebp - 0x238], edi
pshufd xmm1, xmm7, 0x39
movd ecx, xmm1
xor ecx, dword [eax + 4]
pshufd xmm3, xmm5, 0x39
mov dword [ebp - 0x250], ecx
mov ecx, dword [eax + 0x34]
movd dword [ebp - 0x234], xmm3
xor dword [ebp - 0x234], ecx
mov ecx, dword [eax + 0x14]
pshufd xmm0, xmm0, 0x39
movd dword [ebp - 0x23c], xmm0
xor ecx, dword [ebp - 0x23c]
pshufd xmm2, xmm2, 0x39
movd edi, xmm2
xor edi, dword [eax + 0x24]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x250]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x234]
mov dword [edx + 0x34], ecx
mov ecx, edi
mov dword [ebp - 0x238], edi
mov dword [edx + 0x24], ecx
pshufd xmm3, xmm3, 0x39
movd edi, xmm3
xor edi, dword [eax + 8]
pshufd xmm2, xmm2, 0x39
mov dword [ebp - 0x23c], edi
pshufd xmm1, xmm1, 0x39
movd ecx, xmm1
xor ecx, dword [eax + 0x18]
movd edi, xmm2
xor edi, dword [eax + 0x38]
pshufd xmm0, xmm0, 0x39
mov dword [ebp - 0x250], edi
movd edi, xmm0
xor edi, dword [eax + 0x28]
mov dword [edx + 0x18], ecx
mov ecx, dword [ebp - 0x23c]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x250]
mov dword [edx + 0x28], edi
mov dword [edx + 0x38], ecx
pshufd xmm1, xmm1, 0x39
movd ecx, xmm1
xor ecx, dword [eax + 0x2c]
pshufd xmm1, xmm3, 0x39
movd edi, xmm1
xor edi, dword [eax + 0x1c]
pshufd xmm1, xmm2, 0x39
mov dword [ebp - 0x23c], edi
movd edi, xmm1
xor edi, dword [eax + 0xc]
pshufd xmm0, xmm0, 0x39
mov dword [ebp - 0x250], edi
movd edi, xmm0
xor edi, dword [eax + 0x3c]
mov dword [edx + 0x3c], edi
mov dword [edx + 0x2c], ecx
mov ecx, dword [ebp - 0x23c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [ebp - 0x250]
mov dword [edx + 0xc], ecx
mov ecx, dword [esi + 0x34]
mov dword [ebp - 0x234], ecx
mov ecx, dword [esi + 0x20]
inc ecx
jne 0x44782a
inc dword [ebp - 0x234]
add edx, 0x40
add eax, 0x40
add dword [ebx + 0xc], 0xffffffc0
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp - 0x234]
adc dword [ebx + 0x10], 0xffffffff
mov dword [esi + 0x34], ecx
xor ecx, ecx
cmp dword [ebx + 0x10], ecx
ja 0x447430
jb 0x44785b
cmp dword [ebx + 0xc], 0x40
jae 0x447430
cmp dword [ebx + 0x10], ecx
ja 0x447869
cmp dword [ebx + 0xc], ecx
jbe 0x447be2
movdqu xmm0, xmmword [esi]
movdqu xmm7, xmmword [esi + 0x10]
movdqu xmm5, xmmword [esi + 0x20]
movdqu xmm2, xmmword [esi + 0x30]
push 5
movdqa xmmword [ebp - 0x90], xmm0
movdqa xmmword [ebp - 0x80], xmm7
movdqa xmmword [ebp - 0x60], xmm5
movdqa xmmword [ebp - 0x70], xmm2
pop ecx
movdqa xmm1, xmm7
paddd xmm1, xmm0
movdqa xmm3, xmm1
psrld xmm1, 0x19
pslld xmm3, 7
pxor xmm2, xmm3
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0x93
movdqa xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x17
pslld xmm4, 9
pxor xmm5, xmm4
pxor xmm5, xmm1
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x13
pslld xmm4, 0xd
movdqa xmm2, xmm7
pxor xmm2, xmm4
pxor xmm2, xmm1
movdqa xmm1, xmm5
paddd xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0xe
pslld xmm4, 0x12
pxor xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm1, xmm3
paddd xmm1, xmm0
movdqa xmm4, xmm1
psrld xmm1, 0x19
pshufd xmm2, xmm2, 0x39
pslld xmm4, 7
pxor xmm2, xmm4
pxor xmm2, xmm1
movdqa xmm6, xmm2
pshufd xmm4, xmm2, 0x93
movdqa xmm1, xmm0
paddd xmm1, xmm2
pshufd xmm2, xmm5, 0x4e
movdqa xmm5, xmm1
psrld xmm1, 0x17
pslld xmm5, 9
pxor xmm2, xmm5
pxor xmm2, xmm1
paddd xmm6, xmm2
movdqa xmm1, xmm6
movdqa xmm5, xmm1
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
movdqa xmm1, xmm4
paddd xmm1, xmm0
movdqa xmm5, xmm1
pshufd xmm3, xmm3, 0x39
pslld xmm5, 7
pxor xmm3, xmm5
psrld xmm1, 0x19
pxor xmm3, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm6, xmm1
pshufd xmm2, xmm2, 0x4e
pslld xmm6, 9
movdqa xmm5, xmm3
pxor xmm2, xmm6
psrld xmm1, 0x17
pxor xmm2, xmm1
pshufd xmm3, xmm3, 0x93
paddd xmm5, xmm2
dec ecx
movdqa xmm1, xmm5
psrld xmm1, 0x13
pslld xmm5, 0xd
pxor xmm4, xmm5
pxor xmm4, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm4
movdqa xmm5, xmm1
psrld xmm1, 0xe
pslld xmm5, 0x12
pxor xmm0, xmm5
pxor xmm0, xmm1
movdqa xmm6, xmm0
pshufd xmm1, xmm4, 0x39
movdqa xmm0, xmm3
paddd xmm0, xmm6
movdqa xmm4, xmm0
psrld xmm0, 0x19
pslld xmm4, 7
pxor xmm1, xmm4
pxor xmm1, xmm0
movdqa xmm4, xmm1
pshufd xmm7, xmm1, 0x93
movdqa xmm0, xmm6
paddd xmm0, xmm1
pshufd xmm1, xmm2, 0x4e
movdqa xmm2, xmm0
psrld xmm0, 0x17
pslld xmm2, 9
pxor xmm1, xmm2
pxor xmm1, xmm0
paddd xmm4, xmm1
movdqa xmm0, xmm4
movdqa xmm2, xmm0
psrld xmm0, 0x13
pshufd xmm5, xmm1, 0x4e
pslld xmm2, 0xd
pxor xmm3, xmm2
pxor xmm3, xmm0
paddd xmm1, xmm3
movdqa xmm0, xmm1
pshufd xmm1, xmm3, 0x39
movdqa xmm2, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x12
psrld xmm0, 0xe
pxor xmm6, xmm1
pxor xmm6, xmm0
movdqa xmm0, xmm6
jne 0x447896
paddd xmm0, xmmword [ebp - 0x90]
paddd xmm5, xmmword [ebp - 0x60]
paddd xmm7, xmmword [ebp - 0x80]
paddd xmm2, xmmword [ebp - 0x70]
movd ecx, xmm0
mov dword [ebp - 0x48], ecx
movd dword [ebp - 0x23c], xmm5
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x28], ecx
pshufd xmm0, xmm0, 0x39
movd ecx, xmm0
mov dword [ebp - 0x34], ecx
pshufd xmm3, xmm5, 0x39
movd dword [ebp - 0x23c], xmm3
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x14], ecx
pshufd xmm0, xmm0, 0x39
movd ecx, xmm0
mov dword [ebp - 0x20], ecx
movd esi, xmm7
pshufd xmm1, xmm7, 0x39
movd edi, xmm2
mov dword [ebp - 0x18], esi
movd esi, xmm1
pshufd xmm1, xmm1, 0x39
movd ecx, xmm1
mov dword [ebp - 0x30], ecx
pshufd xmm2, xmm2, 0x39
pshufd xmm3, xmm3, 0x39
mov dword [ebp - 0x38], edi
movd edi, xmm2
movd ecx, xmm3
mov dword [ebp - 0x40], ecx
pshufd xmm2, xmm2, 0x39
pshufd xmm0, xmm0, 0x39
movd ecx, xmm2
mov dword [ebp - 0x10], ecx
movd ecx, xmm0
mov dword [ebp - 0xc], ecx
pshufd xmm0, xmm1, 0x39
movd ecx, xmm0
mov dword [ebp - 0x1c], ecx
pshufd xmm0, xmm3, 0x39
movd ecx, xmm0
mov dword [ebp - 0x2c], ecx
pshufd xmm0, xmm2, 0x39
movd ecx, xmm0
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x24], edi
cmp dword [ebx + 0x10], ecx
jb 0x447bd7
ja 0x447bb6
cmp dword [ebx + 0xc], ecx
jbe 0x447bd7
lea esi, [ebp - 0x48]
mov edi, edx
sub esi, eax
sub edi, eax
mov dl, byte [esi + eax]
xor dl, byte [eax]
inc ecx
mov byte [edi + eax], dl
xor edx, edx
inc eax
cmp edx, dword [ebx + 0x10]
jb 0x447bbf
ja 0x447bd7
cmp ecx, dword [ebx + 0xc]
jb 0x447bbf
push 0x40
pop ecx
lea eax, [ebp - 0x48]
call fcn.004464d0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0044f7e0
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret