Function at 0x4e9197
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x4e91b4
cmp dword [ebx + 0x2c], 0
jne 0x4e91b9
mov edi, ebx
mov dword [ebp + 0xc], edi
cmp dword [edi + 0x1c], ebx
je 0x4e91c1
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0x40
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x18], 0
mov dword [ebx + 0x2e4], 0
mov dword [ebx + 0x2e8], 0
mov dword [ebp - 0x10], 0x40
call fcn.004e5977
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
test esi, esi
jne 0x4e9217
push 0x660558
call fcn.004e8057
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
push edi
push ebx
mov dword [ebp - 4], esi
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x2f0]
push ebx
call eax
mov edi, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x1c], eax
cmp esi, edi
jbe 0x4e9355
cmp eax, 0x3c
je 0x4e924f
cmp eax, 0xffffffff
jne 0x4e935e
mov edi, dword [ebp - 0x14]
mov byte [esi], 0
cmp edi, 2
je 0x4e925f
cmp edi, 0xffffffff
jne 0x4e926d
push dword [ebp + 8]
call fcn.004e73d7
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp + 8]
xor esi, esi
call fcn.004e6787
add esp, 4
test eax, eax
je 0x4e9344
mov eax, edi
sub eax, 1
je 0x4e92f2
sub eax, 1
je 0x4e92d6
sub eax, 1
jne 0x4e9344
cmp dword [ebx + 0x44], esi
je 0x4e9944
mov edi, dword [ebp - 8]
mov dword [edi + 0x18], 3
push dword [ebp + 8]
mov eax, dword [ebx + 0x44]
push edi
push ebx
call eax
add esp, 0xc
test eax, eax
jne 0x4e9344
push dword [edi]
push dword [ebp + 8]
push 0x6605a0
call fcn.004e8057
add esp, 0xc
jmp 0x4e9a83
mov edi, dword [ebp - 8]
push 1
mov dword [edi + 0x18], 2
push dword [ebp + 8]
push edi
call fcn.004eaa77
add esp, 0xc
test eax, eax
jmp 0x4e933e
cmp dword [ebx + 0x2e8], esi
je 0x4e9329
push dword [ebp + 8]
call fcn.004e6a07
mov edi, dword [ebp - 8]
add esp, 4
cmp byte [eax], 0
je 0x4e932c
cmp dword [edi + 0x18], esi
jne 0x4e932c
mov dword [edi + 0x18], 1
push dword [ebp + 8]
push edi
call fcn.004e8ee7
add esp, 8
test eax, eax
jmp 0x4e933e
mov edi, dword [ebp - 8]
push dword [ebp + 8]
push 0
push edi
call fcn.004e8e87
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4e9956
mov eax, dword [ebp - 0xc]
test eax, eax
mov edi, dword [ebp + 8]
cmove eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
je 0x4e9a55
cmp eax, 0x3c
jne 0x4e9905
mov eax, dword [ebx + 0x2f0]
push ebx
mov dword [ebp - 4], edi
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0xcf4e9490
invalid
rcl byte [ebx - 0x451ad52e], 0xd3
jecxz 0x4e9379
sar esp, cl
lea ecx, [eax]
inc esi
add eax, dword [edx + 0x35]
push edx
add edx, 0x4b
xchg ebx, eax
inc ebx
cmp eax, 0xe7e3a17d
or edx, edi
adc ebx, 0xffffff93
adc al, byte [ebx]
in eax, dx
push ebx
adc al, 0x8d
mov dword [0x4f65402d], eax
mov dh, byte [edx + 0x1a47b074]
imul esp, dword [edx - 0x6b], 0xffffffdc
insb byte es:[edi], dx
aaa
test ecx, 0x387c8f47
sub eax, 0xbad2c386
arpl word [edx - 0x3c1edc4a], dx
sahf
retf 0xbaca
bound ebp, qword [ebp + 0x5022f517]
rcl byte [ebx + 0x65227322], cl
ret 0xba93
xchg ebx, eax
and dh, byte [ebx + 0x22]
ret 0xba93
mov ebp, 0x91a4de5f
cmp al, 0x43
push edx
xor eax, 0xf63a3eb9
ret
and al, 0xa1
and al, 0xbd
jmp 0x4e98ac
fnstsw word [bp + si]
and dword [edi], 0xaef0f3b2
pop ds
xchg ebx, eax
invalid
jb 0x4e9895
invalid
jae 0x4e989c
inc eax
push 0xffffffffffffff93
daa
mov cl, 0x35
xor dword [esi], eax
push ebx
rol byte [edi - 0x3c], 1
enter 0x4426, 0xffffffffffffff9b
pop eax
pushfd
sbb ecx, dword [edx]
ja 0x4e9906
xor eax, 0xd8c29296
mov dword [0xe8773e22], eax
aas
stosd dword es:[edi], eax
xchg edi, eax
jo 0x4e98b9
inc ebx
loopne 0x4e9933
out 0xbb, al
je 0x4e98c4
push 0x22
push ecx
add eax, ecx
invalid
sbb ch, byte [ebx - 0x5a095e16]
push 0xfffffffffffffff1
mov eax, dword [0xf16aa5f6]
sub edx, dword [edx + ebp*4 - 0x33c51e00]
mov ds, word [ebp + esi*8 + 0x43e7cb83]
inc ebx
xchg ebx, eax
jbe 0x4e98e1
salc
arpl bx, ax
pop es
inc ebx
pop esp
mov bl, 0x5f
insd dword es:[edi], dx
les eax, [ebp - 0x395c2418]
sub byte [edx], 0x46
mov byte [0xc34b8cb9], al
jb 0x4e99cd
invalid
push esi
push ds
mov dword [0xb272b2ce], eax
cmp byte [esi - 0x41e46b89], ah
lahf
push cs
pop ss
jecxz 0x4e9941
popal
daa
and ebp, dword [edx + 0x14386caa]
jge 0x4e99b3
inc esi
adc byte [esi], al
xor al, byte ds:[esi]
xchg esp, eax
in al, dx
pop ss
lcall 0xe76f, 0x96b1aeaf
jnp 0x4e9a00
js 0x4e997f
insb byte es:[edi], dx
and al, 0x7c
iretd
add byte [ebx], 7
sbb edx, dword [edx - 0x2d]
and dl, byte [ebp + 0x50e2a22]
xor eax, 0xdb954061
stosb byte es:[edi], al
aad 0xae
out 0xc3, eax
push cs
add eax, 0x95406135
fld xword [edx - 0x3c18512b]
adc dword [0x1ed24e4e], eax
rcr byte [esi], cl
cmc
inc ecx
push edi
pop es
sub edi, esp
cmp al, 0x12
aaa
sbb eax, 0x624d4c09
pop edi
movsd dword es:[edi], dword [esi]
push ss
pushfd
xchg ecx, eax
inc edx
pop ss
mov al, byte [0x6a334763]
mov eax, dword [0x2dff5eba]
mov esp, 0x12625961
test eax, 0x7bea2222
lodsd eax, dword [esi]
pop esp
jl 0x4e997e
and cl, byte [esp + ecx*4 - 0x102d3d9e]
fisubr word [edi + 0x17fbbe7e]
pop ebp
dec ebx
lea esp, [ebx - 0x32440ca3]
mov ebx, 0xd5e1a2d3
test al, 0x9a
push ecx
xchg dword [ebx], ebx
sbb esi, ebx
xchg ecx, eax
adc al, 0xd5
insd dword es:[edi], dx
pushfd
test byte [edi + 0x38e3f3fd], 0xda
loopne 0x4e99bd
ret 0xefd2
aaa
inc eax
outsd dx, dword [esi]
pop ss
ret
mov edi, 0xb0868e31
xchg ebx, eax
or al, 0x60
dec edx
int1
sub edi, dword [0xac1f6cf9]
mov bh, 0x93
rol dword [edx - 0x36], 0xb6
sahf
pop esp
add dword [ebx + 2], ebp
add al, 0xc2
xor byte [eax - 0x6c70919e], ah
inc ebx
scasb al, byte es:[edi]
iretd
fld xword [ecx - 0x3937e5c6]
hlt