Function at 0x499f70
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 0x49a041
test ebx, ebx
je 0x499fdd
mov edx, dword [esp + 0x38]
test edx, edx
je 0x499fdd
mov edx, dword [esp + 0x34]
mov ebp, esi
mov edi, dword [esp + 0x38]
jmp 0x499fa9
test edi, edi
je 0x499fd3
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 0x499fa5
mov dword [esp + 0x34], edx
mov esi, ebp
mov dword [esp + 0x38], edi
cmp dword [esp + 0x38], 0xf
jbe 0x49a1e8
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 0x49a02b
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 0x49a014
sub ecx, 0x10
add ebp, 0x10
add edi, 0x10
cmp ecx, 0xf
jbe 0x49a12b
xor ebx, ebx
jmp 0x499ff4
test ebx, ebx
je 0x49a091
mov eax, dword [esp + 0x38]
test eax, eax
je 0x49a091
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jmp 0x49a064
test edi, edi
je 0x49a085
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 0x49a060
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edi
cmp dword [esp + 0x38], 0xf
jbe 0x49a1df
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 0x49a0e5
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 0x49a0d0
sub edi, 0x10
add ebp, 0x10
add ecx, 0x10
cmp edi, 0xf
jbe 0x49a0f7
xor ebx, ebx
jmp 0x49a0b0
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 0x49a1a0
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 0x49a11d
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 0x49a176
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 0x49a1c6
add ebx, eax
jmp 0x49a192
mov edi, dword [esp + 0x38]
jmp 0x49a115
mov ebp, dword [esp + 0x38]
jmp 0x49a149