Function at 0x43b460
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
xor eax, eax
xor ecx, ecx
push ebx
mov al, byte [edx]
mov cl, byte [edx + 1]
inc edx
push ebp
shl eax, 8
or eax, ecx
inc edx
xor ecx, ecx
push esi
mov cl, byte [edx]
push edi
shl eax, 8
or eax, ecx
inc edx
xor ecx, ecx
mov cl, byte [edx]
shl eax, 8
or eax, ecx
inc edx
xor ecx, ecx
mov cl, byte [edx]
inc edx
mov esi, ecx
xor ecx, ecx
mov cl, byte [edx]
shl esi, 8
or esi, ecx
inc edx
xor ecx, ecx
mov cl, byte [edx]
shl esi, 8
or esi, ecx
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, eax
shl esi, 8
or esi, ecx
shr edx, 4
mov ecx, esi
and edx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor edx, esi
xor ecx, edx
shl edx, 4
xor eax, edx
mov esi, ecx
mov edx, eax
and esi, 0xffff
shr edx, 0x10
xor edx, esi
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov edx, ecx
shr edx, 2
mov esi, eax
and edx, 0x33333333
and esi, 0x33333333
xor edx, esi
xor eax, edx
shl edx, 2
xor ecx, edx
mov esi, eax
mov edx, ecx
and esi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
xor edx, esi
xor eax, edx
shl edx, 8
xor ecx, edx
mov edx, eax
shr edx, 1
mov esi, ecx
and edx, 0x55555555
and esi, 0x55555555
xor edx, esi
xor ecx, edx
add edx, edx
xor eax, edx
mov edx, dword [esp + 0x20]
test edx, edx
mov edx, dword [esp + 0x1c]
je 0x43b68d
lea edi, [edx + 8]
mov dword [esp + 0x1c], 8
mov edx, ecx
mov esi, ecx
shl edx, 0x1d
shr esi, 3
or edx, esi
mov ebp, dword [edi - 8]
mov esi, ecx
lea ebx, [ecx + ecx]
shr esi, 0x1f
or esi, ebx
mov ebx, dword [edi - 4]
xor esi, ebx
xor edx, ebp
mov ebx, esi
mov ebp, esi
shr ebx, 0x18
and ebx, 0x3f
shr ebp, 0x10
mov ebx, dword [ebx*4 + 0x4f07b0]
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f09b0]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
and esi, 0x3f
or ebx, dword [ebp*4 + 0x4f0bb0]
mov ebp, edx
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f06b0]
mov ebp, edx
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f08b0]
mov ebp, edx
shr ebp, 8
and ebp, 0x3f
and edx, 0x3f
or ebx, dword [ebp*4 + 0x4f0ab0]
mov ebp, dword [esi*4 + 0x4f0db0]
mov esi, dword [edx*4 + 0x4f0cb0]
or ebx, ebp
mov ebp, dword [edi]
or ebx, esi
xor eax, ebx
mov edx, eax
mov esi, eax
shl edx, 0x1d
shr esi, 3
or edx, esi
mov esi, eax
shr esi, 0x1f
lea ebx, [eax + eax]
xor edx, ebp
or esi, ebx
mov ebx, dword [edi + 4]
xor esi, ebx
mov ebx, esi
mov ebp, esi
shr ebx, 0x18
and ebx, 0x3f
shr ebp, 0x10
mov ebx, dword [ebx*4 + 0x4f07b0]
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f09b0]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f0bb0]
mov ebp, edx
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f06b0]
mov ebp, edx
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f08b0]
mov ebp, edx
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f0ab0]
and esi, 0x3f
and edx, 0x3f
add edi, 0x10
mov ebp, dword [esi*4 + 0x4f0db0]
mov esi, dword [edx*4 + 0x4f0cb0]
mov edx, dword [esp + 0x1c]
or ebx, ebp
or ebx, esi
xor ecx, ebx
dec edx
mov dword [esp + 0x1c], edx
jne 0x43b54f
jmp 0x43b7d1
lea edi, [edx + 0x70]
mov dword [esp + 0x1c], 8
mov edx, ecx
mov esi, ecx
shl edx, 0x1d
shr esi, 3
or edx, esi
mov ebp, dword [edi + 8]
mov esi, ecx
lea ebx, [ecx + ecx]
shr esi, 0x1f
or esi, ebx
mov ebx, dword [edi + 0xc]
xor esi, ebx
xor edx, ebp
mov ebx, esi
mov ebp, esi
shr ebx, 0x18
and ebx, 0x3f
shr ebp, 0x10
mov ebx, dword [ebx*4 + 0x4f07b0]
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f09b0]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
and esi, 0x3f
or ebx, dword [ebp*4 + 0x4f0bb0]
mov ebp, edx
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f06b0]
mov ebp, edx
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f08b0]
mov ebp, edx
shr ebp, 8
and ebp, 0x3f
and edx, 0x3f
or ebx, dword [ebp*4 + 0x4f0ab0]
mov ebp, dword [esi*4 + 0x4f0db0]
mov esi, dword [edx*4 + 0x4f0cb0]
or ebx, ebp
mov ebp, dword [edi]
or ebx, esi
xor eax, ebx
mov edx, eax
mov esi, eax
shl edx, 0x1d
shr esi, 3
or edx, esi
mov esi, eax
shr esi, 0x1f
lea ebx, [eax + eax]
xor edx, ebp
or esi, ebx
mov ebx, dword [edi + 4]
xor esi, ebx
mov ebx, esi
mov ebp, esi
shr ebx, 0x18
and ebx, 0x3f
shr ebp, 0x10
mov ebx, dword [ebx*4 + 0x4f07b0]
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f09b0]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f0bb0]
mov ebp, edx
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f06b0]
mov ebp, edx
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f08b0]
mov ebp, edx
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x4f0ab0]
and esi, 0x3f
and edx, 0x3f
sub edi, 0x10
mov ebp, dword [esi*4 + 0x4f0db0]
mov esi, dword [edx*4 + 0x4f0cb0]
mov edx, dword [esp + 0x1c]
or ebx, ebp
or ebx, esi
xor ecx, ebx
dec edx
mov dword [esp + 0x1c], edx
jne 0x43b698
mov edx, ecx
mov esi, eax
shr edx, 1
and edx, 0x55555555
and esi, 0x55555555
xor edx, esi
pop edi
xor eax, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx, 8
mov esi, ecx
and edx, 0xff00ff
and esi, 0xff00ff
xor edx, esi
xor ecx, edx
shl edx, 8
xor eax, edx
mov esi, ecx
mov edx, eax
and esi, 0x33333333
shr edx, 2
and edx, 0x33333333
xor edx, esi
xor ecx, edx
shl edx, 2
xor eax, edx
mov edx, ecx
mov esi, eax
shr edx, 0x10
and esi, 0xffff
xor edx, esi
xor eax, edx
shl edx, 0x10
xor ecx, edx
mov esi, eax
mov edx, ecx
and esi, 0xf0f0f0f
shr edx, 4
and edx, 0xf0f0f0f
xor edx, esi
mov esi, dword [esp + 0x14]
xor eax, edx
shl edx, 4
xor ecx, edx
mov edx, ecx
shr edx, 0x18
mov byte [esi], dl
mov edx, ecx
inc esi
shr edx, 0x10
mov byte [esi], dl
mov edx, ecx
inc esi
shr edx, 8
mov byte [esi], dl
inc esi
mov edx, eax
mov byte [esi], cl
mov ecx, eax
inc esi
shr ecx, 0x18
mov byte [esi], cl
inc esi
shr edx, 0x10
mov byte [esi], dl
mov ecx, eax
inc esi
shr ecx, 8
mov byte [esi], cl
mov byte [esi + 1], al
pop esi
pop ebp
pop ebx
ret