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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x15c
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x170]
test edi, edi
jle 0x43521c
mov ecx, dword [esp + 0x4c]
lea eax, [ecx - 0x308]
mov dword [esp + 0x64], eax
lea ebp, [ecx - 0x34]
lea eax, [ecx - 0x24]
lea ebx, [ecx - 4]
mov dword [esp + 0x54], eax
movd xmm0, eax
pshufd xmm2, xmm0, 0x50
movdqa xmm1, xmmword [0x49b690]
paddd xmm1, xmm2
movdqu xmmword [esp + 0x130], xmm1
movdqa xmm1, xmmword [0x49b6a0]
paddd xmm1, xmm2
movdqu xmmword [esp + 0x120], xmm1
movdqa xmm1, xmmword [0x49b6b0]
paddd xmm1, xmm2
movdqu xmmword [esp + 0x110], xmm1
movd xmm1, ecx
pshufd xmm1, xmm1, 0x50
movdqa xmm3, xmmword [0x49b6c0]
paddd xmm3, xmm1
movdqu xmmword [esp + 0xf0], xmm3
lea eax, [ecx - 0x1c]
movd xmm3, eax
punpckldq xmm3, xmm0
movdqu xmmword [esp + 0xe0], xmm3
movdqa xmm0, xmmword [0x49b6d0]
paddd xmm0, xmm2
movdqu xmmword [esp + 0xd0], xmm0
movdqa xmm0, xmmword [0x49b6e0]
paddd xmm0, xmm2
movdqu xmmword [esp + 0xc0], xmm0
movdqa xmm0, xmmword [0x49b6f0]
paddd xmm0, xmm1
movdqu xmmword [esp + 0xb0], xmm0
movdqa xmm0, xmmword [0x49b700]
paddd xmm0, xmm2
movdqu xmmword [esp + 0xa0], xmm0
movdqa xmm0, xmmword [0x49b710]
paddd xmm0, xmm2
movdqu xmmword [esp + 0x90], xmm0
movdqa xmm0, xmmword [0x49b720]
paddd xmm0, xmm2
movdqu xmmword [esp + 0x80], xmm0
paddd xmm1, xmmword [0x49b730]
movdqu xmmword [esp + 0x100], xmm1
paddd xmm2, xmmword [0x49b740]
movdqu xmmword [esp + 0x140], xmm2
add edi, edx
lea eax, [ecx - 0x2e8]
mov dword [esp + 0x5c], eax
mov eax, dword [ecx - 4]
add ecx, 0xffffffeb
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x60], ebx
cmp eax, ebx
jne 0x4351f4
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
xor edx, edx
mov esi, ebp
mov edi, dword [esi]
bswap edi
mov dword [eax + edx*4 - 3], edi
dec edx
add esi, 4
cmp edx, 0xfffffffc
jne 0x433f25
xor edx, edx
xor esi, esi
inc esi
xor ebx, ebx
add dword [ebp + edx*4], esi
setb bl
inc edx
mov esi, ebx
cmp edx, 4
jne 0x433f3b
add ecx, 0x10
add eax, 0x10
mov ebx, dword [esp + 0x60]
cmp ecx, ebx
jb 0x433f21
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ecx - 0x1d]
mov edi, ecx
shl eax, 0x18
movdqu xmm0, xmmword [esp + 0xe0]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm2, xmm0, 0x55
movd edx, xmm2
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm2, edx
pxor xmm7, xmm7
punpcklbw xmm2, xmm7
punpcklwd xmm2, xmm7
punpckldq xmm2, xmm7
movdqu xmm0, xmmword [esp + 0x130]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm3, xmm0, 0x55
movd edx, xmm3
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm3, edx
punpcklbw xmm3, xmm7
punpcklwd xmm3, xmm7
punpckldq xmm3, xmm7
psllq xmm3, 8
por xmm3, xmm2
movdqu xmm0, xmmword [esp + 0x120]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm2, xmm0, 0x55
movd edx, xmm2
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm4, edx
punpcklbw xmm4, xmm7
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm7
psllq xmm4, 0x10
movdqu xmm0, xmmword [esp + 0x110]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm2, xmm0, 0x55
movd edx, xmm2
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm2, edx
punpcklbw xmm2, xmm7
punpcklwd xmm2, xmm7
punpckldq xmm2, xmm7
psllq xmm2, 0x18
por xmm2, xmm4
por xmm2, xmm3
movdqu xmm0, xmmword [esp + 0xf0]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm3, xmm0, 0x55
movd edx, xmm3
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm3, edx
punpcklbw xmm3, xmm7
punpcklwd xmm3, xmm7
pxor xmm4, xmm4
punpckldq xmm4, xmm3
movdqu xmm0, xmmword [esp + 0xd0]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm3, xmm0, 0x55
movd edx, xmm3
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm3, edx
punpcklbw xmm3, xmm7
punpcklwd xmm3, xmm7
pshufd xmm3, xmm3, 0xd4
psllq xmm3, 0x28
por xmm3, xmm4
movdqu xmm0, xmmword [esp + 0xc0]
movd ecx, xmm0
movzx ecx, byte [ecx]
pshufd xmm4, xmm0, 0x55
movd edx, xmm4
movzx edx, byte [edx]
shl edx, 8
or edx, ecx
movd xmm4, edx
punpcklbw xmm4, xmm7
punpcklwd xmm4, xmm7
pshufd xmm4, xmm4, 0xd4
psllq xmm4, 0x30
por xmm4, xmm3
por xmm4, xmm2
movzx ecx, byte [edi - 0x15]
shl ecx, 0x18
movd xmm2, eax
movd xmm3, ecx
shufps xmm3, xmm2, 0x11
orps xmm3, xmm4
movaps xmm2, xmm3
psrlq xmm2, 7
pxor xmm2, xmm4
movdqa xmm0, xmmword [0x49b4d0]
pand xmm2, xmm0
movdqa xmm4, xmm2
psllq xmm4, 7
por xmm4, xmm2
pxor xmm4, xmm3
movdqa xmm2, xmm4
psrlq xmm2, 0xe
pxor xmm2, xmm4
movdqa xmm0, xmmword [0x49b4e0]
pand xmm2, xmm0
movdqa xmm5, xmm2
psllq xmm5, 0xe
por xmm5, xmm2
pxor xmm5, xmm4
movdqa xmm2, xmm5
psrlq xmm2, 0x1c
pxor xmm2, xmm5
movdqa xmm0, xmmword [0x49b4f0]
pand xmm2, xmm0
movdqa xmm3, xmm2
psllq xmm3, 0x1c
por xmm3, xmm2
pxor xmm3, xmm5
pshufd xmm2, xmm3, 0xff
movd eax, xmm2
pshufd xmm2, xmm3, 0xee
movd ecx, xmm2
shr ecx, 8
shr eax, 8
movd edx, xmm3
xor edx, ecx
pshufd xmm2, xmm3, 0x55
movd ecx, xmm2
xor ecx, eax
mov eax, 0xff00ff
and edx, eax
and ecx, eax
movd xmm4, ecx
shld ecx, edx, 8
movd xmm2, edx
shl edx, 8
punpckldq xmm2, xmm4
movd xmm4, ecx
movd xmm5, edx
punpckldq xmm5, xmm4
punpcklqdq xmm2, xmm5
pxor xmm2, xmm3
pshufd xmm3, xmm2, 0xff
movd ecx, xmm3
pshufd xmm3, xmm2, 0xee
movd dword [esp + 0x1c], xmm3
pextrw eax, xmm2, 4
mov dword [esp + 4], eax
pshufd xmm3, xmm2, 0x55
movd edx, xmm3
movzx esi, byte [edi - 0xe]
shl esi, 0x10
movdqu xmm0, xmmword [esp + 0xb0]
movd ebx, xmm0
movzx ebx, byte [ebx]
pshufd xmm3, xmm0, 0x55
movd ebp, xmm3
movzx ebp, byte [ebp]
shl ebp, 8
or ebp, ebx
movd xmm3, ebp
movdqu xmm0, xmmword [esp + 0xa0]
movd ebx, xmm0
movzx ebx, byte [ebx]
pshufd xmm4, xmm0, 0x55
movd ebp, xmm4
movzx ebp, byte [ebp]
shl ebp, 8
or ebp, ebx
movd xmm4, ebp
movdqu xmm0, xmmword [esp + 0x90]
movd ebx, xmm0
movzx ebx, byte [ebx]
pshufd xmm5, xmm0, 0x55
movd ebp, xmm5
movzx ebp, byte [ebp]
shl ebp, 8
or ebp, ebx
movd xmm5, ebp
movdqu xmm0, xmmword [esp + 0x80]
movd ebx, xmm0
movzx ebx, byte [ebx]
pshufd xmm6, xmm0, 0x55
movd ebp, xmm6
movzx ebp, byte [ebp]
shl ebp, 8
or ebp, ebx
movd xmm6, ebp
movdqu xmm0, xmmword [esp + 0x100]
movd ebx, xmm0
movzx ebx, byte [ebx]
pshufd xmm0, xmm0, 0x55
movd ebp, xmm0
movzx ebp, byte [ebp]
shl ebp, 8
or ebp, ebx
movdqu xmm1, xmmword [esp + 0x140]
pshufd xmm0, xmm1, 0x55
movd ebx, xmm0
movd xmm0, ebp
movd ebp, xmm1
movzx ebp, byte [ebp]
movzx ebx, byte [ebx]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [edi - 0xd]
punpcklbw xmm3, xmm7
punpcklwd xmm3, xmm7
punpckldq xmm3, xmm7
punpcklbw xmm4, xmm7
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm7
psllq xmm4, 8
por xmm4, xmm3
punpcklbw xmm5, xmm7
punpcklwd xmm5, xmm7
punpckldq xmm5, xmm7
psllq xmm5, 0x10
punpcklbw xmm6, xmm7
punpcklwd xmm6, xmm7
punpckldq xmm6, xmm7
psllq xmm6, 0x18
por xmm6, xmm5
por xmm6, xmm4
punpcklbw xmm0, xmm7
punpcklwd xmm0, xmm7
pxor xmm3, xmm3
punpckldq xmm3, xmm0
movd xmm0, ebx
punpcklbw xmm0, xmm7
punpcklwd xmm0, xmm7
pshufd xmm0, xmm0, 0xd4
psllq xmm0, 0x28
por xmm0, xmm3
movzx ebx, byte [edi - 6]
shl ebx, 0x10
movd xmm3, esi
movd xmm4, ebx
shufps xmm4, xmm3, 0x11
orps xmm4, xmm0
orps xmm4, xmm6
movzx esi, byte [edi - 5]
movd xmm0, ebp
movd xmm3, esi
punpcklqdq xmm3, xmm0
psllq xmm3, 0x38
por xmm3, xmm4
movdqa xmm0, xmm3
psrlq xmm0, 7
pxor xmm0, xmm4
pand xmm0, xmmword [0x49b4d0]
movdqa xmm4, xmm0
psllq xmm4, 7
por xmm4, xmm0
pxor xmm4, xmm3
movdqa xmm0, xmm4
psrlq xmm0, 0xe
pxor xmm0, xmm4
pand xmm0, xmmword [0x49b4e0]
movdqa xmm3, xmm0
psllq xmm3, 0xe
por xmm3, xmm0
pxor xmm3, xmm4
movdqa xmm0, xmm3
psrlq xmm0, 0x1c
pxor xmm0, xmm3
pand xmm0, xmmword [0x49b4f0]
movdqa xmm4, xmm0
psllq xmm4, 0x1c
por xmm4, xmm0
pxor xmm4, xmm3
pshufd xmm0, xmm4, 0xff
movd esi, xmm0
pshufd xmm0, xmm4, 0xee
movd ebx, xmm0
shr ebx, 8
shr esi, 8
movd ebp, xmm4
xor ebp, ebx
pshufd xmm0, xmm4, 0x55
movd eax, xmm0
xor eax, esi
movd edi, xmm2
mov esi, 0xff00ff
and ebp, esi
and eax, esi
movd xmm0, eax
shld eax, ebp, 8
movd xmm5, eax
pextrw esi, xmm2, 3
movd xmm3, ebp
shl ebp, 8
movd xmm6, ebp
pextrw eax, xmm2, 7
punpckldq xmm3, xmm0
mov ebp, 0xffff
and ecx, ebp
punpckldq xmm6, xmm5
punpcklqdq xmm3, xmm6
pxor xmm3, xmm4
pshufd xmm0, xmm3, 0xee
movd xmm2, eax
movd ebp, xmm0
movd xmm0, esi
movd esi, xmm3
movdqa xmm4, xmm3
psrlq xmm4, 0x10
shufps xmm3, xmm4, 0x8d
movd xmm4, ecx
mov eax, 0xffff
and edx, eax
punpckldq xmm0, xmm2
movd xmm2, edx
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
andps xmm3, xmmword [0x49b750]
por xmm0, xmm3
mov eax, dword [esp + 0x4c]
movdqu xmm2, xmmword [eax - 0x2f8]
pshufd xmm2, xmm2, 0x1b
pxor xmm2, xmm0
mov eax, dword [esp + 0x1c]
shr eax, 0x10
mov edx, ebp
shl edx, 0x10
add edx, dword [esp + 4]
mov ebx, edi
mov ecx, 0xffff
and ebx, ecx
shr edi, 0x10
mov ecx, 0xffff0000
and ebp, ecx
or ebp, eax
mov eax, esi
shl eax, 0x10
or eax, ebx
and esi, ecx
or esi, edi
mov edi, eax
mov eax, dword [esp + 0x4c]
xor edx, dword [eax - 0x308]
xor edi, dword [eax - 0x304]
xor ebp, dword [eax - 0x300]
mov ebx, ebp
xor esi, dword [eax - 0x2fc]
mov eax, dword [eax - 0x38]
mov ecx, eax
dec ecx
mov dword [esp + 4], edx
je 0x434b31
mov dword [esp + 0x50], eax
pshufd xmm3, xmm2, 0x1b
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
movdqa xmm1, xmmword [0x49b760]
movdqa xmm7, xmmword [str.UUUUUUUUUUUUUUUU]
mov dword [esp + 0x58], ecx
movd eax, xmm3
mov dword [esp + 0x20], eax
mov ecx, ebx
xor eax, ebx
mov edx, eax
mov dword [esp + 0x34], eax
pshufd xmm0, xmm3, 0xff
movd ebp, xmm0
mov ebx, ebp
mov dword [esp + 0xc], edi
xor ebx, edi
mov edi, ebx
mov dword [esp + 0x48], ebx
mov ebx, ebp
mov dword [esp + 0x28], ebp
xor ebx, ecx
mov dword [esp + 0x2c], ebx
mov ebx, ecx
pshufd xmm0, xmm3, 0x55
pshufd xmm2, xmm3, 0xee
movd ecx, xmm0
movd eax, xmm2
xor ecx, eax
mov dword [esp + 0x18], ecx
xor edi, edx
mov dword [esp + 0x3c], edi
xor esi, edi
xor ebx, esi
mov dword [esp + 0x1c], ebx
xor esi, eax
xor ebp, dword [esp + 0x20]
xor ebx, ecx
mov edx, esi
xor edx, ebp
mov dword [esp + 0x7c], ebp
mov ecx, ebx
mov dword [esp + 8], ebx
xor ecx, edx
mov dword [esp + 0x38], ecx
mov eax, edx
mov dword [esp + 0x10], edx
and eax, ebp
mov ebp, dword [esp + 0xc]
and ecx, dword [esp + 0x34]
xor ecx, eax
mov dword [esp + 0x30], ecx
mov edi, ebx
mov ecx, dword [esp + 0x2c]
and edi, ecx
xor edi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 4]
xor edx, eax
mov dword [esp + 0x14], edx
xor ebp, edx
mov dword [esp + 0xc], ebp
xor ebp, ecx
mov dword [esp + 0x78], ebp
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
xor ecx, eax
mov dword [esp + 0x24], ecx
and ebx, dword [esp + 0x3c]
and ecx, ebp
xor esi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x20]
xor ecx, edx
mov dword [esp + 0x20], ecx
and ecx, dword [esp + 4]
xor ecx, dword [esp + 0x2c]
xor ecx, dword [esp + 8]
xor ecx, ebx
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0xc]
and edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
or eax, ebx
xor eax, edx
mov edx, dword [esp + 0x30]
xor esi, edx
xor eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
xor edx, ebp
mov dword [esp + 0x44], edx
mov edx, ebx
not edx
and edx, dword [esp + 0x18]
xor edx, ebp
mov ebx, dword [esp + 0x10]
xor ebx, dword [esp + 4]
mov dword [esp + 0x28], ebx
and ebx, dword [esp + 0x44]
xor ecx, edi
xor edi, ebx
xor edi, edx
mov ebp, esi
xor ebp, ecx
and esi, eax
mov ebx, esi
xor ebx, edi
mov edx, ebx
and edx, ebp
xor edx, ecx
mov dword [esp + 0x30], edx
mov edx, edi
xor edx, eax
xor ecx, esi
and ecx, edx
mov edx, ecx
xor ecx, esi
xor edx, edi
and ecx, edi
xor eax, ecx
xor ecx, ebx
mov ebx, dword [esp + 0x30]
and ecx, ebx
xor ecx, ebp
and dword [esp + 0x1c], eax
mov esi, eax
and eax, dword [esp + 0x3c]
mov edi, edx
xor esi, edx
mov ebp, ecx
xor ebp, esi
and dword [esp + 0x24], esi
and esi, dword [esp + 0x78]
mov edx, ebx
xor edx, edi
and dword [esp + 4], edi
and edi, dword [esp + 0x20]
mov dword [esp + 0x20], edi
mov edi, ecx
xor edi, ebx
and dword [esp + 0x18], edi
and edi, dword [esp + 0x48]
and dword [esp + 0x14], ecx
and ecx, dword [esp + 0xc]
and dword [esp + 0x28], ebx
and ebx, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
mov ebx, ebp
xor ebx, edx
and dword [esp + 0x10], edx
and edx, dword [esp + 0x7c]
and dword [esp + 0x38], ebx
and ebx, dword [esp + 0x34]
mov dword [esp + 0x34], ebx
and dword [esp + 8], ebp
and ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], ebp
xor dword [esp + 0x20], esi
xor esi, eax
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x28]
xor ecx, eax
mov ebx, edi
mov ebp, dword [esp + 4]
xor ebx, ebp
xor eax, ebp
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x1c]
xor ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
xor dword [esp + 8], esi
xor eax, esi
mov dword [esp + 0x10], eax
xor edi, ecx
xor ebx, ebp
mov esi, dword [esp + 0x30]
xor esi, ebx
xor ebx, ecx
mov ebp, dword [esp + 0x34]
xor edx, ebp
xor ebx, edx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x14]
xor edx, ecx
mov eax, dword [esp + 8]
xor eax, edx
xor edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
xor ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
xor ecx, edx
xor edx, ebx
mov dword [esp + 0x10], edx
xor esi, eax
mov edx, esi
xor eax, edi
mov dword [esp + 8], eax
mov esi, dword [esp + 0x1c]
xor esi, ecx
xor ecx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0xc]
xor eax, ebp
mov ecx, esi
movd xmm2, esi
mov esi, dword [esp + 0x14]
xor ecx, esi
xor eax, esi
mov ebx, dword [esp + 0x20]
xor ebx, edx
xor eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov edx, eax
shr edx, 8
xor edx, eax
mov esi, 0xcc00cc
and edx, esi
mov ebp, edx
shl ebp, 8
or ebp, edx
xor ebp, eax
mov edx, ebp
shl edx, 0xc
mov eax, 0xa000a000
and edx, eax
mov edi, 0xa000a000
mov esi, ebp
mov eax, 0x55555555
and ebp, eax
or ebp, edx
shr esi, 4
mov eax, 0xaaa0aaa
and esi, eax
or ebp, esi
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 8]
mov esi, eax
shr esi, 8
xor esi, eax
mov edx, 0xcc00cc
and esi, edx
mov edx, esi
shl edx, 8
or edx, esi
xor edx, eax
mov esi, edx
shl esi, 0xc
and esi, edi
mov edi, edx
mov eax, 0x55555555
and edx, eax
or edx, esi
shr edi, 4
mov ebp, 0xaaa0aaa
and edi, ebp
or edx, edi
mov eax, ebx
mov dword [esp + 0x20], ebx
mov esi, ebx
shr esi, 8
xor esi, ebx
mov edi, 0xcc00cc
and esi, edi
mov ebx, esi
shl ebx, 8
or ebx, esi
xor ebx, eax
mov esi, ebx
shl esi, 0xc
mov eax, 0xa000a000
and esi, eax
mov edi, ebx
mov eax, 0x55555555
and ebx, eax
or ebx, esi
shr edi, 4
and edi, ebp
or ebx, edi
movd xmm5, dword [esp + 0xc]
movd xmm3, ecx
movd xmm6, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
mov esi, edi
shr esi, 8
xor esi, edi
mov eax, 0xcc00cc
and esi, eax
mov ecx, esi
shl ecx, 8
or ecx, esi
xor ecx, edi
mov eax, edi
mov esi, ecx
shl esi, 0xc
mov edi, 0xa000a000
and esi, edi
mov edi, ecx
mov ebp, 0x55555555
and ecx, ebp
or ecx, esi
shr edi, 4
mov esi, 0xaaa0aaa
and edi, esi
or ecx, edi
mov esi, 0xf1111111
mov edi, dword [esp + 4]
and edi, esi
mov esi, dword [esp + 0x18]
shr esi, 1
mov ebp, 0x77777777
and esi, ebp
lea esi, [esi + edi*8]
mov dword [esp + 0x14], esi
mov ebp, dword [esp + 8]
mov esi, 0xf1111111
and ebp, esi
mov esi, edx
shr esi, 1
mov edi, 0x77777777
and esi, edi
lea esi, [esi + ebp*8]
mov dword [esp + 0xc], esi
mov ebp, dword [esp + 0x20]
mov esi, 0xf1111111
and ebp, esi
mov esi, ebx
shr esi, 1
mov edi, 0x77777777
and esi, edi
mov edi, 0x77777777
lea esi, [esi + ebp*8]
mov dword [esp + 8], esi
mov esi, 0xf1111111
and eax, esi
mov esi, ecx
shr esi, 1
and esi, edi
lea esi, [esi + eax*8]
movd xmm4, esi
xor ecx, esi
mov ebp, dword [esp + 0x18]
xor ebp, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov esi, ebp
and esi, 0xf3333333
mov edi, ebp
shr edi, 2
mov eax, 0x33333333
and edi, eax
lea eax, [edi + esi*4]
mov dword [esp + 4], eax
xor ebx, dword [esp + 8]
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 0xc]
xor esi, ecx
xor esi, ebx
mov edi, ebx
and ebx, 0xf3333333
shr edi, 2
mov ebp, 0x33333333
and edi, ebp
lea edi, [edi + ebx*4]
xor edx, dword [esp + 0xc]
xor edi, edx
mov dword [esp + 0x1c], edi
mov edi, edx
and edx, 0xf3333333
shr edi, 2
mov ebx, 0x33333333
and edi, ebx
lea edx, [edi + edx*4]
punpckldq xmm3, xmm5
punpckldq xmm2, xmm6
punpcklqdq xmm3, xmm2
movdqa xmm0, xmm3
psrld xmm0, 8
pxor xmm0, xmm3
pand xmm0, xmmword [0x49b630]
movdqa xmm5, xmm0
pslld xmm5, 8
por xmm5, xmm0
pxor xmm5, xmm3
movdqa xmm0, xmm5
psrld xmm0, 4
pand xmm0, xmm1
movdqa xmm2, xmm5
pslld xmm2, 0xc
pand xmm2, xmmword [0x49b770]
pand xmm5, xmm7
por xmm5, xmm2
por xmm5, xmm0
pslld xmm3, 3
pand xmm3, xmmword [0x49b780]
movdqa xmm0, xmm5
psrld xmm0, 1
pand xmm0, xmmword [0x49b790]
por xmm0, xmm3
pxor xmm5, xmm0
pshufd xmm2, xmm5, 0xff
movd edi, xmm2
mov ebx, edi
and ebx, 0xf3333333
shr edi, 2
mov ebp, 0x33333333
and edi, ebp
lea edi, [edi + ebx*4]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
xor edi, dword [eax]
mov ebx, dword [esp + 4]
xor ebx, ecx
xor ebx, edi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
xor edi, ecx
xor edi, edx
mov edx, dword [esp + 0x18]
xor edx, dword [eax + 4]
xor edi, edx
movd xmm3, ecx
xor ecx, dword [eax + 0x10]
pshufd xmm2, xmm0, 0xff
movd xmm6, ecx
mov ecx, dword [esp + 0x58]
movd edx, xmm2
punpcklqdq xmm3, xmm5
shufps xmm3, xmm5, 0x98
movaps xmm2, xmm3
pslld xmm2, 2
pand xmm2, xmmword [0x49b7a0]
psrld xmm3, 2
pand xmm3, xmmword [0x49b7b0]
por xmm3, xmm2
shufps xmm6, xmm0, 0xd4
punpckldq xmm4, xmm0
shufps xmm4, xmm6, 0x24
movss xmm2, dword [eax + 0x14]
shufps xmm0, xmm2, 0x4e
movsd xmm2, qword [eax + 0x18]
shufps xmm2, xmm0, 0x21
xorps xmm2, xmm4
mov ebp, dword [esp + 8]
xor ebp, dword [eax + 8]
xorps xmm2, xmm5
xor ebx, ebp
xor esi, edx
xor esi, dword [esp + 0x10]
xorps xmm2, xmm3
pshufd xmm3, xmm2, 0x1b
add eax, 0x20
mov dword [esp + 0x40], eax
dec ecx
jne 0x43455b
mov eax, dword [esp + 0x50]
shl eax, 5
add eax, dword [esp + 0x64]
jmp 0x434b35
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
pshufd xmm0, xmm2, 0xff
movd ecx, xmm0
mov dword [esp + 0x2c], ecx
mov eax, ebx
xor eax, ecx
mov dword [esp + 0x34], eax
movd ecx, xmm2
mov dword [esp + 0xc], edi
mov edx, edi
xor edx, ecx
mov dword [esp + 0x44], edx
mov ebp, ecx
mov dword [esp + 0x24], ecx
pshufd xmm0, xmm2, 0x55
pshufd xmm2, xmm2, 0xee
movd ecx, xmm0
mov dword [esp + 8], ecx
movd edi, xmm2
xor edi, ecx
mov dword [esp + 0x10], edi
mov ecx, edx
xor ecx, eax
mov dword [esp + 0x14], ecx
xor esi, ecx
mov eax, ebx
xor ebx, esi
mov dword [esp + 0x1c], ebx
xor esi, dword [esp + 8]
xor eax, ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 4]
xor eax, edi
mov dword [esp + 0x18], eax
mov edx, eax
mov ecx, dword [esp + 0x2c]
xor edx, ecx
mov dword [esp + 0x38], edx
xor ecx, ebp
mov edx, ecx
mov eax, ebx
mov ebp, ebx
xor eax, edi
mov ecx, esi
mov dword [esp + 0x2c], edx
xor ecx, edx
mov dword [esp + 8], ecx
mov ebx, eax
mov edi, eax
mov dword [esp + 0x20], eax
xor ebx, ecx
mov dword [esp + 0x3c], ebx
mov eax, ecx
and eax, edx
and ebx, dword [esp + 0x34]
xor ebx, eax
mov ecx, dword [esp + 0x30]
and edi, ecx
xor edi, eax
mov edx, dword [esp + 0xc]
xor edx, dword [esp + 0x18]
mov dword [esp + 0xc], edx
xor edx, ecx
mov dword [esp + 0x48], edx
mov edx, ebp
mov ecx, ebp
mov ebp, dword [esp + 4]
xor ecx, ebp
mov dword [esp + 0x28], ecx
mov eax, edx
and eax, dword [esp + 0x14]
and ecx, dword [esp + 0x48]
xor esi, eax
xor esi, ecx
mov ecx, dword [esp + 0x38]
and ecx, ebp
xor ecx, dword [esp + 0x30]
xor ecx, dword [esp + 0x20]
xor ecx, eax
mov ebp, dword [esp + 0x10]
xor ebp, dword [esp + 8]
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0xc]
and edx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
or ebp, eax
xor ebp, edx
xor esi, ebx
xor ebp, ebx
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x24]
mov dword [esp + 0x40], edx
not eax
and eax, dword [esp + 0x10]
xor eax, dword [esp + 0x24]
mov edx, dword [esp + 8]
xor edx, dword [esp + 4]
mov dword [esp + 0x24], edx
and edx, dword [esp + 0x40]
xor ecx, edi
xor edi, edx
xor edi, eax
mov eax, esi
xor eax, ecx
mov dword [esp + 0x58], eax
and esi, ebp
mov edx, esi
xor edx, edi
mov ebx, edx
and ebx, eax
xor ebx, ecx
mov eax, edi
xor eax, ebp
xor ecx, esi
and ecx, eax
mov eax, ecx
xor ecx, esi
xor eax, edi
and ecx, edi
xor ebp, ecx
xor ecx, edx
and ecx, ebx
xor ecx, dword [esp + 0x58]
and dword [esp + 0x1c], ebp
mov esi, ebp
and ebp, dword [esp + 0x14]
xor esi, eax
mov edx, ecx
xor edx, esi
mov dword [esp + 0x14], edx
and dword [esp + 0x28], esi
and esi, dword [esp + 0x48]
mov edx, ebx
xor edx, eax
and dword [esp + 4], eax
and eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov edi, ecx
xor edi, ebx
and dword [esp + 0x10], edi
and edi, dword [esp + 0x44]
and dword [esp + 0x18], ecx
and ecx, dword [esp + 0xc]
and dword [esp + 0x24], ebx
and ebx, dword [esp + 0x40]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x14]
mov eax, ebx
xor eax, edx
and dword [esp + 8], edx
and edx, dword [esp + 0x2c]
and dword [esp + 0x3c], eax
and eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
and eax, ebx
and ebx, dword [esp + 0x30]
mov dword [esp + 0x14], ebx
xor dword [esp + 0x38], esi
xor esi, ebp
mov dword [esp + 0x30], esi
mov ebp, dword [esp + 0x24]
xor ecx, ebp
mov ebx, edi
mov esi, dword [esp + 4]
xor ebx, esi
xor ebp, esi
mov dword [esp + 0x24], ebp
mov esi, dword [esp + 0x10]
xor dword [esp + 0x1c], esi
mov ebp, dword [esp + 8]
xor ebp, esi
mov esi, dword [esp + 0x3c]
xor eax, esi
mov dword [esp + 0x20], eax
xor ebp, esi
mov esi, ebp
mov dword [esp + 8], ebp
xor edi, ecx
xor ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
xor eax, ebx
xor ebx, ecx
xor edx, dword [esp + 0x2c]
xor ebx, edx
mov ecx, dword [esp + 0x18]
xor edx, ecx
mov ebp, dword [esp + 0x20]
xor ebp, edx
xor edx, dword [esp + 0x30]
xor ecx, esi
mov esi, dword [esp + 0x28]
xor esi, edx
xor edx, dword [esp + 8]
mov dword [esp + 4], edx
xor eax, ebp
mov dword [esp + 0xc], eax
xor ebp, edi
mov eax, dword [esp + 0x1c]
xor eax, esi
mov dword [esp + 0x1c], eax
xor esi, dword [esp + 0x24]
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x2c]
xor eax, ecx
mov dword [esp + 8], eax
xor edx, ecx
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
xor esi, eax
xor edx, eax
mov dword [esp + 0x14], edx
mov edx, ebx
shr edx, 8
xor edx, ebx
mov ecx, 0xcc00cc
and edx, ecx
mov ecx, edx
shl ecx, 8
or ecx, edx
xor ecx, ebx
mov eax, ecx
shl eax, 0xc
mov edx, 0xa000a000
and eax, edx
mov edx, ecx
mov ebx, 0x55555555
and ecx, ebx
or ecx, eax
shr edx, 4
mov eax, 0xaaa0aaa
and edx, eax
or ecx, edx
mov dword [esp + 0x10], ecx
mov eax, ebp
shr eax, 8
xor eax, ebp
mov edi, 0xcc00cc
and eax, edi
mov ecx, eax
shl ecx, 8
or ecx, eax
xor ecx, ebp
mov eax, ecx
shl eax, 0xc
mov ebx, 0xa000a000
and eax, ebx
mov edx, ecx
mov ebp, 0x55555555
and ecx, ebp
or ecx, eax
mov eax, ecx
shr edx, 4
mov ecx, 0xaaa0aaa
and edx, ecx
or eax, edx
mov dword [esp + 0x20], eax
mov eax, esi
shr eax, 8
xor eax, esi
and eax, edi
mov edi, eax
shl edi, 8
or edi, eax
xor edi, esi
mov eax, edi
shl eax, 0xc
and eax, ebx
mov edx, edi
and edi, ebp
or edi, eax
shr edx, 4
and edx, ecx
or edi, edx
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x28]
mov eax, ecx
shr eax, 8
xor eax, ecx
mov ebx, 0xcc00cc
and eax, ebx
mov ebp, eax
shl ebp, 8
or ebp, eax
xor ebp, ecx
mov eax, ebp
shl eax, 0xc
mov esi, 0xa000a000
and eax, esi
mov edx, ebp
mov edi, 0x55555555
and ebp, edi
or ebp, eax
shr edx, 4
mov ecx, 0xaaa0aaa
and edx, ecx
or ebp, edx
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x1c]
mov eax, edx
shr eax, 8
xor eax, edx
and eax, ebx
mov ebx, eax
shl ebx, 8
or ebx, eax
xor ebx, edx
mov eax, ebx
shl eax, 0xc
and eax, esi
mov edx, ebx
and ebx, edi
mov esi, 0x55555555
or ebx, eax
shr edx, 4
and edx, ecx
or ebx, edx
mov ecx, dword [esp + 0x14]
mov eax, ecx
shr eax, 8
xor eax, ecx
mov edx, 0xcc00cc
and eax, edx
mov edi, eax
shl edi, 8
or edi, eax
xor edi, ecx
mov eax, edi
shl eax, 0xc
mov ecx, 0xa000a000
and eax, ecx
mov edx, edi
and edi, esi
mov esi, 0x55555555
or edi, eax
shr edx, 4
mov eax, 0xaaa0aaa
and edx, eax
or edi, edx
mov ecx, dword [esp + 8]
mov eax, ecx
shr eax, 8
xor eax, ecx
mov edx, 0xcc00cc
and eax, edx
mov ebp, 0xcc00cc
mov edx, eax
shl edx, 8
or edx, eax
xor edx, ecx
mov eax, edx
shl eax, 0xc
mov ecx, 0xa000a000
and eax, ecx
mov ecx, edx
and edx, esi
or edx, eax
shr ecx, 4
mov eax, 0xaaa0aaa
and ecx, eax
or edx, ecx
mov eax, dword [esp + 4]
mov ecx, eax
shr ecx, 8
xor ecx, eax
mov esi, eax
and ecx, ebp
mov eax, ecx
shl eax, 8
or eax, ecx
xor eax, esi
mov esi, eax
shl esi, 0xc
mov ecx, 0xa000a000
and esi, ecx
mov ecx, eax
mov ebp, 0x55555555
and eax, ebp
or eax, esi
shr ecx, 4
mov esi, 0xaaa0aaa
and ecx, esi
or eax, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x10]
xor esi, dword [ecx]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x20]
xor esi, dword [ecx + 4]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x24]
xor esi, dword [ecx + 8]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
xor esi, dword [ecx + 0xc]
mov dword [esp + 0x28], esi
xor ebx, dword [ecx + 0x10]
mov dword [esp + 0x2c], ebx
xor edi, dword [ecx + 0x14]
mov dword [esp + 0x30], edi
xor edx, dword [ecx + 0x18]
mov dword [esp + 0x34], edx
xor eax, dword [ecx + 0x1c]
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x3c]
shr eax, cl
shl eax, 0x10
mov edx, dword [esp + 0x30]
shr edx, cl
mov esi, 0xffff
and edx, esi
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x28]
shr eax, cl
shl eax, 0x10
mov edi, dword [esp + 0x20]
shr edi, cl
and edi, esi
mov edx, dword [esp + 0x34]
shr edx, cl
or edi, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x2c]
shr eax, cl
shl edx, 0x10
mov ebx, dword [esp + 0x24]
shr ebx, cl
and eax, esi
mov ebp, dword [esp + 0x10]
shr ebp, cl
or eax, edx
shl ebx, 0x10
and ebp, esi
or ebp, ebx
mov esi, ebp
shr esi, 8
xor esi, edi
mov edx, 0xff00ff
and esi, edx
mov ecx, esi
shl ecx, 8
xor ecx, ebp
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov ecx, eax
shr ecx, 8
xor ecx, dword [esp + 4]
and ecx, edx
mov edi, ecx
shl edi, 8
xor edi, eax
mov eax, edi
shl eax, 4
xor eax, ebx
mov ebx, 0xf0f0f0f0
and eax, ebx
mov edx, 0x10000001
mul edx
mov ebp, eax
mov dword [esp + 0x14], edx
xor esi, dword [esp + 8]
xor ecx, dword [esp + 4]
mov eax, ecx
shl eax, 4
xor eax, esi
and eax, ebx
mov edx, 0x10000001
mul edx
mov ebx, dword [esp + 0x14]
xor ebx, edi
xor ebp, dword [esp + 0x18]
xor edx, ecx
xor eax, esi
mov dword [esp + 4], eax
mov ecx, ebx
shr ecx, 0xe
xor ecx, ebx
mov esi, 0xcccc
and ecx, esi
mov edi, ecx
shl edi, 0xe
add edi, ecx
mov ecx, ebp
shr ecx, 0xe
xor ecx, ebp
and ecx, esi
mov esi, ecx
shl esi, 0xe
add esi, ecx
xor esi, ebp
xor edi, ebx
mov eax, edx
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 eax, dword [esp + 4]
mov ebp, eax
shr ebp, 0xe
xor ebp, eax
mov ebx, 0xcccc
and ebp, ebx
mov ebx, ebp
shl ebx, 0xe
add ebx, ebp
xor ebx, eax
xor ecx, edx
mov dword [esp + 4], ecx
mov edx, esi
shr edx, 7
xor edx, esi
mov ecx, 0xaa00aa
and edx, ecx
mov eax, edx
shl eax, 7
add eax, edx
mov ebp, edi
shr ebp, 7
xor ebp, edi
and ebp, ecx
xor eax, esi
mov ecx, dword [esp + 0x1c]
mov byte [ecx], al
mov byte [ecx + 1], ah
mov edx, eax
shr edx, 0x10
mov byte [ecx + 2], dl
mov edx, ebp
shl edx, 7
add edx, ebp
xor edx, edi
mov esi, ebx
shr esi, 7
xor esi, ebx
mov ebp, 0xaa00aa
and esi, ebp
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 eax, esi
shl eax, 7
add eax, esi
xor eax, ebx
mov edi, dword [esp + 4]
mov esi, edi
shr esi, 7
xor esi, edi
and esi, ebp
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 + 0x1c], ecx
mov ecx, 0x10
test byte [esp + 0xc], 1
mov edx, 0
jne 0x434fe9
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov dword [ebx], eax
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
mov ecx, dword [eax]
mov esi, dword [eax + 4]
xor dword [edx], ecx
xor dword [edx + 4], esi
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor dword [edx + 8], ecx
xor dword [edx + 0xc], eax
mov eax, dword [ebx]
add eax, 0x10
mov dword [ebx], eax
add edx, 0x10
cmp edx, edi
jb 0x433f0d
add esp, 0x15c
pop esi
pop edi
pop ebx
pop ebp
ret