Function at 0x431817
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
test eax, eax
jle 0x4329b5
mov esi, ecx
add dword [esp + 0x50], edx
mov ebx, 0xff00ff
lea eax, [ecx - 0x34]
mov dword [esp + 0x58], eax
lea eax, [ecx - 0x118]
mov dword [esp + 0x4c], eax
movdqa xmm5, xmmword [0x49b510]
movdqa xmm3, xmmword [0x49b520]
movdqa xmm4, xmmword [str.UUUU]
mov dword [esp + 0x5c], ecx
movdqa xmm0, xmm4
movdqa xmm4, xmm3
movzx eax, byte [edx]
movzx ecx, byte [esi - 0x34]
shl ecx, 8
or ecx, eax
movd xmm1, ecx
pxor xmm3, xmm3
punpcklbw xmm1, xmm3
punpcklwd xmm1, xmm3
punpckldq xmm1, xmm3
movzx eax, byte [edx + 1]
movzx ecx, byte [esi - 0x33]
shl ecx, 8
or ecx, eax
movd xmm6, ecx
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm3
punpckldq xmm6, xmm3
psllq xmm6, 8
por xmm6, xmm1
movzx eax, byte [edx + 2]
movzx ecx, byte [esi - 0x32]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm3
psllq xmm2, 0x10
movzx eax, byte [edx + 3]
movzx ecx, byte [esi - 0x31]
shl ecx, 8
or ecx, eax
movd xmm1, ecx
punpcklbw xmm1, xmm3
punpcklwd xmm1, xmm3
punpckldq xmm1, xmm3
psllq xmm1, 0x18
por xmm1, xmm2
por xmm1, xmm6
movzx eax, byte [edx + 4]
movzx ecx, byte [esi - 0x30]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
pxor xmm6, xmm6
punpckldq xmm6, xmm2
movzx eax, byte [edx + 5]
movzx ecx, byte [esi - 0x2f]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
pshufd xmm2, xmm2, 0xd4
psllq xmm2, 0x28
por xmm2, xmm6
movzx eax, byte [edx + 6]
movzx ecx, byte [esi - 0x2e]
shl ecx, 8
or ecx, eax
movd xmm6, ecx
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm3
pshufd xmm6, xmm6, 0xd4
psllq xmm6, 0x30
por xmm6, xmm2
movzx eax, byte [esi - 0x2d]
movzx ecx, byte [edx + 7]
movd xmm2, ecx
pinsrw xmm2, eax, 4
por xmm6, xmm1
psllq xmm2, 0x38
por xmm2, xmm6
pshufd xmm1, xmm2, 0xee
pxor xmm1, xmm2
movq qword [esi - 0x34], xmm1
movzx eax, byte [edx + 8]
movzx ecx, byte [esi - 0x2c]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm3
movzx eax, byte [edx + 9]
movzx ecx, byte [esi - 0x2b]
shl ecx, 8
or ecx, eax
movd xmm7, ecx
punpcklbw xmm7, xmm3
punpcklwd xmm7, xmm3
punpckldq xmm7, xmm3
psllq xmm7, 8
por xmm7, xmm2
movzx eax, byte [edx + 0xa]
movzx ecx, byte [esi - 0x2a]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm3
psllq xmm2, 0x10
movzx eax, byte [edx + 0xb]
movzx ecx, byte [esi - 0x29]
shl ecx, 8
or ecx, eax
movd xmm6, ecx
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm3
punpckldq xmm6, xmm3
psllq xmm6, 0x18
por xmm6, xmm2
por xmm6, xmm7
movzx eax, byte [edx + 0xc]
movzx ecx, byte [esi - 0x28]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
pxor xmm7, xmm7
punpckldq xmm7, xmm2
movzx eax, byte [edx + 0xd]
movzx ecx, byte [esi - 0x27]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
pshufd xmm2, xmm2, 0xd4
psllq xmm2, 0x28
por xmm2, xmm7
movzx eax, byte [edx + 0xe]
movzx ecx, byte [esi - 0x26]
shl ecx, 8
or ecx, eax
movd xmm7, ecx
punpcklbw xmm7, xmm3
punpcklwd xmm7, xmm3
pshufd xmm7, xmm7, 0xd4
psllq xmm7, 0x30
por xmm7, xmm2
por xmm7, xmm6
movzx eax, byte [esi - 0x25]
movzx ecx, byte [edx + 0xf]
movd xmm2, ecx
pinsrw xmm2, eax, 4
psllq xmm2, 0x38
por xmm2, xmm7
pshufd xmm6, xmm2, 0xee
pxor xmm6, xmm2
movq qword [esi - 0x2c], xmm6
punpcklqdq xmm6, xmm1
movdqa xmm1, xmm6
psrlq xmm1, 7
pxor xmm1, xmm6
pand xmm1, xmmword [0x49b4b0]
movdqa xmm2, xmm1
psllq xmm2, 7
por xmm2, xmm1
pxor xmm2, xmm6
movdqa xmm6, xmm2
psrlq xmm6, 0xe
pxor xmm6, xmm2
pand xmm6, xmmword [0x49b4c0]
movdqa xmm1, xmm6
psllq xmm1, 0xe
por xmm1, xmm6
pxor xmm1, xmm2
movdqa xmm2, xmm1
psrlq xmm2, 0x1c
pxor xmm2, xmm1
pand xmm2, xmmword [0x49b4d0]
pshufd xmm6, xmm2, 0xee
movd eax, xmm6
shr eax, 4
movd xmm6, eax
movq xmm6, xmm6
movaps xmm7, xmmword [0x49b4f0]
shufps xmm7, xmm6, 0x24
movdqa xmm3, xmm2
psllq xmm3, xmm7
por xmm7, xmm2
movsd xmm7, xmm3
movdqa xmm6, xmm1
movsd xmm6, xmm2
xorpd xmm6, xmm7
orpd xmm3, xmm2
shufpd xmm3, xmm6, 2
shufps xmm1, xmmword [0x49b500], 0x24
xorps xmm1, xmm3
movapd xmm2, xmm6
psrlq xmm2, 8
pshufd xmm2, xmm2, 0xee
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0x55
movd eax, xmm3
movd ecx, xmm2
and ecx, ebx
and eax, ebx
movd xmm2, eax
shld eax, ecx, 8
movd xmm3, ecx
shl ecx, 8
punpckldq xmm3, xmm2
movd xmm2, eax
movd xmm7, ecx
punpckldq xmm7, xmm2
punpcklqdq xmm3, xmm7
shufps xmm1, xmm6, 0xe4
xorps xmm1, xmm3
pshufd xmm2, xmm1, 0xff
movd ebx, xmm2
pshufd xmm2, xmm1, 0xee
movd eax, xmm2
pshufd xmm2, xmm1, 0x55
movd edi, xmm2
movd ebp, xmm1
movdqa xmm2, xmm1
psrlq xmm2, 0x20
psrlq xmm1, 0x30
movsd xmm1, xmm2
shufps xmm1, xmm1, 0xe8
pshuflw xmm1, xmm1, 0xe8
movd xmm7, dword [esi - 0x11e]
pxor xmm7, xmm1
movzx ecx, word [esi - 0x128]
xor cx, ax
mov dword [esp + 4], ecx
mov ecx, eax
shr ecx, 0x10
shr edi, 0x10
movzx eax, word [esi - 0x126]
xor ax, bp
shr ebp, 0x10
xor cx, word [esi - 0x124]
xor bp, word [esi - 0x122]
xor bx, word [esi - 0x120]
xor di, word [esi - 0x11a]
mov dword [esp], edi
mov esi, dword [esi - 0x38]
cmp esi, 1
mov dword [esp + 0x60], edx
jne 0x431c83
mov dword [esp + 0x34], eax
movd edi, xmm7
pextrw eax, xmm7, 1
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x54], edx
movdqa xmm3, xmm4
movdqa xmm4, xmm0
jmp 0x43237b
dec esi
mov edi, eax
mov eax, 1
cmove esi, eax
mov edx, ecx
mov dword [esp + 0x64], esi
mov ecx, esi
shl ecx, 4
mov eax, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x54], ecx
mov ecx, edx
mov dword [esp + 0x3c], eax
movdqa xmm4, xmmword [0x49b560]
movdqa xmm0, xmmword [str.3333]
mov edx, dword [esp]
mov dword [esp], edx
mov eax, ebx
mov dword [esp + 8], ebx
mov ebx, ecx
xor eax, ecx
mov dword [esp + 0x20], eax
mov ecx, edx
xor ecx, edi
mov dword [esp + 0x28], ecx
mov esi, edx
xor esi, ebx
mov dword [esp + 0x2c], esi
movd esi, xmm7
pextrw eax, xmm7, 1
xor esi, eax
mov dword [esp + 0x18], esi
xor ecx, dword [esp + 0x20]
mov dword [esp + 0x40], ecx
xor ebp, ecx
xor ebx, ebp
mov dword [esp + 0x1c], ebx
xor ebp, eax
mov ecx, edx
xor ecx, dword [esp + 8]
mov edx, ebx
xor edx, esi
mov ebx, ebp
xor ebx, ecx
mov esi, ecx
mov dword [esp + 0x44], ecx
mov ecx, edx
mov dword [esp + 0xc], edx
xor ecx, ebx
mov dword [esp + 0x38], ecx
mov eax, ebx
mov dword [esp + 0x10], ebx
and eax, esi
mov ebx, ecx
and ebx, dword [esp + 0x20]
xor ebx, eax
mov ecx, edx
mov esi, dword [esp + 0x2c]
and ecx, esi
xor ecx, eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 4]
xor eax, edx
mov dword [esp + 0x30], eax
xor edi, eax
mov dword [esp + 0x34], edi
xor edi, esi
mov dword [esp + 0x48], edi
mov esi, dword [esp + 0x1c]
mov eax, esi
xor eax, edx
mov dword [esp + 0x14], eax
mov eax, esi
and eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
and esi, edi
xor ebp, eax
xor ebp, esi
mov esi, dword [esp + 0x2c]
xor esi, dword [esp + 0xc]
xor esi, eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 8]
xor eax, edx
mov dword [esp + 8], eax
and eax, dword [esp + 4]
xor esi, eax
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
and edi, edx
mov edx, eax
mov dword [esp + 0x18], eax
or eax, dword [esp + 0x28]
xor eax, edi
xor ebp, ebx
xor eax, ebx
mov edi, dword [esp + 0x30]
xor edi, dword [esp]
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0x28]
not ebx
and ebx, edx
xor ebx, dword [esp]
mov edx, dword [esp + 0x10]
xor edx, dword [esp + 4]
mov dword [esp + 0x24], edx
and edx, edi
xor esi, ecx
xor ecx, edx
xor ecx, ebx
mov edi, ebp
xor edi, esi
mov dword [esp], edi
and ebp, eax
mov ebx, ebp
xor ebx, ecx
mov edx, ebx
and edx, edi
xor edx, esi
mov edi, edx
mov edx, ecx
xor edx, eax
xor esi, ebp
and esi, edx
mov edx, esi
xor esi, ebp
xor edx, ecx
and esi, ecx
xor eax, esi
xor esi, ebx
and esi, edi
mov ecx, edi
xor esi, dword [esp]
and dword [esp + 0x1c], eax
mov ebx, eax
and eax, dword [esp + 0x40]
xor ebx, edx
mov edi, esi
xor edi, ebx
and dword [esp + 0x14], ebx
and ebx, dword [esp + 0x48]
mov ebp, ecx
xor ebp, edx
and dword [esp + 4], edx
and edx, dword [esp + 8]
mov dword [esp], edx
mov edx, esi
xor edx, ecx
and dword [esp + 0x18], edx
and edx, dword [esp + 0x28]
and dword [esp + 0x30], esi
and esi, dword [esp + 0x34]
and dword [esp + 0x24], ecx
and ecx, dword [esp + 0x68]
mov dword [esp + 8], ecx
mov ecx, edi
xor ecx, ebp
and dword [esp + 0x10], ebp
and ebp, dword [esp + 0x44]
and dword [esp + 0x38], ecx
and ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
and dword [esp + 0xc], edi
and edi, dword [esp + 0x2c]
mov dword [esp + 0x20], edi
xor dword [esp], ebx
xor ebx, eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x24]
xor esi, eax
mov ecx, edx
mov edi, dword [esp + 4]
xor ecx, edi
xor eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
xor eax, ebx
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x10]
xor edi, ebx
mov ebx, dword [esp + 0x38]
xor dword [esp + 0xc], ebx
xor edi, ebx
mov dword [esp + 0x10], edi
xor edx, esi
xor ecx, eax
xor dword [esp + 8], ecx
xor ecx, esi
mov esi, dword [esp + 0x28]
xor ebp, esi
xor ecx, ebp
mov dword [esp + 0x18], ecx
mov ebx, ebp
mov edi, dword [esp + 0x30]
xor ebx, edi
mov eax, dword [esp + 0xc]
xor eax, ebx
xor ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x10]
xor edi, ebp
mov ecx, dword [esp + 0x14]
xor ecx, ebx
xor ebx, ebp
mov dword [esp + 4], ebx
xor dword [esp + 8], eax
xor eax, edx
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x1c]
xor edx, ecx
xor ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x20]
xor ebx, esi
mov eax, edx
mov dword [esp + 0x1c], edx
mov ecx, 0xffff
and eax, ecx
mov ecx, eax
shr ecx, 8
xor ecx, edx
mov edx, 0xcc
and ecx, edx
mov ebp, 0xcc
mov esi, ecx
shl esi, 8
or esi, ecx
xor esi, eax
xor eax, edi
mov edx, ebx
xor edx, edi
mov edi, dword [esp]
mov ecx, dword [esp + 8]
xor edi, ecx
mov dword [esp], edi
xor edx, ecx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x18]
mov ecx, ebx
mov edx, 0xffff
and ecx, edx
mov edx, ecx
shr edx, 8
xor edx, ebx
and edx, ebp
mov ebx, edx
shl ebx, 8
or ebx, edx
xor ebx, ecx
mov ecx, ebx
shl ecx, 0xc
mov edx, 0xfffa000
and ecx, edx
mov edx, ebx
mov ebp, 0x5555
and ebx, ebp
or ebx, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
or ebx, edx
mov dword [esp + 0x28], ebx
mov ebp, dword [esp + 0xc]
mov ecx, ebp
mov edx, 0xffff
and ecx, edx
mov edx, ecx
shr edx, 8
xor edx, ebp
mov ebx, 0xcc
and edx, ebx
mov ebp, edx
shl ebp, 8
or ebp, edx
xor ebp, ecx
mov ecx, ebp
shl ecx, 0xc
mov edx, 0xfffa000
and ecx, edx
mov edx, ebp
mov ebx, 0x5555
and ebp, ebx
or ebp, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
mov ebx, 0xaaa
or ebp, edx
mov dword [esp + 0x10], ebp
mov ecx, edi
mov edx, 0xffff
and ecx, edx
mov edx, ecx
shr edx, 8
xor edx, edi
mov edi, 0xcc
and edx, edi
mov ebp, edx
shl ebp, 8
or ebp, edx
xor ebp, ecx
mov ecx, ebp
shl ecx, 0xc
mov edx, 0xfffa000
and ecx, edx
mov edx, ebp
mov edi, 0x5555
and ebp, edi
or ebp, ecx
shr edx, 4
and edx, ebx
or ebp, edx
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, 0xffff
and ecx, edx
mov edx, ecx
shr edx, 8
xor edx, edi
mov edi, 0xcc
and edx, edi
mov edi, edx
shl edi, 8
or edi, edx
xor edi, ecx
mov ecx, edi
shl ecx, 0xc
mov edx, 0xfffa000
and ecx, edx
mov edx, edi
mov ebx, 0x5555
and edi, ebx
mov ebx, 0x5555
or edi, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
or edi, edx
mov dword [esp + 8], edi
mov ecx, esi
shl ecx, 0xc
mov edx, 0xfffa000
and ecx, edx
mov edx, esi
and esi, ebx
or esi, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
or esi, edx
mov edx, dword [esp + 0x20]
mov ecx, edx
shr ecx, 8
xor ecx, edx
mov ebx, edx
mov edi, 0xcc
and ecx, edi
mov edx, ecx
shl edx, 8
or edx, ecx
mov ecx, eax
shr ecx, 8
xor ecx, eax
and ecx, edi
mov edi, ecx
shl edi, 8
or edi, ecx
movd xmm2, edx
pinsrw xmm2, edi, 1
movd xmm7, ebx
pinsrw xmm7, eax, 1
mov eax, dword [esp + 4]
mov ecx, eax
mov edx, 0xffff
and ecx, edx
mov edx, ecx
shr edx, 8
xor edx, eax
mov eax, 0xcc
and edx, eax
mov eax, edx
shl eax, 8
or eax, edx
xor eax, ecx
mov ecx, eax
shl ecx, 0xc
mov edx, 0xfffa000
and ecx, edx
mov edx, eax
mov edi, 0x5555
and eax, edi
or eax, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
or eax, edx
mov dword [esp + 0x20], eax
mov edx, 0xfffff111
mov eax, dword [esp + 0x18]
and eax, edx
mov ebx, dword [esp + 0x28]
mov ecx, ebx
shr ecx, 1
mov edi, 0x7777
and ecx, edi
lea ecx, [ecx + eax*8]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xc]
and eax, edx
mov ecx, dword [esp + 0x10]
shr ecx, 1
and ecx, edi
lea ecx, [ecx + eax*8]
mov dword [esp + 0xc], ecx
mov eax, dword [esp]
and eax, edx
mov ecx, ebp
shr ecx, 1
and ecx, edi
lea ecx, [ecx + eax*8]
mov dword [esp], ecx
mov eax, dword [esp + 0x14]
and eax, edx
mov ecx, dword [esp + 8]
shr ecx, 1
and ecx, edi
lea ecx, [ecx + eax*8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
and ecx, edx
movd xmm1, esi
shr esi, 1
and esi, edi
lea ecx, [esi + ecx*8]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 4]
and eax, edx
mov esi, dword [esp + 0x20]
mov ecx, esi
shr ecx, 1
and ecx, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0x30], eax
xor ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 2]
xor ax, bx
mov dword [esp + 0x28], eax
mov edx, ebx
mov ecx, 0x3333
and ebx, ecx
shr edx, 2
and edx, ecx
lea eax, [edx + ebx*4]
mov dword [esp + 4], eax
xor ebp, dword [esp]
mov edx, ebp
and edx, ecx
mov edi, ebp
shr edi, 2
and edi, ecx
lea eax, [edi + edx*4]
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 0xc]
xor eax, edi
mov dword [esp + 0x1c], eax
mov edx, edi
and edi, ecx
shr edx, 2
and edx, ecx
lea eax, [edx + edi*4]
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 8]
xor ebx, dword [esp + 0x14]
mov dword [esp + 8], ebx
mov edi, ebx
and edi, ecx
shr ebx, 2
and ebx, ecx
lea eax, [ebx + edi*4]
mov dword [esp + 0x34], eax
pxor xmm2, xmm7
movdqa xmm3, xmm2
movdqa xmm6, xmm2
psllw xmm6, 0xc
pand xmm6, xmmword [0x49b520]
pand xmm2, xmmword [str.UUUU]
por xmm2, xmm6
psrlw xmm3, 4
pand xmm3, xmm5
por xmm2, xmm3
psllw xmm7, 3
pand xmm7, xmmword [0x49b540]
movdqa xmm6, xmm2
psrlw xmm6, 1
pand xmm6, xmmword [0x49b550]
por xmm6, xmm7
movd xmm3, dword [esp + 0x24]
punpcklwd xmm3, xmm6
punpcklwd xmm1, xmm2
pxor xmm1, xmm3
movd ebx, xmm1
mov eax, ebx
and eax, ecx
shr ebx, 2
and ebx, ecx
lea eax, [ebx + eax*4]
mov dword [esp + 0x38], eax
mov edi, esi
xor edi, dword [esp + 0x30]
mov ebx, edi
and ebx, ecx
mov esi, edi
shr esi, 2
and esi, ecx
lea ecx, [esi + ebx*4]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x3c]
movzx ebx, word [edx]
xor bx, word [esp + 0x18]
mov ecx, dword [esp + 4]
xor ecx, edi
xor ecx, ebx
mov dword [esp + 4], ecx
movzx ebx, word [edx + 6]
xor bx, di
movzx eax, word [edx + 8]
xor ax, di
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x28]
movzx ecx, word [edx + 4]
xor cx, word [esp]
mov esi, dword [esp + 0x1c]
xor esi, ecx
mov ecx, esi
xor ebp, dword [esp + 0x14]
xor ebp, dword [esp + 0x34]
xor ebp, ebx
mov ebx, dword [esp + 8]
xor ebx, dword [esp + 0x24]
xor ebx, eax
xor ebx, dword [esp + 0x38]
mov eax, edx
movzx edx, word [edx + 0xe]
xor dx, word [esp + 0x30]
pxor xmm2, xmm6
movd xmm7, dword [eax + 0xa]
pxor xmm7, xmm6
xor edx, dword [esp + 0x10]
pextrw esi, xmm2, 1
pxor xmm7, xmm1
punpcklwd xmm1, xmm2
pshufd xmm1, xmm1, 0x55
movdqa xmm2, xmm1
psllw xmm2, 2
pand xmm2, xmm4
psrlw xmm1, 2
pand xmm1, xmm0
por xmm1, xmm2
pxor xmm7, xmm1
xor edx, esi
add eax, 0x10
mov dword [esp + 0x3c], eax
dec dword [esp + 0x64]
jne 0x431cbc
mov dword [esp], edx
mov dword [esp + 0x34], edi
movd edi, xmm7
pextrw eax, xmm7, 1
mov dword [esp + 0xc], eax
movdqa xmm3, xmmword [0x49b520]
movdqa xmm4, xmmword [str.UUUU]
mov eax, dword [esp + 4]
mov dword [esp + 4], eax
mov esi, ecx
mov dword [esp + 8], ebx
xor ecx, ebx
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x34]
xor eax, dword [esp]
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xc]
xor edi, edx
mov dword [esp + 0x10], edi
xor eax, ecx
mov dword [esp + 0x24], eax
xor ebp, eax
mov eax, esi
xor esi, ebp
xor ebp, edx
mov ebx, dword [esp]
xor eax, ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 4]
xor eax, edi
mov dword [esp + 0x14], eax
mov ecx, eax
mov edx, dword [esp + 8]
xor ecx, edx
mov dword [esp + 0x38], ecx
xor edx, ebx
mov eax, esi
xor eax, edi
mov ecx, ebp
xor ecx, edx
mov dword [esp + 8], edx
mov ebx, eax
mov dword [esp + 0x30], eax
mov edi, eax
xor ebx, ecx
mov dword [esp + 0x3c], ebx
mov eax, ecx
mov dword [esp + 0xc], ecx
and eax, edx
mov edx, ebx
and edx, dword [esp + 0x2c]
xor edx, eax
mov ecx, edi
mov ebx, dword [esp + 0x40]
and ecx, ebx
xor ecx, eax
mov eax, dword [esp + 0x34]
xor eax, dword [esp + 0x14]
mov dword [esp + 0x34], eax
xor eax, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
mov edi, esi
xor edi, dword [esp + 4]
mov dword [esp + 0x18], edi
and esi, dword [esp + 0x24]
mov eax, edi
and eax, dword [esp + 0x20]
xor ebp, esi
xor ebp, eax
mov eax, dword [esp + 0x38]
and eax, dword [esp + 4]
xor eax, ebx
xor eax, dword [esp + 0x30]
xor eax, esi
mov esi, dword [esp + 0x10]
xor esi, dword [esp + 0xc]
mov dword [esp + 0x10], esi
mov ebx, dword [esp + 0x34]
and ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x44]
or esi, edi
xor esi, ebx
xor ebp, edx
xor esi, edx
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp]
mov dword [esp + 0x48], ebx
mov edx, edi
not edx
and edx, dword [esp + 0x10]
xor edx, dword [esp]
mov edi, dword [esp + 0xc]
xor edi, dword [esp + 4]
mov dword [esp], edi
and edi, ebx
xor eax, ecx
xor ecx, edi
xor ecx, edx
mov edi, ebp
xor edi, eax
and ebp, esi
mov ebx, ebp
xor ebx, ecx
mov edx, ebx
and edx, edi
xor edx, eax
mov dword [esp + 0x28], edx
mov edx, ecx
xor edx, esi
xor eax, ebp
and eax, edx
mov edx, eax
xor eax, ebp
xor edx, ecx
and eax, ecx
xor esi, eax
xor eax, ebx
mov ebx, dword [esp + 0x28]
and eax, ebx
xor eax, edi
and dword [esp + 0x1c], esi
mov ecx, esi
and esi, dword [esp + 0x24]
xor ecx, edx
mov edi, eax
xor edi, ecx
and dword [esp + 0x18], ecx
and ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, ebx
xor ebx, edx
and dword [esp + 4], edx
and edx, dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov edx, eax
xor edx, ecx
and dword [esp + 0x10], edx
mov ebp, edx
and ebp, dword [esp + 0x44]
and dword [esp + 0x14], eax
and eax, dword [esp + 0x34]
and dword [esp], ecx
and ecx, dword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov ecx, edi
xor ecx, ebx
and dword [esp + 0xc], ebx
and ebx, dword [esp + 8]
and dword [esp + 0x3c], ecx
and ecx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
and dword [esp + 0x30], edi
and edi, dword [esp + 0x40]
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x20]
xor dword [esp + 0x24], ecx
xor ecx, esi
mov dword [esp + 0x20], ecx
mov edx, dword [esp]
xor eax, edx
mov ecx, ebp
mov esi, dword [esp + 4]
xor ecx, esi
xor edx, esi
mov dword [esp], edx
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
xor esi, edi
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0xc]
xor edx, edi
mov edi, dword [esp + 0x3c]
xor dword [esp + 0x30], edi
xor edx, edi
mov dword [esp + 0xc], edx
xor ebp, eax
xor ecx, esi
mov edi, dword [esp + 0x28]
xor edi, ecx
xor ecx, eax
xor ebx, dword [esp + 8]
xor ecx, ebx
mov edx, dword [esp + 0x14]
xor ebx, edx
mov eax, dword [esp + 0x30]
xor eax, ebx
xor ebx, dword [esp + 0x20]
xor edx, dword [esp + 0xc]
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x18]
xor esi, ebx
xor ebx, dword [esp + 0xc]
mov dword [esp + 0xc], ebx
xor edi, eax
mov ebx, edi
xor eax, ebp
mov edi, eax
mov edx, dword [esp + 0x1c]
xor edx, esi
xor esi, dword [esp]
mov dword [esp + 0x18], esi
mov ebp, dword [esp + 0x2c]
xor ebp, dword [esp + 8]
mov eax, 0xffff
and edx, eax
mov dword [esp + 0x1c], edx
mov esi, edx
mov edx, dword [esp + 0x14]
xor esi, edx
mov dword [esp + 0x10], esi
xor ebp, edx
mov edx, ebx
xor dword [esp + 0x24], ebx
xor ebp, ebx
and ecx, eax
mov edx, 0xffff
mov eax, ecx
shr eax, 8
xor eax, ecx
mov ebx, 0xcc
and eax, ebx
mov ebx, eax
shl ebx, 8
or ebx, eax
xor ebx, ecx
mov eax, ebx
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, ebx
mov esi, 0x5555
and ebx, esi
mov esi, 0x5555
or ebx, eax
shr ecx, 4
mov eax, 0xaaa
and ecx, eax
or ebx, ecx
mov dword [esp + 8], ebx
and edi, edx
mov eax, edi
shr eax, 8
xor eax, edi
mov ebx, 0xcc
and eax, ebx
mov edx, eax
shl edx, 8
or edx, eax
xor edx, edi
mov eax, edx
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, edx
and edx, esi
or edx, eax
shr ecx, 4
mov esi, 0xaaa
and ecx, esi
or edx, ecx
mov dword [esp + 4], edx
mov edx, 0xffff
mov ecx, dword [esp + 0x24]
and ecx, edx
mov eax, ecx
shr eax, 8
xor eax, ecx
and eax, ebx
mov edi, eax
shl edi, 8
or edi, eax
xor edi, ecx
mov eax, edi
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, edi
mov ebx, 0x5555
and edi, ebx
or edi, eax
shr ecx, 4
and ecx, esi
or edi, ecx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x18]
and ecx, edx
mov eax, ecx
shr eax, 8
xor eax, ecx
mov edx, 0xcc
and eax, edx
mov ebx, eax
shl ebx, 8
or ebx, eax
xor ebx, ecx
mov eax, ebx
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, ebx
mov edi, 0x5555
and ebx, edi
mov esi, 0x5555
or ebx, eax
shr ecx, 4
mov eax, 0xaaa
and ecx, eax
or ebx, ecx
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
shr eax, 8
xor eax, ecx
and eax, edx
mov edi, eax
shl edi, 8
or edi, eax
xor edi, ecx
mov eax, edi
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, edi
and edi, esi
or edi, eax
shr ecx, 4
mov eax, 0xaaa
and ecx, eax
or edi, ecx
mov ecx, 0xffff
and ebp, ecx
mov eax, ebp
shr eax, 8
xor eax, ebp
mov esi, 0xcc
and eax, esi
mov esi, eax
shl esi, 8
or esi, eax
xor esi, ebp
mov eax, esi
and eax, 0xfffffffa
shl eax, 0xc
mov ebp, esi
mov edx, 0x5555
and esi, edx
or esi, eax
shr ebp, 4
mov eax, 0xaaa
and ebp, eax
or esi, ebp
mov edx, dword [esp + 0x10]
and edx, ecx
mov eax, edx
shr eax, 8
xor eax, edx
mov ebp, edx
mov edx, 0xcc
and eax, edx
mov ebx, 0xcc
mov edx, eax
shl edx, 8
or edx, eax
xor edx, ebp
mov eax, edx
and eax, 0xfffffffa
shl eax, 0xc
mov ebp, edx
mov ecx, 0x5555
and edx, ecx
or edx, eax
shr ebp, 4
mov eax, 0xaaa
and ebp, eax
or edx, ebp
mov eax, dword [esp + 0xc]
mov ecx, 0xffff
and eax, ecx
mov ebp, eax
shr ebp, 8
xor ebp, eax
mov ecx, eax
and ebp, ebx
mov eax, ebp
shl eax, 8
or eax, ebp
xor eax, ecx
mov ebp, eax
and ebp, 0xfffffffa
shl ebp, 0xc
mov ecx, eax
mov ebx, 0x5555
and eax, ebx
or eax, ebp
shr ecx, 4
mov ebx, 0xaaa
and ecx, ebx
or eax, ecx
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 8]
xor bp, word [ecx]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 4]
xor bp, word [ecx + 2]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x14]
xor bp, word [ecx + 4]
mov ebx, dword [esp + 0x18]
xor bx, word [ecx + 6]
xor di, word [ecx + 8]
xor si, word [ecx + 0xa]
xor dx, word [ecx + 0xc]
xor ax, word [ecx + 0xe]
movzx ecx, si
shl eax, 0x10
or eax, ecx
mov esi, ebx
shl esi, 0x10
movzx ecx, word [esp + 4]
or ecx, esi
mov dword [esp + 0x1c], ecx
movzx ecx, di
shl edx, 0x10
or edx, ecx
mov esi, ebp
shl esi, 0x10
movzx ecx, word [esp + 8]
or ecx, esi
mov ebx, ecx
shr ebx, 8
mov edi, edx
shr edi, 8
xor edi, eax
mov ebp, dword [esp + 0x1c]
xor ebx, ebp
mov esi, 0xff00ff
and ebx, esi
and edi, esi
mov esi, ebx
shl esi, 8
xor esi, ecx
mov ecx, edi
shl ecx, 8
xor ecx, edx
xor edi, eax
xor ebx, ebp
mov edx, ecx
shl edx, 4
xor edx, esi
mov eax, 0xf0f0f0f0
and edx, eax
mov ebp, edx
shr ebp, 4
xor edx, esi
xor ebp, ecx
mov esi, edi
shl esi, 4
xor esi, ebx
and esi, eax
mov ecx, esi
shr ecx, 4
xor ecx, edi
xor esi, ebx
mov eax, edx
shr eax, 0xe
mov ebx, ebp
shr ebx, 0xe
xor eax, edx
xor ebx, ebp
mov edi, 0xcccc
and eax, edi
and ebx, edi
mov edi, eax
shl edi, 0xe
or edi, eax
mov eax, ebx
shl eax, 0xe
or eax, ebx
xor edi, edx
xor eax, ebp
mov edx, ecx
shr edx, 0xe
mov ebx, esi
shr ebx, 0xe
xor edx, ecx
xor ebx, esi
mov ebp, 0xcccc
and edx, ebp
and ebx, ebp
mov ebp, edx
shl ebp, 0xe
or ebp, edx
mov edx, ebx
shl edx, 0xe
or edx, ebx
xor ebp, ecx
xor edx, esi
mov ecx, edi
shr ecx, 7
xor ecx, edi
mov esi, 0xaa00aa
and ecx, esi
mov ebx, ecx
shl ebx, 7
or ebx, ecx
mov esi, eax
shr esi, 7
xor esi, eax
mov ecx, 0xaa00aa
and esi, ecx
xor ebx, edi
mov edi, dword [esp + 0x5c]
mov byte [edi - 0x34], bl
mov byte [edi - 0x33], bh
mov ecx, ebx
shr ecx, 0x10
mov byte [edi - 0x32], cl
mov ecx, esi
shl ecx, 7
or ecx, esi
xor ecx, eax
mov esi, edx
shr esi, 7
xor esi, edx
mov eax, 0xaa00aa
and esi, eax
shr ebx, 0x18
mov byte [edi - 0x31], bl
mov ebx, 0xff00ff
mov byte [edi - 0x30], cl
mov byte [edi - 0x2f], ch
mov eax, ecx
shr eax, 0x10
mov byte [edi - 0x2e], al
mov eax, esi
shl eax, 7
or eax, esi
mov esi, edi
xor eax, edx
mov edx, ebp
shr edx, 7
xor edx, ebp
mov edi, 0xaa00aa
and edx, edi
shr ecx, 0x18
mov byte [esi - 0x2d], cl
mov byte [esi - 0x2c], al
mov byte [esi - 0x2b], ah
mov ecx, eax
shr ecx, 0x10
mov byte [esi - 0x2a], cl
mov ecx, edx
shl ecx, 7
or ecx, edx
xor ecx, ebp
shr eax, 0x18
mov byte [esi - 0x29], al
mov byte [esi - 0x28], cl
mov byte [esi - 0x27], ch
mov eax, ecx
shr eax, 0x10
mov byte [esi - 0x26], al
shr ecx, 0x18
mov byte [esi - 0x25], cl
mov eax, dword [esp + 0x58]
movdqu xmm1, xmmword [eax]
mov edx, dword [esp + 0x60]
movdqu xmmword [edx], xmm1
add edx, 0x10
cmp edx, dword [esp + 0x50]
jb 0x431869
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret