Function at 0x4ab790
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edx, [ebp - 0x5c]
push ebx
lea eax, [ebp - 0x18]
sub esp, 0x7c
mov dword [ebp - 0x6c], ecx
mov dword [esp], edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x44], 0x567468
mov dword [ebp - 0x40], 0x5c1ffc
mov dword [ebp - 0x38], 0x4aba35
mov dword [ebp - 0x34], esp
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Register
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x58], 0xffffffff
call eax
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov edx, dword [edx + 8]
mov dword [esp], 1
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x58], 3
mov dword [ebp - 0x68], edx
call fcn.0049b590
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x28]
mov dword [esp], eax
call fcn.005769c0
mov edx, dword [ebp - 0x68]
sub esp, 4
mov ecx, dword [ebp - 0x68]
mov eax, dword [edx]
mov edx, dword [ebp - 0x24]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x28]
mov dword [esp], edx
mov eax, dword [eax]
mov dword [ebp - 0x58], 2
call eax
mov edx, dword [ebp - 0x6c]
sub esp, 8
mov eax, dword [ebp - 0x28]
mov ecx, dword [edx + 4]
mov edx, dword [ecx]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x58], 1
call eax
mov edx, dword [ebp - 0x6c]
sub esp, 0xc
cmp dword [ebp - 0x64], 7
mov esi, dword [ebp - 0x28]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x1c]
mov dword [ebp - 0x60], edx
jbe 0x4aba2a
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
sub edx, 8
shr edx, 3
lea edx, [edx*8 + 8]
mov edi, edx
mov dword [ebp - 0x68], edx
mov edx, esi
add edi, eax
lea esi, [esi]
mov ebx, dword [edx]
xor ebx, dword [eax]
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
add edx, 8
xor ebx, dword [eax + 4]
add eax, 8
mov dword [ecx + 4], ebx
add ecx, 8
cmp eax, edi
jne 0x4ab8b0
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
add esi, dword [ebp - 0x68]
add edi, dword [ebp - 0x68]
and ebx, 7
test ebx, ebx
je 0x4ab8fb
xor edx, edx
movzx ecx, byte [esi + edx]
xor cl, byte [eax + edx]
mov byte [edi + edx], cl
add edx, 1
cmp edx, ebx
jne 0x4ab8e1
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x6c]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0x60]
mov eax, dword [ecx]
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], edx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x58], 1
call eax
mov eax, dword [ebp - 0x6c]
sub esp, 0xc
cmp dword [ebp - 0x64], 7
mov edi, dword [ebp - 0x28]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 0x1c]
mov dword [ebp - 0x68], edx
jbe 0x4aba22
mov eax, dword [ebp - 0x64]
mov ebx, edx
mov ecx, edi
sub eax, 8
shr eax, 3
lea eax, [eax*8 + 8]
add ebx, eax
mov dword [ebp - 0x60], eax
mov eax, edx
mov dword [ebp - 0x70], ebx
mov edx, esi
lea esi, [esi]
mov ebx, dword [ecx]
xor ebx, dword [edx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
add ecx, 8
xor ebx, dword [edx + 4]
add edx, 8
mov dword [eax + 4], ebx
add eax, 8
cmp eax, dword [ebp - 0x70]
jne 0x4ab960
add esi, dword [ebp - 0x60]
add edi, dword [ebp - 0x60]
and dword [ebp - 0x64], 7
mov ebx, dword [ebp - 0x64]
test ebx, ebx
je 0x4ab9ad
mov ebx, dword [ebp - 0x64]
xor edx, edx
movzx ecx, byte [edi + edx]
xor cl, byte [esi + edx]
mov byte [eax + edx], cl
add edx, 1
cmp edx, ebx
jne 0x4ab993
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x6c]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0x68]
mov eax, dword [ecx]
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], edx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x58], 1
call eax
mov ecx, dword [ebp - 0x1c]
sub esp, 0xc
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x28]
test ecx, ecx
mov dword [eax + 0x2c], 0
mov eax, dword [ebp - 0x20]
je 0x4ab9f1
test eax, eax
jne 0x4aba04
lea edx, [ebp - 0x5c]
mov dword [esp], edx
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test edx, edx
je 0x4ab9f1
mov ebx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], edx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x58], 0xffffffff
call eax
sub esp, 8
jmp 0x4ab9f1
mov eax, dword [ebp - 0x68]
jmp 0x4ab987
mov ebx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x60]
jmp 0x4ab8db