Function at 0x421f50
Capabilities:
Encode data using xor

Disassembly:
pushaw
or edi, dword [eax - 0x32139684]
fmul qword [edx]
mov eax, 0xcdec697c
sub edi, dword [esi - 0x49]
jl 0x421fcd
in al, dx
int 0x2b
imul esi, dword [esi], 0xcdec697c
sub ebp, dword [ecx - 0x4e]
stc
push 0x692bcdec
mov dl, 0xc0
in al, 0xeb
int 0x2b
imul esi, dword [edx - 0x32979a40], 0xc0b2692b
out dx, al
inc ebx
sub ebp, dword [ecx - 0x4e]
shl byte [ebp - 0x12], 0x92
movsd dword es:[edi], dword [esi]
push 0xee65c0b2
xchg edx, eax
xor ch, ah
mov cl, 0xc0
out dx, al
xchg edx, eax
xor byte [eax], al
and eax, 0x92ee65c0
add byte [0x92ee65c0], ah
xor byte [eax], al
pushal
aas
out dx, al
xchg edx, eax
xor byte [eax], al
pushal
inc edi
loop 0x421f9f
xchg edx, eax
xor byte [eax], al
pushal
inc edi
aaa
imul edx, dword [edx + 0x47600030], 0x300e8937
add byte [eax + 0x47], ah
aaa
mov dword [esi - 1], ebp
pop edi
inc edi
aaa
mov dword [ebp + ebp*8 + 0x7a], ebp
pop edi
inc edi
aaa
mov dword [ebp + ebp*8 + 0x3e], ebp
fadd qword [esi + 0x37]
mov dword [ebp + ebp*8 + 0x3e], ebp
jne 0x421f9b
mov dword ss:[ebp + ebp*8 + 0x3e], ebp
jne 0x422039
mov ch, 0x88
insb byte es:[edi], dx
in eax, dx
jne 0x422040
add eax, 0x753eed6c
push ecx
push cs
out 0xec, eax
jne 0x42204e
push cs
xchg edi, eax
popfd
shl dword [esi], 0x33
invalid
dec esi
js 0x4220a9
stosb byte es:[edi], al
adc bl, ch
sbb al, 0x4e
xlatb
out dx, al
test eax, 0x4e1ceb10
xlatb
jp 0x422062
and dword [eax], edx
jmp 0x422060
adc bl, ch
sbb al, 0x4e
xlatb
jp 0x422087
xchg dl, ch
sbb al, 0x4e
xlatb
jp 0x42208e
aas
mov edx, 0xd74e1c67
xlatb
jp 0x422095
mov edx, 0xd74d9250
xlatb
jp 0x42209c
mov edx, 0xd6c35150
ret
salc
jp 0x4220a3
mov edx, 0x51b85150
jp 0x4220aa
mov edx, 0xd3b85150
idiv byte [esi]
mov edx, 0xd3b85150
je 0x42202f
mov ecx, 0xd3b85150
je 0x422038
xor byte [eax + 0x51], dl
mov eax, 0x7eb874d3
invalid
jle 0x42204f
push eax
mov eax, 0x7eb874d3
mov ch, 0xcd
mov bh, 0xd3
je 0x42204d
jle 0x422045
int 0xb7
sal dword [eax + edi*4 + 0x7e], cl
mov ch, 0x97
jle 0x42204c
xchg edi, eax
sub eax, 0x7eb874d3
mov ch, 0x97
jle 0x422053
xchg edi, eax
pushal
dec ecx
je 0x42205b
jle 0x42205a
xchg edi, eax
pushal
jge 0x422098
mov bh, 0x7e
mov ch, 0x97
jle 0x422061
xchg edi, eax
pushal
jge 0x4220ec
xor al, 0x7e
mov ch, 0x97
pushal
jge 0x4220f3
hlt
ja 0x422083
jl 0x422109
invalid
ja 0x42208a
jl 0x422110
daa
push edx
fidiv dword [edi - 0x6b]
jl 0x422117
daa
cmpsb byte [esi], byte es:[edi]
push eax
ja 0x422098
xchg ebp, eax
jl 0x42211e
daa
cmpsb byte [esi], byte es:[edi]
mov dword [0x197c94ed], eax
xchg esp, eax
jl 0x422125
daa
cmpsb byte [esi], byte es:[edi]
mov dword [0x197c12e8], eax
daa
adc bh, byte [ecx + ebx + 0x27]
cmpsb byte [esi], byte es:[edi]
mov dword [0x18f16de8], eax
daa
insd dword es:[edi], dx
int1
sbb byte [edi], ah
cmpsb byte [esi], byte es:[edi]
mov dword [0x8ed56de8], eax
insd dword es:[edi], dx
aad 0x8e
cmpsb byte es:[esi], byte es:[edi]
mov dword [0x9bd56de8], eax
insd dword es:[edi], dx
aad 0x9b
mov byte [0x6de8a3a5], al
aad 0x9b
sbb byte [ecx], ah
mov dword [0x9bd56de8], eax
sbb byte [ecx], dh
sbb al, 0xe8
insd dword es:[edi], dx
aad 0x9b
sbb byte [ecx], dh
pop edx
pop esi
insd dword es:[edi], dx
aad 0x9b
sbb byte [ecx], dh
pop edx
jne 0x42212d
aam 0x9b
sbb byte [ecx], dh
pop edx
jne 0x422102
push edx
wait
sbb byte [ecx], dh
pop edx
jne 0x422109
or eax, 0x5a311810
jne 0x422110
or eax, 0x5a308ef8
jne 0x422117
or eax, 0x59ac40f8
jne 0x42211e
or eax, 0xd5df40f8
je 0x422125
or eax, 0x16df40f8
out dx, al
mov cl, 0xd
clc
inc eax
fist word [esi]
xchg dword [eax], ebp
or eax, 0x16df40f8
clc
inc eax
fist word [esi]
xchg dword [ebx - 0x7c], ebp
test dword [eax - 0x21], 0x726b8716
je 0x4221d2
fist word [esi]
xchg dword [ebx + 0x72], ebp
adc dh, byte [ebp + 0x6b8716de]
jb 0x4221b1
add byte [ebp + 0x16], dl
xchg dword [ebx + 0x72], ebp
adc al, byte [eax]
mov cl, 0x92
xchg byte [ebx + 0x72], ch
adc al, byte [eax]
mov cl, 0x22
add ch, byte [ebx + 0x72]
adc al, byte [eax]
imul esi, dword [edx + 0x12], 0
mov cl, 0x22
and ch, 0x71
adc al, byte [eax]
mov cl, 0x22
cmp byte [edi], 0xe8
adc dword [eax], eax
mov cl, 0x22
cmp byte [edi], 0xc6
mov bh, bh
mov al, 0x22
cmp byte [edi], 0xc6
push ebp
jl 0x422182
and al, byte [eax + 0x3955c63f]
and eax, 0xc63f8022
push ebp
cmp dword [ecx - 0x67], ecx
jg 0x422222
invalid
push es
mov dl, 0xec
dec esi
mov ebx, 0xb205e7b8
in al, dx
dec esi
mov ebx, 0xb181d2b8
in al, dx
dec esi
mov ebx, 0x2b5dd2b8
in al, dx
dec esi
mov ebx, 0x1b5dd2b8
bound ecx, qword [esi - 0x45]
mov eax, 0x851b5dd2
lds edi, [edx + 0x1b5dd2b8]
test ecx, esp
aaa
mov eax, 0x851b5dd2
loope 0x42229e
sub eax, 0x851b5dd2
loope 0x4222a5
adc byte [eax + 0x5d], cl
sbb eax, dword [ebp - 0x6eefb91f]
fstp dword [edx]
test ecx, esp
inc esi
adc byte [ecx - 0x1e7b692b], dl
inc esi
adc byte [ecx - 0x1f01ed2b], dl
inc esi
adc byte [ecx + 0x571e12d5], dl
inc esi
adc byte [ecx - 0x78e1ed2b], dl
mov ebp, 0x12d5910f
push ds
xchg esi, ebp
mov word [eax - 0x78e1ed2b], ss
out dx, al
mov edi, 0x1e12d506
xchg esi, ebp
mov edi, 0x1e124bd2
xchg esi, ebp
mov edi, 0x1d8e5dd2
xchg esi, ebp