Function at 0x4c9a74
Capabilities:
Encode data using xor

Disassembly:
push eax
inc eax
add byte [eax + edx*2 - 0x6a2bffc0], ah
inc eax
add al, ah
xchg ebp, eax
inc eax
add ah, cl
push eax
inc eax
add al, al
push eax
inc eax
add al, dh
xchg ebp, eax
inc eax
add byte [eax - 0x43ffbfb3], al
dec ebp
inc eax
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, dh
and al, 0x4c
add byte [eax], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
cmp byte [ebx], cl
dec ebp
add byte [eax + eax], cl
add byte [eax], al
pop es
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9926
add byte [eax], al
adc al, 0x1c
dec esp
add byte [eax], dl
add byte [eax], al
add byte [edx], cl
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c99a0
je 0x4c99a0
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, dh
and al, 0x4c
add byte [eax], bl
add byte [eax], al
add byte [esi], cl
sbb byte [eax], al
add byte [eax], al
push cs
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c99b6
je 0x4c99b6
outsd dx, dword [esi]
outsb dx, byte [esi]
push eax
jb 0x4c99c1
arpl word [edx], ax
add byte [eax], al
add byte [ebx], al
add byte [ebp + 0x44004c99], cl
add ah, dh
invalid
jb 0x4c99d9
add byte [ecx + eax*8], dh
dec esi
add byte [esi], al
inc ebx
jb 0x4c99fc
popal
je 0x4c99ff
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
adc byte [eax], al
add ecx, dword [eax]
jo 0x4c9940
dec esp
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
or byte [eax], bh
or ecx, dword [ebp]
add al, byte [eax]
pop es
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c99c3
add byte [eax], al
adc al, 0x1c
dec esp
add byte [eax], cl
add byte [edx], cl
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9a3b
je 0x4c9a3b
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
dec ebx
add byte [ecx + eax*8 + 0x4306004e], al
jb 0x4c9a47
popal
je 0x4c9a4a
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or al, 0
add ecx, dword [eax]
jo 0x4c998b
dec esp
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
or byte [eax], bh
or ecx, dword [ebp]
add al, byte [eax]
pop es
dec ebp
add byte [edx], al
add byte [edi], al
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9a0e
add byte [eax], cl
invalid
lcall 0x5304, 0x8004c
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + 0xc004012], dh
add byte [edi], al
inc eax
add byte [eax + eax], cl
pop es
jb 0x4c9ab6
jae 0x4c9ac8
insb byte es:[edi], dx
je 0x4c9ab5
add al, byte [eax]
or ch, byte [eax + 0x10004be8]
add byte [edx], cl
arpl word [edi + 0x6f], bp
imul ebp, dword [ecx + 0x65], 0x4c
imul esi, dword [ebx + 0x74], 0x20002
mov eax, eax
je 0x4c9a0c
dec esp
add byte [edi], al
sbb edx, dword [edi + eax*2 + 0x65]
je 0x4c9abe
outsd dx, dword [esi]
outsd dx, dword [esi]
imul ebp, dword [ecx + 0x65], 0x73
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9af2
je 0x4c9aee
dec eax
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
jb 0x4c9a8a
cwde
dec esp
add al, ch
sbb eax, 0x40
pop es
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9aa4
add byte [eax], al
add byte [edx], al
add byte [ebp - 0x7c33ffc0], cl
inc esp
and al, 4
in al, 0xe9
sbb eax, 0x83000228
inc esp
and al, 4
in al, 0xe9
aas
add al, byte [eax]
add dword [esp + 4], 0xffffffe4
add byte [ebx - 0x1bfbdbbc], al
jmp fcn.00409600
sti
inc dword [ebx - 0x1bfbdbbc]
jmp fcn.00409628
sti
inc dword [ebx - 0x1bfbdbbc]
jmp fcn.0040963c
pop esi
hlt
out dx, al
adc dword [esi - 0x53bdfdaa], edi
adc al, byte [eax]
add bl, al
lcall 0, 0x1c004c
add byte [eax], al
add byte [eax], al
pushal
wait
dec esp
add al, ch
lcall 0, 0x4c
add byte [eax], al
add byte [eax], al
aam 0x9c
dec esp
add byte [eax - 0x65], ah
dec esp
add byte [ebx + 0x4c9b], ch
add byte [eax], al
add bh, al
wait
dec esp
add byte [eax + eax], ah
add byte [eax], al
mov eax, 0x8800401c
dec esi
inc eax
add byte [eax - 0x53ffbfb2], dl
push eax
inc eax
add byte [eax + edx*2 - 0x6a2bffc0], ah
inc eax
add al, ah
xchg ebp, eax
inc eax
add ah, cl
push eax
inc eax
add al, al
push eax
inc eax
add al, dh
xchg ebp, eax
inc eax
add byte [eax - 0x43ffbfb3], al
dec ebp
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
cmp byte [ebx], cl
dec ebp
add byte [eax + eax], cl
add byte [eax], al
pop es
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9b7c
add byte [eax], al
sbb byte [0x10004c], 0
add byte [edx], cl
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9bf6
je 0x4c9bf6
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, al
and eax, 0x18004c
add byte [eax], al
push cs
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9c0c
je 0x4c9c0c
outsd dx, dword [esi]
outsb dx, byte [esi]
push eax
jb 0x4c9c17
arpl word [edx], ax
add byte [eax], al
add byte [ebx], al
add al, dh
wait
dec esp
add byte [eax + eax - 0xc], al
invalid
push es
inc ebx
jb 0x4c9c5f
popal
je 0x4c9c62
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
adc byte [eax], al
add ecx, dword [eax]
rcr byte [esp + ecx*2 + 0x4000000], 1
push ebx
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
or byte [eax], bh
or ecx, dword [ebp]
add al, byte [eax]
pop es
dec ebp
add byte [edx], al
add byte [edi], al
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9c26
add byte [eax], al
sbb byte [0x8004c], 0xa
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9c9e
je 0x4c9c9e
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
dec ebx
add byte [edx + eax*8 + 0x4306004e], cl
jb 0x4c9caa
popal
je 0x4c9cad
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or al, 0
add ecx, dword [eax]
rcr byte [esp + ecx*2 + 0x4000000], 1
push ebx
insb byte es:[edi], dx
add al, byte [eax]
or byte [eax], bh
or ecx, dword [ebp]
add al, byte [eax]
pop es
dec ebp
add byte [edx], al
add byte [edi], al
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9c71
add byte [eax], al
shl byte [0x8004c], 0xa
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9ce9
je 0x4c9ce9
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
dec eax
add ah, dl
ret 0x4e
pushfd
dec esp
add byte [eax], cl
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + 0xc004012], dh
add byte [ecx], cl
jb 0x4c9d27
inc eax
add byte [eax + eax], cl
or dword [ebp + 0x72], esp
jb 0x4c9d25
outsd dx, dword [esi]
jb 0x4c9cfb
outsd dx, dword [esi]
add al, byte gs:[eax]
or al, byte [eax + 0x10004b]
add eax, 0x756c6176
add al, byte gs:[eax]
add al, byte [eax]
mov eax, eax
aam 0x9c
dec esp
add byte [edi], al
sub byte [edi + eax*2 + 0x65], dl
je 0x4c9d2b
jb 0x4c9d4c
arpl word [ebp + 0x73], sp
jae 0x4c9d27
js 0x4c9d58
outsb dx, byte gs:[esi]
dec ecx
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
jae 0x4c9d32
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9d5f
je 0x4c9d5b
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x4c9d5f
wait
dec esp
add al, ch
sbb eax, 0x40
pop es
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9d11
add byte [eax], al
add byte [edx], al
add byte [ebx + 0x4483ccc0], cl
and al, 4
in al, 0xe9
adc dword [edi], esp
add al, byte [eax]
add dword [esp + 4], 0xffffffe4
jmp fcn.00409600
and al, 4
in al, 0xe9
sar eax, cl
inc dword [ebx - 0x1bfbdbbc]
jmp fcn.00409628
int3
aaa
popfd
dec esp
add byte [ecx], bl
popfd
dec esp
add byte [ecx], al
add byte [eax], al
add cl, ah
cmp byte [edi - 0x79], dl
mov byte [0x8b40e39f], al
loope 0x4c9d92
push edi
xchg dword [edx - 0x74bf1c61], esp
inc eax
mov esi, dword [esi + ebp - 0x77]
jb 0x4c9d43
je 0x4c9d91
mov dword [edx - 0x23], esi
outsd dx, dword [esi]
out 0x44, eax
popfd
dec esp
add byte [eax + eax], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
int3
add byte [eax], al
add byte [ecx - 0x62], dl
add byte [eax], al
push ecx
sahf
dec esp
add byte [eax + eax], ah
add byte [eax], al
mov eax, 0x8800401c
dec esi
inc eax
add byte [eax - 0x53ffbfb2], dl
push eax
inc eax
add byte [eax + edx*2 - 0x6a2bffc0], ah
inc eax
add al, ah
xchg ebp, eax
inc eax
add ah, cl
push eax
inc eax
add al, al
push eax
inc eax
add al, dh
xchg ebp, eax
inc eax
add byte [eax - 0x43ffbfb3], al
dec ebp
inc eax
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax + ebp + 0x4c], dh
add byte [eax + eax], cl
add byte [eax], al
lodsb al, byte [esi]
and al, 0x4c
add byte [eax], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
je 0x4c9e19
dec esp
add byte [eax + eax], cl
add byte [eax], al
or edx, dword [edi + 0x65]
bound edx, qword [edx + 0x65]
jae 0x4c9e6e
jne 0x4c9e73
arpl word [ebp + 2], sp
add byte [eax], al
pushfd
sbb ecx, dword [eax + eax + 0x10]
add byte [eax], al
add byte [edx], cl
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9e80
je 0x4c9e80
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add byte [esp + 0x18004c], ch
add byte [eax], al
push cs
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9e96
je 0x4c9e96
outsd dx, dword [esi]
outsb dx, byte [esi]
push eax
jb 0x4c9ea1
arpl word [edx], ax
add byte [eax], al
add byte [ebx], al
add byte [ebp - 0x62], ch
dec esp
add byte [eax + eax - 0xc], al
invalid
add byte [ebx + eax*8], cl
dec esi
add byte [esi], al
push es
inc ebx
jb 0x4c9edc
popal
je 0x4c9edf
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
adc byte [eax], al
add ecx, dword [eax]
pop eax
lahf
dec esp
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
or byte [eax + ebp + 0x4c], dh
add byte [edx], al
add byte [ebx], cl
push edi
bound edx, qword gs:[edx + 0x65]
add al, byte [eax]
or edx, dword [edi + 0x65]
bound edx, qword [edx + 0x65]
jae 0x4c9f0f
jne 0x4c9f14
jb 0x4c9f06
arpl word [ebp + 2], sp
add byte [eax], al
pushfd
sbb ecx, dword [eax + eax + 8]
add byte [edx], cl
inc ebx
outsd dx, dword [esi]
add al, byte gs:[eax]
add byte [ebx + ebx + 0x8004c], bl
or al, byte [ebx + 0x6f]
insd dword es:[edi], dx
jo 0x4c9f1f
je 0x4c9f1f
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
dec edi
add byte [eax + 0x6004ec3], bl
inc ebx
jb 0x4c9f2b
popal
je 0x4c9f2e
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or al, 0
add ecx, dword [eax]
pop eax
lahf
dec esp
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
insb byte es:[edi], dx
add al, byte [eax]
or byte [eax + ebp + 0x4c], dh
add byte [eax], cl
je 0x4c9f0b
dec esp
add byte [edx], al
add byte [ebx], cl
push edi
bound edx, qword gs:[edx + 0x65]
jae 0x4c9f5e
jne 0x4c9f63
arpl word [ebp + 2], sp
add byte [eax], cl
lodsb al, byte [esi]
and al, 0x4c
add byte [eax], cl
add byte [edx], cl
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9f6e
je 0x4c9f6e
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
dec edx
add byte [esp + eax*8], dh
dec esi
add byte [esi], al
dec ecx
outsb dx, byte [esi]
jbe 0x4c9f85
imul esp, dword [ebp + 3], 3
mov al, 0x12
inc eax
add byte [eax + eax], dl
add ecx, dword [eax]
pop eax
lahf
add byte [ebx], al
or byte [eax - 0x61], bl
dec esp
add byte [eax], cl
add byte [ebx + edx*2], al
insb byte es:[edi], dx
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + 0xc004012], dh
add byte [ecx], cl
jb 0x4c9fac
add byte [eax], al
mov al, 0x12
inc eax
add byte [eax + eax], cl
or dword [ebp + 0x72], esp
jb 0x4c9faa
outsd dx, dword [esi]
jb 0x4c9f80
outsd dx, dword [esi]
add al, byte gs:[eax]
or cl, byte [ebx + eax*8 + 0x40]
add byte [eax], dl
add byte [edi], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x4c9fb4
outsb dx, byte [esi]
je 0x4c9f54
add byte [edx], al
add byte [ebp - 0x60a3ffc0], cl
dec esp
add byte [edi], al
sbb edx, dword [edi + eax*2 + 0x65]
je 0x4c9fa6
push esp
inc edi
je 0x4c9fa6
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x4c9fcc
outsb dx, byte [esi]
je 0x4c9fad
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4c9fda
je 0x4c9fd6
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
jb 0x4c9f46
popfd
dec esp
add al, ch
sbb eax, 0x40
pop es
add byte [eax], al
add byte [edi], al
push edi
bound edx, qword gs:[esi + 0x69]
ja 0x4c9f8c
add byte [eax], al
add byte [edx], al
add byte [ebp - 0x7c33ffc0], cl
inc esp
and al, 4
in al, 0xe9
popfd
and eax, 0x44830002
and al, 4
in al, 0xe9
push edi
div bl
inc dword [ebx - 0x1bfbdbbc]
inc dword [ebx - 0x1bfbdbbc]
inc esp
and al, 4
add al, 0xe4
in al, 0xe9
jne 0x4c9fa7
jmp fcn.00409628
inc dword [ebx - 0x1bfbdbbc]
inc dword [ebx - 0x1bfbdbbc]
inc esp
and al, 4
in al, 0xe9
jg 0x4c9fb1
jmp fcn.0040963c
dec esp
int3
xchg ebp, eax
lahf
dec esp
add byte [ecx], al
add byte [eax], al
add byte [ecx], ch
adc dword [eax - 0x5e], 0xffffffa8
jge 0x4c9fb2
push eax
mov byte [0x49d77da8], al
xlatb
dec ecx
mov word [0x4a5e12fa], es
out dx, al
invalid