Function at 0x41ec3c
Capabilities:
Encode data using xor

Disassembly:
add byte [ebx + ebp + 0x2be00042], ah
inc edx
add byte [esi], cl
push esp
dec ebp
je 0x41e8c3
imul bp, word [ebp + 0x49], 0x616d
nop
mov eax, 0x41e8
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], 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], bl
inc ecx
add byte [eax], dh
add byte [eax], al
add byte [ebp + 0x36500041], ch
inc eax
add byte [eax + 0x59], dl
inc ecx
add byte [eax + 0x36], ah
inc eax
add byte [esi + esi + 0x40], ah
add byte [eax + 0x36], bl
inc eax
add byte [eax - 0x43ffbfcd], ah
xor eax, dword [eax]
sub al, 0x2c
inc edx
add byte [eax - 0x17ffbea8], dl
push ds
inc edx
add byte [esp + ebp + 0x42], bl
add al, ah
pop ecx
inc ecx
add byte [eax + 0x1e], bh
inc edx
add al, dh
sub al, 0x42
add byte [edi + ebx], dh
inc edx
add byte [eax - 0x77ffbdd3], al
sub eax, 0x2dec0042
inc edx
add byte [eax + 0x78004220], al
inc edx
add byte [eax + 0x2f], bl
inc edx
add ah, dh
xor al, byte [edx]
and dword fs:[edx], eax
loopne 0x41e929
inc edx
add ah, ah
xor eax, dword [edx]
cmp al, 0x35
inc edx
add ah, ah
sub eax, dword [edx]
test byte [eax], ah
inc edx
add byte [edx + esi], dl
inc edx
add ah, bl
inc edx
add al, bl
xor al, byte [edx]
nop
aaa
inc edx
add byte [eax + edi], dl
inc edx
add byte [ecx], cl
push esp
dec ebp
je 0x41e983
imul bp, word [ebp - 0x75], 0x2cc0
jmp 0x948e96f
add byte [esi + esi + 0x40], ah
add byte [eax + 0x36], bl
inc eax
add byte [eax - 0x43ffbfcd], ah
xor eax, dword [eax]
and al, 0x3c
inc edx
add byte [eax + 0xc00423c], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
clc
jmp 0x41e9f3
add byte [eax], dl
inc edi
inc edx
add byte [eax - 0x17ffbea8], dl
push ds
inc edx
add byte [edi + eax*2 + 0x42], cl
add al, ah
pop ecx
inc ecx
add byte [eax], ah
dec ecx
inc edx
add byte [eax + 0x34004249], ah
pop ds
inc edx
add byte [esp + ecx*2 + 0x42], dl
add byte [eax], cl
dec ebp
inc edx
add byte [eax + 0x4d], cl
inc edx
add byte [eax - 0x5bffbde0], al
dec ebp
inc edx
add byte [eax - 0x73ffbdaf], dl
pop ecx
inc edx
add byte [eax + 0x5a], ah
inc edx
add byte [eax + 0x21], ch
inc edx
add byte [ebx + ebx*2], dh
inc edx
add byte [eax - 0x57ffbda5], cl
inc esi
inc edx
add byte [eax + 0x210c0042], al
inc edx
add byte [eax + edx*2 + 0x42], ch
add byte [eax + 0x5e], cl
inc edx
add al, ch
dec edi
inc edx
add byte [eax + 0x5e], dl
inc edx
add byte [eax + 0x1800424c], bh
dec ebp
inc edx
add byte [eax + ebx*2 + 0x42], dl
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea7470
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e9f870
add byte [eax - 0x1a], dh
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41eaec
jo 0x41eaf5
imul esp, dword [ebx + 0x73], 0xc08b0000
loopne 0x41ea80
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 ah, ah
ljmp 0
popal
nop
cmp al, 0xeb
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 [ebx + ebp*8 + 0x41], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov al, byte [0x340041eb]
add byte [eax], al
add byte [ebp + 0x36500041], ch
inc eax
add byte [eax + 0x59], dl
inc ecx
add byte [eax + 0x36], ah
inc eax
add byte [esi + esi + 0x40], ah
add byte [eax + 0x36], bl
inc eax
add byte [eax - 0x43ffbfcd], ah
xor eax, dword [eax]
mov word [edi + 0x42], ds
add byte [eax - 0x17ffbea8], dl
push ds
inc edx
add byte [edi + ebx*2 + 0x59e00042], bh
inc ecx
add byte [eax + 0x1e], bh
inc edx
add byte [eax], bl
inc edx
add byte [edi + ebx], dh
inc edx
add byte [eax + 0x42], bl
add byte [eax + 0x7c004260], cl
and byte [edx], al
and byte [eax], 0x42
add byte [eax + 0x21000042], bl
inc edx
add byte [eax], ah
arpl word [edx], ax
and dword fs:[edx], eax
cmp byte [ebx + 0x42], ah
add byte [ebx], bh
inc edx
add byte [eax + 0x21], bh
inc edx
add byte [eax], bh
pop edi
inc edx
add byte [eax + 0x210c0042], al
inc edx
add ah, bl
popal
inc edx
add byte [ebx + 0x42], dl
add byte [ebx + 0x42], bh
add byte [eax + 0x5004263], dl
push esp
dec ecx
arpl word [edi + 0x6e], bp
mov eax, eax
lodsb al, byte [esi]
jmp 0x41ebec
add byte [ebp + 0x3b0e74c0], al
add eax, 0x488894
je 0x41ebda
push eax
call sub.gdi32.dll_DeleteObject
ret
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
sub ah, ch
inc ecx
add byte [eax + eax], ah
add byte [eax], al
mov al, byte [0x50004010]
inc eax
add byte [esi + esi + 0x40], bl
add byte [eax + 0x36], ah
inc eax
add byte [esi + esi + 0x40], ah
add byte [eax + 0x36], bl
inc eax
add byte [eax - 0x43ffbfcd], ah
xor eax, dword [eax]
mov esp, gs
inc ecx
add byte [eax], dl
push esp
push edx
jae 0x41ec9d
jne 0x41eca2
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ebc7
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 0x41ec42
ret
jns 0x41ec9d
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41ecab
mov eax, esi
call fcn.0040377c
pop esi
pop ebx
ret