Function at 0x4fa9d4
Capabilities:
Encode data using xor

Disassembly:
aad 0x79
ret
mov dword [ecx + 0x65], ecx
mov bh, 0xa4
dec ecx
jecxz 0x4cb6ad
jle 0x4cb72b
sti
or al, 0x91
aam 0x77
fild dword [esi - 0x2c]
in al, dx
cmp al, 0x39
mov esi, 0xa7c70a16
or ecx, dword [edx]
cmp dword [edi - 0x7d], ebx
push 0xfd864989
inc esi
pushfd
test byte [esi - 0x49f8383d], bh
dec edi
int 0xac
push es
cmp ah, byte [edx + ebx*2 - 0x4b203eb]
or al, 0xc5
cmp ah, ah
retf
outsb dx, byte [esi]
mov esp, 0x22b74aec
int 0x46
mov bh, 0x3a
lcall 0xa770, 0xd32b4251
sub edx, ebx
jo 0x4cb6e3
add dword [eax + 0x47], edx
jg 0x4cb6d8
dec ecx
ret 0x36fc
add eax, 0xb354313e
cmp ecx, dword [ecx - 0x7a]
add al, 0x2e
test al, 0x5f
inc eax
inc edi
dec ecx
sti
mov dh, 0x3a
adc bh, byte [edi - 0x7dae88c6]
sbb bh, byte [edx]
dec edx
jo 0x4cb738
and bh, byte [ebp + 0x70]
jge 0x4cb7ef
mov bh, 0x3a
dec eax
jo 0x4cb75f
xor dword ds:[esi + 0x63493a2a], eax
mov dh, 0x3a
dec ecx
sti
sahf
js 0x4cb741
sti
mov dh, 0x93
mov byte [0x86bb1dbe], al
sti
mov dh, 0x7a
dec ecx
dec eax
adc dword [edi + 0x3af39c7c], ebp
mov ebx, edi
aaa
dec ecx
sti
idiv byte [edx]
cdq
inc eax
mov bh, 0x3a
mov esi, 0x1bb1d1d
adc al, 0xb7
jp 0x4cb803
push es
mov eax, 0x6f7e60af
scasb al, byte es:[edi]
dec ecx
cmp esi, dword [edi - 0x15f640b8]
add eax, dword [ebx - 0x76c5607d]
sti
invalid
mov edi, 0x8303ea09
sbb dword [edi - 0x3a0476c6], 0xffffffcf
or al, byte [edi - 0x44830288]
jp 0x4cb77d
test eax, 0xa7db2f63
sti
sahf
loop 0x4cb7ae
sti
mov dh, 0xbd
scasb al, byte es:[edi]
div dword [edi + 0x78b8ec7]
cmp dword [edi - 0x1d], ebx
push 0xfcc24989
dec eax
dec ecx
ret 0x36fc
sti
mov dh, 0x39
or dword [eax + 0x52493ab7], edx
and dword [edx], edi
aam 0x18
jae 0x4cb7f1
cwde
sti
mov ch, 0xd
lcall 0xb74a, 0xfbfaccfa
lds edi, [ecx]
sub dword [ebp - 0x369aa951], 0xb6faa022
cmp dword [ebx + 0x493b41e4], esp
sti
cmp dword [ecx + 0x6556afad], eax
leave
and ah, byte [eax - 0x5cc64906]
in al, 0x41
cmp ecx, dword [ecx - 5]
aas
js 0x4cb7c5
cli
int3
test ah, bh
push ss
aad 0x41
mov edi, 0x42d38ec3
mov eax, 0x399e7c55
leave
jl 0x4cb7f6
cmp ecx, ecx
sti
mov dh, 0x39
sbb eax, 0xfd4fb64c
lodsd eax, dword [esi]
push es
cmp dl, ah
jo 0x4cb7ff
mov ebp, 0x402afe47
retf 0xb7ca
jecxz 0x4cb84a
lodsb al, byte [esi]
sti
aas
inc edi
jns 0x4cb811
sbb bh, byte [edx]
rcl byte [eax], cl
jmp 0x4cb856
and dl, bl
ja 0x4cb887
cmp dl, dl
pop eax
mov bl, 0x22
mov esi, dword [ebp - 0x49]
cmp cl, dh
mov ebx, 0x16b34234
lahf
fisubr word [ebp + 0x4893b6fb]
adc ebx, esi
in eax, dx
cwde
sti
pop ecx
mov esi, 0x22b75f29
cmp dh, byte [edi + esi*4 + 0x3a]
in al, dx
sti
cmp eax, 0xe4e3499d
mov dl, 0x49
sti
cmp edi, edx
mov byte [ebx], 0x21
inc edx
xor dword [edx + 0x1b], edi
cmp cl, byte [ecx + 0x54]
lahf
jecxz 0x4cb8cc
sti
mov dh, 0xbf
or dword [ecx - 0x41], edi
movsb byte es:[edi], byte [esi]
push edx
jecxz 0x4cb93c
sahf
dec ecx
sti
jge 0x3a693752
dec ecx
push esp
cmp al, 0xfa
mov ebp, 0xa5220702
pop edi
mov bh, 0x3a
mov byte [0x49afe0e3], al
sti
cmp dl, byte [edi + 0x49bd7005]
add byte [ecx + 0x77], cl
and eax, 0x93c1654d
lcall 0xb6fb, 0xb13a214b
jp 0x4cb993
mov cl, 0xfb
mov dh, 0x7a
dec ecx
jecxz 0x4cb8cc
cmovnp edi, ebx
aas
jg 0x4cb97f
jg 0x4cb988
sbb cl, byte [edx + 0x70]
mov ebp, 0x1da2318a
cmp cl, byte [ecx - 0x1d]
jp 0x4cb901
dec ecx
sti
mov eax, dword [0xa340d468]
lds edx, [ecx - 0x7a]
rol bl, 0x96
iretd
sub bh, byte [edx]
dec ecx
push esp
adc ch, bh
aam 0x60
lahf
lds ecx, [esi + 0x2d7f40cf]
inc eax
jg 0x4cb9af
jg 0x4cb9b8
sbb cl, byte [edx + 0x70]
mov ebp, 0x1d83318a
cmp cl, byte [ecx - 0x1d]
pop ecx
mov al, byte [0x7f7dfb49]
dec edx
jo 0x4cb945
mov dh, byte [ecx]
sbb dword [0x59e3493a], 0xffffffa0
dec ecx
sti
jge 0x4cba14
inc ebp
cli
mov dh, 0x39
dec ecx
xchg esp, edi
push ds
xor eax, 0x89faea0f
mov esi, 0xc3319f42
cld
dec eax
sti
mov dh, 0x39
add bh, bl
cmp dword [edx], eax
sti
mov bh, 0x3a
dec ecx
jecxz 0x4cb985
mov esp, 0x2279fb49
adc edi, dword [edi - 0x49]
and dl, byte [ebx]
jg 0x4cb973
cmp dh, byte [edx]
adc dh, byte [ebp + 0x5eb44939]
adc byte [esi + 0x7d1e59fb], 0x5b
mov bh, 1
dec edi
jecxz 0x4cb9ba
lcall 0xc249, 0x87f69e49
mov esp, 0xb75b7d26
wait
mov byte [eax - 0x49], cl
add dword [edi - 0x15], ecx
ljmp 0x4987
sti
xlatb
adc byte [esi + 0x493f7dfb], 0x2f
pop ss
cmp ch, byte [edx + 0x3a]
add al, 0x3a
adc byte [ecx], al
mov ebx, 0x41fba96e
js 0x4cb9ac
sti
jge 0x4cba58
push ecx
das
pop ss
cmp ah, byte [ebx + 0x39]
add al, 0x3a
or al, 0xe4
push edx
cmp dword [ecx - 5], ecx
lahf
pop edx
fdivr st(3)
mov dh, 0xbd
lds ebx, [edi]
mov ebx, 0x3e0bec3a
or edi, dword [esi]
popfd
dec ecx
outsd dx, dword [esi]
mov esp, 0xb789f422
cmp ah, byte [esi + ebx*8]
jp 0x4cb9fe
xchg byte [ebx], bh
xchg byte [ebp - 0x413a04b7], bl
sar bl, 1
mov dh, 0x3a
int3
outsb dx, byte ds:[esi]
jnp 0x4cba32
cmp cl, byte [ecx + 0x38]
aaa
pop ecx
dec ecx
sti
sub ecx, dword [ecx + 0x22]
cmp bl, bl
mov al, byte [0xa0daffd4]
int3
pop ebx
jmp 0x4fa9f3
add ebx, 0xffffff92
jmp 0x4faa19
cmp dword [ebx], 0
clc
jae 0x4faa24
popal
dec ecx
mov ah, 0x6e
je 0x4fab6d
jmp 0x4faa43
mov edi, ebx
jmp 0x4faa49
add ebx, 4
jmp 0x4faa71
mov eax, dword [ebx]
jmp 0x4faa93
jg 0x4faa19
movsb byte es:[edi], byte [esi]
popfd
cli
mov ch, 0xf9
add dh, ah
hlt
add eax, ebx
stc
jb 0x4faab2
sbb eax, 0xee5efa1
bound ebp, qword [edx]
clc
enter 0xffffffffffff859d, 5
mov ecx, esp
pushal
mov edx, 0x5b95ecd8
jbe 0x4faa7a
or byte [edx], cl
xchg edx, eax
inc esp
mov edx, dword [ebx + 4]
jmp 0x4faac3
sub dword [eax], 0xb6fb493a
jmp 0x4faaf2
add eax, 4
jmp 0x4fab0e
sub edx, 1
jmp 0x4fab20
jne 0x4faab5
jmp 0x4fab3a
add ebx, 8
jmp 0x4fab45
sub dword [edi], 1
jmp 0x4fab5a
jne 0x4faa4c
stc
jb 0x4fab68
rol byte [edx], cl
stosd dword es:[edi], eax
clc
call fcn.004fabd4
call fcn.004fabd4
jmp 0x4fab9e
popal
stc
jmp 0x4fabcf
jmp 0x4cb9b8