Function at 0x41ec50
Capabilities:
Encode data using xor

Disassembly:
add ah, ch
aaa
inc eax
add al, bl
das
inc eax
add byte [esp + edx*2], cl
push ebx
push 0x64657261
dec ecx
insd dword es:[edi], dx
popal
lea eax, gs:[bx + si]
insb byte es:[edi], dx
call 0x41e867
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
jo 0x41e82a
inc ecx
add byte [eax + eax], ah
add byte [eax], al
shl bh, 0x41
add byte [eax + 0x3a], bl
inc eax
add byte [edx + edi + 0x40], ah
add byte [eax + 0x3a], ch
inc eax
add byte [edx + edi + 0x40], ch
add byte [eax + 0x3a], ah
inc eax
add byte [edi + esi + 0x37b00040], dl
inc eax
add byte [eax + 0x32], cl
inc edx
add byte [edx + esi + 0x540e0042], al
dec ebp
je 0x41e8d7
imul bp, word [ebp + 0x49], 0x616d
nop
int3
add al, al
popal
inc ecx
add ah, ch
and al, byte [edx]
xchg esp, eax
xor eax, dword [edx]
test al, 0x23
inc edx
add byte [esp + esi], ah
inc edx
add byte [esp + esi], ch
inc edx
add byte [eax - 0xbffbdcc], dl
and al, 0x42
add byte [esi + 0x35fc0042], bl
inc edx
add byte [eax - 0x27ffbdc7], bl
and eax, 0x3a840042
inc edx
add byte [eax - 0x1fffbdc6], cl
cmp eax, dword [edx]
mov byte [edx], dh
inc edx
add al, bh
and al, 0x42
add byte [eax - 0x7fffbdc8], bh
xor eax, 0x397c0042
inc edx
add byte [esi + edi], dh
inc edx
add byte [eax + 0x900423e], bh
push esp
dec ebp
je 0x41e997
imul bp, word [ebp - 0x75], 0x40c0
jmp 0x948e983
add byte [edx + edi + 0x40], ch
add byte [eax + 0x3a], ah
inc eax
add byte [edi + esi + 0x37b00040], dl
inc eax
add al, cl
inc edx
inc edx
add byte [ebx + eax*2], ah
inc edx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
or 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], cl
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 + 0x41], bh
add byte [eax + eax], bh
add byte [eax], al
shl ch, 0x41
add byte [eax + 0x3a], bl
inc eax
add byte [eax], dh
popal
inc ecx
add byte [eax + 0x3a], ch
inc eax
add byte [edx + edi + 0x40], ch
add byte [eax + 0x3a], ah
inc eax
add byte [edi + esi + 0x37b00040], dl
inc eax
add byte [ebp + ecx*2 + 0x60700042], dh
inc ecx
add byte [ebx + 0x42], bl
add al, dh
dec ebp
inc edx
add al, al
popal
inc ecx
add ah, cl
dec edi
inc edx
add byte [eax + edx*2 + 0x42], cl
add byte [eax + 0x4223], ch
push ebx
inc edx
add byte [ebx + edx*2 + 0x53f40042], dh
inc edx
add ah, dh
and al, 0x42
add byte [edx*2 + 0x5a080042], bh
inc edx
add byte [edx], al
inc edx
add al, bl
bound eax, qword [edx]
fsub qword [0x65140042]
inc edx
add byte [eax + 0x65], ch
inc edx
add byte [ebp + ecx*2 + 0x42], cl
add al, bh
and al, 0x42
add byte [eax - 0x1bffbddb], al
pop eax
inc edx
add byte [eax], ch
push 0x58600042
inc edx
add byte [eax], dh
push 0x53640042
inc edx
add ah, al
push ebx
inc edx
add ah, cl
pushal
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea8870
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea0c70
add byte [esi + 0x41], al
or byte [edi + 0x72], al
popal
jo 0x41eb09
imul esp, dword [ebx + 0x73], 0xc08b0000
hlt
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, al
jmp 0x41eb58
pushfd
imul eax, dword [edx], 0x4161c0
in al, dx
and al, byte [edx]
cld
imul eax, dword [edx], fcn.004223a8
cmp al, 0x6a
inc edx
add byte [eax + 0x6a], ch
inc edx
add al, dh
and al, 0x42
add ah, dh
and al, 0x42
add byte [edx + ebp*2 + 0x42], bh
add byte [ebp + 0x42], dh
add byte [eax], al
insd dword es:[edi], dx
inc edx
add al, bl
and eax, 0x6d180042
inc edx
add byte [ebp*2 + 0x25ec0042], bl
inc edx
add byte [eax], bl
imul eax, dword [edx], 0x4224f8
and byte [0x6bbc0042], 0x42
add byte [ebp*2 + 0x6d5c0042], dh
inc edx
add byte [eax + 0x6d], dh
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
shr bl, 0x41
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
push eax
jmp 0x41ec0b
add byte [ebp + 0x3b0e74c0], al
add eax, 0x4ca890
je 0x41ebee
push eax
call sub.gdi32.dll_DeleteObject
ret
add byte [eax], al
add byte [eax], al
add byte [esp + ebp*8], bh
inc ecx
add byte [eax + eax], ah
add byte [eax], al
mov al, byte [0x58004010]
cmp al, byte [eax]
cmp al, byte fs:[eax]
push 0x6c00403a
cmp al, byte [eax]
pushal
cmp al, byte [eax]
xchg esp, eax
aaa
inc eax
add byte [eax - 0x5fffbfc9], dh
in al, dx
inc ecx
add byte [eax], dl
push esp
push edx
jae 0x41ecb1
jne 0x41ecb6
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ebdb
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 0x41ec56
ret
jle 0x41ecb1
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41ecbf
mov eax, esi
call fcn.00403b84
pop esi
pop ebx
ret