Function at 0x486560
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xchg ecx, ecx
sub esp, 0x84
push ebx
push esi
mov dword [esp - 0x38], 0x670e3556
mov esi, ecx
push edi
push dword [esi + 0x24]
call fcn.00490c90
xchg esi, esi
mov edi, dword [esi + 0x24]
add esp, 4
test eax, eax
xchg ebp, ebp
je 0x48659e
push eax
mov eax, dword [0x4c09d0]
mov esi, esi
xor eax, dword [0x4c0968]
call eax
mov ebx, dword [ebp + 8]
mov dword [ebx], eax
xchg ecx, ecx
mov dword [ebx + 4], edi
cmp byte [esi + 0x2c], 0
jne 0x4867a2
mov dword [esp - 0x38], ebx
nop
mov dword [esp - 4], 0x5f12ec0a
xor dword [esp - 4], 0x490b688f
mov dword [esp - 0x44], edx
add dword [esp - 4], 0x3341f6a
sub dword [esp - 4], 0x16b0fe1
xor dword [esp - 4], 0x17e2940c
mov dword [esp - 0x24], 0x1c4bf73a
sub esp, 4
lea ecx, [ebp - 0xc]
call fcn.0048bcf0
xor ecx, ecx
xchg ebx, ebx
lea esp, [esp]
mov al, byte [ecx + 0x4c03dc]
xor al, 0x9d
mov byte [ebp + ecx - 0x1c], al
mov ebx, ebx
inc ecx
cmp ecx, 0x10
jb 0x4865fe
mov dword [esp - 0x38], esi
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0xc]
xchg ecx, ecx
call fcn.0048c6b0
mov eax, dword [ebx]
test eax, eax
jne 0x486630
xchg ebx, ebx
xor ebx, ebx
jmp 0x486642
push eax
mov eax, dword [0x4c09d8]
xor eax, dword [0x4c0968]
mov esi, esi
call eax
mov ebx, eax
xor edi, edi
mov dword [esp - 0xc], 0x2febfc3e
cmp dword [esi + 0x24], edi
jbe 0x486679
nop
mov esi, esi
lea eax, [ebx + edi]
push eax
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 0xc]
mov dword [esp - 0x44], edi
add eax, edi
add eax, dword [esi + 4]
push eax
mov ecx, ecx
call fcn.0048bf70
add edi, 8
cmp edi, dword [esi + 0x24]
jb 0x486654
xchg ecx, ecx
lea ecx, [ebp - 0xc]
call fcn.0048be00
mov eax, dword [esi + 8]
xor eax, 0x1d6a61f8
mov dword [esp - 0x28], edi
cmp eax, 0x2c5827ba
jne 0x48678d
mov eax, dword [ebp + 8]
mov dword [esp - 0x40], 0x6c636f2f
mov eax, dword [eax]
test eax, eax
jne 0x4866af
xor edi, edi
mov edi, edi
jmp 0x4866c7
push eax
mov eax, dword [0x4c09d8]
xor eax, dword [0x4c0968]
call eax
mov dword [esp - 0x38], 0x363f4b70
mov edi, eax
mov ecx, dword [0x4c09f0]
lea eax, [ebp - 0x84]
mov dword [esp - 0x1c], 0x527429b
xor ecx, dword [0x4c0968]
push eax
call ecx
mov ebp, ebp
push dword [esi + 0x24]
lea eax, [ebp - 0x84]
push edi
mov edi, edi
push eax
mov eax, dword [0x4c09f8]
xor eax, dword [0x4c0968]
call eax
mov esp, esp
lea eax, [ebp - 0x84]
push eax
mov eax, dword [0x4c0a00]
mov ebp, ebp
xor eax, dword [0x4c0968]
call eax
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x2c]
mov dword [esp - 0x14], 0x7d2e9c1d
add ecx, 0x14
mov esi, 0x6a66affc
sub esi, 0x69d839e4
add esi, 0x6f2afd76
mov dword [esp - 0x18], esi
sub esi, 0x24127599
sub esi, 0x37d101cc
sub esi, 0x13d5fc1d
mov eax, dword [ecx]
mov dword [esp - 0x28], 0x7778dbe9
cmp eax, dword [edx]
jne 0x486787
add ecx, 4
xchg esi, esi
add edx, 4
sub esi, 4
jae 0x486750
mov dword [esp - 0x28], edi
mov al, 0x56
add al, 0
xor al, 0x39
sub al, 0x52
mov dword [esp - 0x24], 0x34c4f0e0
xor al, 0x7e
sub al, 0x14
sub al, 0x4e
jmp 0x486789
xor al, al
test al, al
jne 0x4867cf
pop edi
xchg esi, esi
pop esi
xor al, al
pop ebx
mov esp, ebp
mov dword [esp - 0x10], 0x7e83d448
pop ebp
ret 4
test eax, eax
je 0x4867b6
push eax
mov eax, dword [0x4c09d8]
xchg edi, edi
xor eax, dword [0x4c0968]
call eax
push dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
mov dword [esp - 0x24], edx
add ecx, dword [esi + 4]
push ecx
push eax
call fcn.004910c0
mov edi, edi
add esp, 0xc
pop edi
pop esi
mov edi, edi
mov al, 0x4b
sub al, 9
xor al, 0x7a
mov ebp, ebp
sub al, 0x2d
add al, 0x5a
sub al, 0x64
mov dword [esp - 0x1c], ebx
pop ebx
mov esp, ebp
pop ebp
mov dword [esp - 0x3c], 0x7a443123
ret 4