Function at 0x5bed28
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
mov ebx, dword [ebp + 0xc]
lea ecx, [ebp - 0x6c]
push esi
push edi
call fcn.005c315d
xor ecx, ecx
mov dword [ebp - 0x38], 0x49cc34
mov eax, ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], eax
or esi, 0xffffffff
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebx]
push 0x48
mov eax, dword [eax]
dec eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
pop edi
mov dword [ebp - 0x24], 0x7f
mov edx, dword [eax + 4]
mov dword [ebp + 8], edx
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], di
mov edi, esi
je 0x5beee0
mov dword [ebp - 0x1c], 0x40
mov edi, edx
xor eax, eax
mov byte [ebp + 0xb], al
xor ebx, ebx
mov dword [ebp - 0x18], edi
mov eax, dword [edi + ecx*4]
cmp word [eax + 8], bx
mov ebx, dword [ebp + 0xc]
je 0x5fd2e4
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ecx*4]
cmp word [eax + 8], 0x33
jne 0x5fd33a
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x3c], eax
inc dword [eax]
xor eax, eax
mov edi, eax
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x5bee0b
mov ebx, dword [ebp - 0x20]
mov esi, eax
mov ecx, dword [ebx + edi*4]
lea edx, [ebp - 0x48]
call fcn.005bf1bb
test al, al
jne 0x5bee02
inc edi
cmp edi, esi
jb 0x5bedee
mov ebx, dword [ebp + 0xc]
or esi, 0xffffffff
mov eax, dword [ebp - 0xc]
cmp edi, eax
jne 0x5fd34d
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x38]
call fcn.005bd95b
mov edi, dword [ebp - 0x14]
inc dword [ebx]
mov edx, dword [ebx]
mov edi, dword [edi + 4]
mov eax, dword [edi + edx*4]
cmp word [eax + 8], 0x41
jne 0x5bee77
cmp byte [ebp + 0xb], 0
jne 0x5bee77
inc edx
xor eax, eax
mov ecx, eax
mov eax, dword [edi + edx*4]
mov dword [ebx], edx
movzx eax, word [eax + 8]
cmp ax, 0x47
je 0x5fd315
push 0x48
pop ebx
cmp ax, bx
mov ebx, dword [ebp + 0xc]
je 0x5befa1
cmp ax, word [ebp - 0x1c]
je 0x5bef73
cmp ax, word [ebp - 0x24]
je 0x5fd346
inc edx
jmp 0x5bee3e
cmp dword [ebp - 8], esi
jne 0x5fd346
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x48]
call fcn.005c208b
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx]
push 0x48
mov edx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
movzx edi, word [eax + 8]
cmp di, word [ebp - 0x1c]
mov dword [ebp + 8], edi
pop edi
jne 0x5bef8f
inc ecx
mov dword [ebx], ecx
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], di
mov edi, dword [ebp - 8]
je 0x5fd33a
mov eax, dword [edx + ecx*4]
push 0x48
pop ebx
mov dword [ebp + 8], edx
cmp word [eax + 8], bx
mov ebx, dword [ebp + 0xc]
je 0x5beee0
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
jmp 0x5bed96
lea eax, [ecx + 1]
mov ecx, dword [ebp + 8]
mov dword [ebx], eax
push 0x7f
mov eax, dword [ecx + eax*4]
pop ecx
cmp word [eax + 8], cx
jne 0x5fd324
mov ebx, dword [ebp + 0x14]
push ebx
call fcn.005ba7f7
test eax, eax
js 0x5bef4a
lea eax, [ebp - 0x6c]
cmp eax, dword [ebp + 0x10]
je 0x5bef17
push dword [ebp + 0x10]
mov ecx, eax
call fcn.005c30c3
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx]
dec eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x58], eax
cmp edi, esi
jne 0x5bef2f
mov edi, eax
mov al, byte [ebp + 0x18]
mov ecx, 0x4d156c
mov byte [ebp - 0x4c], al
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0x54], edi
call fcn.005d633f
xor eax, eax
mov esi, eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0x49cc34
call fcn.005befdc
push dword [ebp - 0x34]
call fcn.005d8610
pop ecx
lea ecx, [ebp - 0x6c]
call fcn.005c208b
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x14
test ecx, ecx
jne 0x5bee74
cmp dword [ebp - 8], esi
jne 0x5bee80
mov edi, dword [ebp - 0x10]
mov dword [ebp - 8], edi
jmp 0x5bee80
cmp word [ebp + 8], di
mov edi, dword [ebp - 8]
je 0x5beebd
jmp 0x5fd31b
sub ecx, 1
js 0x5bef7b
jmp 0x5bee74
in al, 0x9d
cmp dh, cl
adc esi, eax
popal
dec esp
sti
jle 0x5fd2a9
cmp eax, ebp
add al, 0x49
add dword [edx + ebx - 0x2c], eax
inc esp
sbb dl, ah
mov dword [edx + ecx*8], edx
add eax, 0xccdcb101
mov edi, 0xae50b5a3
pop esi
cmp ah, byte [ecx + 0x75]
enter 0x3dbc, 0xffffffffffffffbd
shrd dword [eax + ebp*2 + 0x55], edi, 0x3a
aam 0x6d
adc esi, dword [ebx]
mov dword [0x3e9bb9eb], eax
xor dword [edi], ecx
mov ebp, 0xa42ca997
pushal
sbb esp, ecx
mov esi, 0xedb0ff91
sub al, 0x6e
jae 0x5fd28e
mov dh, 0xf3
fiadd dword [ebx - 0x47339b24]
fiadd dword [ebx - 0x47339b24]
xor al, 0xe
xchg edi, eax
mov al, byte [0xeae96d0b]
jo 0x5fd2d7
insd dword es:[edi], dx
jmp 0xedd038d4
pop edx
in eax, dx
inc esi
cmpsb byte [esi], byte es:[edi]
hlt
fiadd word [edx + 0x5bf21e2b]
mov al, byte [0xb2d5706d]
jge 0x5fd29e
fimul word [ebx + 0xc]
xor al, 0xcb
pushal
jmp 0x5fd381
retf
or al, 0xbe
xor bh, byte [ecx]
sbb bh, byte [edi]
dec esp
sar dword [esi + esi*8 + 0x625e00d3], cl
inc edx
and byte [ebx + 0x2c4eaa6d], dh
inc eax
insd dword es:[edi], dx
jb 0x5fd32b
mov dl, 0xf0
xchg esp, eax
das
push esi
loopne 0x5fd30a
lahf
xlatb
iretd
invalid
adc eax, dword [esp + ecx*4 - 0x435c2390]
cld
push 0x39
mov fs, ecx
in al, 0xde
cwde
xor ch, bl
mov bh, bh
pop esp
aam 0x91
ud1
inc eax
xchg edx, eax
salc
jo 0x5fd38d