Function at 0x41b910
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, edx
push edi
mov edi, ecx
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edi
mov cl, byte [edi + 1]
mov bl, byte [edi]
xor cl, 0xf0
xor bl, 0xf0
mov bh, cl
and bh, 0x1f
mov dl, bl
and dl, 0x10
lea eax, [ebx - 7]
movzx eax, al
mov dword [ebp - 0xc], eax
mov edx, eax
movzx eax, bl
cmove edx, eax
and cl, 0x10
shl dl, 4
mov al, bh
sub al, 7
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
movzx ecx, al
movzx eax, bh
cmove ecx, eax
add dl, cl
mov byte [esi], dl
mov ch, byte [edi + 3]
mov dl, byte [edi + 2]
xor ch, 0xf0
mov dh, ch
xor dl, 0xf0
and dh, 0x1f
mov cl, dl
and cl, 0x10
lea eax, [edx - 7]
movzx ebx, al
movzx eax, dl
cmove ebx, eax
and ch, 0x10
mov byte [ebp - 1], ch
mov al, dh
sub al, 7
shl bl, 4
cmp byte [ebp - 1], 0
movzx ecx, al
movzx eax, dh
cmove ecx, eax
add bl, cl
mov byte [esi + 1], bl
mov ch, byte [edi + 5]
mov dl, byte [edi + 4]
xor ch, 0xf0
mov dh, ch
xor dl, 0xf0
and dh, 0x1f
mov cl, dl
and cl, 0x10
lea eax, [edx - 7]
movzx ebx, al
movzx eax, dl
cmove ebx, eax
and ch, 0x10
mov byte [ebp - 1], ch
mov al, dh
sub al, 7
shl bl, 4
cmp byte [ebp - 1], 0
movzx ecx, al
movzx eax, dh
cmove ecx, eax
add bl, cl
mov byte [esi + 2], bl
mov dl, byte [edi + 6]
mov ch, byte [edi + 7]
xor dl, 0xf0
xor ch, 0xf0
mov cl, dl
mov dh, ch
and dh, 0x1f
and cl, 0x10
lea eax, [edx - 7]
movzx ebx, al
movzx eax, dl
cmove ebx, eax
and ch, 0x10
mov al, dh
mov byte [ebp - 1], ch
sub al, 7
shl bl, 4
cmp byte [ebp - 1], 0
movzx ecx, al
movzx eax, dh
cmove ecx, eax
lea eax, [edi + 9]
add bl, cl
mov edi, 2
mov byte [esi + 3], bl
add esi, 4
mov cl, byte [eax + 1]
mov bl, byte [eax]
xor cl, 0xf0
xor bl, 0xf0
mov byte [ebp - 1], cl
mov dh, cl
mov dl, bl
mov cl, bl
and dh, 0x1f
sub cl, 7
mov byte [ebp - 2], dh
movzx ecx, cl
and dl, 0x10
mov dword [ebp - 0xc], ecx
movzx ecx, bl
mov ebx, dword [ebp - 0xc]
cmove ebx, ecx
and byte [ebp - 1], 0x10
mov cl, dh
shl bl, 4
sub cl, 7
cmp byte [ebp - 1], 0
movzx edx, cl
movzx ecx, byte [ebp - 2]
cmove edx, ecx
add eax, 2
add bl, dl
mov byte [esi], bl
inc esi
sub edi, 1
jne 0x41ba35
inc eax
mov edi, 2
mov cl, byte [eax + 1]
lea eax, [eax + 2]
mov bl, byte [eax - 2]
xor cl, 0xf0
xor bl, 0xf0
mov byte [ebp - 1], cl
mov dh, cl
mov dl, bl
mov cl, bl
and dh, 0x1f
sub cl, 7
mov byte [ebp - 2], dh
movzx ecx, cl
and dl, 0x10
mov dword [ebp - 0xc], ecx
movzx ecx, bl
mov ebx, dword [ebp - 0xc]
cmove ebx, ecx
and byte [ebp - 1], 0x10
mov cl, dh
shl bl, 4
sub cl, 7
cmp byte [ebp - 1], 0
movzx edx, cl
movzx ecx, byte [ebp - 2]
cmove edx, ecx
add bl, dl
mov byte [esi], bl
inc esi
sub edi, 1
jne 0x41ba91
push str._COFF_EE
push dword [ebp - 0x10]
mov byte [esi], 0x2d
inc esi
call fcn.00443190
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x41bb0c
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add ebx, 8
cmp byte [ebx], 0x30
jne 0x41bb1a
inc ebx
cmp byte [ebx], 0x30
je 0x41bb14
mov edi, ebx
lea ecx, [edi + 1]
nop
mov al, byte [edi]
inc edi
test al, al
jne 0x41bb20
push 8
push str.VIRTHUB0
push dword [ebp - 8]
sub edi, ecx
call fcn.00445e80
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0xfffffffb
add eax, 0xa
cmp edi, eax
jge 0x41bb67
sub eax, edi
mov edi, esi
mov ecx, eax
mov dword [ebp - 0x10], eax
mov edx, ecx
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
add esi, edx
rep stosb byte es:[edi], al
mov ecx, dword [ebp - 8]
mov edx, 0x14
push 0x14
push ebx
mov byte [esi], 0
call fcn.0041c970
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret