Function at 0x414020
Capabilities:
Encode data using xor

Disassembly:
jne 0x414038
push ecx
push eax
add esp, 4
and ecx, 0x15a1a
pop ecx
push eax
xor eax, 0x7afb
sub eax, 0xf321
pop eax
push ebx
add ebx, 0x161cf
call 0x414020
add byte [edx], dh
dec eax
aaa
aas
inc edi
inc edx
dec ebx
add esp, 4
pop ebx
mov ecx, dword [ebp - 0x79c]
mov dword [ebp - 0x19e4], ecx
push 0
call dword [ebp - 0x19e4]
push eax
push edi
add esp, 4
jmp 0x414043
pop eax
push eax
and eax, 0x15512
and eax, 0xfa59
and eax, 0x15061
and eax, 0x872c
pop eax
push ebx
push esi
add esp, 4
or ebx, 0x4848
pop ebx
push edx
mov ecx, 0x10101010
pop edx
push ecx
mov ecx, 0xffff02ff
pop ecx
pop ecx
adc ecx, 0x10
pop ds
add al, byte [edx]
popal
push ebx
or ebx, 0xffffffb3
add al, byte [edx]
add bl, byte [ebx + 0x58]
pop eax
or eax, 0x44
jg 0x414091
add al, byte [ebx + 0x367acc8]
add al, byte [ebx + 0x33f15f0]
add ah, byte [eax + 0x55]
lodsb al, byte [esi]
add eax, dword [bp + si]
xor eax, 0x15
aas
add eax, dword [edx]
pushal
push ebp
invalid
or ebp, 0xfffffff3
lar eax, word [edx]
xor ebp, 0x34
push cs
cmc
xor al, 0xe
add eax, dword [edx]
pop ebp
enter 0xffffffffffffb687, 0xfffffffffffffff0
add dword [ecx], eax
dec ecx
enter 0xffffffffffffb787, 0xfffffffffffffff0
add dword [ecx], eax
enter 0xffffffffffffb887, 0xfffffffffffffff0
add dword [ecx], eax
jbe 0x414088
xchg dword [ecx + 0x4f0101f0], edi
enter 0xffffffffffffba87, 0xfffffffffffffff0
add dword [ecx], eax
jno 0x414096
xchg dword [edx + 0x710101f0], edi
enter 0xffffffffffffbb87, 0xfffffffffffffff0
add dword [ecx], eax
enter 0xffffffffffffbc87, 0xfffffffffffffff0
xchg dword [ebx + 0x660101f0], edi
enter 0xffffffffffffbc87, 0xfffffffffffffff0
add dword [ecx], eax
ja 0x4140a4
xchg dword [ebp + 0x6e0101f0], edi
enter 0xffffffffffffbe87, 0xfffffffffffffff0
add dword [ecx], eax
enter 0xffffffffffffbf87, 0xfffffffffffffff0
add dword [ecx], eax
dec edx
enter 0xffffffffffffc087, 0xfffffffffffffff0
add dword [ecx], eax
arpl ax, cx
xchg ecx, eax
lock add dword [ecx], eax
jo 0x4140c7
xchg edx, eax
lock add dword [ecx], eax
enter 0xffffffffffffc387, 0xfffffffffffffff0
add dword [ecx], eax
outsb dx, byte [esi]
enter 0xffffffffffffc487, 0xfffffffffffffff0
add dword [ecx], eax
enter 0xffffffffffffc587, 0xfffffffffffffff0
add dword [ecx], eax
pop ecx
enter 0xffffffffffffc687, 0xfffffffffffffff0
add dword [ecx], eax
add dl, byte [ebx + eax*4 - 0x3c]
mov esp, 0xea020372
or eax, dword [edx]
add al, byte [edx]
add cl, byte [edi + esi + 0x52]
xor al, 0x37
inc esp
inc ebx
test esi, eax
push es
add esp, 0xffffff84
add al, 3
add ch, dl
or eax, 0x2020202
cmp eax, 0x34524645
inc edi
cmp dh, byte [0xc6855141]
inc ecx
push ecx
test esi, eax
push es
pop esp
enter 0xffffffffffffe287, 0xfffffffffffffff0
add dword [ecx], eax
xchg edx, esp
lock add dword [ecx], eax
dec eax
enter 0xffffffffffffe387, 0xfffffffffffffff0
add dword [ecx], eax
xchg ebx, esp
lock add dword [ecx], eax
imul ecx, eax, 0xffffff87
in al, 0xf0
add dword [ecx], eax
xchg esp, esp
lock add dword [ecx], eax
jo 0x414131
xchg ebp, esp
lock add dword [ecx], eax
enter 0xffffffffffffe687, 0xfffffffffffffff0
add dword [ecx], eax
push esp
enter 0xffffffffffffe787, 0xfffffffffffffff0
add dword [ecx], eax
enter 0xffffffffffffe887, 0xfffffffffffffff0
add dword [ecx], eax
jne 0x41414d
xchg ecx, ebp
lock add dword [ecx], eax
jno 0x414154
xchg edx, ebp
lock add dword [ecx], eax
ja 0x41415b
xchg ebx, ebp
lock add dword [ecx], eax
je 0x414162
xchg esp, ebp
lock add dword [ecx], eax
enter 0xffffffffffffed87, 0xfffffffffffffff0
add dword [ecx], eax
enter 0xffffffffffffee87, 0xfffffffffffffff0
add dword [ecx], eax
pop ecx
enter 0xffffffffffffef87, 0xfffffffffffffff0
add dword [ecx], eax
add dl, byte [ebx + edx*2 - 0x7b]
mov byte [esi], 0xed
pop es
push eax
inc ebx