Function at 0x4934c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
test ecx, ecx
mov ebx, dword [eax]
jne 0x493591
test ebx, ebx
je 0x49352d
mov edx, dword [esp + 0x38]
test edx, edx
je 0x49352d
mov edx, dword [esp + 0x34]
mov ebp, esi
mov edi, dword [esp + 0x38]
jmp 0x4934f9
test edi, edi
je 0x493523
add dword [esp + 0x30], 1
add edx, 1
mov eax, dword [esp + 0x30]
lea ecx, [ebp + ebx]
add ebx, 1
sub edi, 1
movzx esi, byte [eax - 1]
mov eax, esi
xor al, byte [ecx]
and ebx, 0xf
mov byte [edx - 1], al
mov eax, esi
mov byte [ecx], al
jne 0x4934f5
mov dword [esp + 0x34], edx
mov esi, ebp
mov dword [esp + 0x38], edi
cmp dword [esp + 0x38], 0xf
jbe 0x493738
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x4c]
cmp ebx, 0xf
mov ecx, dword [esp + 0xc]
ja 0x49357b
mov eax, dword [edi + ebx]
mov edx, dword [esi + ebx]
xor edx, eax
mov dword [ebp + ebx], edx
mov dword [esi + ebx], eax
add ebx, 4
cmp ebx, 0xf
jbe 0x493564
sub ecx, 0x10
add ebp, 0x10
add edi, 0x10
cmp ecx, 0xf
jbe 0x49367b
xor ebx, ebx
jmp 0x493544
test ebx, ebx
je 0x4935e1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4935e1
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jmp 0x4935b4
test edi, edi
je 0x4935d5
lea ebp, [esi + ebx]
add edx, 1
movzx eax, byte [ebp]
add ebx, 1
add ecx, 1
xor al, byte [edx - 1]
sub edi, 1
and ebx, 0xf
mov byte [ebp], al
mov byte [ecx - 1], al
jne 0x4935b0
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edi
cmp dword [esp + 0x38], 0xf
jbe 0x49372f
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov ecx, edi
mov edi, edx
lea esi, [esi]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x4c]
cmp ebx, 0xf
mov ecx, dword [esp + 0xc]
ja 0x493635
mov eax, dword [ecx + ebx]
xor eax, dword [esi + ebx]
mov dword [esi + ebx], eax
mov dword [ebp + ebx], eax
add ebx, 4
cmp ebx, 0xf
jbe 0x493620
sub edi, 0x10
add ebp, 0x10
add ecx, 0x10
cmp edi, 0xf
jbe 0x493647
xor ebx, ebx
jmp 0x493600
mov eax, dword [esp + 0x38]
xor ebx, ebx
mov edi, dword [esp + 0x38]
sub eax, 0x10
and eax, 0xfffffff0
and edi, 0xf
add eax, 0x10
add dword [esp + 0x34], eax
add dword [esp + 0x30], eax
test edi, edi
jne 0x4936f0
mov eax, dword [esp + 0x44]
mov dword [eax], ebx
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x38]
xor ebx, ebx
mov ebp, dword [esp + 0x38]
sub eax, 0x10
and eax, 0xfffffff0
and ebp, 0xf
add eax, 0x10
add dword [esp + 0x34], eax
add dword [esp + 0x30], eax
test ebp, ebp
je 0x49366d
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
lea edx, [esi + ebx]
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0xc], ebx
add edi, ebx
lea esi, [ecx + ebx]
movzx ecx, byte [edi + eax]
mov ebx, ecx
xor bl, byte [edx + eax]
mov byte [esi + eax], bl
mov byte [edx + eax], cl
add eax, 1
cmp eax, ebp
jne 0x4936c6
mov ebx, dword [esp + 0xc]
add ebx, eax
mov eax, dword [esp + 0x44]
mov dword [eax], ebx
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
lea edx, [esi + ebx]
mov esi, dword [esp + 0x34]
xor eax, eax
add ecx, ebx
add esi, ebx
mov ebp, ecx
movzx ecx, byte [ebp + eax]
xor cl, byte [edx + eax]
mov byte [edx + eax], cl
mov byte [esi + eax], cl
add eax, 1
cmp eax, edi
jne 0x493716
add ebx, eax
jmp 0x4936e2
mov edi, dword [esp + 0x38]
jmp 0x493665
mov ebp, dword [esp + 0x38]
jmp 0x493699