Function at 0x488e80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov dword [esp - 0x28], esi
push ecx
push ebx
push esi
push edi
mov dword [esp - 0x10], ebx
mov edi, dword [ebp + 0x10]
mov ebx, ecx
mov esi, edi
mov dword [esp - 0x28], 0x23ade34c
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
xchg ebx, ebx
jne 0x488ea1
sub esi, edx
mov eax, 0x51db6ea4
mov dword [esp - 0x3c], 0x5e98422a
xor eax, 0x66b1da22
sub eax, 0x1cd25896
xor eax, 0x5be994f5
sub eax, 0x41714f06
xchg edx, edx
cmp esi, eax
cmova esi, eax
push esi
mov ebp, ebp
call fcn.00490c90
add esp, 4
mov dword [ebp - 4], eax
test esi, esi
xchg edi, edi
je 0x488f12
mov ecx, eax
sub edi, eax
mov dword [esp - 0x2c], 0x7646445b
mov edx, esi
lea ebx, [ebx]
mov al, byte [ecx + edi]
lea ecx, [ecx + 1]
mov ebp, ebp
xor al, 0x37
mov byte [ecx - 1], al
sub edx, 1
mov dword [esp - 0x10], edx
jne 0x488efc
mov edx, dword [ebx + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp - 0x34], 0x36766a0b
test edx, edx
je 0x488f51
mov ecx, dword [ebx + 8]
lea eax, [ecx + edx*4]
mov edi, edi
cmp ecx, eax
je 0x488f51
mov edx, dword [ecx]
xchg esi, esi
cmp dword [edx], edi
je 0x488f49
add ecx, 4
mov dword [esp - 0x14], 0x2a031db7
cmp ecx, eax
jne 0x488f30
jmp 0x488f51
test edx, edx
jne 0x4890cc
nop
sub esp, 4
mov ebp, ebp
mov dword [esp], 0x5fcaf2c2
sub dword [esp], 0x35e38df0
xor dword [esp], 0xd011515
add dword [esp], 0x16e3fa90
xchg esp, esp
xor dword [esp], 0x22835c08
sub dword [esp], 0x18bcee4b
xor dword [esp], 0x8c4208
call fcn.00490c50
mov dword [esp - 0x24], esp
add esp, 4
test eax, eax
je 0x4890b1
mov dword [eax + 0xc], 0xb3bc514
mov dword [esp - 0x3c], 0x38549ee7
xor dword [eax + 0xc], 0x212d76ad
xor dword [eax + 0xc], 0x48e9208
sub dword [eax + 0xc], 0x29b44db9
xor dword [eax + 0xc], 0x4e3d3f8
mov dword [esp - 0x2c], esi
xor ecx, ecx
mov dword [eax + 0x10], 0x16a035d9
add dword [eax + 0x10], 0x3efc928b
sub dword [eax + 0x10], 0x3bf6d3d5
mov esp, esp
xor dword [eax + 0x10], 0x35729c0b
add dword [eax + 0x10], 0x38817ec8
sub dword [eax + 0x10], 0x1841bb46
xchg edi, edi
sub dword [eax + 0x10], 0x4d172c06
mov dword [eax + 0x14], 0x5ed3b81f
sub dword [eax + 0x14], 0x5b4ab8c
mov ebp, ebp
sub dword [eax + 0x14], 0x11e71970
xor dword [eax + 0x14], 0x5ef6daef
add dword [eax + 0x14], 0x3b356dd8
mov dword [esp - 0x3c], 0x11d092c5
xor dword [eax + 0x14], 0x54f697a4
mov dword [eax + 0x18], 0x47c7b0d8
xor dword [eax + 0x18], 0x7ba3c353
xor dword [eax + 0x18], 0x3857ce01
xchg ebp, ebp
xor dword [eax + 0x18], 0x1fc20f21
add dword [eax + 0x18], 0x1b8459ab
xor dword [eax + 0x18], 0x37760c57
mov dword [esp - 0xc], 0x3a986b26
mov dword [eax], edi
mov dword [eax + 4], 0x148bf58c
add dword [eax + 4], 0x410c8ccc
mov dword [esp - 0x1c], ebp
sub dword [eax + 4], 0x413fd684
sub dword [eax + 4], 0x73644b4
add dword [eax + 4], 0x52c59a4a
add dword [eax + 4], 0x50dd34e
mov dword [esp - 0x10], 0x39b6975b
add dword [eax + 4], 0x9b0a2b47
mov word [eax + 8], cx
jmp 0x4890b3
xor eax, eax
mov dword [ebp + 0x10], eax
lea ecx, [ebx + 8]
lea eax, [ebp + 0x10]
mov dword [esp - 0x3c], esp
push eax
call fcn.004876b0
mov edx, dword [eax]
mov dword [esp - 0x30], esi
cmp dword [edx + 0x10], 0
lea edi, [edx + 0xc]
mov ebx, dword [ebp + 0xc]
je 0x489115
mov dword [esp - 0x40], esp
mov ecx, dword [edi]
mov eax, ecx
mov ebx, dword [edi + 4]
mov dword [esp - 0x3c], 0x75d957bd
lea eax, [eax + ebx*4]
mov ebx, dword [ebp + 0xc]
cmp ecx, eax
je 0x489115
mov esi, esi
mov edi, dword [ecx]
cmp dword [edi], ebx
je 0x48910a
xchg esi, esi
add ecx, 4
cmp ecx, eax
jne 0x4890f7
xchg ebp, ebp
jmp 0x489112
test edi, edi
jne 0x48919c
lea edi, [edx + 0xc]
inc word [edx + 8]
xchg esp, esp
nop
sub esp, 4
mov dword [esp], 0x31bc9d91
sub dword [esp], 0x14ae44b9
xchg edi, edi
xor dword [esp], 0x178b4d01
add dword [esp], 0xa28c132
sub dword [esp], 0x14add6ff
call fcn.00490c50
mov dword [esp - 0x2c], 0x2df482ed
add esp, 4
test eax, eax
je 0x489184
mov dword [eax], ebx
mov dword [esp - 0xc], esi
xor ecx, ecx
mov byte [eax + 4], 0x22
xor byte [eax + 4], 0x5c
xor byte [eax + 4], 0x6b
xchg esi, esi
add byte [eax + 4], 0x3f
xor byte [eax + 4], 0x16
xor byte [eax + 4], 0x42
mov word [eax + 5], cx
mov dword [esp - 0x38], esi
jmp 0x489186
xor eax, eax
mov dword [ebp + 0xc], eax
mov dword [esp - 0x30], ecx
mov ecx, edi
lea eax, [ebp + 0xc]
push eax
mov esp, esp
call fcn.00487780
mov edi, dword [eax]
cmp byte [edi + 4], 4
mov esi, esi
jne 0x4891b8
mov eax, dword [edi + 8]
test eax, eax
je 0x4891b8
mov esi, esi
push eax
call fcn.00490c60
add esp, 4
xchg ebp, ebp
mov eax, dword [ebp - 4]
mov word [edi + 5], si
mov dword [edi + 8], eax
mov byte [edi + 4], 0x76
mov dword [esp - 0x38], esp
sub byte [edi + 4], 0x48
xor byte [edi + 4], 0x45
sub byte [edi + 4], 5
sub byte [edi + 4], 0x4e
mov dword [esp - 0x34], ecx
xor byte [edi + 4], 0x1c
pop edi
pop esi
pop ebx
mov edx, edx
mov esp, ebp
pop ebp
ret 0xc