Function at 0x41ec68
Capabilities:
Encode data using xor

Disassembly:
add byte [eax - 0x7ffbfca], dh
sub al, byte [eax]
or al, 0x54
push ebx
push 0x64657261
dec ecx
insd dword es:[edi], dx
popal
lea eax, gs:[bx + si]
test al, ch
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x240041e8], cl
add byte [eax], al
add al, bl
out 0x41, eax
add byte [eax], cl
cmp dword [eax], eax
adc al, 0x39
inc eax
add byte [eax], bl
cmp dword [eax], eax
sbb al, 0x39
inc eax
add byte [eax], dl
cmp dword [eax], eax
pop eax
inc eax
add byte [esi + esi + 0x40], dh
add byte [eax - 0x2bffbdd5], bl
sub eax, dword [edx]
push cs
push esp
dec ebp
je 0x41e8ef
imul bp, word [ebp + 0x49], 0x616d
nop
in al, 0xe8
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax - 0x17], bl
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax - 0x17], cl
inc ecx
add byte [eax], dh
add byte [eax], al
add al, bl
in eax, 0x41
add byte [eax], cl
cmp dword [eax], eax
pushfd
dec ebx
inc ecx
add byte [eax], bl
cmp dword [eax], eax
sbb al, 0x39
inc eax
add byte [eax], dl
cmp dword [eax], eax
pop eax
inc eax
add byte [esi + esi + 0x40], dh
add byte [eax], ah
sub al, 0x42
add ah, bl
dec edx
inc ecx
add al, bl
push ds
inc edx
add byte [eax + 0x2c], dl
inc edx
add byte [esp + ecx*2], ch
inc ecx
add byte [eax + 0x1e], ch
inc edx
add ah, ah
sub al, 0x42
add byte [edi + ebx], ah
inc edx
add byte [ebp + ebp + 0x42], dh
add byte [ebp + ebp + 0x42], bh
add al, ah
sub eax, 0x20740042
inc edx
add byte [esi + ebp + 0x42], ch
add byte [edi + ebp + 0x42], cl
add byte [eax + 0x58004232], dh
and dword [edx], eax
pushfd
xor eax, dword [edx]
mov al, byte [0xf8004233]
xor al, 0x42
add al, bl
sub eax, dword [edx]
js 0x41e952
inc edx
add byte [eax], cl
xor al, byte [edx]
shr byte [esi], 1
inc edx
add byte [edx + esi + 0x37500042], dl
inc edx
add ah, dl
aaa
inc edx
add byte [ecx], cl
push esp
dec ebp
je 0x41e9af
imul bp, word [ebp - 0x75], 0x58c0
mov eax, eax
pop eax
jmp 0x948e99b
add byte [ecx + edi], bl
inc eax
add byte [eax], dl
cmp dword [eax], eax
pop eax
inc eax
add byte [esi + esi + 0x40], dh
add ah, ah
cmp eax, dword [edx]
inc eax
cmp al, 0x42
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
and al, 0xea
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x41ea], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + ebp*8 + 0x3c0041], dl
add byte [eax], al
fsub st(5)
inc ecx
add byte [eax], cl
cmp dword [eax], eax
pushfd
dec ebx
inc ecx
add byte [eax], bl
cmp dword [eax], eax
sbb al, 0x39
inc eax
add byte [eax], dl
cmp dword [eax], eax
pop eax
inc eax
add byte [esi + esi + 0x40], dh
add al, dl
inc esi
inc edx
add ah, bl
dec edx
inc ecx
add al, bl
push ds
inc edx
add byte [edi + eax*2], cl
inc edx
add byte [esp + ecx*2], ch
inc ecx
add al, ah
dec eax
inc edx
add byte [eax + 0x49], ah
inc edx
add byte [edi + ebx], ah
inc edx
add byte [esp + ecx*2], dl
inc edx
add al, cl
dec esp
inc edx
add byte [eax], cl
dec ebp
inc edx
add byte [eax + 0x42], dh
add byte [ebp + ecx*2 + 0x42], ah
add byte [eax + 0x51], dl
inc edx
add byte [ecx + ebx*2 + 0x42], cl
add byte [eax], ah
pop edx
inc edx
add byte [ecx + 0x42], bl
add ah, dh
pop edx
inc edx
add byte [eax + 0x5b], cl
inc edx
add byte [eax + 0x46], ch
inc edx
add byte [eax + 0x20], bh
inc edx
add byte [eax], al
and dword [edx], eax
sub al, 0x50
inc edx
add byte [eax], cl
pop esi
inc edx
add byte [eax + 0x1000424f], ch
pop esi
inc edx
add byte [eax + 0x4c], bh
inc edx
add al, bl
dec esp
inc edx
add byte [eax + ebx*2], dl
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41eaa070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea2470
add byte [esi + 0x41], bl
or byte [edi + 0x72], al
popal
jo 0x41eb21
imul esp, dword [ebx + 0x73], 0xc08b0000
or al, 0xeb
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], dl
jmp 0x41eb24
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, bl
jmp 0x41eb70
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
fsubr st(3)
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, cl
jmp 0x41eb80
jl 0x41ebd1
inc edx
add byte [esp + ecx*2], ch
inc ecx
add byte [eax + 0x1e], ch
inc edx
add ah, bl
pop edi
inc edx
add byte [edi + ebx], ah
and al, 0x1f
inc edx
add byte [eax], bl
inc edx
add byte [eax + 0x60], cl
inc edx
add byte [eax + 0x20], dh
inc edx
add byte [eax + 0x42], dh
add byte [eax + 0x42], bl
add ah, dh
and byte [edx], al
loopne 0x41ec00
inc edx
add byte [eax + 0x21], bl
inc edx
add al, bh
bound eax, qword [edx]
cld
bound eax, qword [edx]
insb byte es:[edi], dx
and dword [edx], eax
clc
pop esi
inc edx
add byte [eax + 0x20], bh
inc edx
add byte [eax], al
and dword [edx], eax
pushfd
popal
inc edx
add byte [ebx], dl
inc edx
add byte [eax + 0x63], al
inc edx
add byte [ebx + 0x42], dl
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
fsubr st(3)
inc ecx
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
push 0x9c0041eb
out 0x41, al
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41ec4e
jo 0x41ec57
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x46ba2c
je 0x41ec06
cmp eax, dword [0x46ba2c]
je 0x41ec06
push eax
call sub.gdi32.dll_DeleteObject
ret
inc eax
add byte [eax + 0x100041ec], bh
push esp
push edx
jae 0x41ecc9
jne 0x41ecce
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ebf3
inc eax
add byte [ecx + 0x31c289d1], cl
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x41ec6e
ret
jge 0x41ecc9
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41ecd7
mov eax, esi
call fcn.00403a74
pop esi
pop ebx
ret