Function at 0x41ef20
Capabilities:
Encode data using xor

Disassembly:
inc eax
add al, dl
cmp al, byte [eax]
les edi, [edx]
inc eax
add byte [eax + edi], cl
inc eax
add byte [eax], ch
cmp byte [eax], al
insb byte es:[edi], dx
inc eax
inc edx
add al, cl
inc eax
inc edx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
pushal
in al, dx
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 al, ah
in al, dx
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, dl
in al, dx
inc ecx
add byte [eax + eax], bh
add byte [eax], al
or al, 0xe8
inc ecx
add byte [edx + edi + 0x4c8c0040], bh
inc ecx
add ah, cl
cmp al, byte [eax]
sar byte [edx], 1
inc eax
add ah, al
cmp al, byte [eax]
or al, 0x38
inc eax
add byte [eax], ch
cmp byte [eax], al
pop eax
dec ebx
inc edx
add ah, cl
dec ebx
inc ecx
add byte [edx + 0x42], dl
add byte [ebx + ecx*2 + 0x4d1c0042], dl
inc ecx
add byte [ebp + ecx*2 + 0x42], dh
add ah, dh
dec ebp
inc edx
add byte [eax - 0x57ffbdde], ah
push eax
inc edx
add byte [ecx + edx*2 + 0x42], bl
add byte [ecx + edx*2 + 0x23f00042], bl
inc edx
add byte [eax + 0x52], ah
inc edx
add byte [esi + edx*2 + 0x42], cl
add byte [esi + ebx*2 + 0x42], dl
add ah, ch
pop esi
inc edx
add ah, bh
and al, 0x42
add al, al
pop edi
inc edx
add ah, bl
pop edi
inc edx
add al, dh
dec edx
inc edx
add al, bh
and eax, dword [edx]
test byte [edx + eax*2], ah
add byte [eax], ch
push ebp
inc edx
add byte [edx + 0x54a40042], bl
inc edx
add byte [edx + 0x63440042], ah
inc edx
add byte [ecx + edx*2], cl
inc edx
add byte [ecx + edx*2 + 0x42], ch
add byte [eax], bl
pop ebp
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ece070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ec6070
add ah, dl
call fcn.0041ed34
or byte [edi + 0x72], al
popal
jo 0x41ed61
imul esp, dword [ebx + 0x73], 0xc08b0000
dec esp
in eax, dx
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 - 0x13], dl
inc ecx
add byte [eax], bl
add byte [eax], al
add byte [eax], dl
ljmp 0x40
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi + ebp*8], 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], dl
out dx, al
inc ecx
add byte [eax + eax], dh
add byte [eax], al
or al, 0xe8
inc ecx
add byte [edx + edi + 0x4c8c0040], bh
inc ecx
add ah, cl
cmp al, byte [eax]
sar byte [edx], 1
inc eax
add ah, al
cmp al, byte [eax]
or al, 0x38
inc eax
add byte [eax], ch
cmp byte [eax], al
inc esp
inc edx
add ah, cl
dec ebx
inc ecx
add byte [edx + 0x42], dl
add byte [esp + 0x42], dh
add byte [ecx*2 + 0x21e40041], bl
inc edx
add ah, dl
inc edx
add byte [eax + 0x18004222], ah
inc edx
add byte [ebp + 0x42], al
add ah, ch
and eax, dword [edx]
lock and eax, dword [edx]
pop eax
inc edx
add byte [eax + 0x24], bh
inc edx
add ah, bl
inc edx
add ah, bl
and al, 0x42
add byte [eax + ebp*2], dl
inc edx
add byte [eax], bl
push 0x250c0042
inc edx
add al, dh
arpl word [edx], ax
clc
and eax, dword [edx]
test byte [edx + eax*2], ah
add byte [eax + 0x30004266], bl
push 0x68580042
inc edx
add byte [eax + ebp*2 + 0x42], ch
add ah, dh
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
sbb al, 0xee
inc ecx
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
test al, 0xed
inc ecx
add ah, dl
call fcn.0041ee6e
or byte [edi + 0x72], al
popal
jo 0x41ee9b
imul esp, dword [ebx + 0x73], 0xc0850000
je 0x41ee4a
cmp eax, dword [0x507348]
je 0x41ee4a
jae 0x41ee91
add byte [esi + eax + 0x50], dh
push eax
call sub.gdi32.dll_DeleteObject
ret
cmp al, byte [eax]
les edi, [edx]
inc eax
add byte [eax + edi], cl
inc eax
add byte [eax], ch
cmp byte [eax], al
jo 0x41ee85
inc ecx
add byte [ecx], al
add bh, bh
dec esp
int1
inc ecx
add byte [eax], dl
push esp
push edx
jae 0x41ef15
jne 0x41ef1a
arpl word [ebp + 0x4d], sp
dec ebp
popal
outsb dx, byte [esi]
popal
jb 0x41ee3f
inc eax
add byte [eax], al
out dx, eax
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
out dx, eax
inc ecx
add byte [eax], cl
out dx, eax
inc ecx
add byte [eax + eax], ah
add byte [eax], al
dec esp
out dx, al
inc ecx
add byte [edx + edi + 0x3ac80040], bh
inc eax
add ah, cl
cmp al, byte [eax]
sar byte [edx], 1
inc eax
add ah, al
cmp al, byte [eax]
or al, 0x38
cmp al, byte [eax]
les edi, [edx]
inc eax
add byte [eax + edi], cl
inc eax
add byte [eax], ch
cmp byte [eax], al
jo 0x41eeed
inc ecx
add byte [ecx], al
add bh, bh
invalid
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41eeaa
ror byte [ecx + 0x31c289d1], 0xc0
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x41ef26
ret