Function at 0x4328d5
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov dword [esp + 0x4c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [0x4c1074]
xor ecx, ebp
mov dword [esp + 0xd8], ecx
pxor xmm0, xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
lea ecx, [eax + 0xf]
cmp ecx, 0x1f
jb 0x433d71
mov edi, dword [esp + 0x4c]
lea esi, [edi - 0x308]
mov dword [esp + 0x78], esi
lea esi, [edi - 0x2e8]
mov dword [esp + 0x98], esi
lea esi, [edi - 0x34]
mov dword [esp + 0xa8], esi
test eax, eax
cmovns ecx, eax
sar ecx, 4
cmp ecx, 2
mov eax, 2
mov dword [esp + 0xa0], ecx
cmovb eax, ecx
mov dword [esp + 0x7c], eax
shl eax, 4
mov dword [esp + 0x9c], eax
push eax
mov dword [esp + 0xa8], edx
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.00478390
movdqa xmm7, xmmword [str.UUUUUUUUUUUUUUUU]
movdqa xmm6, xmmword [0x49b650]
add esp, 0xc
movzx ecx, word [esp + 0xb4]
movzx esi, byte [esp + 0xb6]
shl esi, 0x10
movzx edi, byte [esp + 0xb7]
movzx edx, word [esp + 0xbc]
movzx eax, byte [esp + 0xbe]
shl eax, 0x10
movd xmm0, ecx
movzx ecx, word [esp + 0xc4]
movd xmm1, ecx
movzx ecx, byte [esp + 0xbf]
movd xmm2, esi
movzx esi, byte [esp + 0xc6]
shl esi, 0x10
movd xmm3, dword [esp + 0xb0]
punpckldq xmm3, xmm0
movd xmm0, dword [esp + 0xc0]
punpckldq xmm0, xmm1
punpcklqdq xmm0, xmm3
movd xmm1, esi
shufps xmm1, xmm2, 0x11
orps xmm1, xmm0
movzx esi, byte [esp + 0xc7]
movd xmm0, edi
movd xmm2, esi
punpcklqdq xmm2, xmm0
psllq xmm2, 0x38
por xmm2, xmm1
movdqa xmm0, xmm2
psrlq xmm0, 7
pxor xmm0, xmm1
movdqa xmm4, xmmword [0x49b4d0]
pand xmm0, xmm4
movdqa xmm1, xmm0
psllq xmm1, 7
por xmm1, xmm0
pxor xmm1, xmm2
movdqa xmm2, xmm1
psrlq xmm2, 0xe
pxor xmm2, xmm1
movdqa xmm5, xmmword [0x49b4e0]
pand xmm2, xmm5
movdqa xmm0, xmm2
psllq xmm0, 0xe
por xmm0, xmm2
pxor xmm0, xmm1
movzx esi, word [esp + 0xcc]
movzx edi, byte [esp + 0xce]
shl edi, 0x10
movd xmm1, edx
movd xmm2, dword [esp + 0xb8]
punpckldq xmm2, xmm1
movd xmm1, esi
movd xmm3, dword [esp + 0xc8]
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm2
movd xmm1, eax
movd xmm2, edi
shufps xmm2, xmm1, 0x11
orps xmm2, xmm3
movzx eax, byte [esp + 0xcf]
movd xmm1, ecx
movd xmm3, eax
punpcklqdq xmm3, xmm1
psllq xmm3, 0x38
por xmm3, xmm2
movdqa xmm1, xmm3
psrlq xmm1, 7
pxor xmm1, xmm2
pand xmm1, xmm4
movdqa xmm2, xmm1
psllq xmm2, 7
por xmm2, xmm1
pxor xmm2, xmm3
movdqa xmm1, xmm2
psrlq xmm1, 0xe
pxor xmm1, xmm2
pand xmm1, xmm5
movdqa xmm5, xmmword [0x49b630]
movdqa xmm3, xmm1
psllq xmm3, 0xe
por xmm3, xmm1
pxor xmm3, xmm2
movdqa xmm1, xmm0
psrlq xmm1, 0x1c
pxor xmm1, xmm0
movdqa xmm4, xmmword [0x49b4f0]
pand xmm1, xmm4
movdqa xmm2, xmm1
psllq xmm2, 0x1c
por xmm2, xmm1
pxor xmm2, xmm0
movdqa xmm0, xmm3
psrlq xmm0, 0x1c
pxor xmm0, xmm3
pand xmm0, xmm4
movdqa xmm4, xmm0
psllq xmm4, 0x1c
por xmm4, xmm0
pxor xmm4, xmm3
movdqa xmm0, xmm2
psrlq xmm0, 8
pxor xmm0, xmm4
movdqa xmm1, xmm0
pand xmm1, xmmword [0x49b610]
pxor xmm1, xmm4
psllw xmm0, 8
pxor xmm0, xmm2
pshufd xmm2, xmm0, 0xff
movd ecx, xmm2
pshufd xmm2, xmm0, 0xee
movd eax, xmm2
pextrw edx, xmm0, 4
shr eax, 0x10
movd ebx, xmm0
mov esi, ebx
shl esi, 0x10
or esi, edx
mov dword [esp], esi
pextrw edx, xmm1, 4
shr ecx, 0x10
pshufd xmm2, xmm0, 0x55
mov edi, 0xffff0000
and ebx, edi
or ebx, eax
mov dword [esp + 4], ebx
movd eax, xmm2
and eax, edi
or eax, ecx
mov dword [esp + 0x50], eax
movd esi, xmm1
mov eax, esi
shl eax, 0x10
or eax, edx
mov ebx, eax
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0x55
movd ecx, xmm3
mov eax, ecx
shld eax, esi, 0x10
mov dword [esp + 0xc], eax
movd edx, xmm2
shr edx, 0x10
and esi, edi
or esi, edx
pshufd xmm1, xmm1, 0xff
movd edx, xmm1
movzx eax, dx
mov dword [esp + 0x10], eax
shr edx, 0x10
and ecx, edi
or ecx, edx
mov dword [esp + 8], ecx
movdqa xmm1, xmm0
psrlq xmm1, 0x20
psrlq xmm0, 0x10
pand xmm0, xmmword [0x49b620]
punpckhwd xmm1, xmmword [0x4978c0]
por xmm1, xmm0
mov eax, dword [esp + 0x4c]
mov edx, dword [eax - 0x38]
mov dword [esp + 0x74], edx
shl edx, 5
mov dword [esp + 0x2c], edx
mov ecx, eax
mov eax, dword [esp]
xor eax, dword [ecx + edx - 0x308]
mov dword [esp], eax
xor ebx, dword [ecx + edx - 0x304]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 4]
xor ebx, dword [ecx + edx - 0x300]
mov dword [esp + 4], ebx
xor esi, dword [ecx + edx - 0x2fc]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xc]
and eax, edi
movd ebx, xmm1
xor ebx, dword [ecx + edx - 0x2f8]
mov edi, ecx
mov ecx, dword [esp + 0x50]
xor ecx, dword [edi + edx - 0x2f0]
mov dword [esp + 0x50], ecx
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x4c]
xor edi, dword [esi + edx - 0x2ec]
mov dword [esp + 8], edi
add eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], ebx
xor ecx, ebx
mov edx, ecx
mov eax, dword [esp]
xor edx, eax
xor ebx, dword [esp + 0x14]
mov edi, eax
xor eax, ebx
mov esi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp], eax
mov dword [esp + 0x70], ecx
and eax, ecx
xor eax, edx
mov dword [esp + 0x18], eax
mov ebx, edx
xor ebx, dword [esp + 0x24]
mov eax, ebx
mov dword [esp + 0x40], ebx
xor eax, esi
mov dword [esp + 0x44], eax
mov edx, dword [esp + 8]
xor eax, edx
xor ecx, edx
mov dword [esp + 0x1c], ecx
xor dword [esp + 0x20], edx
xor edx, dword [esp + 0x50]
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x14]
xor edi, ecx
mov dword [esp + 0x34], edi
mov esi, dword [esp + 4]
xor esi, eax
mov dword [esp + 4], esi
xor eax, ecx
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x4c]
xor eax, dword [edi + ecx - 0x2f4]
mov dword [esp + 0xc], eax
xor ebx, eax
mov ecx, ebx
mov dword [esp + 0x38], ebx
xor ecx, dword [esp]
mov dword [esp + 0x14], ecx
mov edi, edx
xor edi, dword [esp + 0x34]
mov dword [esp + 0x28], edi
mov eax, edx
mov edx, dword [esp + 0x10]
xor eax, edx
mov dword [esp + 0x3c], eax
mov eax, esi
xor eax, edx
mov esi, eax
xor esi, ebx
mov dword [esp + 0x50], esi
mov ebx, esi
mov esi, dword [esp + 0x1c]
xor ebx, esi
mov dword [esp + 0x30], ebx
xor ebx, ecx
mov dword [esp + 0x48], ebx
and eax, edx
mov ecx, ebx
and ecx, dword [esp + 0x3c]
xor ecx, eax
mov ebx, edi
and ebx, dword [esp + 8]
xor ebx, eax
mov edi, dword [esp + 0x50]
and edi, dword [esp + 0x40]
xor edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
and edx, dword [esp + 0x80]
mov eax, esi
and eax, dword [esp + 0x20]
xor eax, dword [esp + 4]
xor eax, edx
xor edi, ebx
xor edi, edx
mov esi, dword [esp + 0x24]
xor esi, dword [esp]
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x14]
and edx, esi
xor edx, dword [esp + 0xc]
xor eax, ecx
mov esi, dword [esp + 0x18]
xor esi, edx
xor esi, ecx
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x44]
and ecx, dword [esp + 0x38]
xor ecx, dword [esp + 0x10]
xor ecx, edx
xor ecx, ebx
mov ebx, eax
xor ebx, edi
mov dword [esp + 0x34], ebx
and eax, esi
mov edx, eax
xor edx, ecx
mov esi, edx
and esi, ebx
xor esi, edi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x18]
mov ebx, esi
xor ebx, ecx
xor edi, eax
and edi, ebx
mov ebx, edi
xor edi, eax
xor ebx, ecx
and edi, ecx
mov eax, esi
xor eax, edi
xor edi, edx
mov esi, dword [esp + 0xc]
and edi, esi
xor edi, dword [esp + 0x34]
and dword [esp + 0x30], eax
mov ecx, eax
and eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
xor ecx, ebx
mov eax, edi
xor eax, ecx
and dword [esp + 0x1c], ecx
and ecx, dword [esp + 0x20]
mov dword [esp + 0x80], ecx
mov edx, esi
xor edx, ebx
and dword [esp + 0x50], ebx
and ebx, dword [esp + 0x40]
mov ecx, edi
xor ecx, esi
and dword [esp + 0x14], ecx
and ecx, dword [esp + 0x24]
mov dword [esp + 0x24], ecx
and dword [esp], edi
and edi, dword [esp + 0x70]
and dword [esp + 0x38], esi
and esi, dword [esp + 0x44]
mov dword [esp + 0xc], esi
mov ecx, eax
xor eax, edx
and dword [esp + 0x48], eax
and eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x28]
and esi, ecx
mov dword [esp + 0x28], esi
and ecx, dword [esp + 8]
mov dword [esp + 8], ecx
and dword [esp + 0x10], edx
and edx, dword [esp + 4]
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
xor edx, edi
xor edx, esi
xor edx, eax
mov esi, edx
xor edx, dword [esp + 0x14]
mov eax, edx
xor eax, dword [esp]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
xor ecx, eax
xor eax, dword [esp + 0x38]
xor eax, dword [esp]
xor esi, dword [esp + 0x30]
xor eax, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
xor esi, eax
mov dword [esp], esi
xor eax, ebx
xor eax, dword [esp + 0x80]
mov esi, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x48]
xor ecx, esi
mov esi, dword [esp + 4]
xor ecx, esi
mov dword [esp + 0xc], ecx
xor eax, esi
mov esi, eax
xor ebx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
xor ebx, ecx
xor dword [esp + 0x10], ebx
xor ebx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
xor edi, eax
xor ebx, eax
mov eax, dword [esp + 0x38]
xor edx, eax
xor eax, dword [esp + 0x30]
xor eax, dword [esp + 0x50]
xor eax, ecx
xor eax, dword [esp + 0x14]
xor eax, dword [esp + 0x20]
xor eax, esi
movd xmm0, esi
movd xmm1, dword [esp + 0x10]
movd xmm2, eax
movd xmm3, dword [esp + 0x1c]
movd xmm4, dword [esp]
mov esi, dword [esp + 0x2c]
punpckldq xmm0, xmm1
movd xmm1, edi
punpckldq xmm2, xmm3
movd xmm3, ebx
punpcklqdq xmm2, xmm0
punpckldq xmm1, xmm4
movd xmm4, edx
mov ecx, dword [esp + 0x74]
punpckldq xmm4, xmm3
punpcklqdq xmm4, xmm1
movdqa xmm3, xmm4
psrld xmm3, 8
movdqa xmm0, xmm2
psrld xmm0, 8
pxor xmm0, xmm2
pxor xmm3, xmm4
pand xmm3, xmm5
pand xmm0, xmm5
movdqa xmm5, xmmword [str._n_n_n_n_n_n_n_n]
movdqa xmm1, xmm0
pslld xmm1, 8
por xmm1, xmm0
movdqa xmm0, xmm3
pslld xmm0, 8
por xmm0, xmm3
pxor xmm0, xmm4
pxor xmm1, xmm2
movdqa xmm2, xmm1
psrld xmm2, 0xc
movdqa xmm3, xmm1
pslld xmm3, 4
pand xmm3, xmm6
pand xmm1, xmm7
por xmm1, xmm3
movdqa xmm3, xmm0
pand xmm2, xmm5
por xmm1, xmm2
movdqa xmm2, xmm0
pslld xmm2, 4
pand xmm2, xmm6
pand xmm0, xmm7
por xmm0, xmm2
psrld xmm3, 0xc
pand xmm3, xmm5
por xmm0, xmm3
mov eax, dword [esp + 0x78]
lea edx, [eax + esi]
add edx, 0xffffffe0
dec ecx
je 0x433a6d
pshufd xmm3, xmm0, 0xeb
pshufd xmm4, xmm1, 0x1b
pshufd xmm2, xmm0, 0xe1
mov dword [esp + 0x38], edx
mov dword [esp + 0x74], ecx
movd eax, xmm4
xor eax, dword [edx]
mov dword [esp + 0x28], eax
movq xmm1, qword [edx + 0x10]
movq xmm0, qword [edx + 0x18]
pxor xmm1, xmm3
pxor xmm0, xmm2
pshufd xmm3, xmm0, 0x55
movd edx, xmm3
mov ebx, edx
xor ebx, eax
movd eax, xmm0
mov dword [esp], eax
movdqa xmmword [esp + 0x80], xmm0
pshufd xmm2, xmm1, 0x55
movdqa xmmword [esp + 0x50], xmm2
movd ecx, xmm2
mov dword [esp + 0x14], ecx
xor eax, ecx
mov dword [esp + 4], eax
mov ecx, ebx
xor ecx, eax
mov edi, ecx
mov dword [esp + 0x20], ecx
mov eax, ecx
mov ecx, 0xf1111111
and eax, ecx
mov ecx, edi
shr ecx, 1
mov edi, 0x77777777
and ecx, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0x2c], eax
mov ecx, edx
mov dword [esp + 0x40], edx
mov eax, edx
mov edx, 0xf1111111
and eax, edx
shr ecx, 1
and ecx, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0xc], eax
mov ecx, ebx
mov dword [esp + 0x3c], ebx
mov eax, ebx
and eax, edx
mov esi, 0xf1111111
shr ecx, 1
and ecx, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
movd edx, xmm1
mov dword [esp + 0x48], edx
mov eax, edx
and eax, esi
mov ecx, edx
shr ecx, 1
and ecx, edi
lea eax, [ecx + eax*8]
xor eax, edx
mov ecx, eax
mov edx, 0xf3333333
and ecx, edx
mov edx, 0xf3333333
shr eax, 2
mov edi, 0x33333333
and eax, edi
mov edi, 0x33333333
lea eax, [eax + ecx*4]
mov dword [esp + 8], eax
mov ecx, dword [esp]
mov eax, ecx
and eax, edx
shr ecx, 2
and ecx, edi
lea eax, [ecx + eax*4]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
and ecx, edx
mov edi, ebx
shr edi, 2
mov eax, 0x33333333
and edi, eax
lea esi, [edi + ecx*4]
pshufd xmm5, xmm4, 0x55
pshufd xmm6, xmm4, 0xee
movd edi, xmm5
mov eax, dword [esp + 0x38]
xor edi, dword [eax + 4]
mov dword [esp + 0x18], edi
pshufd xmm4, xmm4, 0xff
movd edx, xmm6
mov eax, dword [esp + 0x38]
xor edx, dword [eax + 8]
mov dword [esp + 0x30], edx
movd ecx, xmm4
mov eax, dword [esp + 0x38]
xor ecx, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
xor dword [esp + 0x1c], ebx
xor esi, ebx
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0x40]
xor dword [esp + 0xc], ecx
xor ecx, edx
xor ebx, ecx
movd xmm4, ecx
mov eax, dword [esp]
xor ecx, eax
mov dword [esp + 0x40], ecx
xor dword [esp + 0x10], eax
xor eax, edi
mov edx, dword [esp + 0x14]
xor dword [esp + 8], edx
mov edi, dword [esp + 0x24]
xor edx, edi
xor edx, eax
xor ebx, edx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x2c]
xor ebx, dword [esp + 0x20]
movd xmm5, edi
punpckldq xmm5, xmm0
pxor xmm5, xmm3
movss xmm6, dword [esp + 4]
pshufd xmm3, xmm1, 0x50
movdqa xmm7, xmm1
movss xmm7, xmm6
pxor xmm3, xmm7
pshufd xmm6, xmm3, 0x55
pxor xmm6, xmm5
movd edx, xmm6
xor edx, ecx
mov esi, edx
and esi, 0xf1111111
mov edi, edx
shr edi, 1
mov ecx, 0x77777777
and edi, ecx
lea esi, [edi + esi*8]
xor esi, edx
mov dword [esp + 0x6c], esi
mov esi, eax
xor edx, eax
mov dword [esp + 0x70], edx
mov eax, edx
and eax, 0xf1111111
mov edi, edx
shr edi, 1
and edi, ecx
lea eax, [edi + eax*8]
mov dword [esp + 0x20], eax
mov edx, esi
mov eax, 0xf3333333
and edx, eax
mov ecx, esi
shr ecx, 2
mov eax, 0x33333333
and ecx, eax
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x10]
mov eax, ecx
mov edi, 0xf1111111
and eax, edi
shr ecx, 1
mov edi, 0x77777777
and ecx, edi
lea ecx, [ecx + eax*8]
xor edx, esi
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x28]
xor esi, eax
mov dword [esp + 0x14], esi
xor ecx, eax
mov eax, ebx
xor ecx, ebx
mov dword [esp], ecx
mov ecx, 0xf3333333
and eax, ecx
mov edi, 0xf3333333
shr ebx, 2
mov ecx, 0x33333333
and ebx, ecx
lea eax, [ebx + eax*4]
mov dword [esp + 0x3c], eax
movd edx, xmm5
mov eax, edx
and eax, edi
mov ebx, edx
shr ebx, 2
and ebx, ecx
lea eax, [ebx + eax*4]
mov edi, dword [esp + 4]
xor edi, esi
mov dword [esp + 4], edi
mov ebx, edi
mov ecx, 0xf1111111
and ebx, ecx
shr edi, 1
mov ecx, 0x77777777
and edi, ecx
lea esi, [edi + ebx*8]
mov dword [esp + 0x10], esi
xor eax, edx
mov edi, eax
mov ebx, 0xf1111111
and edi, ebx
shr eax, 1
and eax, ecx
lea eax, [eax + edi*8]
mov esi, dword [esp + 8]
xor esi, eax
mov edi, dword [esp + 0x6c]
xor esi, edi
mov dword [esp + 8], esi
mov eax, edi
and edi, 0xf3333333
shr eax, 2
mov esi, 0x33333333
and eax, esi
lea eax, [eax + edi*4]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x18]
mov eax, edi
and eax, 0xf1111111
shr edi, 1
and edi, ecx
lea edi, [edi + eax*8]
mov esi, dword [esp + 0x14]
xor esi, dword [esp + 0x30]
mov eax, esi
mov dword [esp + 0x14], esi
and eax, ebx
mov ebx, esi
shr ebx, 1
and ebx, ecx
mov esi, 0x77777777
lea eax, [ebx + eax*8]
mov dword [esp + 0x6c], eax
movd xmm6, dword [esp + 0x34]
mov ebx, edx
mov eax, 0xf1111111
and ebx, eax
mov ecx, edx
shr ecx, 1
and ecx, esi
lea ecx, [ecx + ebx*8]
xor ecx, edx
mov eax, dword [esp + 0xc]
mov edx, eax
mov esi, 0xf3333333
and edx, esi
shr eax, 2
mov ebx, 0x33333333
and eax, ebx
lea eax, [eax + edx*4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x1c]
mov ebx, eax
and ebx, esi
shr eax, 2
mov edx, 0x33333333
and eax, edx
lea eax, [eax + ebx*4]
mov dword [esp + 0x34], eax
xor edi, dword [esp + 0x18]
mov eax, edi
and eax, esi
shr edi, 2
and edi, edx
lea eax, [edi + eax*4]
mov dword [esp + 0xc], eax
mov eax, ecx
and eax, esi
shr ecx, 2
and ecx, edx
lea eax, [ecx + eax*4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
xor dword [esp + 0x20], eax
pshufd xmm7, xmm5, 0x55
movd eax, xmm7
mov ecx, eax
and ecx, esi
mov edi, eax
shr edi, 2
and edi, edx
lea ecx, [edi + ecx*4]
xor ecx, eax
mov ebx, dword [esp + 0x40]
mov eax, ebx
and eax, esi
mov edi, ebx
shr edi, 2
and edi, edx
lea eax, [edi + eax*4]
mov edx, dword [esp + 0x10]
xor edx, dword [esp + 4]
xor eax, ebx
mov edi, ecx
mov esi, 0xf1111111
and edi, esi
shr ecx, 1
mov ebx, 0x77777777
and ecx, ebx
lea ecx, [ecx + edi*8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x44]
mov edi, ecx
and edi, esi
shr ecx, 1
and ecx, ebx
lea ecx, [ecx + edi*8]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
mov esi, ecx
mov edi, 0xf1111111
and esi, edi
mov ebx, 0xf1111111
shr ecx, 1
mov edi, 0x77777777
and ecx, edi
lea ecx, [ecx + esi*8]
mov dword [esp + 0x2c], ecx
mov ecx, eax
and ecx, ebx
shr eax, 1
and eax, edi
lea eax, [eax + ecx*8]
mov ecx, dword [esp]
xor ecx, dword [esp + 0xac]
xor ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov esi, dword [esp + 0x6c]
xor esi, dword [esp + 0x14]
mov ecx, edx
mov edi, edx
xor ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x48]
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, eax
and ecx, 0xf3333333
shr eax, 2
mov ebx, 0x33333333
and eax, ebx
lea eax, [eax + ecx*4]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
xor eax, dword [esp + 0x30]
xor eax, esi
xor eax, dword [esp + 0x44]
mov ebx, eax
mov eax, 0xf3333333
and edi, eax
shr edx, 2
mov eax, 0x33333333
and edx, eax
lea eax, [edx + edi*4]
mov edx, esi
mov edi, 0xf3333333
and esi, edi
shr edx, 2
mov edi, 0x33333333
and edx, edi
lea edx, [edx + esi*4]
mov edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x24]
punpckldq xmm4, xmm6
movdqa xmm6, xmm4
pslld xmm6, 3
movdqa xmm7, xmm4
movdqa xmm0, xmmword [0x49b670]
pand xmm6, xmm0
psrld xmm7, 1
movdqa xmm0, xmmword [str.wwwwwwww]
pand xmm7, xmm0
por xmm7, xmm6
pxor xmm7, xmm4
pshufd xmm4, xmm7, 0x55
movd esi, xmm4
xor esi, edi
xor ecx, eax
movdqa xmm4, xmm7
pslld xmm7, 2
movdqa xmm2, xmmword [0x49b5c0]
pand xmm7, xmm2
psrld xmm4, 2
movdqa xmm6, xmmword [str.33333333]
pand xmm4, xmm6
movdqa xmm0, xmm6
por xmm4, xmm7
movd edi, xmm4
xor edi, esi
xor ebx, edx
mov dword [esp + 0xc], ebx
pshufd xmm4, xmm4, 0x55
movd eax, xmm4
xor eax, edi
mov dword [esp + 0x18], eax
xor ecx, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x14]
mov eax, dword [esp + 8]
xor eax, dword [esp + 0x28]
mov dword [esp + 8], eax
movdqa xmm4, xmm1
movdqa xmm6, xmm1
pslld xmm4, 2
pand xmm4, xmm2
psrld xmm6, 2
pand xmm6, xmm0
por xmm6, xmm4
pxor xmm6, xmm1
pxor xmm3, xmm5
movdqa xmm1, xmm3
movdqa xmm2, xmmword [esp + 0x80]
movdqa xmm5, xmmword [esp + 0x50]
punpckldq xmm5, xmm2
movdqa xmmword [esp + 0x50], xmm5
movdqa xmm0, xmm5
pslld xmm0, 3
pslld xmm1, 3
movdqa xmm7, xmmword [0x49b670]
pand xmm0, xmm7
psrld xmm5, 1
movdqa xmm4, xmmword [str.wwwwwwww]
pand xmm5, xmm4
pand xmm1, xmm7
por xmm5, xmm0
movdqa xmm4, xmm3
psrld xmm4, 1
pand xmm4, xmmword [str.wwwwwwww]
por xmm4, xmm1
pxor xmm5, xmmword [esp + 0x50]
movdqa xmm1, xmm5
pslld xmm1, 2
psrld xmm5, 2
movdqa xmm0, xmmword [0x49b5c0]
pand xmm1, xmm0
movdqa xmm7, xmmword [str.33333333]
pand xmm5, xmm7
por xmm5, xmm1
movdqa xmm1, xmm6
pslld xmm1, 3
pand xmm1, xmmword [0x49b670]
psrld xmm6, 1
pand xmm6, xmmword [str.wwwwwwww]
por xmm6, xmm1
pxor xmm4, xmm3
movdqa xmm1, xmm4
pxor xmm6, xmm2
pxor xmm6, xmm5
movdqa xmm5, xmmword [0x49b630]
pxor xmm6, xmm4
pslld xmm4, 2
pand xmm4, xmm0
psrld xmm1, 2
pand xmm1, xmm7
por xmm1, xmm4
pxor xmm6, xmm1
movd edx, xmm6
mov dword [esp + 0x48], edx
mov ebx, edi
xor ebx, edx
mov eax, ebx
mov dword [esp + 0x40], ebx
mov esi, dword [esp]
xor eax, esi
mov dword [esp + 0x34], eax
xor eax, ecx
mov dword [esp + 0x2c], eax
mov ecx, edi
xor ecx, dword [esp + 0x18]
pshufd xmm0, xmm6, 0x55
movdqa xmm6, xmmword [0x49b650]
xor eax, ecx
mov dword [esp + 0x44], eax
movd edx, xmm0
xor eax, edx
xor edi, edx
mov dword [esp + 0x1c], edi
xor ebx, edx
mov dword [esp + 4], ebx
xor dword [esp + 0x48], edx
mov ebx, dword [esp + 0xc]
xor ebx, eax
mov dword [esp + 0xc], ebx
mov edi, dword [esp + 0x18]
xor eax, edi
mov dword [esp + 0x28], eax
xor edi, esi
mov edx, ecx
mov dword [esp + 0x50], ecx
xor esi, ecx
mov dword [esp], esi
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov ecx, ebx
xor ecx, edx
mov edx, eax
xor edx, esi
mov dword [esp + 0x14], edx
mov edx, ecx
xor edx, eax
mov esi, edx
mov dword [esp + 0x20], edx
and esi, dword [esp + 0x2c]
xor esi, edi
mov eax, edi
mov edi, dword [esp + 0x48]
xor eax, edi
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x50]
xor ebx, edi
mov dword [esp + 0x80], ebx
mov eax, edx
mov edx, dword [esp + 4]
xor eax, edx
mov dword [esp + 0x24], eax
and ecx, dword [esp + 0x50]
xor eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
and eax, ebx
xor eax, ecx
mov ebx, dword [esp + 0x18]
and ebx, edi
xor ebx, ecx
mov edi, dword [esp + 0x24]
and edi, dword [esp + 0x28]
mov ecx, edx
and ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0xc]
xor ecx, edi
xor esi, ebx
xor esi, edi
mov edi, dword [esp + 0x10]
xor edi, dword [esp]
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x14]
and edx, edi
xor edx, dword [esp + 8]
mov edi, dword [esp]
and edi, dword [esp + 0x40]
xor edi, dword [esp + 0x34]
xor ecx, eax
xor edi, edx
xor edi, eax
mov eax, dword [esp + 0x44]
and eax, dword [esp + 0x30]
xor eax, dword [esp + 0x50]
xor eax, edx
xor eax, ebx
mov ebx, ecx
and ecx, edi
xor ebx, esi
mov dword [esp + 0x34], ebx
mov edx, ecx
xor edx, eax
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
and edx, ebx
mov ebx, edi
xor ebx, eax
xor edx, esi
xor esi, ecx
and esi, ebx
mov ebx, esi
xor esi, ecx
xor ebx, eax
and esi, eax
xor edi, esi
xor esi, dword [esp + 8]
and esi, edx
xor esi, dword [esp + 0x34]
and dword [esp + 0x24], edi
mov eax, edi
and edi, dword [esp + 0x28]
xor eax, ebx
mov ecx, esi
xor ecx, eax
mov dword [esp + 0x28], ecx
and dword [esp + 4], eax
and eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov ecx, edx
xor ecx, ebx
and dword [esp + 0x20], ebx
and ebx, dword [esp + 0x2c]
mov eax, esi
xor eax, edx
and dword [esp + 0x14], eax
and eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
and dword [esp], esi
and esi, dword [esp + 0x40]
and dword [esp + 0x30], edx
and edx, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
and dword [esp + 0x18], eax
mov dword [esp + 8], eax
and eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 8]
xor eax, ecx
and dword [esp + 0x50], ecx
and ecx, dword [esp + 0xc]
and dword [esp + 0x3c], eax
and eax, dword [esp + 0x80]
mov dword [esp + 8], eax
xor ecx, esi
xor ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
xor dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 8]
mov dword [esp + 0x10], eax
xor ecx, eax
mov dword [esp + 0x2c], ecx
xor ecx, dword [esp + 0x14]
xor edx, dword [esp + 4]
mov eax, ecx
xor eax, dword [esp]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
xor eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
xor eax, dword [esp]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x24]
xor dword [esp + 4], eax
mov dword [esp], eax
mov eax, dword [esp + 0x20]
xor dword [esp], eax
xor eax, ebx
xor ebx, edi
mov edi, eax
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
xor ebx, dword [esp + 0x28]
xor dword [esp + 0x50], ebx
xor ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
xor ecx, eax
xor eax, dword [esp + 0x24]
xor edx, edi
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0xc]
xor edx, dword [esp + 0xc]
xor eax, dword [esp + 0x20]
xor eax, dword [esp + 0x28]
xor esi, edx
xor ebx, edx
mov edx, dword [esp + 0x38]
xor eax, dword [esp + 0x14]
xor eax, dword [esp + 8]
xor eax, edi
movd xmm0, edi
movd xmm1, dword [esp + 0x50]
movd xmm2, dword [esp + 4]
movd xmm3, dword [esp]
movd xmm4, eax
punpckldq xmm0, xmm1
movd xmm1, esi
punpckldq xmm4, xmm2
movd xmm2, ebx
punpckldq xmm1, xmm3
movd xmm3, ecx
mov ecx, dword [esp + 0x74]
punpckldq xmm3, xmm2
punpcklqdq xmm4, xmm0
punpcklqdq xmm3, xmm1
movdqa xmm2, xmm3
psrld xmm2, 8
movdqa xmm0, xmm4
psrld xmm0, 8
pxor xmm0, xmm4
pxor xmm2, xmm3
pand xmm2, xmm5
pand xmm0, xmm5
movdqa xmm5, xmmword [str._n_n_n_n_n_n_n_n]
movdqa xmm1, xmm0
pslld xmm1, 8
por xmm1, xmm0
movdqa xmm0, xmm2
pslld xmm0, 8
por xmm0, xmm2
pxor xmm0, xmm3
pxor xmm1, xmm4
movdqa xmm3, xmm1
movdqa xmm2, xmm0
psrld xmm2, 0xc
pand xmm2, xmm5
movdqa xmm4, xmm1
pslld xmm4, 4
pand xmm4, xmm6
movdqa xmm7, xmmword [str.UUUUUUUUUUUUUUUU]
pand xmm1, xmm7
por xmm1, xmm4
movdqa xmm4, xmm0
psrld xmm3, 0xc
pslld xmm4, 4
pand xmm4, xmm6
pand xmm0, xmm7
pand xmm3, xmm5
por xmm0, xmm4
por xmm0, xmm2
pshufd xmm2, xmm0, 0xe1
por xmm1, xmm3
pshufd xmm4, xmm1, 0x1b
pshufd xmm3, xmm0, 0xeb
add edx, 0xffffffe0
dec ecx
jne 0x433071
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0x78]
jmp 0x433a6f
add esi, eax
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
xor eax, dword [edx]
mov dword [esp + 0xc], eax
pshufd xmm2, xmm1, 0xee
movd eax, xmm2
xor eax, dword [esi - 0x1c]
mov dword [esp + 0x1c], eax
pshufd xmm2, xmm1, 0x55
movd eax, xmm2
xor eax, dword [esi - 0x18]
mov dword [esp + 0x18], eax
movd eax, xmm1
xor eax, dword [esi - 0x14]
mov dword [esp + 0x14], eax
pshufd xmm1, xmm0, 0xff
movd eax, xmm1
xor eax, dword [esi - 0x10]
mov dword [esp + 0x38], eax
pshufd xmm1, xmm0, 0xee
movd eax, xmm1
xor eax, dword [esi - 0xc]
mov dword [esp + 0x30], eax
pshufd xmm1, xmm0, 0x55
movd eax, xmm1
xor eax, dword [esi - 8]
mov dword [esp + 0x24], eax
movd eax, xmm0
xor eax, dword [esi - 4]
mov dword [esp + 0x20], eax
xor ecx, ecx
mov dl, 1
lea eax, [esp + 0xb0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x20]
shr eax, cl
mov edx, dword [esp + 0x30]
shr edx, cl
shl eax, 0x10
mov edi, 0xffff
and edx, edi
or edx, eax
mov dword [esp], edx
mov edx, dword [esp + 0x14]
shr edx, cl
shl edx, 0x10
mov eax, dword [esp + 0x1c]
shr eax, cl
and eax, edi
or eax, edx
mov esi, dword [esp + 0x24]
shr esi, cl
shl esi, 0x10
mov edx, dword [esp + 0x38]
shr edx, cl
and edx, edi
mov ebx, dword [esp + 0x18]
shr ebx, cl
or edx, esi
mov esi, dword [esp + 0xc]
shr esi, cl
shl ebx, 0x10
and esi, edi
or esi, ebx
mov edi, esi
shr edi, 8
xor edi, eax
mov ecx, 0xff00ff
and edi, ecx
mov ebx, edi
shl ebx, 8
xor ebx, esi
mov esi, edx
shr esi, 8
xor esi, dword [esp]
and esi, ecx
mov ecx, esi
shl ecx, 8
xor ecx, edx
xor edi, eax
mov eax, ecx
shl eax, 4
xor eax, ebx
mov edx, 0xf0f0f0f0
and eax, edx
mov edx, 0x10000001
mul edx
mov dword [esp + 4], eax
xor esi, dword [esp]
xor edx, ecx
mov ecx, edx
mov eax, esi
shl eax, 4
xor eax, edi
mov edx, 0xf0f0f0f0
and eax, edx
mov edx, 0x10000001
mul edx
xor dword [esp + 4], ebx
xor edx, esi
xor eax, edi
mov esi, ecx
mov dword [esp], ecx
shr ecx, 0xe
xor ecx, esi
mov esi, 0xcccc
and ecx, esi
mov edi, ecx
shl edi, 0xe
add edi, ecx
mov ebx, dword [esp + 4]
mov ecx, ebx
shr ecx, 0xe
xor ecx, ebx
mov esi, 0xcccc
and ecx, esi
mov esi, ecx
shl esi, 0xe
add esi, ecx
xor esi, ebx
xor edi, dword [esp]
mov ebx, edx
shr ebx, 0xe
xor ebx, edx
mov ecx, 0xcccc
and ebx, ecx
mov ecx, ebx
shl ecx, 0xe
add ecx, ebx
mov ebx, eax
mov dword [esp + 0x50], eax
shr eax, 0xe
xor eax, ebx
mov ebx, 0xcccc
and eax, ebx
mov ebx, eax
shl ebx, 0xe
add ebx, eax
xor ebx, dword [esp + 0x50]
xor ecx, edx
mov dword [esp], ecx
mov edx, esi
shr edx, 7
xor edx, esi
mov eax, 0xaa00aa
and edx, eax
mov eax, edx
shl eax, 7
add eax, edx
xor eax, esi
mov ecx, dword [esp + 8]
mov byte [ecx], al
mov byte [ecx + 1], ah
mov edx, eax
shr edx, 0x10
mov byte [ecx + 2], dl
mov esi, edi
shr esi, 7
xor esi, edi
mov edx, 0xaa00aa
and esi, edx
mov edx, esi
shl edx, 7
add edx, esi
xor edx, edi
shr eax, 0x18
mov byte [ecx + 3], al
mov byte [ecx + 4], dl
mov byte [ecx + 5], dh
mov eax, edx
shr eax, 0x10
mov byte [ecx + 6], al
mov esi, ebx
shr esi, 7
xor esi, ebx
mov eax, 0xaa00aa
and esi, eax
mov eax, esi
shl eax, 7
add eax, esi
xor eax, ebx
mov edi, dword [esp]
mov esi, edi
shr esi, 7
xor esi, edi
mov ebx, 0xaa00aa
and esi, ebx
shr edx, 0x18
mov byte [ecx + 7], dl
mov byte [ecx + 8], al
mov byte [ecx + 9], ah
mov edx, eax
shr edx, 0x10
mov byte [ecx + 0xa], dl
mov edx, esi
shl edx, 7
add edx, esi
xor edx, edi
shr eax, 0x18
mov byte [ecx + 0xb], al
mov byte [ecx + 0xc], dl
mov byte [ecx + 0xd], dh
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0xe], al
shr edx, 0x18
mov byte [ecx + 0xf], dl
add ecx, 0x10
mov dword [esp + 8], ecx
mov ecx, 0x10
xor eax, eax
test byte [esp + 0x10], 1
mov edx, 0
jne 0x433af3
mov edx, dword [esp + 0x7c]
cmp edx, 1
mov ecx, 1
cmova ecx, edx
shl ecx, 4
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
mov edi, dword [ebx - 0x34]
mov esi, dword [ebx - 0x30]
xor dword [esp + eax + 0xb0], edi
xor dword [esp + eax + 0xb4], esi
mov edi, dword [ebx - 0x2c]
mov esi, dword [ebx - 0x28]
xor dword [esp + eax + 0xb8], edi
xor dword [esp + eax + 0xbc], esi
movups xmm0, xmmword [edx + eax]
mov esi, dword [esp + 0xa8]
movups xmmword [esi], xmm0
lea esi, [esp + 0xbf]
movdqu xmm0, xmmword [esi + eax - 0xf]
movdqu xmmword [edx + eax], xmm0
add eax, 0x10
cmp ecx, eax
jne 0x433d0a
add edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
sub ecx, dword [esp + 0x7c]
jne 0x432949
lea eax, [esp + 0xb0]
push 0x20
push eax
call fcn.0046d418
add esp, 8
mov ecx, dword [esp + 0xd8]
xor ecx, ebp
call fcn.00475893
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret