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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x6c], eax
test eax, eax
jle 0x4328ca
mov esi, edx
mov ebp, ecx
lea eax, [ecx - 0x308]
mov dword [esp + 0x78], eax
add dword [esp + 0x6c], edx
lea eax, [ecx - 0x34]
mov dword [esp + 0x7c], eax
lea eax, [ecx - 0x118]
mov dword [esp + 0x70], eax
mov edi, 0xff00ff
lea eax, [ecx - 0x10c]
mov dword [esp + 0x74], eax
movdqa xmm5, xmmword [0x49b510]
movdqa xmm7, xmmword [0x49b520]
mov dword [esp + 0x80], ecx
movzx eax, byte [esi]
movzx ecx, byte [ebp - 0x34]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
pxor xmm4, xmm4
punpcklbw xmm0, xmm4
punpcklwd xmm0, xmm4
punpckldq xmm0, xmm4
movzx eax, byte [esi + 1]
movzx ecx, byte [ebp - 0x33]
shl ecx, 8
or ecx, eax
movd xmm1, ecx
punpcklbw xmm1, xmm4
punpcklwd xmm1, xmm4
punpckldq xmm1, xmm4
psllq xmm1, 8
por xmm1, xmm0
movzx eax, byte [esi + 2]
movzx ecx, byte [ebp - 0x32]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
punpckldq xmm2, xmm4
psllq xmm2, 0x10
movzx eax, byte [esi + 3]
movzx ecx, byte [ebp - 0x31]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
punpcklbw xmm0, xmm4
punpcklwd xmm0, xmm4
punpckldq xmm0, xmm4
psllq xmm0, 0x18
por xmm0, xmm2
por xmm0, xmm1
movzx eax, byte [esi + 4]
movzx ecx, byte [ebp - 0x30]
shl ecx, 8
or ecx, eax
movd xmm1, ecx
punpcklbw xmm1, xmm4
punpcklwd xmm1, xmm4
pxor xmm2, xmm2
punpckldq xmm2, xmm1
movzx eax, byte [esi + 5]
movzx ecx, byte [ebp - 0x2f]
shl ecx, 8
or ecx, eax
movd xmm1, ecx
punpcklbw xmm1, xmm4
punpcklwd xmm1, xmm4
pshufd xmm1, xmm1, 0xd4
psllq xmm1, 0x28
por xmm1, xmm2
movzx eax, byte [esi + 6]
movzx ecx, byte [ebp - 0x2e]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
pshufd xmm2, xmm2, 0xd4
psllq xmm2, 0x30
por xmm2, xmm1
por xmm2, xmm0
movzx eax, byte [ebp - 0x2d]
movzx ecx, byte [esi + 7]
movd xmm0, ecx
pinsrw xmm0, eax, 4
psllq xmm0, 0x38
por xmm0, xmm2
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm0
movq qword [ebp - 0x34], xmm1
movzx eax, byte [esi + 8]
movzx ecx, byte [ebp - 0x2c]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
punpcklbw xmm0, xmm4
punpcklwd xmm0, xmm4
punpckldq xmm0, xmm4
movzx eax, byte [esi + 9]
movzx ecx, byte [ebp - 0x2b]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
punpckldq xmm2, xmm4
psllq xmm2, 8
por xmm2, xmm0
movzx eax, byte [esi + 0xa]
movzx ecx, byte [ebp - 0x2a]
shl ecx, 8
or ecx, eax
movd xmm3, ecx
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm4
punpckldq xmm3, xmm4
psllq xmm3, 0x10
movzx eax, byte [esi + 0xb]
movzx ecx, byte [ebp - 0x29]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
punpcklbw xmm0, xmm4
punpcklwd xmm0, xmm4
punpckldq xmm0, xmm4
psllq xmm0, 0x18
por xmm0, xmm3
por xmm0, xmm2
movzx eax, byte [esi + 0xc]
movzx ecx, byte [ebp - 0x28]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
pxor xmm3, xmm3
punpckldq xmm3, xmm2
movzx eax, byte [esi + 0xd]
movzx ecx, byte [ebp - 0x27]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
pshufd xmm2, xmm2, 0xd4
psllq xmm2, 0x28
por xmm2, xmm3
movzx eax, byte [esi + 0xe]
movzx ecx, byte [ebp - 0x26]
shl ecx, 8
or ecx, eax
movd xmm3, ecx
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm4
pshufd xmm3, xmm3, 0xd4
psllq xmm3, 0x30
por xmm3, xmm2
por xmm3, xmm0
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [esi + 0xf]
movd xmm0, ecx
pinsrw xmm0, eax, 4
psllq xmm0, 0x38
por xmm0, xmm3
pshufd xmm2, xmm0, 0xee
pxor xmm2, xmm0
movq qword [ebp - 0x2c], xmm2
punpcklqdq xmm2, xmm1
movdqa xmm0, xmm2
psrlq xmm0, 7
pxor xmm0, xmm2
pand xmm0, xmmword [0x49b4d0]
movdqa xmm1, xmm0
psllq xmm1, 7
por xmm1, xmm0
pxor xmm1, xmm2
movdqa xmm0, xmm1
psrlq xmm0, 0xe
pxor xmm0, xmm1
pand xmm0, xmmword [0x49b4e0]
movdqa xmm2, xmm0
psllq xmm2, 0xe
por xmm2, xmm0
pxor xmm2, xmm1
movdqa xmm0, xmm2
psrlq xmm0, 0x1c
pxor xmm0, xmm2
pand xmm0, xmmword [0x49b4f0]
movdqa xmm1, xmm0
psllq xmm1, 0x1c
por xmm1, xmm0
pxor xmm1, xmm2
pshufd xmm0, xmm1, 0xff
movd eax, xmm0
pshufd xmm0, xmm1, 0xee
movd ecx, xmm0
shr ecx, 8
shr eax, 8
movd edx, xmm1
xor edx, ecx
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
xor ecx, eax
and edx, edi
and ecx, edi
movd xmm0, ecx
shld ecx, edx, 8
movd xmm2, edx
shl edx, 8
pshufd xmm1, xmm1, 0x4e
punpckldq xmm2, xmm0
movd xmm0, ecx
movd xmm3, edx
punpckldq xmm3, xmm0
punpcklqdq xmm3, xmm2
pxor xmm3, xmm1
pextrw edx, xmm3, 4
movd edi, xmm3
movdqa xmm0, xmm3
psrlq xmm0, 0x10
pshufd xmm1, xmm3, 0xed
pshuflw xmm1, xmm1, 0xe8
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xe8
punpckldq xmm0, xmm1
psrlq xmm3, 0x30
pshufd xmm1, xmm3, 0xe8
pshuflw xmm2, xmm1, 0xe8
xor di, word [ebp - 0x128]
xor dx, word [ebp - 0x126]
movq xmm6, qword [ebp - 0x124]
pxor xmm6, xmm0
movd xmm1, dword [ebp - 0x11c]
pxor xmm1, xmm2
mov eax, dword [ebp - 0x38]
mov ecx, eax
dec ecx
mov dword [esp + 0x88], esi
je 0x4321fd
lea eax, [eax*4 + 0x78]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x44], eax
mov ebp, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x4c], ecx
movd esi, xmm6
pextrw eax, xmm6, 2
mov dword [esp + 0x10], eax
xor eax, esi
mov ebx, eax
mov dword [esp + 0x30], eax
pextrw ecx, xmm1, 1
mov edi, ecx
mov dword [esp + 0x14], edx
xor edi, edx
mov dword [esp + 0x40], edi
mov eax, ecx
mov dword [esp + 0x28], ecx
xor eax, esi
mov dword [esp + 0x20], eax
pextrw eax, xmm6, 3
movd edx, xmm1
mov dword [esp + 0xc], edx
xor eax, edx
mov dword [esp + 8], eax
mov eax, edi
mov edx, edi
xor edx, ebx
mov dword [esp + 0x18], edx
pextrw eax, xmm6, 1
xor eax, edx
xor esi, eax
xor eax, dword [esp + 0xc]
mov edx, ecx
xor edx, dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov ecx, esi
mov edi, esi
mov dword [esp + 0x50], esi
xor ecx, dword [esp + 8]
mov esi, eax
xor esi, edx
mov dword [esp + 0x24], esi
mov ebx, ecx
mov edx, ecx
mov dword [esp + 0xc], ecx
xor ebx, esi
mov ecx, ebx
mov dword [esp + 0x68], ebx
mov ebx, esi
and ebx, dword [esp + 0x38]
and ecx, dword [esp + 0x30]
xor ecx, ebx
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov edx, dword [esp + 0x20]
and ecx, edx
xor ecx, ebx
mov esi, dword [esp + 8]
xor esi, ebp
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x14]
xor ebx, esi
mov dword [esp + 0x14], ebx
mov esi, ebx
xor esi, edx
mov dword [esp + 0x64], esi
mov edx, edi
xor edx, ebp
mov dword [esp + 0x1c], edx
mov ebx, edi
and ebx, dword [esp + 0x18]
and edx, esi
xor eax, ebx
xor eax, edx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
xor esi, edi
mov dword [esp + 0x10], esi
and esi, dword [esp + 0x34]
xor esi, dword [esp + 0x20]
xor esi, dword [esp + 0xc]
xor esi, ebx
mov ebx, dword [esp + 8]
xor ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
and edx, edi
mov edi, ebx
mov dword [esp + 8], ebx
mov ebp, ebx
mov ebx, dword [esp + 0x40]
or ebp, ebx
xor ebp, edx
mov edx, dword [esp + 0x3c]
xor eax, edx
xor ebp, edx
mov edx, dword [esp + 0x2c]
xor edx, dword [esp + 0x28]
mov dword [esp + 0x3c], edx
mov edx, ebx
not edx
and edx, edi
xor edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
xor ebx, dword [esp + 0x34]
mov dword [esp + 0x28], ebx
and ebx, dword [esp + 0x3c]
xor esi, ecx
xor ecx, ebx
xor ecx, edx
mov edi, eax
xor edi, esi
mov dword [esp + 0x48], edi
and eax, ebp
mov ebx, eax
xor ebx, ecx
mov edx, ebx
and edx, edi
xor edx, esi
mov edi, ecx
xor edi, ebp
xor esi, eax
and esi, edi
mov edi, esi
xor esi, eax
xor edi, ecx
and esi, ecx
xor ebp, esi
xor esi, ebx
and esi, edx
mov eax, edx
xor esi, dword [esp + 0x48]
mov edx, esi
and dword [esp + 0x50], ebp
mov ecx, ebp
and ebp, dword [esp + 0x18]
xor ecx, edi
xor esi, ecx
mov dword [esp + 0x18], esi
and dword [esp + 0x1c], ecx
and ecx, dword [esp + 0x64]
mov esi, eax
xor esi, edi
and dword [esp + 0x34], edi
and edi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov ebx, edx
xor ebx, eax
and dword [esp + 8], ebx
and ebx, dword [esp + 0x40]
and dword [esp + 0x2c], edx
and edx, dword [esp + 0x14]
mov edi, edx
and dword [esp + 0x28], eax
and eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x18]
mov eax, edx
xor eax, esi
and dword [esp + 0x24], esi
and esi, dword [esp + 0x38]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
and esi, eax
and eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
and eax, edx
and edx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
xor dword [esp + 0x10], ecx
xor ecx, ebp
mov edx, dword [esp + 0x28]
xor edi, edx
mov dword [esp + 0x30], edi
mov ebp, ebx
mov edi, dword [esp + 0x34]
xor ebp, edi
mov dword [esp + 0x20], ebp
xor edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 8]
xor dword [esp + 0x50], edx
mov edi, dword [esp + 0x24]
xor edi, edx
xor eax, esi
xor edi, esi
mov ebp, dword [esp + 0x14]
xor ebp, dword [esp + 0x38]
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x2c]
xor ebp, esi
xor eax, ebp
xor ebp, ecx
xor esi, edi
mov edx, dword [esp + 0x1c]
xor edx, ebp
xor ebp, edi
mov dword [esp + 8], ebp
xor ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
xor edi, ecx
mov dword [esp + 0x20], edi
mov ebp, dword [esp + 0x40]
xor ebp, edi
xor ebp, eax
xor eax, ebx
mov dword [esp + 0xc], eax
xor ecx, edx
mov dword [esp + 0x50], ecx
xor edx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0x38]
mov eax, 0xffff
and ecx, eax
mov eax, ecx
xor eax, esi
xor edi, esi
mov ebx, dword [esp + 0x10]
xor ebx, ebp
mov dword [esp + 0x10], ebx
xor edi, ebp
mov edx, dword [esp + 0xc]
movzx edx, dh
movd xmm6, edx
movzx edx, bh
pinsrw xmm6, edx, 1
mov edx, dword [esp + 0x1c]
movzx edx, dh
pinsrw xmm6, edx, 2
shr ecx, 8
pinsrw xmm6, ecx, 3
mov ecx, eax
shr ecx, 8
xor ecx, eax
mov edx, 0xcc
and ecx, edx
mov esi, 0xcc
mov edx, ecx
shl edx, 8
or edx, ecx
mov ebx, dword [esp + 8]
mov ecx, ebx
shr ecx, 8
xor ecx, ebx
mov ebp, ebx
and ecx, esi
mov ebx, 0xcc
mov esi, ecx
shl esi, 8
or esi, ecx
movd xmm4, edx
pinsrw xmm4, esi, 1
mov dword [esp + 0x18], edi
mov ecx, edi
mov edx, 0xffff
and ecx, edx
mov esi, ecx
shr esi, 8
xor esi, edi
and esi, ebx
mov edx, esi
shl edx, 8
or edx, esi
movd xmm0, eax
pinsrw xmm0, ebp, 1
xor edx, ecx
mov eax, edx
shl eax, 0xc
mov ecx, 0xfffa000
and eax, ecx
mov ecx, edx
mov esi, 0x5555
and edx, esi
or edx, eax
mov eax, dword [esp + 0xc]
movd xmm2, eax
pinsrw xmm2, word [esp + 0x10], 1
mov edi, dword [esp + 0x1c]
pinsrw xmm2, edi, 2
shr ecx, 4
mov esi, 0xaaa
and ecx, esi
or edx, ecx
mov ebp, dword [esp + 0x50]
pinsrw xmm2, ebp, 3
pxor xmm6, xmm2
pand xmm6, xmm5
pmullw xmm6, xmm7
pxor xmm6, xmm2
movdqa xmm2, xmm6
psrlw xmm2, 4
pand xmm2, xmmword [0x49b530]
movdqa xmm3, xmm6
psllw xmm3, 0xc
pand xmm3, xmmword [0x49b540]
pand xmm6, xmmword [str.UUUUUUUU]
por xmm6, xmm3
por xmm6, xmm2
mov esi, 0xfffff111
mov ecx, eax
and ecx, esi
movd eax, xmm6
shr eax, 1
mov esi, 0x7777
and eax, esi
lea ebx, [eax + ecx*8]
mov dword [esp + 0xc], ebx
mov esi, 0xfffff111
mov eax, edi
and eax, esi
pextrw ecx, xmm6, 2
shr ecx, 1
mov edi, 0x7777
and ecx, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
and ebp, esi
pextrw ecx, xmm6, 3
shr ecx, 1
and ecx, edi
pextrw esi, xmm6, 1
lea ebp, [ecx + ebp*8]
shr esi, 1
and esi, edi
mov eax, 0x7777
movd xmm7, esi
pxor xmm4, xmm0
movdqa xmm2, xmm4
psrlw xmm2, 4
pand xmm2, xmmword [0x49b560]
movdqa xmm3, xmm4
psllw xmm3, 0xc
pand xmm3, xmmword [0x49b570]
pand xmm4, xmmword [str.UUUU]
por xmm4, xmm3
por xmm4, xmm2
mov esi, edx
shr esi, 1
and esi, eax
psllw xmm0, 3
pand xmm0, xmmword [0x49b590]
movdqa xmm2, xmm4
psrlw xmm2, 1
pand xmm2, xmmword [0x49b5a0]
por xmm2, xmm0
movdqa xmm0, xmm2
pxor xmm0, xmm4
movdqu xmmword [esp + 0x50], xmm0
pextrw eax, xmm0, 1
mov dword [esp + 8], eax
pinsrw xmm7, eax, 1
pinsrw xmm7, eax, 2
movdqa xmm0, xmm7
pinsrw xmm0, esi, 3
mov eax, dword [esp + 0x10]
shl eax, 3
mov esi, 0x8888
and eax, esi
movd xmm3, eax
mov eax, dword [esp + 0x18]
shl eax, 3
mov ecx, dword [esp + 0x44]
pinsrw xmm3, word [ecx - 6], 1
pinsrw xmm3, word [ecx - 4], 2
and eax, esi
movdqa xmm1, xmm3
pinsrw xmm1, eax, 3
por xmm1, xmm0
movd xmm5, ebx
movd esi, xmm1
pinsrw xmm5, esi, 1
pxor xmm3, xmm7
movdqa xmm7, xmmword [0x49b5b0]
movdqa xmm0, xmm7
pandn xmm0, xmm3
movdqa xmm3, xmm1
pand xmm3, xmm7
por xmm3, xmm0
mov eax, dword [esp + 0x1c]
pinsrw xmm5, eax, 2
pinsrw xmm5, ebp, 3
movd xmm0, edx
pxor xmm5, xmm6
movzx edx, word [ecx - 8]
movd xmm6, edx
punpcklwd xmm0, xmm4
psrlq xmm1, 0x30
punpcklwd xmm1, xmm2
pxor xmm0, xmm1
pinsrw xmm6, eax, 1
pinsrw xmm6, ebp, 2
movd eax, xmm5
pinsrw xmm6, word [ecx - 2], 3
pxor xmm6, xmm3
movdqa xmm7, xmmword [0x49b520]
pxor xmm6, xmm5
punpcklwd xmm5, xmm0
pshuflw xmm1, xmm5, 0xe6
movdqa xmm5, xmmword [0x49b510]
pshufhw xmm1, xmm1, 0xe8
pshufd xmm1, xmm1, 0xe8
pshuflw xmm3, xmm1, 0x78
movdqa xmm1, xmm3
psllw xmm1, 2
pand xmm1, xmmword [0x49b5c0]
psrlw xmm3, 2
pand xmm3, xmmword [str.33333333]
por xmm3, xmm1
movdqa xmm4, xmmword [0x49b5e0]
movdqu xmm1, xmmword [esp + 0x50]
pandn xmm4, xmm1
movd xmm1, dword [ecx]
pxor xmm1, xmm2
pxor xmm1, xmm0
psrld xmm0, 0x10
por xmm4, xmm0
movdqa xmm0, xmm4
psllw xmm0, 2
pand xmm0, xmmword [0x49b5f0]
psrlw xmm4, 2
pand xmm4, xmmword [str.3333]
por xmm4, xmm0
pxor xmm6, xmm3
pxor xmm1, xmm4
mov edx, dword [esp + 0x20]
xor edx, dword [esp + 0x30]
xor edx, dword [esp + 0x14]
mov esi, edx
mov edi, 0xffff
and esi, edi
mov edi, esi
shr edi, 8
xor edi, edx
mov ebx, 0xcc
and edi, ebx
mov ebx, edi
shl ebx, 8
or ebx, edi
xor ebx, esi
mov esi, ebx
shr esi, 4
mov edi, 0xaaa
and esi, edi
mov edi, ebx
shl edi, 0xc
mov ebp, 0xfffa000
and edi, ebp
mov ebp, 0x5555
and ebx, ebp
or ebx, edi
or ebx, esi
mov esi, 0xfffff111
and edx, esi
mov esi, ebx
shr esi, 1
mov edi, 0x7777
and esi, edi
lea esi, [esi + edx*8]
xor ebx, esi
mov edi, ebx
movzx edx, word [ecx - 0xa]
xor dx, bx
mov ebp, 0x3333
and ebx, ebp
shr edi, 2
and edi, ebp
lea edi, [edi + ebx*4]
mov ebx, eax
and ebx, ebp
shr eax, 2
and eax, ebp
lea eax, [eax + ebx*4]
mov ebx, ecx
movzx ebp, word [ecx - 0xc]
xor bp, si
xor ebp, edi
mov ecx, dword [esp + 8]
xor ebp, ecx
xor edx, ecx
mov ecx, dword [esp + 0x4c]
xor edx, dword [esp + 0xc]
xor edx, eax
add ebx, 0x10
mov dword [esp + 0x44], ebx
dec ecx
jne 0x431b2a
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
lea eax, [eax + ecx*4]
mov dword [esp + 0x48], eax
pextrw eax, xmm6, 1
mov dword [esp + 0x10], eax
pextrw eax, xmm6, 2
mov dword [esp + 0x2c], eax
pextrw edi, xmm6, 3
movd esi, xmm6
movd dword [esp + 8], xmm1
pextrw eax, xmm1, 1
mov dword [esp + 0x24], eax
jmp 0x432239
pextrw eax, xmm6, 1
mov dword [esp + 0x10], eax
pextrw eax, xmm6, 2
mov dword [esp + 0x2c], eax
pextrw ecx, xmm6, 3
movd ebp, xmm6
movd dword [esp + 8], xmm1
pextrw eax, xmm1, 1
mov dword [esp + 0x24], eax
mov esi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x48], edx
mov edx, esi
mov esi, ebp
mov ebp, edi
mov edi, ecx
mov dword [esp + 0x34], ebp
mov ecx, esi
xor ecx, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov eax, edx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x24]
xor eax, edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 8]
xor edi, ebx
mov dword [esp + 0x50], edi
xor eax, ecx
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x10]
xor edi, eax
mov eax, esi
xor esi, edi
xor edi, ebx
xor eax, edx
mov dword [esp + 0x28], eax
mov eax, ebp
mov ebx, dword [esp + 0x50]
xor eax, ebx
mov dword [esp + 8], eax
mov ecx, eax
mov eax, dword [esp + 0x2c]
xor ecx, eax
mov dword [esp + 0x30], ecx
xor eax, edx
mov edx, eax
mov eax, esi
xor eax, ebx
mov dword [esp + 0x18], eax
mov ecx, edi
xor ecx, edx
mov dword [esp + 0x2c], edx
mov ebx, ecx
mov dword [esp + 0xc], ecx
mov ecx, eax
xor ecx, ebx
mov dword [esp + 0x3c], ecx
mov eax, ebx
and eax, edx
mov edx, esi
mov dword [esp + 0x10], esi
mov esi, ecx
and esi, dword [esp + 0x40]
xor esi, eax
mov ebp, dword [esp + 0x18]
mov ebx, edi
mov ecx, dword [esp + 0x28]
and ebp, ecx
xor ebp, eax
mov eax, dword [esp + 0x14]
xor eax, dword [esp + 8]
mov dword [esp + 0x14], eax
xor eax, ecx
mov dword [esp + 0x44], eax
mov eax, edx
mov edi, dword [esp + 0x34]
xor eax, edi
mov dword [esp + 0x1c], eax
mov ecx, edx
and ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
and edx, dword [esp + 0x44]
xor ebx, ecx
xor ebx, edx
mov eax, dword [esp + 0x30]
and eax, edi
xor eax, dword [esp + 0x28]
xor eax, dword [esp + 0x18]
xor eax, ecx
mov ecx, dword [esp + 0x50]
xor ecx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
mov edi, dword [esp + 0x14]
and edi, dword [esp + 8]
mov edx, ecx
mov ecx, dword [esp + 0x4c]
or edx, ecx
xor edx, edi
xor ebx, esi
xor edx, esi
mov dword [esp + 0x38], edx
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x24]
xor edi, edx
mov dword [esp + 0x68], edi
mov esi, ecx
not esi
and esi, dword [esp + 0x50]
xor esi, edx
mov ecx, dword [esp + 0xc]
xor ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
and ecx, edi
xor eax, ebp
xor ebp, ecx
xor ebp, esi
mov esi, ebx
xor esi, eax
mov dword [esp + 0x64], esi
mov edx, dword [esp + 0x38]
and ebx, edx
mov edi, ebx
xor edi, ebp
mov ecx, edi
and ecx, esi
xor ecx, eax
mov esi, ecx
mov ecx, ebp
xor ecx, edx
xor eax, ebx
and eax, ecx
mov ecx, eax
xor eax, ebx
xor ecx, ebp
mov ebx, ecx
and eax, ebp
xor edx, eax
xor eax, edi
and eax, esi
mov ecx, esi
xor eax, dword [esp + 0x64]
and dword [esp + 0x10], edx
mov esi, edx
and edx, dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov edi, ebx
xor esi, ebx
mov ebx, eax
xor ebx, esi
and dword [esp + 0x1c], esi
and esi, dword [esp + 0x44]
mov ebp, esi
mov esi, ecx
xor esi, edi
and dword [esp + 0x34], edi
and edi, dword [esp + 0x30]
mov edx, eax
xor edx, ecx
and dword [esp + 0x50], edx
and edx, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
and dword [esp + 8], eax
and eax, dword [esp + 0x14]
and dword [esp + 0x24], ecx
and ecx, dword [esp + 0x68]
mov dword [esp + 0x30], ecx
mov ecx, ebx
xor ecx, esi
and dword [esp + 0xc], esi
and esi, dword [esp + 0x2c]
and dword [esp + 0x3c], ecx
and ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
and dword [esp + 0x18], ebx
and ebx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
xor edi, ebp
mov dword [esp + 0x28], edi
xor ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
xor eax, edx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
xor ebx, ecx
xor edx, ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x50]
xor ecx, edi
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0xc]
xor edx, edi
mov edi, dword [esp + 0x3c]
xor dword [esp + 0x18], edi
xor edx, edi
mov dword [esp + 0xc], edx
xor dword [esp + 0x20], eax
xor ebx, ecx
mov edi, dword [esp + 0x30]
xor edi, ebx
xor ebx, eax
xor esi, dword [esp + 0x2c]
xor ebx, esi
mov eax, dword [esp + 8]
xor esi, eax
mov edx, dword [esp + 0x18]
xor edx, esi
xor esi, ebp
mov ecx, dword [esp + 0xc]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
xor eax, esi
xor esi, ecx
mov dword [esp + 0x18], esi
xor edi, edx
mov dword [esp + 0x30], edi
xor edx, dword [esp + 0x20]
mov ebp, edx
mov edx, dword [esp + 0x10]
xor edx, eax
xor eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x2c]
mov eax, 0xffff
and edx, eax
mov dword [esp + 0x10], edx
mov esi, edx
mov edi, dword [esp + 8]
xor esi, edi
mov dword [esp + 0x34], esi
xor ecx, edi
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
xor esi, edx
xor ecx, edx
mov dword [esp + 0x14], ecx
and ebx, eax
mov ecx, ebx
shr ecx, 8
xor ecx, ebx
mov eax, 0xcc
and ecx, eax
mov edx, 0xcc
mov edi, ecx
shl edi, 8
or edi, ecx
xor edi, ebx
mov eax, edi
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, edi
mov ebx, 0x5555
and edi, ebx
or edi, eax
shr ecx, 4
mov eax, 0xaaa
and ecx, eax
or edi, ecx
mov dword [esp + 8], edi
mov ebx, 0xffff
and ebp, ebx
mov eax, ebp
shr eax, 8
xor eax, ebp
and eax, edx
mov edx, eax
shl edx, 8
or edx, eax
xor edx, ebp
mov eax, edx
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, edx
mov edi, 0x5555
and edx, edi
or edx, eax
shr ecx, 4
mov ebp, 0xaaa
and ecx, ebp
or edx, ecx
mov dword [esp + 0x50], edx
mov ecx, esi
and ecx, ebx
mov esi, 0xffff
mov eax, ecx
shr eax, 8
xor eax, ecx
mov edx, 0xcc
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
mov ebx, 0x5555
and edi, ebx
or edi, eax
shr ecx, 4
and ecx, ebp
or edi, ecx
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x1c]
and ecx, esi
mov eax, ecx
shr eax, 8
xor eax, ecx
and eax, edx
mov esi, eax
shl esi, 8
or esi, eax
xor esi, ecx
mov eax, esi
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, esi
mov edi, 0x5555
and esi, edi
or esi, eax
shr ecx, 4
mov edx, 0xaaa
and ecx, edx
or esi, ecx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 8
xor eax, ecx
mov esi, 0xcc
and eax, esi
mov ebx, eax
shl ebx, 8
or ebx, eax
xor ebx, ecx
mov eax, ebx
and eax, 0xfffffffa
shl eax, 0xc
mov ecx, ebx
and ebx, edi
mov edi, 0x5555
or ebx, eax
shr ecx, 4
and ecx, edx
or ebx, ecx
mov eax, dword [esp + 0x14]
mov ecx, 0xffff
and eax, ecx
mov ecx, eax
shr ecx, 8
xor ecx, eax
mov edx, eax
and ecx, esi
mov ebp, 0xcc
mov eax, ecx
shl eax, 8
or eax, ecx
xor eax, edx
mov ecx, eax
and ecx, 0xfffffffa
shl ecx, 0xc
mov edx, eax
and eax, edi
or eax, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
or eax, edx
mov esi, dword [esp + 0x34]
mov ecx, 0xffff
and esi, ecx
mov ecx, esi
shr ecx, 8
xor ecx, esi
and ecx, ebp
mov edi, ecx
shl edi, 8
or edi, ecx
xor edi, esi
mov ecx, edi
and ecx, 0xfffffffa
shl ecx, 0xc
mov edx, edi
mov esi, 0x5555
and edi, esi
or edi, ecx
shr edx, 4
mov ecx, 0xaaa
and edx, ecx
or edi, edx
mov ecx, dword [esp + 0x18]
mov edx, 0xffff
and ecx, edx
mov edx, ecx
shr edx, 8
xor edx, ecx
mov ebp, ecx
mov ecx, 0xcc
and edx, ecx
mov ecx, edx
shl ecx, 8
or ecx, edx
xor ecx, ebp
mov edx, ecx
and edx, 0xfffffffa
shl edx, 0xc
mov esi, ecx
mov ebp, 0x5555
and ecx, ebp
or ecx, edx
shr esi, 4
mov edx, 0xaaa
and esi, edx
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 8]
xor bp, word [edx]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x50]
xor bp, word [edx + 2]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0xc]
xor bp, word [edx + 4]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x1c]
xor bp, word [edx + 6]
xor bx, word [edx + 8]
xor ax, word [edx + 0xa]
xor di, word [edx + 0xc]
or ecx, esi
xor cx, word [edx + 0xe]
shl eax, 0x10
movzx edx, bp
or edx, eax
shld ecx, edx, 0x10
shl edx, 0x10
movzx esi, word [esp + 0x50]
shl ebx, 0x10
movzx eax, word [esp + 0xc]
or eax, ebx
shld edi, eax, 0x10
mov ebx, esi
or ebx, edx
mov dword [esp + 0x10], ebx
shl eax, 0x10
movzx edx, word [esp + 8]
or edx, eax
mov esi, edx
shr esi, 8
mov ebp, edi
shr ebp, 8
xor ebp, ecx
xor esi, ebx
mov eax, 0xff00ff
and esi, eax
and ebp, eax
mov eax, esi
shl eax, 8
xor eax, edx
mov edx, eax
mov dword [esp + 0xc], eax
mov ebx, ebp
shl ebx, 8
xor ebx, edi
mov eax, ebx
shl eax, 4
xor eax, edx
mov edx, 0xf0f0f0f0
and eax, edx
mov edx, 0x10000001
mul edx
mov edi, eax
mov dword [esp + 8], edx
xor esi, dword [esp + 0x10]
xor ebp, ecx
mov eax, ebp
shl eax, 4
xor eax, esi
mov ecx, 0xf0f0f0f0
and eax, ecx
mov ecx, 0x10000001
mul ecx
mov ecx, dword [esp + 8]
xor ecx, ebx
xor edi, dword [esp + 0xc]
xor edx, ebp
xor eax, esi
mov esi, edi
shr esi, 0xe
mov dword [esp + 8], ecx
mov ebx, ecx
shr ebx, 0xe
xor ebx, ecx
xor esi, edi
mov ecx, 0xcccc
and esi, ecx
and ebx, ecx
mov ecx, ebx
shl ecx, 0xe
add ecx, ebx
mov ebp, esi
shl ebp, 0xe
add ebp, esi
xor ebp, edi
xor ecx, dword [esp + 8]
mov ebx, eax
shr ebx, 0xe
mov edi, edx
shr edi, 0xe
xor edi, edx
xor ebx, eax
mov esi, 0xcccc
and ebx, esi
and edi, esi
mov esi, edi
shl esi, 0xe
add esi, edi
mov edi, ebx
shl edi, 0xe
add edi, ebx
xor edi, eax
xor esi, edx
mov edx, ebp
shr edx, 7
xor edx, ebp
mov ebx, 0xaa00aa
and edx, ebx
mov eax, edx
shl eax, 7
add eax, edx
mov edx, ecx
shr edx, 7
xor edx, ecx
and edx, ebx
xor eax, ebp
mov ebp, dword [esp + 0x80]
mov byte [ebp - 0x34], al
mov byte [ebp - 0x33], ah
mov ebx, eax
shr ebx, 0x10
mov byte [ebp - 0x32], bl
mov ebx, edx
shl ebx, 7
add ebx, edx
xor ebx, ecx
mov ecx, edi
shr ecx, 7
xor ecx, edi
mov edx, 0xaa00aa
and ecx, edx
shr eax, 0x18
mov byte [ebp - 0x31], al
mov byte [ebp - 0x30], bl
mov byte [ebp - 0x2f], bh
mov eax, ebx
shr eax, 0x10
mov byte [ebp - 0x2e], al
mov eax, ecx
shl eax, 7
add eax, ecx
xor eax, edi
mov edi, 0xff00ff
mov ecx, esi
shr ecx, 7
xor ecx, esi
and ecx, edx
shr ebx, 0x18
mov byte [ebp - 0x2d], bl
mov byte [ebp - 0x2c], al
mov byte [ebp - 0x2b], ah
mov edx, eax
shr edx, 0x10
mov byte [ebp - 0x2a], dl
mov edx, ecx
shl edx, 7
add edx, ecx
xor edx, esi
shr eax, 0x18
mov byte [ebp - 0x29], al
mov byte [ebp - 0x28], dl
mov byte [ebp - 0x27], dh
mov eax, edx
shr eax, 0x10
mov byte [ebp - 0x26], al
shr edx, 0x18
mov byte [ebp - 0x25], dl
mov eax, dword [esp + 0x7c]
movdqu xmm0, xmmword [eax]
mov esi, dword [esp + 0x88]
movdqu xmmword [esi], xmm0
add esi, 0x10
cmp esi, dword [esp + 0x6c]
jb 0x43177a
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret