Function at 0x4a63ed
Capabilities:
Encode data using xor

Disassembly:
jmp 0x496b86
jmp 0x496903
bt cx, 8
mov byte [esp], bh
sub edi, 4
clc
stc
push dword [edi]
pop dword [esp]
stc
cmp bl, dh
jmp 0x49cbae
mov byte [esp + 8], 0x85
jmp 0x48cc0f
call fcn.0049c26e
call fcn.004a78b6
add byte [eax], al
dec ecx
insd dword es:[edi], dx
popal
dec esp
imul esi, dword [ebx + 0x74], 0x6572435f
popal
je 0x496984
add byte [edx - 0x9fc7fc], cl
xor al, 0x24
call fcn.00498174
add byte [eax], al
push ebx
je 0x496982
imul edi, dword [eax + 0x65], 0x648d006c
and al, 0xc
jae 0x499eae
pushfd
sete al
jmp fcn.0049cf9c
add cl, ch
invalid
lea esp, [esp + 0x48]
lahf
mov eax, dword [ebp - 0x20]
jmp 0x49b819
pushfd
xchg dword [ebp - 0x24], eax
pushal
xchg dword [ebp - 0x28], eax
pushal
jmp 0x49d49c
call fcn.00497318
add byte [eax], al
inc edi
je 0x49cb99
jns 0x49cbbb
je 0x49cbaf
insd dword es:[edi], dx
dec ebp
outsb dx, byte gs:[esi]
jne 0x49cb50
mov dword [esp + 0x1c], eax
pushal
push dword [esp + 0x3c]
ret 0x40
je 0x49cbdd
insb byte es:[edi], dx
je 0x49cb9e
add byte [eax], al
push ebx
je 0x49cbe7
insb byte es:[edi], dx
popal
jae 0x49cc1b
dec esp
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ecx
add al, bh
clc
cmp edi, ebx
pushal
lea esp, [esp + 0x20]
ja 0x49dd9b
add dh, bh
enter 0xffffffffffffa31c, 0xffffffffffffffc0
enter 0x6007, 0x29
sti
dec al
sbb al, 0xa3
ror al, 7
pushal
sub ebx, edi
shld di, cx, 7
btc di, si
sub esp, 0xffffffe0
add ebx, esp
and di, ax
bt dx, 0xc
stc
cmc
mov edi, ebx
dec al
mov al, 0x2e
jmp 0x4a63dd
add byte [eax], al
or dword [ecx - 0x7de8c8ee], ebx
xor eax, 0x30078aca
into
pop ds
insb byte es:[edi], dx
lodsd eax, dword [esi]
jge 0x49cca2
fxam
sbb eax, 0x24b04f4e
pop esp
aam 0x50
push ebp
into
add al, 0xb9
in al, dx
shl dword [edi], 1
adc eax, 0xf74696f8
test byte [eax + 0xa], ch
pop ebp
popfd
jno 0x49cc7c
invalid
inc ecx
add byte [edi - 0x472217], bl
jmp dword [esi + 0xf]
invalid
invalid
cmp ecx, 4
movzx ax, dl
setle al
lahf
mov eax, ecx
call fcn.0049d39a
mov dword [ebp - 0x14], eax
lea eax, [eax*2 - 0x1cba32cd]
push eax
lea eax, [ebx + 0xcc8]
jmp 0x490e77
call fcn.0048fad5
add byte [eax], al
insb byte es:[edi], dx
jae 0x4a645b
jb 0x4a644c
jo 0x4a6464
inc ecx
add byte [ebx + ecx*4], ch
sub al, 0x8b
cmc
add edi, 1
and al, 0x92
stc
sub al, ch
mov al, byte [edi]
cmp bh, cl
bt si, cx
test al, al
call fcn.0048fbf0
add byte [eax], al
inc ecx
arpl word [ecx + ebp*2 + 0x76], si
popal
je 0x4a6476
shr al, 0xe9
xchg edi, eax
invalid
dec ebx
jns 0x4a6477
outsd dx, dword [esi]
popal
jb 0x4a647d
dec esp
popal
jns 0x4a648c
jne 0x4a6493
add bh, ah
inc ebp
inc esi
push edx
imul edx, dword [edx + 0x6d], 0xc024a115
scasd eax, dword es:[edi]
pop edi
mov eax, dword [0x607c6547]
mov ecx, 0xef006c70
out 0xe9, al
inc eax
add edx, dword [esi + 1]
scasb al, byte es:[edi]
push edx
loope 0x4a6401
pop ds
sub al, byte [edx + 0x54]
pop ss
dec esi
sbb esi, dword [esi + edi*2 - 0x1535f8e6]
invalid
retf 0xc7ea
outsb dx, byte [esi]
mov eax, dword [0x645a2e7]
sar dword [eax + 0x7c], 1
jbe 0x4a6499
jnp 0x4a649e
sbb al, 0xbe
add al, 0x10
xor edi, dword [esi - 0x6f]
sbb ebx, dword [0x3ff6ecda]
leave
ror byte [edx], 1
fimul dword [ebx - 0x31bd0fef]
or bl, dl
mov edx, dword [ecx]
invalid
into
cmp eax, 0xbf7f43d5
pushfd
push 0xffffffffffffff85
mov cl, 0
add byte [ebp + 0x6e], dl
insd dword es:[edi], dx
popal
jo 0x4a64e5
imul esp, dword [ebp + 0x77], 0x6946664f
insb byte es:[edi], dx
add byte gs:[eax], al
add byte [edx + esi*2 + 0x61], al
inc si
imul ebp, dword [ebp], 0x72440000
popal
add byte [eax], al
inc esp
jb 0x4a64ff
ja 0x4a64e6
jb 0x4a6503
insd dword es:[edi], dx
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x4a651b
outsd dx, dword [esi]
insb byte es:[edi], dx
add byte [eax], al
add byte [edi + 0x65], ah
je 0x4a6525
jb 0x4a652b
bound edi, qword [ecx + 0x6e]
popal
insd dword es:[edi], dx
add dl, dl
sal al, cl
rol al, cl
add esi, edi
mov al, 0x5e
mov byte [esp], bl
pushal
rep movsb byte es:[edi], byte [esi]
push 0x3c625ac3
mov esi, dword [esp + 0x48]
jmp 0x49cb3b
and al, 8
or byte [edi], cl
test byte [ecx], bh
adc eax, 0xf766ffff
shl byte [esi - 0x77], 1
clc
je 0x497a26
not ax
mov ax, di
cwde
lea eax, [ebx + edx*4]
pushfd
lea esp, [esp + 4]
jo 0x48fccc
xchg edi, eax
invalid
call fcn.0049c26e
push 0x2c18f62a
adc dl, dl
call fcn.00490a52
add byte [eax], al
inc edi
je 0x4a655c
pop ebp
invalid
jne 0x4a658d
jb 0x4a6582
outsb dx, byte [esi]
je 0x4a6570
jb 0x4a6591
arpl word [ebp + 0x73], sp
jae 0x4a6599
jae 0x4a6570
dec ecx
add byte fs:[edi - 0x49], bl
salc
in al, 0x80
in al, 0xc1
adc eax, 0x36e25871
loop 0x4a656b
lodsd eax, dword [esi]
add al, 0xfc
fild word [ebx - 0x2c]
jno 0x4a64c9
inc ebx
aam 0x71
mov word [ebx - 0x312ae244], cs
pop ebx
aad 0x70
js 0x4a6562
mov edi, dword [ebp + ebx - 0x2aa4312b]
jo 0x4a65be
sbb edi, dword [edx - 0x16]
jp 0x4a6533
lea ebp, [ebx + 0x3d]
and ah, 0xc1
xor ch, ch
push esi
pop ebp
into
mov dword [0xda685285], eax
pop es
jbe 0x4a6592
loope 0x4a6503
jo 0x4a6523
mov dword [0x18c33a60], eax
cli
cmp al, bl
sbb dl, bh
fisttp word [eax]
loopne 0x4a6539
jne 0x4a652e
ret 0xb8ae
scasb al, byte es:[edi]
mov eax, 0x79067549
scasd eax, dword es:[edi]
push es
jns 0x4a6522
xchg ecx, eax
lds edx, [ebp - 0x6f]
xchg ecx, eax
and byte [edx - 0x38cba3d3], 0x6a
enter 0xffffffffffff9e02, 0x67
lcall 0x5922, 0x1ace2afb
xor al, 0xc7
push 0xffffffffffffffc8
add bl, byte [esi + 0x2afb9a67]
into
sbb ah, byte [edx]
pop ecx
lcall 0x5922, 0x1ace2afb
dec eax
dec ebx
push cs
push cs
dec edi
cmp edx, 0x38
cmp byte [edx - 0x2d43628d], bl
rol esp, 0xf3
pop ebx
lcall 0xc4c1, 0xd2bc9d73
pop ebx
add esp, 0x600c69fc
adc eax, eax
xchg edi, eax
pop ds
jnp 0x4a657c
sal byte [esi + 0x26ec9a52], 1
leave
sub ah, al
cmpsd dword [esi], dword es:[edi]
mov dh, 0x52
lcall 0xa7c4, 0x28c926ec
or al, 0xd0
aas
xchg ebp, eax
jle 0x4a65a8
invalid
outsd dx, dword [esi]
xor esp, eax
inc ebx
jno 0x4a6624
sti
outsb dx, byte [esi]
into
mov bl, 0xca
int3
imul esi, dword [0x66c1e480], 3
push ecx
salc
cmp eax, 0x698318c5
clc
pop edx
sti
pop ecx
push cs
jmp 0x1782c1f1