Function at 0x41eae8
Capabilities:
Encode data using xor

Disassembly:
add al, dl
and al, byte [edx]
sub al, 0x23
inc edx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
movsb byte es:[edi], byte [esi]
call 0x41e89f
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and cl, 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 [ecx + ebp*8], dl
inc ecx
add byte [eax + eax], bh
add byte [eax], al
mov al, 0xe6
inc ecx
add byte [ebx + esi + 0x40], cl
add byte [eax + 0x75], dh
inc ecx
add byte [ebx + esi + 0x40], bl
add byte [eax + 0x33], ah
inc eax
add byte [ebx + esi + 0x40], dl
add byte [eax + esi + 0x30d00040], dh
inc eax
add byte [ebp + ebp + 0x74b00042], bh
inc ecx
add byte [eax + 0x1c], bl
inc edx
add al, bh
sub eax, 0x76000042
inc ecx
add ah, cl
das
inc edx
add byte [eax + esi + 0x42], cl
add byte [esp + ebx + 0x33000042], ah
inc edx
add byte [ebx + esi + 0x33f40042], dh
inc edx
add al, dh
sbb eax, 0x34500042
inc edx
add byte [eax + edi], bh
inc edx
add byte [eax], bh
inc eax
inc edx
add byte [ecx + eax*2], cl
inc edx
add al, bl
push ds
inc edx
add al, ah
inc ecx
inc edx
add byte [edx + eax*2], dh
inc edx
add byte [ebp + ebp + 0x42], dl
add ah, dh
sbb eax, 0x1e7c0042
inc edx
add byte [eax], bl
aaa
inc edx
add ah, dh
inc esp
inc edx
add byte [esi + esi + 0x44fc0042], dl
inc edx
add byte [ebx + esi + 0x42], ah
add ah, al
xor eax, dword [edx]
add byte [edi], bh
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e92070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e8a470
add byte [edi + 0x41], dh
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41e998
jo 0x41e9a1
imul esp, dword [ebx + 0x73], 0xc08b0000
mov ecx, 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 + 0x180041e9], dl
add byte [eax], al
add byte [eax + 0x4c0041e7], bl
xor eax, dword [eax]
pop eax
xor eax, dword [eax]
pop esp
xor eax, dword [eax]
pushal
xor eax, dword [eax]
push esp
xor eax, dword [eax]
mov ah, 0x30
inc eax
add al, dl
xor byte [eax], al
pushfd
inc ebp
inc edx
add ah, cl
inc ebp
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.00422b8a
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax - 0x16], 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 [edx + ebp*8 + 0x41], cl
add byte [eax + eax], dh
add byte [eax], al
mov al, 0xe6
inc ecx
add byte [ebx + esi + 0x40], cl
add byte [eax + 0x75], dh
inc ecx
add byte [ebx + esi + 0x40], bl
add byte [eax + 0x33], ah
inc eax
add byte [ebx + esi + 0x40], dl
add byte [eax + esi + 0x30d00040], dh
inc eax
add byte [eax], bh
inc esi
inc edx
add byte [eax + 0x58004174], dh
sbb al, 0x42
add byte [eax + 0x46], ch
inc edx
add byte [eax], al
jbe 0x41ea38
add al, ch
sbb eax, dword [edx]
enter 0x4246, 0
movsb byte es:[edi], byte [esi]
sbb al, 0x42
add byte [eax], cl
inc edi
inc edx
add byte [edi + eax*2], dh
inc edx
add ah, ch
sbb eax, 0x1df00042
inc edx
add byte [eax + 0x47], cl
inc edx
add byte [eax + 0x1e], dh
inc edx
add ah, cl
dec ecx
inc edx
add ah, dl
push ds
inc edx
add ah, ah
dec ecx
inc edx
add al, ch
dec ecx
inc edx
add al, ch
push ds
inc edx
add ah, ah
inc ebp
inc edx
add ah, dh
sbb eax, 0x1e7c0042
jl 0x41ea58
inc edx
add byte [eax + 0x4248], cl
dec edx
inc edx
add byte [eax], ch
dec edx
inc edx
add byte [edx + ecx*2], bh
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
pop eax
ljmp 0x4954
pop es
add eax, 0x6f634954
outsb dx, byte [esi]
call 0x74422c4d
out 0x41, eax
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41eace
jo 0x41ead7
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x45c890
je 0x41ea86
cmp eax, dword [0x45c890]
je 0x41ea86
push eax
call sub.gdi32.dll_DeleteObject
ret
inc eax
add byte [eax], bh
jmp 0x41eb14
jae 0x41eb49
jne 0x41eb4e
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ea73
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 0x41eaee
ret
or byte [eax - 0x18], dl
int 0x76
invalid
jne 0x41eb49
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41eb57
mov eax, esi
call fcn.00403478
pop esi
pop ebx
ret