Function at 0x573a6e
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x70acb2e8]
push ebx
push esi
push edi
push 2
mov esi, ecx
pop edi
cmp eax, edi
jne 0x5501c4
push 0x70acb2d0
call dword [0x70a9b14c]
mov eax, esi
pop edi
pop esi
pop ebx
ret
test eax, eax
mov ebx, 0x70acb2d0
je 0x5501e5
cmp dword [0x70acb2e8], 1
je 0x573a61
cmp dword [0x70acb2e8], edi
jne 0x5501be
push ebx
jmp 0x5501b8
push 1
push 0x70acb2e8
call dword [0x70a9b140]
test eax, eax
jne 0x573a4e
push ebx
call dword [0x70a9b150]
push 0x70a72fdc
call fcn.0054ff1f
pop ecx
mov dword [0x70acb2e8], edi
jmp 0x5501e2
xchg edi, eax
xor dword [ecx - 0x70], 0xec781c8f
inc ecx
cmp dword [edi], esp
and al, 0x23
add byte cs:[ecx], al
add al, 0
dec esi
add byte [eax + eax + 0x35], dl
add byte [esi], ch
add byte [ebx], al
inc ecx
add byte [eax + eax], dl
add byte [eax], al
sbb al, 0
sbb al, 0
jg 0x573a67
outsb dx, byte [esi]
pushfd
jbe 0x573a79
adc al, 0xba
or dword [ecx], ecx
mov edi, 0xd79718a7
jae 0x573a70
mov edx, 0xa7bf0909
sbb byte [edi + 0x16ed73d7], dl
push ss
or eax, ecx
pop ss
popfd
wait
add byte [eax], al
add byte [eax], al
add al, 0
add byte [eax + eax], 0x14
add bl, dh
outsb dx, byte [esi]
add al, 0
adc al, 0
rep outsb dx, byte [esi]
pushfd
jbe 0x573a9a
adc al, 0xba
or dword [edi - 0x2868e759], edi
mov edx, 0x18a7bf09
xchg edi, eax
xlatb
jae 0x573a90
push ss
enter 0xffffffffffff9d17, 0xffffffffffffff9b
add byte [ecx], al
add al, 0x40
sbb byte [eax], dl
dec esi
add byte [eax + eax + 0x35], dl
add byte [esi], ch
add byte [ebx], al
inc ecx
add byte [eax + eax], dl
add byte [ebx], dl
push eax
add byte [ebx], dh
add byte [esi], ch
add byte [ebx], al
inc ecx
add byte [eax + eax], dl
add byte [eax + eax], bl
jg 0x573ac5
xchg ebp, eax
aam 0x2b
in eax, dx
aam 5
jbe 0x573ae3
clc
sti
pop esi
lodsb al, byte [esi]
mov ecx, 0x9a1873b
mov edx, dword [esi]
pop edi
mov bh, 0
add byte [eax], al
add byte [eax + eax], al
add byte [eax + eax], 0x14
add bl, dh
xchg ebp, eax
aam 0x2b
in eax, dx
aam 5
jbe 0x573af3
sti
pop esi
lodsb al, byte [esi]
mov ecx, 0x8ba1873b
push ss
pop edi
mov bh, 0
add dword [eax + eax*2], eax
sbb byte [eax], dl
dec esi
add byte [eax + eax + 0x35], dl
add byte [esi], ch
add byte [ebx], al
inc ecx
add byte [eax + eax], dl
add byte [ebx], dl
push eax
add byte [ebx], dh
add byte [esi], ch
add byte [ebx], al
inc ecx
add byte [eax + eax], dl
add byte [eax + eax], bl
jg 0x573b23
wait
insd dword es:[edi], dx
dec esp
mov al, byte [0x94b0d3b]
push ebp
movsd dword es:[edi], dword [esi]
xor eax, 0x32709e94
or dword ss:[0x8cd0d5], edx
add byte [eax], al
add byte [eax + eax], al
add byte [eax + eax], 0x14
add bl, dh
wait
insd dword es:[edi], dx
dec esp
mov al, byte [0x554b0d3b]
movsd dword es:[edi], dword [esi]
xor eax, 0x32709e94
dec esp
add byte [eax + 0x36005207], cl
pop es
dec esp
add dl, ch
push es
push edx
add byte [eax + 0x7c005406], bl
or byte [esi], bl
cmp al, byte [esi]
push esp
add byte [eax], bl
or dl, byte [eax + eax + 0x28]
or byte [esi], bl
fadd qword [0x7d40054]
push esp
add byte [eax - 0x39ffadfb], cl
or dword [eax], ebx
outsb dx, byte [esi]
or edx, dword [edx]
je 0x573ba1
push esi
add dl, al
or dl, byte [edx]
add eax, 0x4ea004c
push edx
add dl, ch
add al, 0x52
add byte [eax + 0x44005404], bl
add al, 0x54
add al, dh
add edx, dword [edx]
and cl, byte [ecx]
push esp
add byte [ebx + eax + 0xb180056], bl
pop esi
add byte [esi], bh
add ebx, dword [eax]
sbb al, 0xc
push esp
add dl, ch
add cl, byte [eax + eax - 0x62]
add cl, byte [esi]
je 0x573bfc
add byte fs:[edx], bh
add bl, byte [esi]
fadd qword [ecx]
push edx
add byte [edx + 0x36005401], cl
add dword [eax + eax - 0x16], ecx
add byte [eax + eax - 0x62], cl
add byte [edx], dl
ror byte [eax], 1
push esi
add byte [edx + ecx + 0x56], ch
add dh, al
or edx, dword [edx]
dec esp
add byte [eax + eax], cl
add byte [eax], al
add byte [eax], al
add dl, bh
add byte [eax], al
add byte [eax], al
cli
not byte [eax + 0x48]
rol dword [ecx], cl
add byte [eax], al
pop ebp
arpl word [eax], ax
add byte [eax], al
add byte [eax], al
add byte [ebp + 1], al
add byte [eax], al
inc esi
add dword [eax], eax
add byte [esi], al
add byte [eax], al
push es
add byte [eax], al
add byte [edi - 0x42ffe9fd], ch
or al, 0x23
add byte [edx], al
or byte [eax], al
add byte [eax + eax], bl
jg 0x573c16
and al, 0x60
mov esi, dword [eax]
mov ebp, dword [0x24fb09af]
sbb dword [eax + ecx*2 + 0x9ebc1c8], ebp