Function at 0x10051995
Capabilities:
Encode data using xor

Disassembly:
dec ebp
add dword [edi + 0x65], eax
je 0x1005145e
insd dword es:[edi], dx
jo 0x1005145e
popal
je 0x10051479
inc ecx
add byte [eax], al
push ebp
add dword [edi + 0x65], eax
je 0x1005146e
imul esp, dword [ebx + 0x6b], 0x6e756f43
je 0x10051423
add byte [ecx + eax + 0x47], bl
je 0x10051480
jb 0x100514a0
imul ebp, dword [edi + 0x6e], 0
pop ebp
add dword [edi + 0x65], eax
je 0x10051490
jb 0x100514b0
imul ebp, dword [edi + 0x6e], 0x417845
add dword gs:[edi + 0x65], eax
je 0x100514a1
imul ebp, dword [esi + 0x64], 0x4473776f
imul esi, dword [edx + 0x65], 0x726f7463
jns 0x1005149b
add byte [eax], al
jbe 0x1005145f
inc edi
insb byte es:[edi], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
dec ebp
insd dword es:[edi], dx
outsd dx, dword [esi]
jb 0x100514e3
push ebx
je 0x100514ce
je 0x100514e4
jne 0x100514e3
jae 0x10051471
add byte [eax], al
add byte [eax], al
and eax, 0x706f4300
add byte [eax], al
add byte [0x706f4300], ah
jns 0x100514c1
imul ebp, dword [ebp + 0x41], 0x49019400
outsb dx, byte [esi]
xchg esp, eax
add dword [ecx + 0x6e], ecx
je 0x100514eb
jb 0x100514f4
outsd dx, dword [esi]
arpl word [ebx + 0x65], bp
dec ecx
outsb dx, byte [esi]
arpl word [edx + 0x65], si
jb 0x100514f7
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x10051497
add byte [eax + 0x42734901], bl
jae 0x100514df
popal
push edx
popal
popal
push eax
je 0x10051518
add byte [eax], al
wait
add dword [ecx + 0x73], ecx
inc edx
popal
push edi
jb 0x1005151b
je 0x10051519
push eax
je 0x10051529
add byte [edi + 0x616f4c01], ah
dec esp
imul esp, dword [edx + 0x72], 0x41797261
jb 0x10051524
jb 0x1005153e
inc ecx
add byte [eax], al
lodsd eax, dword [esi]
add dword [edi + ebp*2 + 0x63], ecx
popal
insb byte es:[edi], dx
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [eax], ax
add byte [eax], al
add byte [ecx + 0x636f4c01], dh
popal
insb byte es:[edi], dx
inc esi
jb 0x10051547
add dl, dl
add dl, dl
rol byte [ecx], cl
dec edi
jo 0x1005154e
add dword [edi + 0x70], ecx
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
dec ebp
jne 0x10051561
js 0x10051531
add byte [eax], al
add byte [eax], al
xor dword [eax], eax
inc ebx
jb 0x1005155e
popal
je 0x10051561
inc esi
imul ebp, dword [ebp + 0x41], 0xfa000000
add dword [edx + 0x65], edx
popal
inc esi
imul ebp, dword [ebp], 0x52020e00
je 0x10051581
push ebp
outsb dx, byte [esi]
ja 0x10051582
imul ebp, dword [esi + 0x64], 0x53023a00
je 0x10051568
outsb dx, byte [esi]
add byte fs:[edx], bh
add byte [edx], bh
add dl, byte [ebx + 0x65]
je 0x10051568
imul ebp, dword [ebp + 0x50], 0x746e696f
jb 0x1005152d
push eax
outsd dx, dword [esi]
imul ebp, dword [esi + 0x74], 0x7265
add byte [eax], al
cmp al, 0
je 0x10051590
jb 0x1005152d
add byte [eax], al
add byte [eax + eax], bh
add byte [ebx + 0x72], al
popal
inc ebx
jb 0x1005159a
popal
je 0x1005159d
dec ebp
jne 0x100515af
js 0x1005157f
add byte [eax], al
add dl, byte fs:[ebx + 0x6c]
jo 0x10051548
add byte [edx + eax + 0x54], ch
jb 0x100515bb
insb byte es:[edi], dx
add dl, byte [ebp + 0x72]
insd dword es:[edi], dx
imul ebp, dword [esi + 0x61], 0x72506574
outsd dx, dword [esi]
arpl word [ebp + 0x73], sp
jae 0x1005155b
add byte [edx + eax + 0x74726956], cl
jne 0x100515c5
push esi
imul esi, dword [edx + 0x74], 0x516c6175
je 0x100515d8
popal
insb byte es:[edi], dx
push ecx
jne 0x100515cd
jb 0x100515e3
add byte [eax], al
inc ecx
add byte [ebx + 0x72], al
popal
je 0x100515d9
push eax
jb 0x100515e6
arpl word [ebp + 0x73], sp
jae 0x100515bd
add byte [eax], al
add byte [eax], al
xchg ebx, eax
add byte [ebx + 0x69615702], dl
je 0x100515cd
add dl, byte [edi + 0x61]
push edi
popal
imul esi, dword [esi + eax*2 + 0x6f], 0x6e695372
insb byte es:[di], dx
dec edi
outsd dx, dword [esi]
jb 0x100515dd
imul ebp, dword [esi + 0x67], 0x624f656c
push 0x65
bound ebp, qword [edx + 0x65]
arpl word [eax + eax], si
add byte [edi + 0x64695702], dl
push edi
imul esp, dword [ebp + 0x43], 0x54726168
outsd dx, dword [esi]
inc ebx
push 0x6f547261
dec ebp
jne 0x10051613
je 0x10051612
inc edx
jns 0x10051620
add byte gs:[eax], al
add byte [eax + 0x6e695702], bl
inc ebp
js 0x1005161d
arpl word [eax], ax
add byte [eax], al
mov byte [0x69725702], al
add byte [edx + 0x69725702], ah
add dl, byte [edi + 0x72]
imul esi, dword [ebp + 0x46], 0x656c69
leave
je 0x10051628
inc esi
imul ebp, dword [ebp], 0x736c02c9
je 0x10051640
insb byte es:[edi], dx
add cl, cl
add ch, byte [ebx + esi*2 + 0x74]
jb 0x1005163b
insb byte es:[edi], dx
outsb dx, byte gs:[esi]
inc ecx
add byte [eax], al
retf 0x6c02
je 0x1005164c
jb 0x10051647
insb byte es:[edi], dx
outsb dx, byte gs:[esi]
push edi
add byte [eax], al
inc edi
add byte [ebx + 0x72], al
popal
jb 0x1005164a
popal
je 0x1005164d
push esp
push 0x64616572
add byte [eax], al
push esp
add byte [ebp + 0x6c], al
je 0x1005165d
inc esi
imul ebp, dword [ebp + 0x41], 0x66000000
add byte [edi + 0x65], al
je 0x1005165d
imul ebp, dword [esi + 0x64], 0x6554776f
js 0x10051683
inc ecx
add byte [eax], al
add byte [eax], al
imul eax, dword [eax], 0x47
add byte [ebx], ch
inc edi
je 0x10051671
imul ebp, dword [esi + 0x64], 0x6552776f
arpl word [eax + eax + 0x70], si
outsd dx, dword [esi]
ja 0x10051672
arpl word gs:[eax + eax + 0x70], si
add byte [esi + 0x69], al
outsb dx, byte [esi]
push edi
imul ebp, dword [esi + 0x64], 0x41776f
add byte [eax], al
je 0x10051636
inc edi
je 0x10051691
imul ebp, dword [esi + 0x64], 0xe00776f
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x10051640
push cs
add byte [edi + 0x65], al
je 0x10051689
insb byte es:[edi], dx
popal
jae 0x100516bd
dec esi
popal
insd dword es:[edi], dx
inc ecx
add ah, al
add byte [ebx + 0x65], dl
je 0x1005169c
outsd dx, dword [esi]
arpl word [ebp + 0x73], si
add byte [eax], al
leave
add byte [edi + 0x65], al
je 0x100516a8
outsd dx, dword [esi]
jb 0x100516ca
jb 0x100516d7
jne 0x100516d8
push edi
imul ebp, dword [esi + 0x64], 0x776f
add byte [eax], al
add byte [eax], al
push ss
add byte [esi], dl
add byte [edi + ebp*2 + 0x61], cl
inc ebx
jne 0x100516ef
jae 0x100516ee
jb 0x100516c2
add byte [eax], al
add byte [eax], bl
add byte [edi + ebp*2 + 0x61], cl
dec ecx
arpl word [edi + 0x6e], bp
inc ecx
add dh, bh
add byte [ebx + 0x65], dl
je 0x100516ea
imul ebp, dword [ebp + 0x65], 0x2000072
add byte [edx + 0x65], dl
imul esi, dword [bp + di + 0x74], 0x6c437265
add al, byte [eax]
push edx
imul esi, dword gs:[bp + di + 0x74], 0x6c437265
popal
jae 0x1005171e
inc ecx
add byte [eax], al
add byte [eax], al
xor al, 1
dec ebp
jae 0x10051729
popal
inc edx
outsd dx, dword [esi]
js 0x100516fe
add byte [eax], al
add byte [eax], ah
add byte [edi + 0x65], al
je 0x10051713
inc edi
je 0x10051713
jae 0x1005173c
popal
inc ecx
add byte [eax], al
add byte [ecx + 1], bl
inc edi
je 0x1005172d
imul ebp, dword [esi + 0x64], 0x6f4c776f
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x10051728
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ecx
add byte [eax], al
add byte [eax], al
pop ebx
add dword [ebx + 0x65], edx
je 0x10051741
imul ebp, dword [esi + 0x64], 0x6f4c776f
ja 0x1005173c
dec esp
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ecx
add byte [eax], al
add byte [eax], al
pop esi
add dword [ebx + 0x72], eax
popal
je 0x10051765
inc esp
jae 0x1005176f
je 0x10051775
jo 0x10051749
add byte [eax], al
add byte [eax], al
add dword gs:[ebx + 0x65], edx
je 0x10051766
push 0x64616572
inc esp
jb 0x1005177a
popal
inc esp
jae 0x10051786
je 0x1005178c
jo 0x1005171f
add byte [eax], al
add word [edi + 0x65], ax
je 0x1005177a
add byte [esi + 1], ah
inc edi
je 0x1005177a
push 0x64616572
inc esp
popal
popal
inc esp
jae 0x1005179a
jae 0x1005179a
je 0x100517a0
jo 0x10051733
add byte [eax + eax], ah
push esp
jb 0x1005179a
outsb dx, byte [esi]
jae 0x100517a8
popal
je 0x100517a4
dec ebp
jae 0x100517b6
jae 0x100517b6
popal
add byte gs:[bx + si], al
and eax, 0x73694400
add byte [ecx + ebp*2 + 0x73], al
jo 0x100517b0
je 0x100517b4
push 0x7373654d
popal
inc ecx
add byte [eax], al
xor byte [eax], al
push ebx
outsb dx, byte gs:[esi]
dec ebp
jae 0x100517d9
jae 0x100517c8
popal
inc ecx
add byte [eax], al
cmp eax, 0x736f5000
je 0x100517c4
outsd dx, dword [esi]
jae 0x100517e6
push ecx
jne 0x100517de
je 0x100517c4
jae 0x100517ed
popal
add byte gs:[bx + si], al
add byte [ebx], cl
push ebx
push 0x6957776f
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x1005178d
push edi
imul ebp, dword [esi + 0x64], 0x776f
add byte [eax], al
add byte [eax], al
add byte [edi], cl
inc ebx
jb 0x100517fa
add byte [eax], al
dec edi
add byte [ebx + 0x72], al
popal
popal
je 0x100517fd
push edi
imul ebp, dword [esi + 0x64], 0x7845776f
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x100517e4
js 0x100517e2
inc ecx
add byte [eax], al
add byte [ecx], dl
inc esp
jae 0x1005181e
push ecx
add byte [ebp + 0x73], al
je 0x1005181d
jae 0x1005181e
jb 0x1005181b
outsd dx, dword [esi]
jns 0x10051805
imul ebp, dword [esi + 0x64], 0x5600776f
outsd dx, dword fs:[esi]
ja 0x100517b4
push esi
add byte [ebp + 0x6f], cl
dec ebp
outsd dx, dword [esi]
jbe 0x1005181f
push edi
imul ebp, dword [esi + 0x64], 0x776f
add byte [eax], al
pop ebx
add byte [ebp + 0x66], al
push edi
push di
imul ebp, dword [esi + 0x64], 0x7250776f
outsd dx, dword [esi]
arpl word [ecx], ax
add byte [eax], al
add byte [ebp], bl
inc ebx
popal
add byte [ebx + 0x61], al
insb byte es:[edi], dx
insb byte es:[edi], dx
push edi
imul ebp, dword [esi + 0x64], 0x7250776f
outsd dx, dword [esi]
ja 0x10051835
push eax
jb 0x10051856
outsd dx, dword [esi]
arpl word [ecx], ax
add byte [eax], al
mov dword [eax], eax
inc edi
je 0x10051845
add byte [edi + 0x65], al
je 0x10051845
je 0x10051863
arpl word [ebx + 0x4f], bp
bound ebp, qword [edx + 0x65]
arpl word [eax + eax], si
add byte [eax], al
retf 0x5300
add byte [eax], al
add dl, cl
add byte [ebx + 0x65], dl
je 0x10051848
inc edx
imul eax, dword [ebx + 0x6f], 0x6c
outsd dx, dword [esi]
jb 0x1005180d
add byte [eax], al
add ch, bl
add byte [ebx + 0x65], dl
je 0x1005186a
js 0x1005188d
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x1005181f
add byte [eax], al
cli
add dl, bh
add byte [ebx + 0x72], al
popal
je 0x1005188d
inc edx
jb 0x100518a0
jae 0x10051895
dec ecx
outsb dx, byte [esi]
imul esi, dword fs:[edx + 0x65], 0x7463
add byte [eax], al
add byte [eax + eax], bl
inc ebx
jb 0x100518a2
popal
je 0x100518a5
inc esi
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x10051886
add byte [eax], al
add byte [edi + 0x74654700], al
push ebp
xchg dword [eax], eax
inc edi
je 0x100518a3
jae 0x100518b5
jb 0x100518a0
popal
insd dword es:[edi], dx
inc ecx
add byte [eax], al
jno 0x1005185b
push edx
inc ebx
jb 0x100518c5
popal
je 0x100518c8
dec ebx
jns 0x100518ac
js 0x100518aa
add byte [eax], al
add byte [ecx + eax + 0x52], dh
add byte [eax], al
je 0x1005186f
push edx
inc ebx
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x100518db
dec ebx
jns 0x1005187a
add byte [eax], al
jns 0x1005187f
push edx
dec edi
jo 0x100518e9
outsb dx, byte [esi]
dec ebx
jns 0x100518ce
js 0x100518cc
add byte [ecx + eax + 0x51676552], al
add dword [edx + 0x65], edx
push ecx
jne 0x100518f9
jb 0x1005190f
jns 0x100518ed
push esi
popal
insb byte es:[edi], dx
jne 0x10051900
inc ebp
js 0x100518df
add byte [eax], al
nop
add dword [edx + 0x65], edx
push ebx
push edx
push ebx
push ebx
je 0x100518ff
popal
insb byte es:[edi], dx
jne 0x10051912
inc ebp
inc ebp
js 0x100518f1
add byte [eax], al
add byte [eax], al
retf 0x4701
add dword [edi + 0x65], eax
je 0x1005190d
arpl word gs:[ebp + 0x72], si
imul esi, dword [ecx + edi*2 + 0x49], 0x6f666e
add byte [eax], al
add byte [eax], al
add ch, cl
add dword [ebx + 0x65], edx
int 1
push ebx
je 0x10051921
je 0x10051921
arpl word gs:[ebp + 0x72], si
imul esi, dword [ecx + edi*2 + 0x49], 0x6f666e
add byte [eax], al
aam 1
push ebx
add ah, dl
add dword [ebx + 0x65], edx
je 0x10051927
je 0x10051927
outsb dx, byte [esi]
je 0x10051957
imul esp, dword [ebp + 0x73], 0x63416e49
insb byte es:[edi], dx
outsb dx, byte [esi]
inc ecx
arpl word [ecx + eax*2], bp
add byte [eax], bl
inc ecx
add byte [eax], al
sbb byte [eax], al
pop edi
pop edi
add byte [edi + 0x5f], bl
inc edi
je 0x10051945
popal
imul ebp, dword [esi + 0x41], 0x736772
add byte [ecx + 0x6c735f01], al
jo 0x10051909
add dword [ecx], 0x656c735f
jo 0x10051909
add byte [eax], al
add byte [esi + 0x74735f01], ah
add dword [edi + 0x73], ebx
je 0x10051984
jae 0x10051985
jb 0x1005197c
imul esp, dword [ebx + 0x6d], 0xfe000070
add dword [ecx + 0x74], esp
outsd dx, dword [esi]
arpl word [ebp + 0x70], bp
add byte [eax], al
inc byte [ecx]
popal
je 0x1005198c
imul eax, dword [eax], 0x65020a00
js 0x1005198e
add ah, byte [ebp + 0x78]
imul esi, dword [eax + eax], 0x656d0254
insd dword es:[edi], dx
je 0x10051927
add byte [edx + eax + 0x6d], dl
insd dword es:[edi], dx
arpl word [eax + 0x79], si
add byte [eax], al
add byte [eax], al
push esi
add ch, byte [ebp + 0x65]
insd dword es:[edi], dx
jae 0x100519a0
je 0x1005193d
add byte [eax], al
add byte [ebx + 2], bl
jo 0x100519b6
imul ebp, dword [esi + 0x74], 0x66
add byte [eax + 2], ah
jb 0x100519b1
outsb dx, byte [esi]
je 0x100519ae
add byte [eax], al
add byte [eax], al
pushal
add dh, byte [edx + 0x61]
imul esi, dword [ebx + 0x65], 0x72026100
popal
outsb dx, byte [esi]
add byte fs:[eax], al
push 2
jae 0x100519c9
outsb dx, byte [si]
popal
insb byte es:[edi], dx
add byte [eax], al
add byte [eax], al
insd dword es:[edi], dx
add dh, byte [ebx + 0x70]
jb 0x100519d7
outsb dx, byte [esi]
je 0x100519d7
add byte [eax], al
add byte [edi + 2], ch
jae 0x100519ea
popal
outsb dx, byte [esi]
add byte fs:[eax + 2], dh
jo 0x10051980
jae 0x100519f3
arpl word [ecx + 0x6e], sp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx + 2], dh
add byte [eax], al
jno 0x1005198c
jae 0x10051a00
jb 0x100519f1
popal
je 0x10051991
add byte [eax], al
add byte [edx + 2], dh
add dh, byte [ebx + 0x74]
jb 0x100519fd
push 0x72
add byte [ebx + 2], bh
jnp 0x100519a4
jae 0x10051a18
jb 0x10051a14
arpl word [ebp + 0x70], bp
add byte [eax], al
add byte [edi + 0x70737602], dl
jbe 0x10051a23
jo 0x10051a24
jb 0x10051a1c
imul ebp, dword [esi + 0x74], 0x6f000066
outsb dx, byte [esi]
je 0x10051a1c
add byte [eax], al
outsd dx, dword [esi]
insb byte es:[edi], dx
xor esi, dword gs:[edx]
inc esp
dec esp
dec esp
add byte [eax], al
add byte [eax], al
invalid
invalid
inc ecx
push ebp
push esp
xor esi, dword [edx]
inc esp
dec esp
dec esp
add byte [eax], al
add byte [eax], al
adc al, 0xf0
inc edx
add byte [edi + 0x49], dl
dec esi
dec ecx
dec esi
inc ebp
push esp
inc esp
dec esp
dec esp
add byte [eax], ch
invalid
invalid
dec ebx
inc ebp
push edx
dec esi
inc ebp
dec esp
xor esi, dword [edx]
inc esp
dec esp
dec esp
add byte [eax], al
add byte [eax], al
cmp al, 0xf0
inc edx
add byte [eax + esi*8], bh
cmp al, 0xf0
inc edx
add byte [eax + esi*8], bh
cmp al, 0xf0
inc edx
add byte [eax + esi*8], bh
cmp al, 0xf0
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
cmp al, 0xf0
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [eax + esi*8], bh
inc edx
add byte [ebp + 0x53], dl
inc ebp
push edx
xor esi, dword [edx]
inc esp
dec esp
dec esp
add byte [eax], al
push eax
invalid