Function at 0x5a00d0
Capabilities:
Encode data using xor

Disassembly:
jns 0x5a013e
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x5a014e
in al, 0xbe
pop ecx
add byte [eax + 1], ah
add bh, bh
pushal
add dword [eax], eax
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4f09ffff], al
outsb dx, byte [esi]
inc edi
jae 0x5a0170
jne 0x5a0170
add byte gs:[eax + 1], bl
pop edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + eax], dh
pop edx
add al, bh
add dword [edx], ebx
adc eax, dword [edx]
pop edx
add byte [eax], al
add byte [eax], al
add byte [ecx], bl
add bl, byte [edx]
sub al, 0
add byte [eax], al
xor byte [eax - 0x7ebfffa7], 0x40
add byte [eax - 0x7f], cl
inc eax
add byte [esp + eax*4 + 0x40], bl
add byte [esp + eax*4 + 0x40], dl
add byte [esp + eax*4 + 0x40], dh
inc eax
add byte [eax - 0x7c], bh
inc eax
add byte [esp + eax*4 + 0x40], bh
add byte [eax - 0x7c], dh
inc eax
add byte [edi + edi*2 + 0x40], ah
inc eax
add byte [eax + 0x3800407f], al
pushfd
dec esp
add byte [eax], bh
mov ecx, 0x9c6c005a
dec esp
add ah, ch
outsd dx, dword [esi]
pop edx
add byte [eax - 0x5bffb364], ah
jo 0x5a01c5
add al, dh
wait
dec esp
add byte [esp + ebx*4 - 0x6327ffb4], al
dec esp
test byte [esp + ecx*2 + 0x4c9cd800], bl
add byte [eax - 0x42], dh
push eax
add byte [esi + ebp*2 - 0x4163ffa6], ch
push eax
add byte [eax], ch
outsd dx, dword [esi]
pop edx
add byte [esi + edi*4 - 0x46a3ffb0], bh
pop edx
add al, dl
jo 0x5a01ed
add byte [edi + ebp*2 + 0x5a], ah
add ah, bh
mov esi, 0xbf0c0050
push eax
add ah, al
outsd dx, dword [esi]
pop edx
add byte [edi + edi*4], ch
push eax
add byte [edi + edi*4], bh
push eax
add byte [eax + esi*2], dl
pop edx
add byte [edi + edi*4 + 0x50], al
add byte [eax], bh
jo 0x5a0211
add byte [edi + edi*4 + 0x50], cl
add byte [ecx + edi*4 + 0x5a], ah
add byte [eax], ah
jno 0x5a021d
add byte [eax + 0x71], ah
pop edx
jno 0x5a0221
add byte [eax + 0x70], ah
pop edx
add byte [eax - 0x41], ah
push eax
add byte [edi + edi*4 + 0x50], ah
add byte [eax + esi*2 - 0x4093ffa6], al
push eax
add byte [edi + ebp*2], dl
pop edx
add byte [eax + 0x6f], dl
pop edx
add byte [eax - 0x53ffa591], dl
insd dword es:[edi], dx
pop edx
add byte [eax + esi*2], dh
pop edx
jo 0x5a0249
add byte [eax + esi*2 + 0x5a], bl
add byte [eax + 0x5a71], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [ecx], al
call 0x205a5c1f
add byte [eax], al
add byte [edi], al
inc esi
inc ebx
insb byte es:[edi], dx
imul esp, dword [ebp + 0x6e], 0x274
add byte [eax], al
add byte [eax], ch
add byte [0x6e695754], dl
add al, byte [eax]
add byte [eax], al
add byte [eax], al
sub byte [eax], al
adc eax, 0x6e695754
outsb dx, byte [esi]
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a0295
outsd dx, dword [esi]
insb byte es:[edi], dx
inc ecx
arpl word [ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
dec esp
imul ebp, dword [esi + 0x6b], 0x5a023400
add byte [edi], al
adc eax, 0x6e695754
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a02b1
outsd dx, dword [esi]
insb byte es:[edi], dx
inc ecx
arpl word [ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
dec esp
imul ebp, dword [esi + 0x6b], 0x5a0158
lodsb al, byte [esi]
mov cl, 0x59
add byte [eax], al
add byte [esi + edx*2], cl
outsb dx, byte [esi]
imul ebx, dword [eax + 1], 0x5a
add byte [ecx + esi*4 + 0x59], ch
or al, 0x56
arpl word [esi + ebp + 0x43], bp
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a02d1
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a0263
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax + 2], dh
pop edx
add byte [ebx], al
or byte [ecx + ecx*2 + 0x6d], dl
dec ebp
outsd dx, dword [esi]
add dword gs:[eax], eax
add byte [eax], al
add byte [ebx], cl
add byte [eax], al
add byte [edx + eax + 0x5a], ch
add byte [ecx], cl
imul ebp, dword [ebp + 0x44], 0x62617369
insb byte es:[edi], dx
pop es
imul ebp, dword [ebp + 0x43], 0x65736f6c
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x5a02fe
push es
imul ebp, dword [ebp + 0x4f], 0xa6e6570
imul ebp, dword [ebp + 0x44], 0x43746e6f
popal
jb 0x5a0310
or byte [ecx + 0x6d], ch
push ebx
inc ecx
insb byte es:[edi], dx
jo 0x5a031b
popal
pop es
imul ebp, dword [ebp + 0x41], 0x6168706c
push es
imul ebp, dword [ebp + 0x48], 0x7617269
imul ebp, dword [ebp + 0x53], 0x6174614b
push es
imul ebp, dword [ebp + 0x4b], 0x9617461
imul ebp, dword [ebp + 0x43], 0x656e6968
jae 0x5a0341
popal
or dword [ecx + 0x6d], ebp
inc ebx
push 0x73656e69
or ch, byte gs:[ecx + 0x6d]
or ch, byte [ecx + 0x6d]
push ebx
dec eax
popal
outsb dx, byte [esi]
jne 0x5a034b
insb byte es:[edi], dx
or dword [ecx + 0x6d], ebp
dec eax
popal
outsb dx, byte [esi]
jne 0x5a0355
insb byte es:[edi], dx
or al, 0x56
arpl word [esi + ebp + 0x43], bp
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a036d
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a0301
add al, byte [eax]
add al, 3
add byte [ebx + eax], al
add ebx, dword [edx]
adc cl, byte [eax]
push esp
dec ecx
insd dword es:[edi], dx
pop edx
add byte [edx], dl
or byte [ecx + ecx*2 + 0x6d], dl
dec esi
popal
insd dword es:[edi], dx
add al, byte gs:[eax]
adc al, 3
pop edx
add byte [ebx], al
or byte [esp + edx*2 + 0x69], dl
jo 0x5a0368
outsd dx, dword [esi]
add dword gs:[eax], eax
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], dl
add ebx, dword [edx]
or byte [ecx + ebp*2 + 0x70], dh
inc ebx
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x5a0399
pop es
je 0x5a03a0
jo 0x5a0388
jo 0x5a03a0
outsb dx, byte [esi]
or esi, dword [ecx + ebp*2 + 0x70]
inc esp
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a0388
popal
jb 0x5a03ad
or al, 0x56
arpl word [esi + ebp + 0x43], bp
insb byte es:[edi], dx
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a03c4
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a0358
add al, byte [eax]
add byte [ebx + eax + 0x5a], bl
add byte [esi], cl
add byte [eax], al
pop esp
add ebx, dword [edx]
push cs
or dl, byte [ecx + eax*2 + 0x6c]
imul esp, dword [edi + 0x6e], 0x6f666e49
adc byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add byte [eax], al
add al, 0
add byte [eax], al
test al, 0xe7
dec eax
add byte [eax], al
add byte [eax], al
add byte [edx], al
or dword [ecx + 0x6c], eax
imul esp, dword [edi + 0x6e], 0x7473694c
add al, byte [eax]
pushfd
adc byte [eax], al
add al, 0
add byte [eax], al
add cl, byte [ebx + eax*2]
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a040b
outsd dx, dword [esi]
insb byte es:[edi], dx
dec ecx
outsb dx, byte [esi]
js 0x5a03a3
add al, byte [eax]
sub al, 0xa0
add byte [eax], ch
mov al, byte [0x80059]
add byte [eax], al
add al, byte [0x67696c41]
pop ecx
add byte [eax], cl
add byte [eax], al
add byte [edx], al
add eax, 0x67696c41
insb byte es:[edi], dx
imul esp, dword [edi + 0x6e], 0x109c0002
inc eax
add byte [eax + eax], cl
outsb dx, byte [esi]
add al, byte [eax]
pushfd
adc byte [eax], al
or al, 0
add byte [eax], al
add al, byte [edi]
push ebx
arpl word [edx + 0x61], si
je 0x5a0426
push 0x20002
add al, byte [eax]
add al, byte [eax]
add byte [eax], al
add byte [eax], al
rol byte [ebx], 1
pop edx
add byte [ecx], al
or al, 0x54
inc edx
outsd dx, dword [esi]
jb 0x5a043b
jb 0x5a0431
imul esp, dword [esp + esi*2 + 0x68], 5
add bh, bh
invalid
dec esi
outsd dx, dword [esi]
outsb dx, byte [esi]
or dword gs:[edx + 0x76], esp
dec esp
outsd dx, dword [esi]
ja 0x5a047b
jb 0x5a047d
or byte fs:[edx + 0x76], ah
push edx
popal
imul esi, dword [ebx + 0x65], 0x76620764
push ebx
jo 0x5a0489
arpl word [ebp + 0xc], sp
push esi
arpl word [esi + ebp + 0x43], bp
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a04a6
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a043a
add byte [eax], al
add byte [eax], al
inc eax
add al, 0x5a
add byte [eax + 4], al
pop edx
add byte [ebx], al
or dl, byte [edx + eax*2 + 0x65]
jbe 0x5a04ac
insb byte es:[edi], dx
inc ebp
add dword gs:[bx + si], eax
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [esp + eax], bh
pop edx
add byte [esi], al
bound esp, qword [ebp + 0x4c]
je 0x5a0466
bound esp, qword [ebp + 0x54]
outsd dx, dword [esi]
jo 0x5a046e
pop es
bound esp, qword [ebp + 0x52]
imul esp, dword [edi + 0x68], 0x65620874
or byte [edx + 0x65], ah
inc edx
outsd dx, dword [esi]
je 0x5a04e9
outsd dx, dword [esi]
insd dword es:[edi], dx
or al, 0x56
arpl word [esi + ebp + 0x43], bp
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a04f3
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a0487
add byte [eax], al
add byte [esp + eax + 0xb06005a], cl
push esp
inc edx
jbe 0x5a04f8
add al, 0x5a
add byte [esi], al
or edx, dword [edx + eax*2 + 0x65]
jbe 0x5a04f8
insb byte es:[edi], dx
inc ebp
jae 0x5a049b
cmp al, 4
pop edx
add al, 0x5a
add byte [edx], al
add byte [esp + eax + 0xa03005a], ah
push esp
inc edx
jbe 0x5a0510
insb byte es:[edi], dx
dec ebx
imul ebp, dword [esi + 0x64], 1
add byte [ebx], al
add byte [eax], al
add byte [eax + 0x6005a04], ah
bound ebp, qword [ebx + 0x4e]
outsd dx, dword [esi]
outsb dx, byte [esi]
push es
bound ebp, qword [ebx + 0x54]
imul ebp, dword [ebp + 6], 0x6f536b62
je 0x5a04d9
bound ebp, qword [ebx + 0x46]
insb byte es:[edi], dx
popal
je 0x5a04e6
or al, 0x56
push esi
arpl word [esi + ebp + 0x43], bp
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a0555
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a04e9
add al, byte [eax]
in al, dx
add ah, ch
add al, 0x5a
add byte [ecx], al
or edx, dword [edx + eax*2 + 0x65]
jbe 0x5a0558
insb byte es:[edi], dx
push edi
imul esp, dword [esp + esi*2 + 0x68], 0x105
push 0x105
add bh, bh
invalid
popal
outsb dx, byte [esi]
popal
jb 0x5a052f
pop ds
inc eax
add byte [ecx], al
jns 0x5a051a
add dword [ecx - 3], edi
sbb dword [esi + 0x11d1c281], eax
stosb byte es:[edi], al
pushal
add al, al
dec edi
mov dword [0x560ce870], eax
arpl word [esi + ebp + 0x43], bp
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a05a7
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x5a0544
add bh, bh
inc dword [edx]
add byte [eax], al
add byte [ebp + eax + 0x5a], al
add byte [eax], cl
pop ss
or byte [edi], dl
push esp
inc ecx
insb byte es:[edi], dx
imul esp, dword [edi + 0x6e], 0x65736e49
jb 0x5a05c6
inc edx
outsw dx, word gs:[esi]
outsd dx, dword [esi]
jb 0x5a05bd
inc ebp
jbe 0x5a05c0
outsb dx, byte [esi]
je 0x5a055f
add ecx, dword [eax]
push es
or byte [esi], al
push ebx
outsb dx, byte gs:[esi]
jb 0x5a0573
push esp
push edi
imul ebp, dword [esi + 0x43], 0x72746e6f
outsd dx, dword [esi]
insb byte es:[edi], dx
or byte [edx], al
inc ebx
xor dword [eax], ecx
push esp
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a05f0
outsd dx, dword [esi]
insb byte es:[edi], dx
or byte [edx], al
inc ebx
xor cl, byte [eax]
push esp
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a05fd
outsd dx, dword [esi]
insb byte es:[edi], dx
pop es
inc edx
outsd dx, dword [esi]
outsd dx, dword [esi]
insb byte es:[edi], dx
popal
outsb dx, byte [esi]
add byte [eax], dl
inc eax
add byte [eax], al
call 0x205a5fb8
stc
pop ecx
add byte [eax], ah
stc
pop ecx
add byte [ebp + eax + 0x2005a], ch
add eax, 0x2005a
add byte [eax], al
add byte [eax], dl
inc eax
add byte [ebx], al
or al, ch
sbb dword [edx], ebx
push es
push ebx
outsb dx, byte gs:[esi]
jb 0x5a05c2
jb 0x5a05c2
add byte [eax], cl
and cl, bh
pop ecx
add byte [edx], al
inc ebx
xor dword [edx], eax
add byte [eax], cl
and cl, bh
add al, byte [ebx + 0x31]
add al, byte [eax]
or byte [eax], ah
stc
pop ecx
add byte [edx], al
inc ebx
xor al, byte [edx]
add byte [eax], al
add byte [eax], al
fadd qword [0x1308005a]
push esp
inc ecx
insb byte es:[edi], dx
imul esp, dword [edi + 0x6e], 0x69736f50
je 0x5a0653
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ebp
jbe 0x5a0654
outsb dx, byte [esi]
je 0x5a05f2
or byte [eax], cl
push es
push ebx
outsb dx, byte gs:[esi]
jb 0x5a0607
push esp
push edi
imul ebp, dword [esi + 0x43], 0x72746e6f
outsd dx, dword [esi]
insb byte es:[edi], dx
or byte [edi], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a0680
outsd dx, dword [esi]
insb byte es:[edi], dx
or byte [ebx + eax*2 + 0x6f], dl
outsb dx, byte [esi]
je 0x5a0689
outsd dx, dword [esi]
insb byte es:[edi], dx
add dword [edi], eax
dec esi
ja 0x5a066b
je 0x5a062a
dec ecx
outsb dx, byte [esi]
je 0x5a068c
jb 0x5a062c
add dword [esi], eax
push es
dec esi
ja 0x5a0684
outsd dx, dword [esi]
jo 0x5a063a
dec ecx
outsb dx, byte [esi]
je 0x5a069c
jb 0x5a063c
add dword [eax], ecx
or byte [esi + 0x65], cl
ja 0x5a0697
dec esi
ja 0x5a0697
imul esp, dword [esp + esi*2 + 0x68], 0x746e4907
jb 0x5a064e
or dword [esi + 0x65], ecx
ja 0x5a069a
dec esi
ja 0x5a069a
imul esp, dword gs:[edi + 0x68], 0x6e490774
imul esp, dword [edi + 0x68], 0x6e490774
push 0x6e490774
je 0x5a06c1
jb 0x5a0671
or dword [ecx + 0x6c], eax
imul esp, dword [edi + 0x6e], 0x74636552
add eax, 0x63655254
je 0x5a0681
push esp
push edx
arpl word gs:[eax + edx + 9], si
inc ecx
insb byte es:[edi], dx
or dword [ecx + 0x6c], eax
imul esp, dword [edi + 0x6e], 0x6f666e49
or dl, byte [ecx + eax*2 + 0x6c]
imul esp, dword [edi + 0x6e], 0x6f666e49
outsb dx, byte [si]
outsb dx, byte [esi]
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
add al, ch
sbb dword [edx], ebx
and cl, bh
pop edx
add byte [eax], ah
stc
pop ecx
add byte [eax + edx + 0x109c0040], bl
inc eax
add byte [eax + edx + 0x109c0040], bl
inc eax
add byte [esi + edi*8 + 0x3580040], bh
pushfd
adc byte [eax], al
pushfd
add byte [eax + edx - 0x143ffc0], bl
inc eax
add byte [eax + 3], bl
adc byte [eax], al
mov esp, 0x580040fe
add ebx, dword [edx]
lodsd eax, dword [esi]
push es
pop edx
add byte [edx], al
pop edx
add byte [ebp + 0x2005a06], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], cl
or al, ch
sbb dword [edx], ebx
push es
push ebx
outsb dx, byte gs:[esi]
jb 0x5a06c3
add byte [eax], cl
and cl, bh
pop ecx
add byte [edi], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5a073f
outsd dx, dword [esi]
insb byte es:[edi], dx
add al, byte [eax]
add dword [eax + edx + 0x4e070040], ebx
ja 0x5a0727
je 0x5a06e1
add byte [ecx], al
pushfd
adc byte [eax], al
push es
dec esi
ja 0x5a073e
outsd dx, dword [esi]
jo 0x5a06ef
add byte [ecx], al
pushfd
adc byte [eax], al
or byte [esi + 0x65], cl
ja 0x5a074f
imul esp, dword [esp + esi*2 + 0x68], 0x9c010002
adc byte [eax], al
or dword [esi + 0x65], ecx
ja 0x5a0750
imul esp, dword gs:[edi + 0x68], 0x11000274
mov esp, 0x90040fe
inc ecx
insb byte es:[edi], dx
imul esp, dword [edi + 0x6e], 0x74636552
add al, byte [eax]
adc byte [eax + 3], bl
pop edx
add byte [ecx], cl
inc ecx
insb byte es:[edi], dx
imul esp, dword [edi + 0x6e], 0x6f666e49
add al, byte [eax]
add byte [eax], al
add byte [edi + eax + 0x5a], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + ecx + 0x19ec005a], cl
pop edx
add byte [esi + 0x32005a08], ch
or eax, 0xe60005a
mov word [eax], cs
pop edx
add ah, ch
sbb dword [edx], ebx
scasb al, byte es:[edi]
or byte [edx], bl
xor cl, byte [0xe60005a]
add byte [eax + 0xe], ah
pushal
push cs
pop edx
add byte [eax], bh
adc dword [edx], ebx
mov word [edx], es
add byte [eax], al
loopne 0x5a0740
pop ecx
add byte [eax - 0x7f], al
inc eax
add byte [eax - 0x7f], cl
inc eax
add byte [esp + eax*4 + 0x40], bl
add byte [edx + ebx*4], dl
dec esp
add byte [esp + eax*4 + 0x40], dh
add byte [eax], ah
xchg dword [eax + eax + 0x7c], ecx
test byte [eax], al
dec esp
jmp 0x7fbe07dc