Function at 0x4c0a34
Capabilities:
Encode data using xor

Disassembly:
call fcn.0048c49b
xchg dword [esp + 0x28], ecx
mov word [esp], 0x2bfe
push edi
mov byte [esp], ch
lea esp, [esp + 0x2c]
jae 0x4f4ca1
push ecx
pushfd
mov ecx, 0x41fed9
pushfd
mov ecx, dword [ecx + 0xcd0eb]
pushfd
lea ecx, [ecx + 0x1d7d3f60]
call fcn.0049c9ab
mov dword [0x8d2442da], eax
mov edi, 1
pushfd
mov dword [esp + 4], 0xcf8ff470
mov dword [esp + 0xc], edi
pop edi
bswap di
mov edi, 0x40f369
pushal
mov edi, dword [edi + 0x92975]
pushal
call fcn.004d04b4
add esi, ecx
aad 0x41
mov gs, ebx
call 0x9d1be132
add al, 0x3e
sub byte [ebx + 0x5f], bh
cmp dword [edx + 0x1b], ecx
movsd dword es:[edi], dword [esi]
pushal
dec ebp
aam 0x5a
hlt
aam 0x5a
lahf
or dword [edx], esi
inc edx
cdq
mov edx, 0x49cb538f
stosd dword es:[edi], eax
xor edi, ebx
ror dword [edx], 1
cmp al, 0x92
jne 0x47715a
jmp 0x47717b
or edx, dword [eax + 0x38]
xchg ebp, eax
add dh, 0xb2
sti
loope 0x4771c1
xor dword [edi], eax
push esp
dec ecx
test eax, 0x4d6cec0b
sub eax, 0xc576c0bf
salc
xchg esp, eax
jne 0x47716e
jmp 0x477125
jmp 0x4771e9
pushal
sar dword [0xa6e2cc0f], 0x51
jo 0x4771b5
sub byte [esi], dh
mov edi, 0x810bf61c
xor al, 0x6e
jmp 0xe273c621
sar dword [ebx + 0x2151a718], 0x32
aad 0x2b
push ss
or ch, bh
bound edx, qword [esi + 0x2bf38e45]
wait
xchg esi, eax
jle 0x47727f
test al, 0x4f
mov ebp, 0x7632a15d
pop es
fadd dword [eax - 0x36dad71c]
jnp 0x477221
adc dword [esi + 0x15bfc42b], ebp
std
out dx, eax
sbb byte [eax], al
mov ch, 0xfb
sub eax, 0x6b0cf2e3
pop esi
imul ebp, dword [ebx], 0x3c594f41
in eax, dx
dec edx
scasb al, byte es:[edi]
xchg ecx, eax
mov edx, 0x72cc1da2
dec eax
jle 0x47726f
xor al, ch
mov esi, 0x2f2b24d4
inc ebp
je 0x47720e
outsb dx, byte [esi]
sub eax, 0x3c13300f
cmp ch, byte [esi - 0x2c]
fild qword [edx]
sbb dword [edx + 0x55], 0x38
dec eax
mov ebp, 0xeace0ea0
sbb ah, byte [edx + 0x72c9da62]
rcr byte ds:[edx + 0x3bcaf2a], 0xeb
add ebx, dword [ebp + 0x513aa96f]
push es
jne 0x47729f
ljmp 0x72c9:0xda62a21a
xchg ebx, eax
adc eax, 0x9309c64e
xchg ebx, eax
out dx, al
je 0x4772f2
loop 0x4771fe
push edi
inc esp
add byte [ecx - 0x6e], ah
ror byte [ebp - 0x12], 1
dec ebp
out dx, al
sti
inc edx
sub dh, al
call [edi]
push ebp
sahf
test eax, 0x87bdc4bf
sub bl, bl
lahf
or esp, dword ss:[edi - 0x18]
fstp xword [esi + edx*4 + 0x1e]
push ecx
mov dword [ecx + 0x16093e0a], ebp
pushfd
popal
jecxz 0x47727c
test edx, esi
in eax, dx
fdivr dword [esi - 4]
in al, 0x17
insd dword es:[edi], dx
push ebp
into
out dx, eax
imul esp, dword [edi], 0x60
js 0x477252
fcmovb st(0), st(5)
cli
sub dword [esi - 0x43c62db1], eax
out 0x4a, al
fdiv dword [ebp - 6]
jl 0x47730e
jns 0x4772db
fidiv dword [edx + 0x17]
ja 0x477325
invalid
ret
jbe 0x47730c
mov dword [eax + 0x7cd9c0ce], esp
pushal
cld
and bl, dl
jmp [ecx - 0x41]
movntq qword [0x6a86f764], mm1
into
shr byte [edx], 0x80
mov al, byte [0x61d77af0]
adc al, 3
xchg ebp, eax
js 0x477349
xor al, 0xd6
sub ebx, eax
inc ecx
sub esi, edx
out 0xd8, al
out 0xd8, al
scasb al, byte es:[edi]
int1
jp 0x4772dd
inc esp
dec edi
outsd dx, dword [esi]
imul edi, ebp, 0xd035d147
lcall 0x12c4, 0x521d2a6d
pop edi
sub eax, 0xeb9e10d6
adc byte [edi - 0x4c], 0x57
lodsd eax, dword [esi]
xchg ecx, eax
mov edx, 0x44eb87fd
dec edi
xor ecx, dword [0xf8b92c24]
aad 0xfb
fnstcw word [ebp + 4]
cmp ecx, eax
int1
jl fcn.00477398
pop ds
stosd dword es:[edi], eax
jb 0x477345
fldcw word [eax - 0x2b]
push dword [esp]
mov ebp, 0x40ee1c
jmp 0x4770de
call fcn.004e6022