Function at 0x41e8d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax + 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 0x41e8f0
mov esi, dword [ecx + 4]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x41e910
mov ecx, edx
sar ecx, 1
sar edi, 1
lea eax, [ecx + edi]
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edi
jns 0x41e940
mov eax, 0xffffffff
jmp 0x41e94a
lea eax, [ecx + edi]
lea eax, [eax*2 + 0x36]
push eax
call fcn.004086e0
add esp, 4
mov dword [esp], eax
mov dword [esp + 8], 0x41f247e0
mov dword [esp + 0xc], 0x4def43d1
mov dword [esp + 0x10], 0x49da4fef
mov dword [esp + 0x14], 0xb5054b28
mov dword [esp + 0x18], 0xb12ab72c
mov dword [esp + 0x1c], 0xbd24b31f
mov dword [esp + 0x20], 0xb915bf21
mov dword [esp + 0x24], 0xa52cbb29
mov dword [esp + 0x28], 0xa11ba7c4
mov dword [esp + 0x2c], 0xad3ea30f
mov dword [esp + 0x30], 0xa905af30
mov dword [esp + 0x34], 0x9503ab3e
mov dword [esp + 0x38], 0x91329709
mov word [esp + 0x3c], 0x9390
mov dword [esp + 0x3e], 0
xor eax, eax
nop
movzx edx, byte [esp + eax + 8]
lea ecx, [eax + 0x348d77f1]
xor ecx, edx
lea edx, [ecx + ecx]
mov edi, edx
and edi, 0x94
and edx, 2
mov ebp, ecx
and ebp, 1
xor ecx, 0xb4
sub ecx, edi
and ecx, 0xfe
or ecx, ebp
not ecx
add ecx, edx
mov byte [esp + eax + 8], cl
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and ecx, eax
add eax, ecx
cmp eax, 0x3a
jb 0x41e9d0
movzx ecx, word [ebx]
mov edx, dword [esp]
mov eax, edx
test cx, cx
je 0x41ea41
add ebx, 2
mov eax, edx
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 0x41ea73
lea edx, [esp + 0xa]
mov ebx, dword [esp + 0x6c]
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
jmp 0x41ea77
mov ebx, dword [esp + 0x6c]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41eaa1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41ea90
mov word [eax], 0
mov edi, dword [ebx]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41eab0
mov ebp, dword [ebx + 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 + 0x70]
mov esi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + 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.004086e0
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 4], eax
test cx, cx
je 0x41eb51
add edi, 2
mov eax, dword [esp + 4]
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 0x41eb40
mov ebx, eax
mov word [eax], 0x2f
mov dword [esp + 8], 0x972b99cb
mov dword [esp + 0xc], 0x931e951c
mov dword [esp + 0x10], 0x8f1c910d
mov dword [esp + 0x14], 0x8b138d03
mov dword [esp + 0x18], 0x8714891b
mov dword [esp + 0x1c], 0x83d1850b
mov word [esp + 0x20], 0x8180
mov dword [esp + 0x22], 0
mov eax, 0x26
mov ecx, 0x19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x28
mov edx, eax
and edx, 0x57
or edx, edi
xor dl, byte [esp + eax - 0x1e]
xor dl, 0xa8
add dl, 0xc2
mov byte [esp + eax - 0x1e], dl
inc eax
dec ecx
cmp eax, 0x44
jne 0x41ebb0
mov edx, ebx
add edx, 2
movzx eax, word [ebp]
test ax, ax
je 0x41ec04
add ebp, 2
mov edi, dword [esp + 0x70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41ebf0
jmp 0x41ec08
mov edi, dword [esp + 0x70]
mov word [edx], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x41ec33
lea ecx, [esp + 0xa]
mov ebx, dword [esp]
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ec20
jmp 0x41ec36
mov ebx, dword [esp]
mov word [edx], 0
movzx eax, word [esi]
test ax, ax
je 0x41ec61
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41ec50
mov dword [esp + 0x44], edx
mov word [edx], 0
mov dword [esp + 8], 0x7372719a
mov dword [esp + 0xc], 0
mov eax, 0x4ded2314
nop
movzx edx, byte [esp + eax - 0x4ded230c]
mov ecx, eax
and ecx, 0x496d220f
or ecx, 0x12120c80
xor ecx, edx
mov edx, ecx
xor edx, 0x16920d90
add edx, 0x7a5e509b
not ecx
add ecx, ecx
and ecx, 2
mov esi, ecx
and esi, edx
xor ecx, edx
xor ecx, 1
lea ecx, [ecx + esi*2]
mov byte [esp + eax - 0x4ded230c], cl
inc eax
cmp eax, 0x4ded231c
jne 0x41ec80
lea esi, [esp + 8]
push 0
push 0
push 0xc00000
push esi
push ebx
push dword [esp + 0x18]
push dword [esp + 0x80]
call fcn.004229d0
add esp, 0x1c
mov byte [esp], al
jmp dword [0x446b68]