Function at 0x104e8562
Capabilities:
Encode data using xor

Disassembly:
xor edi, dword [esp + 0x14]
or ecx, 0x73522d19
add di, word [esp + 0x14]
xchg dword [esp + ecx - 0x7fd2bfb7], esi
sete byte [esp + 0x28]
and word [esp + 0x28], bx
neg bx
seta dl
xor ebx, ecx
mov edx, dword [esp + 0x20]
test bl, 0xda
call fcn.1049e816
loopne 0x104e8613
and eax, 0x619b0d6e
xchg dword [ebx - 0x40], ebx
outsb dx, byte [esi]
sub ecx, dword [ecx + 0x360d82d2]
mov dh, 0xe
mov al, 0x2f
lcall 0xc546, 0x4a3c0ce5
outsb dx, byte [esi]
sub dword [ecx + 0x36], esp
cmp cl, byte [ebx - 0x3ee2fb02]
cmp eax, 0x91c0947a
leave
cmc
and byte [esp + ebp], 0xa2
das
sub byte [ebp - 0x3e0fe3f], 0xf9
and al, 0x2c
mov byte [0xc1ad802f], al
add dword [edi], ebx
cld
stc
mov ebp, 0xb5c2b238
std
scasb al, byte es:[edi]
add eax, 0x2b60b5f0
push edx
or eax, 0x13ccc064
xor eax, 0x1929519a
and ah, byte [ecx]
and byte [esi - 0x4b], ch
inc ebx
jo 0x104e85c6
movsd dword es:[edi], dword [esi]
mov ebp, 0x5a082ba8
les ebx, [edx - 0x6f]
movsd dword es:[edi], dword [esi]
dec ebx
jecxz 0x104e867d
aad 0xa5
wait
pop esp
sti
pop edx
stosd dword es:[edi], eax
imul byte [ebx - 0x14aa5a19]
pushfd
shl byte [ebp + 0x7979cda7], 1
pop edx
adc al, 0x2e
xchg byte [0x1148825a], bl
sbb ebx, dword [edx - 0x7c]
invalid
or dh, byte [ebp + 0x5a61d642]
inc ebp
cmc
mov byte [esi], ch
pop edx
lea esp, [edx + 0xc]
pushfd
movsd dword es:[edi], dword [esi]
xchg ebp, eax
call 0x5ba8a2ef
int 0x6b
sub ebx, dword [edx - 0x7f]
out dx, eax
mov es, word [edx + 0x710436a5]
out 0xa5, al
test al, 0x52
out 0xe0, al
movsd dword es:[edi], dword [esi]
sahf
int 0xc6
shl dword [ebp - 0x18f1aafd], cl
movsd dword es:[edi], dword [esi]
mov dword [eax - 0x1ca5ec8f], edi
lodsd eax, dword [esi]
lodsb al, byte [esi]
jl 0x104e86cb
cli
lodsd eax, dword [esi]
cmp eax, 0xc45f173b
jno 0x104e8698
add eax, 0x2a01ef56
mov bl, 0xec
jo 0x104e86ff
xor ecx, dword [0xa3f45afe]
or eax, 0xa3f45afe
sal dh, 1
scasb al, byte es:[edi]
jnp 0x104e868d
xor al, 0x53
leave
mov eax, dword [0x4e92bdb7]
xchg ecx, eax
retf
push dword [ebp - 0x3a]
pop ss
mov edx, eax
adc bl, bl
push esp
mov edx, esp
jp 0x104e8772
pop edx
insd dword es:[edi], dx
add byte [esi], bh
fisttp dword [ebx - 0x5a13c369]
movsd dword es:[edi], dword [esi]
test al, 0x1a
xchg ebx, eax
xchg edi, eax
stosb byte es:[edi], al
add bl, byte [esi + edx*8]
inc esi
in eax, 0xb0
rcl byte [edx - 0x6ee25c5b], cl
xchg edi, eax
daa
sub byte [esi + 0x2a85bcca], dl
inc ecx
cmp dword [edx + 0x40], ebp
nop
mov dl, 0x5a
mov ecx, 0xe2b5c459
and al, 0x43
xlatb
xlatb
cmp dword [esi], esp
mov byte [0xa8f22933], al
pushal
les esp, [ebp - 0x4a]
mov ch, 0x52
ret 0xd367
inc ebp
das
dec esi
mul dword [ebp + 0x2886e9f3]
je 0x104e87cf
jb 0x104e87ad
xchg edx, eax
inc esi
lodsd eax, dword [esi]
pop edx
jnp 0x104e8707
and dword [edi], edi
pop edx
adc byte [edi + ecx*4], 0x32
adc cl, byte [edx + 0xea5ff8c]
cmp dword [edx], ecx
popal
pop ebx
and al, 0xc7
insd dword es:[edi], dx
push eax
scasb al, byte es:[edi]
mov bl, 0x84
add dl, bl
sbb dword [edx - 0x6d], ebx
dec ebx
xchg edx, eax
mov fs, word [ecx - 1]
call [edi + 0x3f8113e2]
aas
push ebp
inc edx
xchg edx, eax
push 0xffffffffffffffde
dec ebx
out dx, al
push ebp
dec eax
push 0x8d5a1f5f
int3
test dword [edi], edx
pop esp
pop ebx
or eax, 0x182e5a0b
mov cl, byte [esi]
pop edx
mov ah, 0x94
jnp 0x104e8852
aaa
sub esp, ecx
out dx, al
movsd dword es:[edi], dword [esi]
xor bh, byte [ecx - 0x33]
wait
inc edi
adc eax, 0x8d9c0838
invalid
xchg edi, eax
pop edi
int 0xff
movsd dword es:[edi], dword [esi]
jmp 0xd0061698
cdq
cmp esi, edx
xchg ebx, eax
jne 0x104e87ef
mov eax, dword [0xc5b8a5ec]
test eax, 0x7e295fd4
iretd