Function at 0x84ef67
Capabilities:
Encode data using xor

Disassembly:
dec esp
mov dword [esp + edx*2], ebx
ret 8
inc ebx
mov cl, byte [edx + ecx*8 + 2]
jae 0xc7de28
dec esp
mov dword [esp + esi - 0x47ea4f84], eax
dec ebp
lea edx, [edx + edx*2 - 0x16a4]
sal si, 0x26
inc ecx
push ecx
inc ecx
dec cl
inc ecx
shr bh, cl
inc edx
inc dword [esp + ecx*8 - 0x7ef]
dec eax
sal edx, 0xff
inc ecx
inc cl
inc bp
mov dword [edx + esi - 0x47eae100], edi
jno 0x7e5b98
dec dword [edi]
add eax, 0xba489c52
add bl, byte [edx]
cmp eax, 0xa4eea8de
syscall
push edx
pushfd
dec eax
mov edx, 0xde3d1a02
test al, 0xee
movsb byte es:[edi], byte [esi]
jge 0x84f003
mov edx, dword [esp + 8]
dec eax
mov dword [esp + 8], 0x87d58858
push dword [esp]
popfd
dec eax
lea esp, [esp + 8]
call fcn.0081e363
push ds
rcr ebp, 0x8e
mov al, byte [0xa7300ebf]
mov esp, 0x45f18136
int1
inc ebp
pop ebp
xor eax, 0x6fa6591
add eax, 0xe863f3ed
pop ds
xor dword [esi + ecx*8 + 0x7a], ebp
test eax, 0xeb9e378d
and byte [0x11c66639], 0x20
jbe 0x84efe3
dec ecx
out 0xb2, al
outsd dx, dword [esi]
xchg dword [edi - 0x71db6070], ebp
mov bh, 0x6b
mov edi, ecx
fstp xword [esi + 0x17]
aas
pop edi
jne 0x84f06d
lodsb al, byte [esi]
pushal
mov ebp, dword [ebx]
jle 0x84efab
js 0x84f09e
pop esp
je 0x84f08c
int 0x1b
mov bh, 0xf6
xchg byte [eax + 0x61], dl
add bh, dh
cmp byte [ecx], ah
mov byte [edx - 0x52], cl
daa
aaa
pop esp
sub al, 0x54
xchg dword [edi + ebx*2 + 4], edx
push ecx
invalid
salc
mov cl, byte [edx]
stosd dword es:[edi], eax
js 0x84f056
insd dword es:[edi], dx
pop edx
retf
jns 0x84eff0
das
les edx, [esi - 1]
in al, 0x22
ljmp 0xb720
mov ebx, 0xbfb720dc
jmp esi
out 0x17, al
ret
push ebx
or edi, eax
push ebx
mov ebx, 0x68665cb7
out dx, eax
xchg edi, eax
int 0xc3
jno 0x84f02a
js 0x84f068
xchg esi, eax
js 0x84f046
js 0x84f0a5
xchg edi, eax
out dx, al
mov edx, 0x371c8386
fnstsw word [ecx + 0x6f]
or edi, dword [eax + edi*2 - 0x1e97da1b]
jns 0x84f0b1
sbb dword [ecx + 6], edi
jns 0x84f0a0
daa
xchg word [ebp + 0x41], bx
inc ecx
int3
and byte [edi - 0x79e0d22b], al
dec ebx
outsb dx, byte [esi]
aad 0x2d
pop ds
xchg byte [ebx + 0x6e], cl
loop 0x84f0d8
jbe 0x84f123
invalid
cmc
and bl, byte [ecx + esi - 0x3861fced]
popal
or dword [esi], ecx
leave
cdq
stosd dword es:[edi], eax
ja 0x84f0ea
dec edi
loop 0x84f102
dec edx
salc
jno 0x84f097
add eax, 0xe6ce14b8
in eax, dx
cli
int 0xc2
jecxz 0x84f060
bound ebp, qword [ebp + 0x12]
or al, 0x15
xor byte [esi - 0x416d8c17], al
xor byte [eax + 0x4f09700d], 0x2a
mov edi, 0xde6f8fff
in eax, dx
outsd dx, dword [esi]
fsubp st(5)
clc
mov cs, ebp
sbb ah, cl
js 0x84f0a2
push ebx
stosb byte es:[edi], al
dec esp
and byte [ebx + 0x3389e560], cl
cmpsd dword [esi], dword es:[edi]
inc esp
mov es, word [eax + 0x4e]
dec esi
in eax, dx
xchg ebp, eax
stc
int1
jb 0x84f162
or byte [ebp + 0x41], ch
stosd dword es:[edi], eax
sbb eax, 0xc6df651
wait
in eax, dx
inc edx
cmp al, 0x64
cmpsb byte [esi], byte es:[edi]
test dword [edi], esi
in al, 0x3e
mov edi, 0xd7201066
int3
or edi, ebx
or dword [ebx + 0x678e0269], edx
add bl, dh
invalid
test byte [ebp - 0x41], bh
add al, 0xf4
clc
stosd dword es:[edi], eax
add ecx, dword [ecx]
xlatb
and byte [ebx + 0x3e], ah
dec eax
sbb esp, esi
and bh, byte [edi]
and ebx, dword [eax + 0x70]
invalid
inc ebp
mov edi, dword [ebp]
inc ecx
movsx ebx, si
sub word [esp + 3], dx
dec ecx
adc ebp, 3
dec edx
lea ebx, [ebx - 0x3345f149]
inc esp
xor edi, ebp
inc dword [esp + 4]
push edx
neg dx
inc ecx
neg edi
dec eax
shr dword [esp + 8], 0x3d
inc esp
xadd dword [esp + 8], ecx
inc ecx
dec edi
dec edx
xor ebx, dword [esp + ecx + 3]
push ebx
inc cx
shr esi, 0xad
inc ecx
bswap edi
inc ebp
lea edi, [edi + edx + 0x1ea06ed6]
inc esp
xor ah, dl
inc ebp
btc esp, esi
movsx ecx, dx
inc ecx
xor edi, 0xf4b73680
inc ecx
movsx edi, cx
inc ecx
inc edi
inc ecx
ror ecx, 0xba
call fcn.00c8650f
test al, 0x73
add byte [ebx + 0x11ba5958], bl
sub al, 0xb8
movsd dword es:[edi], dword [esi]
xor byte [esi + 0xe9fce04], bh
invalid