Function at 0x41e9e8
Capabilities:
Encode data using xor

Disassembly:
add byte [eax], al
jne 0x41e7f4
add ah, cl
inc edx
add byte [edi + ebp + 0x42], cl
add byte [ebx + ebx + 0x32000042], ah
inc edx
add byte [edx + esi + 0x32f40042], dh
inc edx
add al, dh
sbb al, 0x42
add byte [eax + 0x33], dl
inc edx
add byte [edi + esi], bh
inc edx
add byte [eax], bh
aas
inc edx
add byte [eax + eax*2], cl
inc edx
add al, bl
sbb eax, 0x40e00042
inc edx
add byte [ecx + eax*2], dh
inc edx
add byte [esp + ebp + 0x42], dl
add ah, dh
sbb al, 0x42
add byte [ebp + ebx + 0x42], bh
jl 0x41e813
inc edx
add byte [eax], bl
inc edx
add ah, dh
inc ebx
inc edx
add byte [ebp + esi + 0x43fc0042], dl
inc edx
add byte [edx + esi + 0x42], ah
add ah, al
xor al, byte [edx]
add byte [esi], bh
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e82070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e7a470
add byte [esi + 0x41], dh
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41e898
jo 0x41e8a1
imul esp, dword [ebx + 0x73], 0xc08b0000
mov eax, gs
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 + 0x180041e8], dl
add byte [eax], al
add byte [eax - 0x27ffbe1a], bl
xor al, 0x40
add ah, ah
xor al, 0x40
add al, ch
xor al, 0x40
add ah, ch
xor al, 0x40
add al, ah
xor al, 0x40
add byte [eax + 0x32], al
inc eax
add byte [edx + esi + 0x40], bl
add byte [esp + eax*2 + 0x44cc0042], bl
inc edx
add byte [edx], cl
push esp
dec ecx
arpl word [edi + 0x6e], bp
dec ecx
insd dword es:[edi], dx
popal
nop
call fcn.00422a89
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 [ecx + ebp*8 + 0x41], cl
add byte [eax + eax], dh
add byte [eax], al
mov al, 0xe5
inc ecx
add al, bl
xor al, 0x40
add byte [eax + 0x74], dh
inc ecx
add al, ch
xor al, 0x40
add ah, ch
xor al, 0x40
add al, ah
xor al, 0x40
add byte [eax + 0x32], al
inc eax
add byte [edx + esi + 0x40], bl
add byte [eax], bh
inc ebp
inc edx
add byte [eax + 0x58004173], dh
sbb eax, dword [edx]
push 0x4245
jne 0x41e938
add al, ch
sbb al, byte [edx]
enter 0x4245, 0
movsb byte es:[edi], byte [esi]
sbb eax, dword [edx]
or byte [esi + 0x42], al
add byte [esi + eax*2], dh
inc edx
add ah, ch
sbb al, 0x42
add al, dh
sbb al, 0x42
add byte [eax + 0x46], cl
inc edx
add byte [eax + 0x1d], dh
inc edx
add ah, cl
dec eax
inc edx
add ah, dl
sbb eax, 0x48e40042
inc edx
add al, ch
dec eax
inc edx
add al, ch
sbb eax, 0x44e40042
inc edx
add ah, dh
sbb al, 0x42
add byte [ebp + ebx + 0x42], bh
jl 0x41e957
inc edx
add byte [eax + 0x4247], cl
dec ecx
inc edx
add byte [eax], ch
dec ecx
inc edx
add byte [ecx + ecx*2], bh
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
pop eax
jmp 0x548e99b
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
call 0x74422b4c
out 0x41, al
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41e9ce
jo 0x41e9d7
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x459890
je 0x41e986
cmp eax, dword [0x459890]
je 0x41e986
push eax
call sub.gdi32.dll_DeleteObject
ret
inc eax
add byte [eax], bh
ljmp 0x6552
jae 0x41ea49
jne 0x41ea4e
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41e973
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 0x41e9ee
ret
js 0x41ea49
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41ea57
mov eax, esi
call fcn.00403604
pop esi
pop ebx
ret