Function at 0x8ae650
Capabilities:
Encode data using xor

Disassembly:
pop eax
add eax, 0xb
mov dword [ebx], eax
jmp 0x8ae5fa
add byte [eax], al
add byte [eax], al
call 0x8ae605
adc ch, dl
jno 0x8ae67e
and esp, dword [ebp + 0x66]
or eax, 0x815933d1
sal dword [ebp - 0x1e], 0
add cl, ch
adc al, 0
add byte [eax], al
cmp eax, dword [eax]
push ss
push dword [eax - 3]
inc esp
pop ecx
pop ebx
xchg edi, eax
je 0x8ae5f6
xor dl, byte [esi]
retf 0x6c
mov edi, dword [ecx]
call 0x8ae650
add byte [eax + eax + 0x28], ah
push es
sub al, 0x66
out 0x8c, al
xchg esi, eax
and cl, byte [esi + 0x5d]
or edi, esi
add byte [esi - 0x75], ah
pop esi
add edi, 0x2bd2a55
jle 0x8ae664
mov ax, 0xc803
xor edi, 0x7ec1ad71
mov ah, dl
add edi, 0x19e13788
add ebx, 0x7355c388
mov dword [ecx], edi
mov ebx, edi
sub ecx, 4
adc si, 0xd73e
sub edx, 1
add al, 0x66
adc esi, 0xea81d73e
add dword [eax], eax
add byte [eax], al
jne 0x8ae639
mov ax, 0xa178
sti
mov edx, 0x1c9be8a6
mov edx, 0x27dc2ceb
mov edx, 0x31e71177
cmp dword [ebp + 0x122d0abd], 0
je 0x8ae6bb
mov dword [ebp + 0x122d29b7], 1
mov eax, dword [ebp + 0x122d092d]
mov esi, eax
mov ecx, dword [esi + 0x3c]
add esi, ecx
mov ecx, 0x400000
mov dword [ebp + 0x122d2c40], ecx
mov edi, dword [ebp + 0x122d2b73]
test edi, edi
jne 0x8ae6e6
jmp 0x8ae827
mov esi, edi
mov ecx, 0x3c7c
lodsb al, byte [esi]
xor al, 0x37
stosb byte es:[edi], al
dec ecx
jne 0x8ae6ed
mov ecx, dword [ebp + 0x122d2b73]
mov edi, dword [ebp + 0x122d092d]
mov esi, dword [ebp + 0x122d2c40]
cmp edi, esi
jne 0x8ae717
jmp 0x8ae818
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
sub dword [ebp + 0x122d091d], edx
sub edx, 8
add ecx, 8
add eax, edi
pushal
mov ebx, eax
push ebx
push 0x1000
push ebx
call dword [ebp + 0x122d1b79]
pop ebx
test eax, eax
je 0x8ae758
lea eax, [ebp + 0x122d2762]
push eax
push 0x40
push 0x1000
push ebx
call dword [ebp + 0x122d2c45]
popal
mov bx, word [ecx]
test bx, 0xf000
je 0x8ae7ff
and ebx, 0xfff
add ebx, eax
cmp dword [ebp + 0x122d2937], 1
jne 0x8ae795
cmp byte [ebx - 2], 0xe8
jne 0x8ae795
cmp byte [ebx + 3], 0x90
jne 0x8ae795
jmp 0x8ae7ff
cmp byte [ebx - 1], 0xc5
jne 0x8ae7c2
cmp dword [ebp + 0x122d297b], 0
je 0x8ae7c2
cmp dword [ebp + 0x122d03bd], 0
je 0x8ae7c2
mov byte [ebx - 1], 0xe9
jmp 0x8ae7ff
cmp dword [ebp + 0x122d0abd], 0
je 0x8ae7ef
cmp byte [ebx - 1], 0xc5
jne 0x8ae7ef
cmp dword [ebp + 0x122d297b], 0
je 0x8ae7ef
mov byte [ebx - 1], 0xe9
jmp 0x8ae7ff
cmp dword [ebx], 0x90909090
je 0x8ae7ff
sub dword [ebx], esi
add dword [ebx], edi
add ecx, 2
sub edx, 2
jne 0x8ae759
cmp dword [ebp + 0x122d091d], 0
jne 0x8ae717
mov edi, dword [ebp + 0x122d2b73]
mov ecx, 0x3c7c
xor al, al
rep stosb byte es:[edi], al
mov edx, 0x28615ac2
mov edi, dword [ebp + 0x122d1721]
mov ecx, 0x79
lea esi, [ebp + 0x1253287a]
rep movsb byte es:[edi], byte [esi]
xor edx, 0x28634112
mov edi, dword [ebp + 0x122d1721]
add edi, 0xe
test edx, edx
je 0x8ae85c
add edx, dword [ebp + 0x122d092d]
mov dword [edi + 1], edx
mov edx, dword [ebp + 0x122d19f0]
mov edi, dword [ebp + 0x122d1721]
add edi, 0x54
mov dword [edi + 1], edx
mov edi, dword [ebp + 0x122d1721]
add edi, 0x49
mov dword [edi + 1], ebp
mov edi, dword [ebp + 0x122d1721]
add edi, 0x25
mov dword [edi + 1], ebp
jmp 0x8ae907
mov eax, 0x10000000
push eax
cmp dword [esp], 0
jne 0x8ae8b1
add esp, 4
mov eax, 1
ret
ret
add byte [eax], dl
inc dword [ebp + 0x122d293f]
mov eax, dword [ebp + 0x122d08f9]
cmp dword [ebp + 0x122d293f], eax
pop ebp
ja 0x8ae89c
mov eax, 1
ret 0xc
xchg ebp, eax
mov eax, edx
push ebp
in eax, dx
std
jne 0x8ae96c
pop esi
jp 0x8ae906
jbe 0x8ae8b6
imul esp, esi, 0xfd49bc56
inc edx
invalid
std
hlt
invalid
xchg esp, eax
invalid
dec edx
jno 0x8ae946
pop esp
mov ebp, 0x5a5cf44b
hlt
pop esp
pop edx
jp 0x8ae96d
jne 0x8ae999
jb 0x8ae969
jne 0x8ae90d
xchg edi, eax
jns 0x8ae975
je 0x8ae945
retf
js 0x8ae979
jae 0x8ae96b
jge 0x8ae975
je 0x8ae975
jnp 0x8ae980
je 0x8ae9fe
jnp 0x8ae984
jne 0x8ae946
mov esp, 0x5e75fd7a
jp 0x8ae989
jne 0x8ae9ec
pop esi
jp 0x8ae98d
jbe 0x8ae92f
outsb dx, byte [esi]
jne 0x8aea0a
xor dword [edi + 0x75], ebp
jne 0x8ae965
retf
jp 0x8ae999
jne 0x8ae982
jnp 0x8ae99c
je 0x8ae995
jnp 0x8ae9a0
je 0x8ae936
mov dl, 0xf8
jne 0x8ae966
sbb dh, byte [eax - 0x10]
push ebx
push edi
scasb al, byte es:[edi]
cmpsb byte [si], byte es:[di]
invalid
xlatb
invalid
push 0x51b4f070
scasb al, byte es:[edi]
invalid
push 0x51fff070
scasb al, byte es:[edi]
cmpsb byte [si], byte es:[di]
invalid