Function at 0x4088e6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf256c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], ecx
cmp eax, 0x3ffffffe
jb 0x408a24
mov dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x60]
xor eax, eax
mov ecx, 0x13
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0xd27f1c
mov dword [ebp - 0x30], edx
cmp eax, 0x10
mov dword [ebp - 0x28], 0x13
jb 0x408956
mov ebx, dword [ebp - 0x5c]
jmp 0x408959
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x40919c
xor edx, edx
test edx, edx
je 0x4089bd
cmp eax, 0x10
jb 0x408976
mov edx, dword [ebp - 0x5c]
jmp 0x408979
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov ebx, 0xd27f1c
sub ebx, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
cmp edx, ebx
jae 0x4089a1
call 0xceda13
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
mov eax, edx
sub eax, ebx
cmp ecx, eax
jb 0x4089ab
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x408f77
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x4090bb
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x409069
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040b60a
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xcbb0ec
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x40905b
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], 0xf
xor eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov ebx, dword [ebp + 0x10]
push 0x14
mov esi, dword [ecx + 4]
call 0xcb967d
pop ecx
test eax, eax
je 0x408a4e
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [ebp + 0x14]
mov edi, dword [esi]
mov dword [eax + 0xc], edi
xor edx, edx
mov byte [eax + 0x10], dl
mov byte [eax + 0x11], dl
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
add dword [esi + 8], 1
cmp edx, ecx
je 0x40931d
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x408a7a
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x4091c3
jmp 0x408a89
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x409315
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x408b3d
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x409229
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x408ad2
mov edx, 1
mov byte [ebx + 0x10], dl
mov byte [edi + 0x10], dl
mov ebx, dword [ecx + 4]
mov edi, dword [ebx + 4]
mov byte [edi + 0x10], 0
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 4]
jmp 0x408b2e
mov edx, dword [ebx]
cmp ecx, edx
je 0x4091dd
mov byte [ebx + 0x10], 1
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 4]
mov byte [ebx + 0x10], 0
mov edi, dword [ecx + 4]
mov ebx, dword [edi + 4]
mov edx, dword [ebx + 8]
mov edi, dword [edx]
mov dword [ebx + 8], edi
mov edi, dword [edx]
mov dword [ebp - 0x24], edi
movsx edi, byte [edi + 0x11]
test edi, edi
je 0x4091d2
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x4091ca
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x408b27
mov dword [edi + 8], edx
jmp 0x408b29
mov dword [edi], edx
mov dword [edx], ebx
mov dword [ebx + 4], edx
mov edx, dword [ecx + 4]
movsx ebx, byte [edx + 0x10]
test ebx, ebx
je 0x408a9a
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 8]
test esi, esi
mov byte [ecx + 0x10], 1
mov dword [edx + 4], eax
mov dword [edx], 0
je 0x409305
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov dword [edx], esi
mov esi, dword [ebp - 0x18]
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
mov al, 0x17
inc esp
test eax, 0x3e5c3af2
mov dl, cl
add eax, 0xb3841fd3
call 0xd160dd82
pop es
or al, 0x6f
mov bh, 0xe7
xchg esp, eax
mov ch, ch
into
lcall 0x59ea, 0xb5efe4a9
and dword [esi], 0x77
jle 0x408f5b
mov ch, 0xd7
test dword [ebx], eax
call 0xf5d084c4
out 0xdd, eax
ja 0x408f63
out dx, eax
out 0x11, eax
invalid
lodsd eax, dword [esi]
adc al, byte [edi + 0x294c26d7]
out 0xf6, al
movsb byte es:[edi], byte [esi]
out dx, eax
push 0xf55554f3
push ebp
cmc
mov bh, 0x6c
xor ebp, dword [ecx + edx*2 - 0x7c]
and ebp, dword [ebx]
out 0xc5, eax
fdivr st(4)
aad 0xf4
mov dh, 0xf6
inc ebp
sub byte [edx + 0x2073f5f1], dl
jno 0x409077
pop ss
cmpsd dword [esi], dword es:[edi]
lea edi, [edi + 0x75]
retf
xchg edi, eax
dec ebx
dec edx
insd dword es:[edi], dx
lahf
mov ch, 0x19
mov ah, 0x5d
and dword [ecx + 0x36851694], 0x40d423e5
in al, 7
adc byte [ecx], dh
push ebp
pop ebx
test dword [edi - 0x79181877], esp
dec ebx
inc ebp
invalid
push 0x85a2d0f9
adc eax, 0x14eaf374
in eax, 0x30
add eax, 0x6fbf1dff
adc eax, 0x3b
push esp
pop edi
ror dword [esi], cl
invalid
adc eax, 0xd0048497
jg 0x409128
sub eax, 0x61104310
push eax
out 0xf4, eax
dec ebx
pop es
dec ebx
bound ebp, qword [esi + 0x22780ac]
pop es
xor ah, byte [eax - 0x48cc889c]
test dword [edi - 0x6b], edi
test byte [ecx + 0x2552e27e], ah
inc edi
int3
push edx
and eax, 0x2dcacc47
pop ss
sbb eax, 0x3d524027
pop es
cmpsb byte [esi], byte es:[edi]
scasb al, byte es:[edi]
push 0xf8865ae7
sbb dword [esi + edx*2 + 0x60], esi
ljmp 0x98f5
sub dl, 0xde
cmc
cwde
mov ch, 0xef
xchg ecx, eax
and byte [ebp + esi*8 + 0x5dfa18a2], al
lds edx, [edi - 0x1b]
pop es
movsd dword es:[edi], dword [esi]
lcall 0xd115, 0x635570b4
movsb byte es:[edi], byte [esi]
mov al, byte [0xbb30b53c]
stosb byte es:[edi], al
jmp dword [ecx - 0x39b6ba99]
xchg edi, eax
add ecx, edi
sbb dl, 0x71
adc eax, 0xcdb47c61
shl byte [edi], 0x14
dec ebx
mov ss, ebx
mov al, byte [0xa56703a8]
and dword [edi + 0x98d0832], 0xffffff95
add dword [esi - 0x30], eax
in al, dx
loopne 0x409271
lcall 0xc31, 0x2f946e69
push ds
iretd
lcall 0x7745, 0xd29879eb
imul esi, dword [eax - 0x28ba4185], 0xffffffbf
pop ds
mov al, 0xdb
nop
push esi
insd dword es:[edi], dx
leave
adc eax, 0x561675d6
pop es
invalid
and dword [ebp - 0x15a90dfd], ecx
xlatb
adc edx, dword [esi]
pop es
pop ss
invalid
pop edi
adc al, 0xba
wait
outsd dx, dword [esi]
and ebp, esp
push ebp
xchg esp, eax
dec ebx
push cs
or bl, bh
cmp dword [ebx - 0x29], 0xe65b9ca8
std
add eax, 0x81792135
cmp ebx, ecx
lds edx, [eax + 0xf95c697]
sub eax, 0x74e70876
popal
hlt