Function at 0x42fea0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
mov esi, edx
test ecx, ecx
je 0x4301c4
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x4301c4
cmp byte [ebx], 1
je 0x4301c4
test esi, esi
je 0x4301bc
test eax, eax
jle 0x4301bc
cdq
and edx, 0x7f
add eax, edx
movzx edx, byte [ecx]
sar eax, 7
dec edx
push edi
mov dword [ebp - 8], eax
je 0x43017a
dec edx
je 0x4300cc
dec edx
je 0x42ff03
pop edi
pop esi
mov eax, 0xfffffffb
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ecx + 1]
mov dword [ebp - 0x18], edx
mov edx, dword [ecx + 5]
mov dword [ebp - 0x14], edx
mov edx, dword [ecx + 9]
mov ecx, dword [ecx + 0xd]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], eax
test eax, eax
jle 0x4301b2
xor edi, edi
jmp 0x42ff3a
mov ebx, dword [ebp + 8]
xor edi, edi
jmp 0x42ff3a
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x4c]
push eax
lea eax, [ebx + 0x54]
mov dword [ebp - 0x20], ecx
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0xc]
push ecx
mov eax, ecx
mov dword [ebp - 0x1c], edx
call fcn.00430760
movzx eax, byte [ebp - 0x28]
movzx ebx, byte [ebp - 0x18]
add bl, bl
mov edx, edi
and edx, 7
and al, 0x80
mov cl, dl
shr al, cl
movzx ecx, byte [ebp - 0x17]
shr cl, 7
or cl, bl
movzx ebx, byte [ebp - 0x17]
mov byte [ebp - 0x18], cl
movzx ecx, byte [ebp - 0x16]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x16]
mov byte [ebp - 0x17], cl
movzx ecx, byte [ebp - 0x15]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x15]
mov byte [ebp - 0x16], cl
movzx ecx, byte [ebp - 0x14]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x14]
mov byte [ebp - 0x15], cl
movzx ecx, byte [ebp - 0x13]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x13]
mov byte [ebp - 0x14], cl
movzx ecx, byte [ebp - 0x12]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x12]
mov byte [ebp - 0x13], cl
movzx ecx, byte [ebp - 0x11]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x11]
mov byte [ebp - 0x12], cl
movzx ecx, byte [ebp - 0x10]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x10]
mov byte [ebp - 0x11], cl
movzx ecx, byte [ebp - 0xf]
mov esi, edi
shr esi, 3
add esi, dword [ebp + 0xc]
shr cl, 7
xor byte [esi], al
mov al, byte [esi]
add bl, bl
add esp, 0xc
or cl, bl
movzx ebx, byte [ebp - 0xf]
mov byte [ebp - 0x10], cl
movzx ecx, byte [ebp - 0xe]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xe]
mov byte [ebp - 0xf], cl
movzx ecx, byte [ebp - 0xd]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xd]
mov byte [ebp - 0xe], cl
movzx ecx, byte [ebp - 0xc]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xc]
mov byte [ebp - 0xd], cl
movzx ecx, byte [ebp - 0xb]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xb]
mov byte [ebp - 0xc], cl
movzx ecx, byte [ebp - 0xa]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xa]
mov byte [ebp - 0xb], cl
movzx ecx, byte [ebp - 9]
shr cl, 7
add bl, bl
or cl, bl
mov byte [ebp - 0xa], cl
mov cl, 7
sub cl, dl
mov dl, byte [ebp - 9]
shr al, cl
add dl, dl
inc edi
and al, 1
or al, dl
mov byte [ebp - 9], al
cmp edi, 0x80
jl 0x42ff37
mov eax, dword [ebp - 4]
dec eax
mov dword [ebp - 4], eax
test eax, eax
jg 0x42ff30
mov eax, dword [ebp - 8]
pop edi
pop esi
shl eax, 7
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 1]
xor eax, dword [esi]
mov edx, dword [ecx + 5]
xor edx, dword [esi + 4]
mov edi, dword [ecx + 9]
mov ecx, dword [ecx + 0xd]
xor edi, dword [esi + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], edx
mov edx, dword [ebx + 0x4c]
mov dword [ebp - 0x1c], ecx
xor dword [ebp - 0x1c], eax
push edx
lea eax, [ebx + 0x54]
mov dword [ebp - 0x20], edi
mov edi, dword [ebp + 0xc]
push eax
push edi
lea eax, [ebp - 0x28]
call fcn.00430760
mov eax, dword [ebp - 8]
dec eax
add esp, 0xc
add esi, 0x10
mov dword [ebp - 4], eax
test eax, eax
jle 0x4301af
jmp 0x430120
mov eax, dword [edi]
xor eax, dword [esi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
xor ecx, dword [esi + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x20], edx
xor dword [ebp - 0x20], eax
mov edx, dword [edi + 0xc]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x1c], edx
xor dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x4c]
push eax
lea eax, [ebx + 0x54]
push eax
add edi, 0x10
push edi
lea eax, [ebp - 0x28]
mov dword [ebp - 0x24], ecx
call fcn.00430760
mov eax, dword [ebp - 4]
dec eax
add esp, 0xc
add esi, 0x10
mov dword [ebp - 4], eax
test eax, eax
jg 0x430120
mov eax, dword [ebp - 8]
pop edi
pop esi
shl eax, 7
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, eax
test eax, eax
jle 0x4301b2
mov ecx, esi
mov esi, dword [ebp + 0xc]
sub ecx, esi
mov dword [ebp - 4], ecx
jmp 0x430193
mov ecx, dword [ebp - 4]
mov edx, dword [ebx + 0x4c]
push edx
lea eax, [ebx + 0x54]
push eax
push esi
lea eax, [ecx + esi]
call fcn.00430760
dec edi
add esp, 0xc
add esi, 0x10
test edi, edi
jg 0x430190
mov eax, dword [ebp - 8]
pop edi
pop esi
shl eax, 7
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
mov eax, 0xfffffffb
pop ebx
mov esp, ebp
pop ebp
ret