Function at 0x41e630
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 0x41e650
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41e670
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x4c], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
jns 0x41e69e
mov eax, 0xffffffff
jmp 0x41e6a5
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00408380
add esp, 4
mov dword [esp], eax
mov dword [esp + 0xc], 0x9722993c
mov dword [esp + 0x10], 0x930d9507
mov dword [esp + 0x14], 0x8f1a9131
mov dword [esp + 0x18], 0x8b378d6c
mov dword [esp + 0x1c], 0x870a8900
mov dword [esp + 0x20], 0x83108519
mov dword [esp + 0x24], 0x7fe7810f
mov dword [esp + 0x28], 0x7be87def
mov dword [esp + 0x2c], 0x77d97998
mov dword [esp + 0x30], 0x73fe75e9
mov dword [esp + 0x34], 0x6ff771fc
mov dword [esp + 0x38], 0x6bf16dfe
mov dword [esp + 0x3c], 0x67c269e7
mov word [esp + 0x40], 0x6564
mov dword [esp + 0x42], 0
mov byte [esp + 0x46], 0
mov eax, 0x53d81fe6
mov ecx, 0x19
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x53d81fda]
lea edi, [eax - 0x53d81f00]
mov ebp, ecx
and ebp, 0x3b
and edi, 0xc4
or edi, ebp
xor edi, 0xc4
and edi, ecx
mov ebp, eax
or ebp, edx
not edx
or edx, edi
and edx, ebp
lea edi, [edx + 0x81]
mov ebp, edx
not ebp
and ebp, 1
and edx, 1
and edi, 0xfe
or edi, edx
lea edx, [edi + ebp*2]
mov byte [esp + eax - 0x53d81fda], dl
inc eax
dec ecx
cmp eax, 0x53d82021
jne 0x41e740
movzx ecx, word [ebx]
mov edx, dword [esp]
mov eax, edx
test cx, cx
je 0x41e7c1
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 0x41e7b0
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x41e7f1
lea edx, [esp + 0xe]
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 0x41e7e0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41e821
add esi, 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 [esi]
add esi, 2
test cx, cx
jne 0x41e810
mov word [eax], 0
mov eax, dword [esp + 0x6c]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41e840
sar eax, 1
mov ecx, dword [esp + 0x6c]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41e860
inc eax
sar ecx, 1
mov edx, ecx
and edx, eax
add edx, edx
mov esi, dword [esp + 0x70]
mov ebx, dword [esi]
mov esi, 0xfffffffe
nop
cmp word [ebx + esi + 2], 0
lea esi, [esi + 2]
jne 0x41e880
xor ecx, eax
sar esi, 1
add ecx, edx
lea eax, [esi + ecx]
add eax, 0x12
test eax, eax
jns 0x41e8a2
mov eax, 0xffffffff
jmp 0x41e8ab
add ecx, esi
lea eax, [ecx*2 + 0x24]
mov dword [esp + 4], ebx
push eax
call fcn.00408380
add esp, 4
mov esi, eax
movzx eax, word [edi]
mov dword [esp + 8], esi
test ax, ax
je 0x41e8e1
add edi, 2
mov esi, dword [esp + 8]
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x41e8d0
mov word [esi], 0x2f
mov dword [esp + 0xc], 0xd71bc93b
mov dword [esp + 0x10], 0xd36ed56c
mov dword [esp + 0x14], 0xdf6cd17d
mov dword [esp + 0x18], 0xdb73dd63
mov dword [esp + 0x1c], 0xa714d96b
mov dword [esp + 0x20], 0xa351a51b
mov word [esp + 0x24], 0xa1a0
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov eax, 0x2e
mov ecx, 0xd1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x22]
mov ebx, ecx
and ebx, 0xd9
mov edx, eax
and edx, 0x26
or edx, ebx
xor edx, 0xd9
or edx, eax
xor edx, ecx
and edx, edi
xor edx, ecx
mov bl, 0x19
sub bl, dl
mov byte [esp + eax - 0x22], bl
inc eax
dec ecx
cmp eax, 0x4e
jne 0x41e940
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41e9a4
add ebp, 2
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41e990
jmp 0x41e9ac
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
mov word [esi], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x41e9d1
lea ecx, [esp + 0xe]
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41e9c0
mov word [esi], 0
movzx eax, word [edx]
test ax, ax
je 0x41ea01
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x41e9f0
mov word [esi], 0
mov dword [esp + 0xc], 0x212627de
mov word [esp + 0x10], 0
mov edx, 0x2dc86249
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x2dc8623d]
mov ebx, eax
mov ebp, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x5d
mul cl
mov ecx, eax
mov eax, ebp
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x93
mov byte [esp + edx - 0x2dc8623d], al
inc edx
cmp edx, 0x2dc8624f
jne 0x41ea20
lea ebx, [esp + 0xc]
push 0
push 0
push 0xc00000
push ebx
mov ebp, dword [esp + 0x10]
push ebp
push edi
push dword [esp + 0x80]
call fcn.00422700
add esp, 0x1c
mov byte [esp + 4], al
jmp dword [0x446f40]