Function at 0x41e8e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov ebx, dword [ebp + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41e900
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41e920
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x48], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ecx
jns 0x41e94e
mov eax, 0xffffffff
jmp 0x41e955
lea eax, [ecx*2 + 0x36]
push eax
call fcn.004082d0
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 8], 0xd702c96c
mov dword [esp + 0xc], 0xd37dd567
mov dword [esp + 0x10], 0xdf6ad171
mov dword [esp + 0x14], 0xdb17dd3c
mov dword [esp + 0x18], 0xa71ad960
mov dword [esp + 0x1c], 0xa310a509
mov dword [esp + 0x20], 0xaf07a11f
mov dword [esp + 0x24], 0xab18ad1f
mov dword [esp + 0x28], 0xb769a948
mov dword [esp + 0x2c], 0xb30eb519
mov dword [esp + 0x30], 0xbf17b10c
mov dword [esp + 0x34], 0xbb11bd0e
mov dword [esp + 0x38], 0x8722b907
mov dword [esp + 0x3c], 0x8584
mov eax, 0xae
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xa6]
lea ecx, [eax - 0x6dfbd300]
mov esi, eax
and esi, edx
or ecx, edx
xor ecx, esi
mov edx, ecx
not edx
and edx, 0x4a
and ecx, 0xb5
sub ecx, edx
add cl, 0xe4
mov byte [esp + eax - 0xa6], cl
inc eax
cmp eax, 0xe6
jne 0x41e9e0
movzx ecx, word [ebx]
mov edx, dword [esp + 0x40]
mov eax, edx
test cx, cx
je 0x41ea41
add ebx, 2
mov eax, edx
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41ea30
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41ea71
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41ea60
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41eaa1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41ea90
mov word [eax], 0
mov esi, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41eab0
mov ebp, dword [ebp + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41ead0
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41eaf0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41eb14
mov eax, 0xffffffff
jmp 0x41eb1d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.004082d0
add esp, 4
mov edi, eax
movzx eax, word [esi]
mov dword [esp + 4], edi
test ax, ax
je 0x41eb51
add esi, 2
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41eb40
mov word [edi], 0x2f
mov dword [esp + 8], 0xe9a1ebb5
mov dword [esp + 0xc], 0xed7aef70
mov dword [esp + 0x10], 0xd140d347
mov dword [esp + 0x14], 0xd579d745
mov dword [esp + 0x18], 0xd948db45
mov dword [esp + 0x1c], 0xdd8fdf4d
mov dword [esp + 0x20], 0xc3dc
mov byte [esp + 0x24], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x57
xor cl, byte [esp + eax + 8]
add cl, 0x4d
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0x1d
jne 0x41eba0
add edi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41ebe2
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41ebd0
mov word [edi], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x41ec11
lea ecx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ec00
mov word [edi], 0
movzx eax, word [ebx]
test ax, ax
je 0x41ec41
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41ec30
mov word [edi], 0
mov dword [esp + 8], 0x999a9baa
mov eax, 0xdb
mov ecx, 0x24
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xd3]
mov esi, ecx
or esi, edx
not edx
or edx, eax
and edx, esi
mov bl, 0xb8
sub bl, dl
mov byte [esp + eax - 0xd3], bl
inc eax
dec ecx
cmp eax, 0xdf
jne 0x41ec60
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x50]
push esi
push dword [esp + 0x18]
push dword [esp + 0x7c]
call fcn.00422e30
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x445f3c]