Function at 0x41ec48
Capabilities:
Encode data using xor

Disassembly:
add byte [eax], al
xor eax, 0x29840040
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]
call 0x41e85f
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
push 0x240041e8
add byte [eax], al
add byte [eax + 0x580041e7], bh
aaa
inc eax
add byte [edi + esi + 0x40], ah
add byte [eax + 0x37], ch
inc eax
add byte [edi + esi + 0x40], ch
add byte [eax + 0x37], ah
inc eax
add byte [eax - 0x3bffbfcc], ch
xor al, 0x40
add byte [eax + 0x2a], ah
inc edx
add byte [edx + ebp + 0x540e0042], bl
dec ebp
je 0x41e8cf
imul bp, word [ebp + 0x49], 0x616d
nop
invalid
add byte [eax + 0x64004151], dh
push ds
inc edx
add byte [ebx + ebp + 0x1f200042], ch
inc edx
add byte [esp + ebp], bh
inc edx
add byte [esp + ebp + 0x42], al
add byte [eax + 0x7000422c], ch
and byte [edx], al
xor al, 0x2d
inc edx
add byte [esi + ebp], dl
inc edx
add byte [eax + 0x31], bh
inc edx
add byte [ecx + 0x42], dl
add byte [edx + esi + 0x42], ah
add byte [eax + 0x32], ch
inc edx
add al, al
xor eax, dword [edx]
mov al, byte [0x7400422a]
and byte [edx], al
sal byte [eax], 1
inc edx
add byte [eax + 0x5c00422d], bl
xor dword [edx], eax
sbb byte [esi], dh
inc edx
add byte [esi + esi + 0x54090042], bl
dec ebp
je 0x41e98f
imul bp, word [ebp - 0x75], 0x38c0
jmp 0x948e97b
add byte [edi + esi + 0x40], ch
add byte [eax + 0x37], ah
inc eax
add byte [eax - 0x3bffbfcc], ch
xor al, 0x40
add byte [edx + edi + 0x3b080042], ch
inc edx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
add 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], 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], dh
add byte [eax + eax], bh
add byte [eax], al
mov eax, 0x580041e5
aaa
inc eax
add byte [eax], ah
push ecx
inc ecx
add byte [eax + 0x37], ch
inc eax
add byte [edi + esi + 0x40], ch
add byte [eax + 0x37], ah
inc eax
add byte [eax - 0x3bffbfcc], ch
xor al, 0x40
add byte [eax + 0x60004245], bl
push eax
inc ecx
add ah, dl
push ds
inc edx
add ah, dl
inc ebp
inc edx
add byte [eax - 0x57ffbeaf], dh
inc edi
inc edx
add byte [eax], ch
dec eax
inc edx
add byte [eax], ah
pop ds
inc edx
add ah, bl
dec edx
inc edx
add byte [eax - 0x2fffbdb5], dl
dec ebx
inc edx
add byte [eax + 0x20], dh
inc edx
add byte [eax], bl
dec ebp
inc edx
add byte [ecx + edx*2], al
inc edx
add byte [eax], al
pop ecx
inc edx
add ah, dl
pop ecx
inc edx
add byte [eax + 0x21], bl
inc edx
add byte [eax + 0x5c], ah
inc edx
add byte [esp + ebx*2 + 0x45300042], dh
inc edx
add byte [eax + 0x42], dh
add ah, bh
and byte [edx], al
loopne 0x41eaa9
inc edx
add byte [edi + ebx*2 + 0x42], dh
add byte [edi + ecx*2 + 0x42], bl
add byte [edi + ebx*2 + 0x42], bh
add byte [eax + 0x4b], al
inc edx
add byte [eax - 0x37ffbdb5], ah
push edi
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea8070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea0470
add byte [esi + 0x41], bh
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41eaf8
jo 0x41eb01
imul esp, dword [ebx + 0x73], 0xc08b0000
in al, dx
ljmp 0
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 al, dh
ljmp 0
popal
nop
dec eax
jmp 0x41eb40
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x41eb], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + ebp*8 + 0x340041], ch
add byte [eax], al
mov eax, 0x580041e5
aaa
inc eax
add byte [eax], ah
push ecx
inc ecx
add byte [eax + 0x37], ch
inc eax
add byte [edi + esi + 0x40], ch
add byte [eax + 0x37], ah
inc eax
add byte [eax - 0x3bffbfcc], ch
xor al, 0x40
les esi, [eax + eax*2]
add byte [eax + 0x60004260], bh
push eax
inc ecx
add ah, dl
push ds
inc edx
add al, ch
pushal
inc edx
add byte [eax + 0x64004151], dh
push ds
inc edx
add byte [eax + 0x61], cl
inc edx
add byte [eax], ah
pop ds
inc edx
add byte [eax - 0x4bffbd9f], cl
popal
inc edx
add byte [eax + 0x42], ch
add byte [eax + 0x20], dh
inc edx
add al, cl
popal
inc edx
add al, dh
and byte [edx], al
dec esp
inc edx
add byte [ecx + 0x42], dl
add byte [esp + 0x42], ah
add byte [eax + 0x64], ch
inc edx
add byte [eax + 0x21], ch
inc edx
add byte [eax + 0x42], ah
add byte [eax + 0x42], dh
add ah, bh
and byte [edx], al
or byte [ebx + 0x42], ah
add byte [eax - 0x53ffbd9c], al
inc edx
add al, al
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
mov eax, 0x70041eb
add eax, 0x6f634954
outsb dx, byte [esi]
dec eax
jmp 0x41ec03
add byte [ebp + 0x3b0e74c0], al
add eax, 0x489a28
je 0x41ebe6
push eax
call sub.gdi32.dll_DeleteObject
ret
add byte [eax], al
add byte [eax], al
add byte [esp + ebp*8], dh
inc ecx
add byte [eax + eax], ah
add byte [eax], al
rcl byte [eax], 0x40
add byte [eax + 0x37], bl
inc eax
add byte [edi + esi + 0x40], ah
add byte [eax + 0x37], ch
inc eax
add byte [edi + esi + 0x40], ch
add byte [eax + 0x37], ah
inc eax
add byte [eax - 0x3bffbfcc], ch
xor al, 0x40
add byte [eax + 0x100041ec], bl
push esp
push edx
jae 0x41eca9
jne 0x41ecae
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ebd3
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 0x41ec4e
ret
jnp 0x41eca9
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41ecb7
mov eax, esi
call fcn.004038c4
pop esi
pop ebx
ret