Function at 0x4036a0
Capabilities:
Encode data using xor

Disassembly:
scasd eax, dword es:[edi]
add al, byte [ebx]
add dword [eax], eax
add dword [ebx + 0x30360182], esp
add byte [ecx], 0x32
xor byte [edi], bl
push es
add edx, dword [ebp + 0x1d]
and eax, 0x16301804
push es
or byte [ebx], ch
push es
add dword [0x3030705], eax
push es
or ch, byte [ebx]
push es
add dword [ecx + eax], eax
xor byte [edi], 0xa
add eax, dword [esi]
or al, byte [ebx]
push es
xor byte [0x1d550306], bl
push cs
add al, 0x16
add al, 0x14
sbb byte [ebx], dl
and byte [ebx], bl
cmp al, 0x7f
or bl, byte [ecx + 0x1f]
mov ch, 0x57
push esp
jno 0x403684
mov bh, 0xd0
pop edi
jle 0x403658
xor byte [edi], bl
push es
add edx, dword [ebp + 0x1d]
and eax, dword [eax + ebx]
xor byte [esi], dl
adc byte [eax + edx*4], 0x8b
adc dword [ebp - 0x61f1290], esp
test eax, 0xc708acc0
mov ch, 0xf4
xor byte [ecx + 0x304ac53c], 0x7b
push es
add edx, dword [ebp + 0x1d]
pop ds
add al, 0x74
xor byte [edx + 0x30], dh
jo 0x403675
outsb dx, byte [esi]
mov al, byte [0x6834866c]
je 0x403751
jo 0x403719
das
das
arpl word [edx + 0x6c], si
insd dword es:[edi], dx
imul esp, dword [ebx + 0x72], 0x666f736f
je 0x40371d
arpl word [edi + 0x6d], bp
das
jo 0x403760
imul ebp, dword [edi], 0x2f6c7263
jo 0x40376f
outsd dx, dword [esi]
jne 0x403764
je 0x403776
das
push edi
imul ebp, dword [esi + 0x50], 0x632e4143
jb 0x40377a
xchg byte [eax + ebp*2], dh
je 0x403787
jo 0x40374f
das
das
ja 0x403790
ja 0x403749
insd dword es:[edi], dx
imul esp, dword [ebx + 0x72], 0x666f736f
je 0x403753
arpl word [edx + 0x6f], si
jae 0x403791
je 0x403753
arpl word [edi + 0x6d], bp
das
jo 0x403796
imul ebp, dword [edi], 0x2f6c7263
jo 0x4037a5
outsd dx, dword [esi]
jne 0x40379a
je 0x4037ac
das
push edi
imul ebp, dword [esi + 0x50], 0x632e4143
jb 0x4037b0
xor byte [edx + 6], dl
or byte [ebx], ch
push es
add dword [0x1010705], eax
add al, 0x46
add dword [esi + eax*2], eax
inc esi
xor byte [eax + esi + 0x42], al
push es
inc esp
xor byte [edx + 6], al
or byte [ebx], ch
push es
add dword [0x2300705], eax
xchg byte [esi], dh
push 0x3a707474
das
je 0x4037d6
cmp ch, byte [edi]
das
ja 0x4037e2
ja 0x40379b
insd dword es:[edi], dx
imul esp, dword [ebx + 0x72], 0x666f736f
je 0x4037a5
arpl word [edx + 0x6f], si
jae 0x4037e3
je 0x4037a5
arpl word cs:[edi + 0x6d], bp
arpl word [edi + 0x6d], bp
das
jo 0x4037e8
imul ebp, dword [edi], 0x74726563
jae 0x4037b4
dec ebp
imul esp, dword [ebx + 0x72], 0x666f736f
je 0x4037e6
arpl word [edx + 0x6f], si
jae 0x4037fb
je 0x4037e6
imul ebp, dword [esi + 0x50], 0x632e4143
outsb dx, byte [esi]
push eax
inc ebx
inc ecx
arpl word cs:[edx + 0x74], si
jb 0x40380c
xor byte [0x862a0906], cl
dec eax
xchg bh, dh
or eax, 0x5050101
add byte [ebx], al
add byte [ecx], 1
add byte [ebx], al
invalid
push es
or dword [edx], ebp
xchg byte [eax - 0x7a], cl
test dword [0x5050101], 0x1820300
add eax, 0x1820300
add dword [eax], eax
add ebx, ebp
jmp [edi + 0x389d67c0]
shl byte [edi - 0x63], 0x38
invalid
cmp al, 0
in al, 0x8f
int 0xb8
mov dl, 4
push ecx
add al, 0x51
sbb ah, cl
pop ss
cmc
xchg edi, eax
je 0x403851
fld qword [edx + 0x13781004]
add al, 0x10
js 0x4037ff
cmp eax, 0x9b858a44
stosd dword es:[edi], eax
cmp byte [eax + 0x7f425dc9], al
sbb eax, 0x3f7d9ebb
jge 0x40383c
sub dword [ebp - 0x4324d622], 0xfffffffa
lodsb al, byte [esi]
xor ebp, ebp
jno 0x403880
fisubr word [ecx]
fstp xword [edx + edi*8 + 0x71ed33ac]
ja 0x403808
invalid
out 0xdb, eax
cmp eax, edi
lea edi, [edx]
jns 0x4037dd
mov ecx, 0xa03b6931
dec esi
or byte [esi + ecx + 0x21d55758], ah
invalid
insb byte es:[edi], dx
mov al, byte [0x711841e9]
inc ecx
mov edx, 0x1ec76e99
leave
pop ecx
stosd dword es:[edi], eax
aaa
xchg edi, eax
xor dword [esi + 0x34bcf240], edx
imul byte [ebx]
dec eax
mov esp, 0x482bf634
sub byte [esi - 0x7b2b02a5], ah
sti
sbb byte [edx + 0x9455902], 0x92
push ebx
dec esi
mov ah, 0x95
pop eax
pop eax
xor ah, bh
jb 0x403865
cmc
loope 0x40386a
lodsb al, byte [esi]
xor eax, dword [0x5fb78066]
mov bh, 0xa9
xor bh, byte [esp + edi + 0x675c9bc7]
ret 0xd67a
wait
pop esp
ret 0xd67a