Function at 0x41eb14
Capabilities:
Encode data using xor

Disassembly:
add byte [edx + esi + 0x40], ch
inc eax
add byte [eax + 0xc00402a], bh
push esp
push ebx
push 0x64657261
dec ecx
insd dword es:[edi], dx
popal
lea eax, gs:[bx + si]
jo 0x41e80e
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 + ebp*8 + 0x41], dh
add byte [eax + eax], dh
add ah, al
out 0x41, eax
add byte [esp + esi + 0x34b80040], ch
inc eax
add byte [esp + esi + 0x34c00040], bh
inc eax
add byte [esp + esi + 0x32140040], dh
inc eax
add byte [eax], dh
xor al, byte [eax]
cld
and al, byte [edx]
pop eax
and eax, dword [edx]
or al, 0x54
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
shr al, 1
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], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax - 0x17], al
inc ecx
add byte [eax + eax], bh
add byte [eax], al
fsubr st(6), st(0)
inc ecx
add byte [esp + esi + 0x752c0040], ch
inc ecx
add byte [esp + esi + 0x34c00040], bh
inc eax
add byte [esp + esi + 0x32140040], dh
inc eax
add byte [eax], dh
xor al, byte [eax]
call 0x6c422afe
je 0x41e914
add byte [esp + ebx + 0x2e240042], al
inc edx
add byte [ebp + esi*2 + 0x2ff80041], bh
inc edx
add byte [eax + 0x30], bh
inc edx
add al, dl
sbb al, 0x42
add byte [ebx + esi], ch
inc edx
add al, ah
xor eax, dword [edx]
and byte [edx + eax*2], dh
add byte [esi + ebx], bl
inc edx
add byte [esp + esi + 0x42], bh
add byte [eax + 0x38], ch
inc edx
add byte [eax + eax*2 + 0x42], ah
add byte [eax], bh
inc ecx
inc edx
add byte [edi + ebx], al
inc edx
add byte [edx + eax*2], cl
inc edx
add byte [eax + 0x42], ah
pushal
inc edx
inc edx
add byte [eax + 0x2000422d], al
push ds
inc edx
add byte [eax + 0x4400421e], ch
aaa
inc edx
add byte [eax], ah
inc ebp
inc edx
add al, al
inc edx
add byte [eax], ch
inc ebp
inc edx
add byte [eax - 0xfffbdcd], dl
xor eax, dword [edx]
sub al, 0x3f
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e94c70
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e8d070
add byte [eax + 0x41e7], ah
add byte [eax], cl
inc edi
jb 0x41e9c4
jo 0x41e9cd
imul esp, dword [ebx + 0x73], 0xc08b0000
mov eax, 0x41e9
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 [ecx + ebp*8 + 0x180041], bh
add byte [eax], al
invalid
popal
nop
adc 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 [edx + ebp*8 + 0x41], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
js 0x41e9d4
add byte [eax], al
add byte [eax], al
test dl, 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 [eax - 0x16], bh
inc ecx
add byte [eax + eax], dh
add byte [eax], al
fsubr st(6), st(0)
inc ecx
add byte [esp + esi + 0x752c0040], ch
inc ecx
add byte [esp + esi + 0x34c00040], bh
inc eax
add byte [esp + esi + 0x32140040], dh
inc eax
add byte [eax], dh
xor al, byte [eax]
inc esi
inc edx
add byte [esp + esi*2 + 0x41], ch
add byte [esp + ebx + 0x46940042], al
inc edx
add byte [ebp + esi*2 + 0x1c140041], bh
inc edx
add ah, dh
inc esi
inc edx
add al, dl
sbb al, 0x42
add byte [edi + eax*2], dh
inc edx
add byte [eax + 0x47], ah
inc edx
add byte [eax], bl
push ds
inc edx
add byte [esi + ebx], bl
inc edx
add byte [edi + eax*2 + 0x42], dh
add byte [esi + ebx + 0x49f80042], bl
inc edx
add byte [eax], al
pop ds
inc edx
add byte [eax], dl
dec edx
inc edx
add byte [edx + ecx*2], dl
inc edx
add byte [edi + ebx], dl
inc edx
add byte [eax], dl
inc esi
inc edx
add byte [eax], ah
push ds
inc edx
add byte [eax - 0x4bffbde2], ch
dec eax
inc edx
add byte [edx + ecx*2], ch
inc edx
add byte [edx + ecx*2 + 0x42], dl
add byte [eax + 0x4a], ch
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
test dl, ch
inc ecx
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
adc al, 0xea
inc ecx
add byte [eax + 0x41e7], ah
add byte [eax], cl
inc edi
jb 0x41eafa
jo 0x41eb03
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x454890
je 0x41eab2
cmp eax, dword [0x454890]
je 0x41eab2
push eax
call sub.gdi32.dll_DeleteObject
ret
inc eax
add byte [ebx + ebp*8 + 0x41], ah
add byte [eax], dl
push esp
push edx
jae 0x41eb75
jne 0x41eb7a
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ea9f
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 0x41eb1a
ret
jbe 0x41eb75
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x41eb83
mov eax, esi
call fcn.004035d8
pop esi
pop ebx
ret