Function at 0x7b7540
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp byte [0xa8cc60], 0
jne 0x7b7673
movdqa xmm6, xmmword [0x954260]
mov edx, 0xfffffc00
movdqa xmm1, xmmword [0x9dc2c0]
movdqa xmm7, xmmword [0x9dc320]
nop word cs:[eax + eax]
movdqa xmm2, xmm6
psrld xmm2, 1
movdqa xmm0, xmm6
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm1
pxor xmm0, xmm2
movdqa xmm3, xmm0
psrld xmm3, 1
movdqa xmm2, xmm6
pslld xmm2, 0x1e
psrad xmm2, 0x1f
pand xmm2, xmm1
pxor xmm2, xmm3
movdqa xmm3, xmm6
pslld xmm3, 0x1d
psrad xmm3, 0x1f
pand xmm3, xmmword [0x9dc2d0]
movdqa xmm4, xmm6
pslld xmm4, 0x1c
psrad xmm4, 0x1f
pand xmm4, xmmword [0x9dc2e0]
pxor xmm4, xmm3
movdqa xmm5, xmm6
pslld xmm5, 0x1b
psrad xmm5, 0x1f
pand xmm5, xmmword [0x9dc2f0]
movdqa xmm3, xmm6
pslld xmm3, 0x1a
psrad xmm3, 0x1f
pand xmm3, xmmword [0x9dc300]
pxor xmm3, xmm5
pxor xmm3, xmm4
movdqa xmm4, xmm2
psrld xmm4, 6
pxor xmm3, xmm4
pslld xmm2, 0x1a
psrad xmm2, 0x1f
pand xmm2, xmm1
pxor xmm2, xmm3
pslld xmm0, 0x1a
psrad xmm0, 0x1f
pand xmm0, xmmword [0x9dc310]
pxor xmm2, xmm0
movdqu xmmword [edx + 0xa8d064], xmm2
paddd xmm6, xmm7
add edx, 0x10
jne 0x7b7580
mov byte [0xa8cc60], 1
test esi, esi
sete al
test ebp, ebp
sete cl
mov dword [0xa59b2c], 0x8430f0d9
or cl, al
jne 0x7b77f7
mov edx, dword [esp + 0x1c]
mov ebx, dword [esi]
test edx, edx
je 0x7b77f3
mov eax, ebx
jmp 0x7b77cc
mov ebx, eax
xor al, byte [ebp + 1]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov eax, ebx
xor bl, byte [ebp + 2]
shr eax, 8
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
mov ebx, eax
xor al, byte [ebp + 3]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov eax, ebx
xor bl, byte [ebp + 4]
shr eax, 8
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
mov ebx, eax
xor al, byte [ebp + 5]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov eax, ebx
xor bl, byte [ebp + 6]
shr eax, 8
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
mov ebx, eax
xor al, byte [ebp + 7]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov eax, ebx
xor bl, byte [ebp + 8]
shr eax, 8
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
mov ebx, eax
xor al, byte [ebp + 9]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov eax, ebx
xor bl, byte [ebp + 0xa]
shr eax, 8
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
mov ebx, eax
xor al, byte [ebp + 0xb]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov ecx, ebx
xor bl, byte [ebp + 0xc]
shr ecx, 8
movzx eax, bl
xor ecx, dword [eax*4 + 0xa8cc64]
mov eax, ecx
xor cl, byte [ebp + 0xd]
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0xa8cc64]
mov ebx, eax
shr ebx, 8
xor al, byte [ebp + 0xe]
movzx eax, al
xor ebx, dword [eax*4 + 0xa8cc64]
mov eax, ebx
shr eax, 8
xor bl, byte [ebp + 0xf]
add ebp, 0x10
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
mov edi, 0xfffffff0
mov ebx, eax
add edx, edi
je 0x7b77f5
shr eax, 8
xor bl, byte [ebp]
movzx ecx, bl
xor eax, dword [ecx*4 + 0xa8cc64]
cmp edx, 0x10
jae 0x7b76b0
inc ebp
mov edi, 0xffffffff
mov ebx, eax
add edx, edi
jne 0x7b77cc
jmp 0x7b77f5
mov eax, ebx
mov dword [esi], eax
pop esi
pop edi
pop ebx
pop ebp
ret