Function at 0x4959db
Capabilities:
Encode data using xor

Disassembly:
xchg ebx, eax
or al, byte [eax]
add byte [ebp + 0x9b], cl
add al, ch
xchg esp, eax
add al, byte [eax]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x495ac0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x40]
push 0x47bd6c
push ecx
mov byte [esp + 0xcc], 6
mov dword [esp + 0x90], eax
call fcn.00490434
mov eax, dword [ebp + 8]
push 0x47ba68
add eax, 0x2d8
add byte [eax], al
push eax
lea edx, [esp + 0x94]
push edx
call fcn.0048d404
inc dword [ebx - 0x7b39e73c]
and al, 0xc0
add byte [eax], al
add byte [edi], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax]
push 0x47b168
push ecx
push eax
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x48]
call fcn.004b8014
mov byte [esp + 0xc0], 9
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x495066
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 0xc], 0
je 0x4959dd
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.004a7f94
add esp, 8
mov byte [esp + 0xc0], 0xa
mov edx, dword [esp + 0x28]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x4950b4
push esi
lea ecx, [esp + 0x2c]
call fcn.0048d724
mov edx, dword [esp + 0x28]
lea ecx, [esi + 1]
push ecx
push edx
call 0x4dcc12
add esp, 8
test esi, esi
jl 0x495acf
add byte [eax], al
mov eax, dword [esp + 0x28]
cmp esi, dword [eax - 8]
jg 0x495acf
mov dword [eax - 0xc], esi
mov edx, dword [esp + 0x28]
mov word [edx + esi*2], 0
mov edi, dword [esp + 0x28]
test edi, edi
je 0x4959b5
mov esp, esp
jae 0x49512c
arpl word [ecx - 0x79dd15ae], cx
inc esi
mov dh, 0xd
cdq
sbb esi, edx
jae 0x49511a
in eax, 0x39
inc ebx
mov ebp, ebp
sub ah, byte [ebx]
push cs
mov bl, 0x6f
fmul qword [ecx]
xchg ebx, eax
jno 0x4950c7
lodsd eax, dword [esi]
mov ecx, 0x589aadec
push ebx
sbb dword [edi], edi
stc
inc esp
mov ecx, ecx
inc edi
jp 0x49519a
mov al, 0xe3
int1
add al, 0xff
dec edx
pop edx
or dword [ebx], 0x4e
dec esi
mov bl, 0x66
aas
jbe 0x4951aa
push ebp
or esp, dword [0x29df5992]
inc esi
pop ebp
or esp, ecx
add al, 0x8f
adc byte [esi - 0x34162ff6], al
inc esp
add al, 0x9d
cmp byte [ebx + 0x2a], ch
xchg edi, eax
jle 0x49510d
jg 0x4950dd
jno 0x49513c
lahf
mov edx, 0xd4cb3542
pop ds
xor al, 0x83
cwde
out 0x4f, eax
lodsb al, byte [esi]
jns 0x495125
insd dword es:[edi], dx
cdq
push esi
and dword [ecx + ebp*8 - 0x60], ebx
add eax, 0xd5b34a1c
aas
retf
loope 0x495200
pop edi
xor ecx, dword [edx + 0x1b]
sti
adc al, byte [eax + 0x77]
sub esi, dword [ebx - 0x6d03108f]
ja 0x4951ff
int 0x87
movsd dword es:[edi], dword [esi]
ret
push ds
lodsd eax, dword [esi]
mov eax, dword [0x438f568]
inc edi
ret
push ebx
mov edi, 0xbc30394d
add al, 0x17
cmp dword [eax], esi
mov esp, 0xb1170467
aad 0x8a
pop es
mov cl, 0xd5
mov al, byte [edi]
pop eax
aas
push 0x44e30152
mov cl, 0xaa
stosb byte es:[edi], al
popal
sub al, 0x95
mov dl, 0x51
scasd eax, dword es:[edi]
inc ebx
stc
mov ecx, 0x13b87282
mov esp, 0x65607572
pushal
invalid
sal byte [ecx], 0x15
xor eax, 0x2db4ea60
push 0x40
pop edx
loopne 0x4959b8
mov eax, dword [0x2cb54cf8]
invalid
popal
invalid
sbb eax, 0x83e993c1
invalid