Function at 0x487c60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, ecx
mov edi, edi
mov dword [ebp - 0x10], eax
cmp dword [eax + 8], 0
je 0x487cb1
mov eax, dword [ebp + 0xc]
mov dword [esp - 0x10], 0x5774c985
mov byte [eax], 0x3c
xor byte [eax], 8
sub byte [eax], 0xb
xor byte [eax], 0x77
mov dword [esp - 0x34], 0x67bfd2a8
sub byte [eax], 0x5d
mov al, 9
add al, 9
xor al, 0x36
mov dword [esp - 0x34], esp
add al, 0x52
sub al, 0x71
add al, 0x11
xchg edi, edi
xor al, 0x17
mov esp, ebp
pop ebp
mov edx, edx
ret 8
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 8], ecx
mov dword [esp - 0x10], 0x34437520
cmp ecx, 2
ja 0x487ccd
mov dword [ebp - 4], ebx
jmp 0x487cd2
mov eax, dword [ebx]
mov dword [ebp - 4], eax
lea eax, [ecx + 1]
mov edx, 0x779460f4
xchg ebp, ebp
sub edx, 0x5eccf285
add edx, 0x2f620dd9
sub edx, 0x21999b12
xchg ebp, ebp
sub edx, 0x268fe134
xor ecx, ecx
mul edx
push esi
mov dword [esp - 0x2c], esi
push edi
seto cl
neg ecx
mov edx, edx
or ecx, eax
push ecx
call fcn.0048b720
mov esi, eax
mov dword [esp - 0x1c], 0x2757860b
add esp, 4
mov eax, dword [ebp - 8]
xor edi, edi
mov dword [ebp - 0xc], esi
mov dword [esp - 0x30], 0x5e73dd29
test eax, eax
je 0x487d9e
sub dword [ebp - 4], esi
mov edx, esi
mov dword [esp - 0x3c], edi
mov ebx, dword [ebp - 4]
mov esi, eax
mov edi, edi
mov ecx, edi
mov dword [esp - 0x44], edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x657064c6
sub eax, 0x4087c0ff
mov dword [esp - 0x20], 0x11429903
add eax, 0x3afc320b
sub eax, 0x2c52d433
add eax, 0x46cab2b9
xor eax, 0x9229018
mov dword [esp - 0x3c], 0x47708561
shl ecx, 3
inc edi
sar eax, cl
xchg edx, edx
cbw
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
xchg esp, esp
cmp edi, esi
jb 0x487d40
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
mov edi, edi
mov eax, dword [ebp - 8]
xor ecx, ecx
push esi
mov word [esi + eax*2], cx
xchg ebp, ebp
mov eax, dword [0x4bab88]
xor eax, dword [0x4ba958]
push ecx
nop
xchg esp, esp
mov dword [esp - 4], 0x41c007
xor dword [esp - 4], 0x463f35e3
xor dword [esp - 4], 0x18d673e
sub dword [esp - 4], 0x34be25a3
mov dword [esp - 0x18], 0x77eefe5a
xor dword [esp - 4], 0x1256667e
add dword [esp - 4], 0x602db335
xor dword [esp - 4], 0x618fbe7f
mov dword [esp - 0x20], ebx
sub esp, 4
call eax
push esi
mov dword [esp - 0x44], 0x1ffddc4e
mov edi, eax
call fcn.0048b6f0
add esp, 4
mov ecx, ecx
test edi, edi
je 0x487e5e
mov eax, dword [0x4ba9f8]
xor eax, dword [0x4ba958]
mov dword [esp - 0x24], 0x5370c38a
push edi
call eax
mov eax, dword [ebp + 0xc]
pop edi
mov dword [esp - 0x2c], ebx
pop esi
pop ebx
mov byte [eax], 0x4d
mov ecx, ecx
add byte [eax], 0x14
sub byte [eax], 0x4c
add byte [eax], 0x34
sub byte [eax], 0x39
xchg esi, esi
sub byte [eax], 0xf
xor al, al
mov esp, ebp
pop ebp
mov dword [esp - 0x10], 0x1a0a409c
ret 8
mov eax, dword [ebx + 4]
mov dword [ebp + 8], eax
xchg ebx, ebx
cmp eax, 2
jbe 0x487e6d
mov ebx, dword [ebx]
xor ecx, ecx
mov ecx, ecx
inc eax
mov edx, 0x48541cac
xor edx, 0xa180557
sub edx, 0x311e56f6
mov dword [esp - 0x24], edi
add edx, 0x66161844
sub edx, 0x7743db47
mul edx
seto cl
xchg esp, esp
neg ecx
or ecx, eax
push ecx
call fcn.0048b720
xchg ebx, ebx
mov esi, eax
add esp, 4
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [esp - 0x24], 0x72653e98
mov dword [ebp - 0xc], esi
test eax, eax
je 0x487f28
mov edx, esi
mov esp, esp
sub ebx, esi
mov esi, eax
mov edi, edi
mov dword [esp - 0x2c], ecx
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0xaeb8cca
xchg ebx, ebx
add eax, 0x46bc477
add eax, 0x65a8cf77
sub eax, 0x7037ba2c
mov dword [esp - 0x14], edx
add eax, 0x368a8f4f
add eax, 0x382b2e65
shl ecx, 3
inc edi
mov dword [esp - 0x38], esi
sar eax, cl
cbw
xor ax, word [ebx + edx - 2]
mov dword [esp - 0xc], 0x6955445
mov word [edx - 2], ax
cmp edi, esi
jb 0x487ecd
mov dword [esp - 0x10], 0x7ddfa874
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [esp - 0x20], 0x4015164b
push esi
mov word [esi + eax*2], cx
mov eax, dword [0x4bab80]
mov dword [esp - 0x24], esi
xor eax, dword [0x4ba958]
nop
sub esp, 4
xchg edx, edx
mov dword [esp], 0x158cfc8d
sub dword [esp], 0x14425f8
add dword [esp], 0x25e527c9
mov dword [esp - 0x40], 0x57aee7ea
xor dword [esp], 0x25749777
sub dword [esp], 0x1f596928
push ecx
mov edi, edi
call eax
mov edi, dword [ebp - 0x10]
push esi
mov dword [edi + 8], eax
mov dword [esp - 0x10], 0x73236585
call fcn.0048b6f0
add esp, 4
cmp dword [edi + 8], 0
mov ecx, ecx
jne 0x487fd6
mov eax, dword [0x4bab20]
xor eax, dword [0x4ba958]
mov dword [esp - 0x14], 0x5910c0fa
call eax
cmp eax, 0xb7
mov eax, dword [ebp + 0xc]
pop edi
xchg ecx, ecx
sete cl
pop esi
mov byte [eax], cl
xor al, al
mov dword [esp - 0x38], edx
pop ebx
mov esp, ebp
pop ebp
mov dword [esp - 0x38], 0x721d8786
ret 8
mov eax, dword [ebp + 0xc]
pop edi
pop esi
mov dword [esp - 0x20], esp
pop ebx
mov byte [eax], 0x21
sub byte [eax], 0xf
xchg ebp, ebp
xor byte [eax], 0x13
xor byte [eax], 0x3f
sub byte [eax], 0x3e
mov al, 4
xchg ebx, ebx
add al, 0x2f
sub al, 0x24
add al, 0x3b
mov dword [esp - 0x40], 0x7ec6e7ec
sub al, 0x17
sub al, 0x32
mov esp, ebp
mov dword [esp - 0x34], 0x60c89004
pop ebp
ret 8