Function at 0x41ed24
Capabilities:
Encode data using xor

Disassembly:
add byte [eax + 0x3d], cl
inc eax
add byte [eax + 0x2c], al
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]
inc eax
jmp 0x41e93b
add byte [ebp + ebp + 0x42], bl
add byte [eax + 0xe00422d], bl
push esp
dec ebp
je 0x41e9ab
imul bp, word [ebp + 0x49], 0x616d
nop
mov al, byte [0x41e9]
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], dl
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], al
inc ecx
add byte [eax], dh
add byte [eax], al
add byte [esi + 0x3fa00041], dl
inc eax
add byte [eax + 0x3fb00041], ch
inc eax
add byte [edi + edi + 0x3fa80040], dh
inc eax
add al, dh
cmp al, 0x40
add byte [edi + 0x2de40040], cl
inc edx
add ah, ch
pop edi
inc ecx
add byte [eax + 0x1400421f], bh
inc edx
add byte [ecx], bh
inc ecx
add byte [eax + 0x1f], cl
inc edx
add byte [eax + 0x400422e], ch
and byte [edx], al
cmp byte [edi], ch
inc edx
add byte [eax + 0x2f], al
inc edx
add byte [edi + ebp + 0x21500042], ah
inc edx
add byte [eax], dh
xor byte [edx], al
adc byte [ecx], dh
inc edx
add byte [esp + esi + 0x22340042], ch
inc edx
add byte [eax - 0x63ffbdcb], bl
xor eax, 0x36f40042
inc edx
add byte [ebp + ebp + 0x21540042], bl
inc edx
add ah, cl
xor eax, dword [edx]
xchg esp, eax
xor byte [edx], al
nop
xor al, 0x42
add byte [eax + 0x39], cl
inc edx
add ah, cl
cmp dword [edx], eax
or dword [ebp + ecx*2 + 0x65], edx
je 0x41ea6b
imul bp, word [ebp - 0x75], 0x14c0
ljmp 0x4d54
add byte [edi + edi + 0x3fa80040], dh
inc eax
add al, dh
cmp al, 0x40
add byte [edi + 0x3ddc0040], cl
inc edx
add byte [eax], bh
inc edx
cmp byte [esi], bh
inc edx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
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 [ebx + ebp*8 + 0x41], bl
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 - 0x15], dl
inc ecx
add byte [eax + eax], bh
add byte [eax], al
xchg esp, eax
out 0x41, al
add byte [eax - 0x53ffbfc1], ah
pushal
inc ecx
add byte [eax - 0x4bffbfc1], dh
aas
inc eax
add byte [eax - 0xfffbfc1], ch
cmp al, 0x40
add byte [edi + 0x48c80040], cl
inc edx
add ah, ch
pop edi
inc ecx
add byte [eax + 0x400421f], bh
dec ecx
inc edx
add byte [ecx], bh
inc ecx
add al, bl
dec edx
inc edx
add byte [eax + 0x4b], bl
inc edx
add byte [eax], al
inc edx
add byte [esi + ecx*2], cl
inc edx
add al, al
dec esi
inc edx
add byte [eax], al
dec edi
inc edx
add byte [eax + 0x21], dl
inc edx
add byte [eax + 0x50], cl
inc edx
add byte [esp + edx*2], dh
inc edx
add byte [eax], dh
pop esp
inc edx
add byte [ebx*2 + 0x22380042], al
inc edx
add byte [eax + 0x5f], al
inc edx
add byte [edi + ebx*2 + 0x48600042], dl
inc edx
add byte [ecx + 0x42], dl
add ah, bl
and dword [edx], eax
adc byte [ebx + 0x42], dl
add byte [edx + 0x42], dl
add byte [edx + edx*2 + 0x625c0042], cl
inc edx
add byte [eax + 0x4e], dh
inc edx
add al, dl
dec esi
inc edx
add al, bh
pop edx
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41eb5c70
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41eae070
add byte [eax - 0x19], bl
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41ebd4
jo 0x41ebdd
imul esp, dword [ebx + 0x73], 0xc08b0000
enter 0x41eb, 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 byte [eax], al
add byte [eax], al
add byte [eax], al
int3
popal
nop
and al, 0xec
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 [esp + ebp*8 + 0x41], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov ah, ch
inc ecx
add byte [eax + eax], dh
add byte [eax], al
xchg esp, eax
out 0x41, al
add byte [eax - 0x53ffbfc1], ah
pushal
inc ecx
add byte [eax - 0x4bffbfc1], dh
aas
inc eax
add byte [eax - 0xfffbfc1], ch
cmp al, 0x40
add byte [edi + 0x63980040], cl
inc edx
add ah, ch
pop edi
inc ecx
add byte [eax - 0x37ffbde1], bh
arpl word [edx], ax
cmp al, 0x61
inc ecx
add byte [eax + 0x1f], cl
inc edx
add byte [eax], ch
inc edx
add byte [eax], al
inc edx
add byte [eax + 0x64], ch
inc edx
add byte [esp + 0x214c0042], dl
inc edx
add byte [eax + 0x21], dl
inc edx
add byte [eax - 0x2fffbd9c], ch
and dword [edx], eax
sub al, 0x67
inc edx
add byte [edx], dh
inc edx
add byte [edi + 0x42], al
add byte [eax + 0x67], cl
inc edx
add byte [eax + 0x22], cl
inc edx
add byte [ebx + 0x42], al
add byte [ecx + 0x42], dl
add ah, bl
and dword [edx], eax
call 0x60422ee2
inc edx
add byte [eax - 0x63ffbd99], cl
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
xchg esp, eax
in al, dx
inc ecx
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
and al, 0xec
inc ecx
add byte [eax - 0x19], bl
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41ed0a
jo 0x41ed13
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x49f890
je 0x41ecc2
cmp eax, dword [0x49f890]
je 0x41ecc2
push eax
call fcn.004072fc
ret
inc eax
add byte [ebp + ebp*8 + 0x41], dh
add byte [eax], dl
push esp
push edx
jae 0x41ed85
jne 0x41ed8a
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ecaf
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 0x41ed2a
ret
cmp esi, 0x7edb84ff
pop es
jle 0x41ed93
mov eax, esi
call fcn.004040cc
pop esi
pop ebx
ret