Function at 0x5f6f80
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esi + ecx - 0x2ab9fd23]
push edx
lea edx, [edx*2 - 0x34c86a64]
xor ecx, ebx
movzx eax, dx
mul edx
rol ecx, 2
sar ax, 0x86
not ecx
inc ax
call fcn.006017bd
jo fcn.005f6f80
add ah, byte [esi - 0x3f]
clc
xchg bh, dh
shl dword [esi - 1], 1
shr al, 0x16
test al, 0
add byte [eax - 0x29], dh
loope 0x5f6ff0
popal
mov byte [0x2a43d59b], al
cwde
jo 0x5f700f
mov bl, 0xdb
dec ecx
or ebp, edx
sub eax, 0x48466906
mov ebx, 0x1611fa98
xchg ebp, eax
or byte [edi - 3], cl
cmc
push ss
xchg esp, eax
in al, 0x5e
pop eax
test byte [edi + 0x3b], dl
pushfd
ret
push edi
cmp ebx, dword [ebx + eax*8 + 0x48b3b9b7]
mov ch, 0x94
call 0x4b33870d
cmp ecx, eax
cmp ch, byte [edi + 0xa994c5f]
cmpsb byte [esi], byte es:[edi]
movsd dword es:[edi], dword [esi]
sar dword [edx + 0x5c54cbb0], cl
add byte [ebp + esi*4 + 0x34], bl
mov ch, 0x34
aas
adc byte [eax + 0x59386c13], dh
fmul dword [edi + 0x1f]
movsd dword es:[edi], dword [esi]
jae 0x5f7032
pop ecx
test al, 0xca
sub bl, byte [ecx]
push ds
les ebx, [ecx + ebp + 0x49]
loopne 0x5f6fcf
cdq
jbe 0x5f6f98
invalid
mov ebx, 0x7669141c
mov cl, 0x39
adc byte [edi + 0xda020e7], ah
inc edi
int1
mov cl, byte [0xbcd4f37d]
popal
jge 0x5f6fd9
jecxz 0x5f70b5
cmp dword [ecx - 0x3b], 0xb98dc8e0
push edx
lodsb al, byte [esi]
invalid
and ebp, eax
mov al, 0x2d
mov eax, edx
mov ax, word [esi + eax*2 - 0x5b618a42]
ror edx, 0xeb
mov dx, word [esi + 2]
mov ecx, 0xdaacad90
dec cl
mov cl, byte [esi + 4]
adc esi, 3
shrd ax, dx, cl
mov edx, 0x58fee97
ror edx, 4
jae 0x72d6b9
rol edx, 2
not edx
bswap edx
pop ecx
xor ebx, edx
call fcn.0070e79c
mov word [esi + edx - 0x7058fee9], ax
movzx eax, dl
mov ecx, dword [ebp + edx - 0x7058fee9]
lea eax, [edx + edx*8 + 0x7fa92d09]
jae 0x779655
or dx, ax
dec byte [esp + 1]
ror cx, 0x69
not dx
mov word [edi], dx
mov edx, dword [esi]
sar dword [esp], 0xa5
and cl, byte [esp + 3]
adc esi, 4
mov eax, dword [esp]
xor ax, 0xd023
xor edx, ebx
xor byte [esp + 1], 0x13
inc cl
xor edx, 0xd810929
sar cx, 0xcd
je 0x717f7e
mov ecx, 0x9422a0a2
mov edx, dword [ebp]
mov eax, dword [ebp + 4]
imul cx, cx
add ecx, ecx
mov ecx, dword [ebp + ecx - 0x2845cd00]
call fcn.005c7e65
call fcn.006ab090
add eax, eax
adc ebp, edx
dec cl
call fcn.005aabfb
nop
outsb dx, byte [esi]
scasd eax, dword es:[edi]
arpl word [ebx + 0x30774660], cx
movsd dword es:[edi], dword [esi]
pop esi
out 7, eax
mov esp, 0x890c788f
dec esp
cmp ecx, dword [esi - 0x7a7b0965]
scasb al, byte es:[edi]
adc eax, 0x443bb794
xchg bl, al
jmp 0x3104bb6
lea ebp, [edx + ebp - 0x7058fee5]
call fcn.0071829e
lodsd eax, dword [esi]
loope 0x7796c2
mov edx, 0x91f651e8
cmp al, 0x54
rol byte [0xfffff84e], 1
xor al, byte [eax - 0x657db5c]
loope 0x7796ea
bound ebx, qword [eax]
sbb ecx, dword [esi]
dec eax
or cl, cl
mov bl, 0x64
push edx
sahf
stosb byte es:[di], al
mov edx, 0x710ced84
jmp 0x7796de
leave
salc
jno 0x779726
add eax, 0x8f70f651
mov dword [0xa89ca457], eax
cmpsd dword [esi], dword es:[edi]
pop ebp
fbld tbyte [ebx]
sub al, 0xed
adc dword [ebp + ecx*8 + 0x17], edi
push esp
fild dword [eax + 0x49]
adc dword [esi - 0x7d7c43ba], ecx
inc ebp
popal
sbb esi, esp
jns 0x7796eb
add byte [edi + esi*4 - 0x54], ch
insb byte es:[edi], dx
mov bh, 0xac
xor eax, 0x5d8168af
cmp esp, dword [ebx + 0x3f7f89d5]
invalid
js 0x77972a
sub al, 0xba
popal
pop edi
pop ebp
inc ebp
fcmovne st(0), st(5)
cwde
mov edx, 0xc5038e00
cli
int1
fst dword [ecx]
adc al, 0x52
wait
or eax, dword [edi]
outsb dx, byte [esi]
ja 0x77979d
jnp 0x779758
or eax, 0x69ae0aac
ror cl, 0xa4
movsb byte es:[edi], byte [esi]
or ebp, ebp
popal
not byte [ecx]
rcl byte [edi], cl
sbb cl, byte fs:[esi + 0xe9dbda]
ja 0x7797d8
fucomi st(1)
add byte [edi + 0x7b], dh
in eax, dx
movsd dword es:[edi], dword [esi]
imul esi, dword [ebx + ebp*4], 0x233dc5d1
jg 0x7797a3
add bl, bl
mov dl, 0x7f
jg 0x77978a
inc ecx
std
aad 0x7f
imul ecx, dword [eax - 0x25], 0x36
or byte [ecx - 0x1d], 0x3b
add bh, al
mov eax, 0x61ffccf6
push ss
mov al, byte [0x4878803c]
cdq
xor eax, 0x6767cf00
lodsb al, byte [esi]
add bh, cl
lodsb al, byte [si]
aas
add byte [eax + ebp], bl
sbb dword [edx], esi
add al, ah
push esp
xor byte [edx - 0x181205cb], bh
mov cl, 0x45
out 0xb1, eax
inc ebp
mov edi, 0xdddb45bd
fcmovnu st(0), st(5)
add byte [edx], bl
mov ds, word [ebx + 0x1f1fa25]
test eax, 0x3b9b52f4
dec ebx
xchg byte [edi - 0x2e7b84a5], dl
dec esp
or ch, byte [esi - 0x5bd6fb1b]
movsb byte es:[edi], byte [esi]
lea esp, [esi - 0x68ee09e9]
sbb ebx, dword [edx + 0x57]
xor cl, al
dec ecx
invalid
xor esp, dword [edi + 0x50d35]
int 0xb4
cld
jg 0x779804
xchg ecx, eax
or ecx, dword [edi + 0x76997feb]
test eax, 0x91778008
add eax, 0x84b65900
inc dword [edi + 0x14]
rol byte [edx], cl
sbb byte [edx + 0x7a], 0xeb
or eax, dword [eax]
lds esp, [ecx]
dec esp
movsd dword es:[edi], dword [esi]
sti
invalid