Function at 0x4086ed
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 0x40882b
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 0x40875d
mov ebx, dword [ebp - 0x5c]
jmp 0x408760
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x408fa3
xor edx, edx
test edx, edx
je 0x4087c4
cmp eax, 0x10
jb 0x40877d
mov edx, dword [ebp - 0x5c]
jmp 0x408780
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 0x4087a8
call 0xced81a
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 0x4087b2
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x408d7e
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x408ec2
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x408e70
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call int.0040b411
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xcbaef3
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x408e62
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 0xcb9484
pop ecx
test eax, eax
je 0x408855
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 0x409124
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x408881
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x408fca
jmp 0x408890
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x40911c
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x408944
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x409030
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x4088d9
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 0x408935
mov edx, dword [ebx]
cmp ecx, edx
je 0x408fe4
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 0x408fd9
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x408fd1
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x40892e
mov dword [edi + 8], edx
jmp 0x408930
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 0x4088a1
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 0x40910c
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
add ebx, ecx
cmp edx, ebx
jae 0x408d8c
call 0xced81a
mov edx, dword [ebp - 0x4c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x408d9c
mov esi, 0xffffffff
test esi, esi
ja 0x408e0b
mov ebx, dword [ebp - 0x38]
test edx, edx
jae 0x408daf
call 0xced81a
mov edx, dword [ebp - 0x4c]
cmp edx, ebx
jae 0x408db5
mov ebx, edx
test ebx, ebx
jbe 0x4087df
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x408dcd
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
jmp 0x408dd3
lea esi, [ebp - 0x5c]
lea eax, [ebp - 0x5c]
mov byte [ebp - 0xcc], 0
add eax, ebx
sub edx, ebx
push edx
push eax
push ecx
push esi
call 0xcbafb8
add esp, 0x10
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
sub edx, ebx
mov dword [ebp - 0x4c], edx
cmp eax, 0x10
jb 0x408dff
invalid
mov eax, dword [ebp - 0x5c]
jmp 0x408e02
lea ebp, [ebx]
and ecx, ebx
mov dl, 0xb
or bh, byte [edx]
popal
or byte [ebx + 0x15], ah
retf
sbb al, 0x6f
push edi
mov ebp, 0xb5c75852
mov cl, 0x87
xchg edx, eax
xchg edi, eax
sbb al, 0xeb
jae 0x408dd7
and al, dl
inc eax
invalid
wait
invalid
cmp al, 0x33
retf
mov al, 0x66
dec ebx
adc dh, byte [edi - 0x4990e47f]
fst qword [ebx + 0x5b]
int 0x96
lcall 0xa351, 0xc10fa4bf
loope 0x408e54
loopne 0x408e02
dec esp
imul edx
invalid
pop ss
daa
jnp 0x408e46
lodsd eax, dword [esi]
sbb eax, 0xe8805e74
wait
hlt
and dword [esi + 0xf], ebx
sbb al, byte [esi - 0x2e]
insb byte es:[edi], dx
xor al, 0x72
push ds
enter 0x475b, 0xffffffffffffffde
and ch, bh
mov ch, 0x83
sahf
adc dword [ebx - 0x4e61cd5], 0xffffff9e
sbb dword [esi - 0x1cd46c7d], 0x19
sti
sahf
mov ds, edx
scasd eax, dword es:[edi]
in eax, dx
cmp eax, 0xbed08ffb
stosd dword es:[edi], eax
and edx, dword [edx + 0x72]
fisubr dword [edi - 0x7004c213]
sar byte [esi + 0x725223ab], 1
jo 0x408fbe
dec ecx
push es
lodsd eax, dword [esi]
cld
stosd dword es:[edi], eax
jecxz 0x409050
mov ah, bl
push ds
xchg esi, eax
jmp 0x408fb4
lahf
lodsd eax, dword [esi]
ja 0x408fac
test eax, 0x21f0d8d8
aas
xchg esp, eax
inc eax
das
xor al, 0x3b
sub dword [ecx - 0x7948b08e], edi
aam 0xab
arpl word [ecx - 0x5d], di
or byte [esi], dh
nop
wait
ror dword [esi + 0x33ac7c99], cl
out dx, eax
stosd dword es:[edi], eax
and edi, dword [eax]
mov al, 0x2d
xchg ecx, eax
adc al, 0x63
or eax, 0xbb23d162
arpl word [0xbb23d162], cx
and ch, byte cs:[esi - 0x26996ce]
mov ebp, ebx
inc esi
xchg ecx, eax
pop es
ffree st(0)
out 0xe9, al
mov bl, byte [esi]
cmp ah, byte [edx]
xor edi, esi
fcmove st(0), st(2)
push 0x1a
push es
cld
cmp al, 0x7b
jecxz 0x409007
mov dword [ebx], ecx
invalid
sub ebp, ebx
rcr dword [ebx], cl
xchg esi, ebp
dec ecx
test al, 0x66
in al, 0x91
jae 0x40908f
shl byte [ebp + 0x5e], 0x9b
scasb al, byte es:[edi]
jge 0x4090a2
imul ebx, dword [ebx + 0xf], 0x8c8743ac
push ds
invalid
or dh, byte [esi - 0x5daca826]
wait
popal
jp 0x4090cb
popfd
pop esi
mov eax, 0x34c224cb
and byte [esi], ch
cdq
wait
cmp byte [eax], bl
nop
and eax, 0xb20289c7
ret
sti
loopne 0x409089
stosb byte es:[edi], al
in al, 0x1b
fstp st(7)
retf 0x14db
cmp eax, 0x9c4f0027
pop ebx
xor eax, 0xe4dd70b9
jnp 0x409077
scasb al, byte es:[edi]
xchg edx, eax
ljmp 0x1ce
sub esi, dword [eax - 0xc]
lahf
dec edi
push ecx
sti
loopne 0x409126
pop ebx
aad 0x70
and al, 0x33
shl byte [ebx + 0x3f97fab4], cl
mov edi, dword [ebp + 0x53]
jecxz 0x409061
test byte [esi - 0x68], 0x21
sahf
or byte [eax + 0x5d], cl
mov byte [0x5080713], al
jmp 0x40913b
pop edi
inc ebx
adc eax, 0x61fbdbbb
hlt
xchg ecx, eax
arpl word [edx + 0x35bb69eb], dx
mov edx, 0x33db4fc2
call 0xcd583e81
mov cl, 0xdc
sti
wait
cmp edx, dword [esi - 0x73ecbdc2]
in al, 0xae
mov ecx, 0x8b838b98
pop es
sub dh, ch
sbb al, 0x61
xchg dword [ebx], ebx
imul byte [edx]
aas
cli
cwde
fistp dword [ebx - 0x178e243e]
cmp al, 0x48
cmp dword [eax + 0x5d], ebp
sar dword [ecx - 0x5731b4b5], cl
xchg ecx, eax
test byte [edx + 0x63f31804], bl
jp 0x4090d5
invalid
invalid
xchg ebx, eax
outsd dx, dword [esi]
mov ebp, 0xb4727a35
dec ebx
and bl, cl
and ebp, dword [edx]
xor bl, dl
cld
sub bh, ch
invalid
jb 0x409147
dec edx
lds esi, [ebx]
das
and ah, byte [edx - 0x25]
jecxz 0x4091c1
lock and eax, dword [ebp + 0x27]
and eax, dword [ebp + 0x27]
clc
mov dword [0xbbfe43f6], eax
iretd
xchg byte [ecx], al
or esi, edi
out dx, al
loopne 0x4091a8
jb 0x409116
and bh, byte [ebx]
inc ecx
and byte [edi - 0x1804155], 0xba
jge 0x4091e4
mov dword [ebp + 0x3e93ebe3], esp
sal ebx, cl
or dword [ecx + 0xe8b5632], 0xffffff91
mov ecx, dword [esi]
xchg ecx, eax
imul esi, dword [ebp + 0x24], 0xffffffa4
jne 0x4091af
movsb byte es:[edi], byte [esi]
aad 0x76
dec ebp
or ebx, dword [ebx + 0x937080b]
xor bh, byte [edi + 0x14f1364f]
nop
shr dword [ebp + 5], 0xc7
scasb al, byte es:[edi]
imul edi, dword [ebx - 0xfc385bf], 0xffffff8e
dec eax
cmp al, 0x3b
cmp byte [ebx + eax*4], bl
dec ebx
invalid
sbb edx, edi
imul ecx, dword [ecx + 0x5517f313], 0x65
push ebx
jecxz 0x409164
mov dl, 0x3a
jae 0x409185
mov byte [0xd4a33c8d], al
fnstcw word [ebx + ebx*2 - 0x20ce82d8]
ret
cmpsd dword cs:[esi], dword es:[edi]
mov ebx, 0x5f77a53a
adc eax, ebx
add esp, eax
ror ebp, cl
int1
mov bl, 7
movups xmm7, xmm0
fcmove st(0), st(6)
jecxz 0x409189
mov bh, 0x4e
sar bl, cl
xchg ebp, eax
cmp esp, dword [ebx]
cmp ah, byte [ebp + 0x3c]
inc ebx
inc ebp
xchg edx, eax
push edx
push esi
sub byte [ebx + 0x42], ch
js 0x409229
fsubr st(7)
mov dword [0x9300f3a8], eax
daa
lodsb al, byte [esi]
ficomp word [eax + ebp*4 + 0x5abccef7]
push edx
mov ebx, 0x6a397e33
xchg byte [edi], bl
das
sub dword [edx + 0x35], esp
wait
mov dword [0x436c57e5], eax
bound esi, qword [0x57e5a39b]
insb byte es:[edi], dx
inc ebx
imul ecx, dword [edx], 0x903ad7d5
invalid