Function at 0x41e710
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44ecb7
push eax
mov eax, 0x1084
mov dword fs:[0], esp
call fcn.0042fe20
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x109c]
lea edx, [esp + 0x84]
mov dword [esp + 0x108c], 1
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x41e752
push ebx
push esi
mov esi, dword [esp + 0x10ac]
cmp esi, 0x64
push edi
lea eax, [esi + 0x20]
jge 0x41e77a
add eax, 0x70
mov ecx, 0x9d
jmp 0x41e77f
mov ecx, 0xa4
cdq
idiv ecx
mov edi, edx
cmp edi, 0x88
jge 0x41e79a
add edi, 0x49
cmp edi, 0x88
jge 0x41e79a
add edi, 0x49
lea ecx, [esp + 0x10a4]
xor esi, 0xb3
call fcn.0041df60
mov ecx, eax
and ecx, 0x80000003
jns 0x41e7bb
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, esi
cdq
mov ebx, 0xc
idiv ebx
mov eax, esi
mov esi, 6
mov ebx, edx
cdq
idiv esi
sub ebx, edx
add ebx, edi
lea eax, [ebx + ecx]
lea edx, [eax + 2]
lea ebx, [eax - 3]
mov dword [esp + 0x20], eax
add eax, 0xffffffff
mov dword [esp + 0x24], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
lea edx, [eax + 1]
jmp 0x41e800
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41e800
sub eax, edx
mov edi, eax
cdq
sub eax, edx
mov esi, eax
sar esi, 1
cmp byte [esp + 0x10b4], 1
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], esi
jne 0x41e860
xor eax, eax
test esi, esi
jle 0x41e860
lea ecx, [esp + edi + 0x8f]
jmp 0x41e840
mov bl, byte [ecx]
mov dl, byte [esp + eax + 0x90]
mov byte [esp + eax + 0x90], bl
mov byte [ecx], dl
add eax, 1
sub ecx, 1
cmp eax, esi
jl 0x41e840
mov ebx, dword [esp + 0x14]
cmp edi, 3
mov dword [esp + 0x10], 0
mov byte [esp + 0x890], 0
jle 0x41e96c
push ebp
mov ebp, edi
lea esp, [esp]
mov eax, dword [esp + 0x94]
add dword [esp + 0x14], 4
push edi
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0x3c], eax
mov byte [esp + 0x40], 0
sub ebp, 4
call fcn.0042f4d0
mov al, byte [esp + 0x3c]
add esp, 0xc
cmp byte [esp + 0x10b8], 0
je 0x41e8eb
mov cl, byte [esp + 0x33]
mov dl, byte [esp + 0x31]
xor cl, bl
mov byte [esp + 0x30], cl
movzx ecx, byte [esp + 0x20]
xor cl, byte [esp + 0x32]
mov byte [esp + 0x31], cl
movzx ecx, byte [esp + 0x28]
xor cl, dl
xor al, byte [esp + 0x24]
mov byte [esp + 0x33], al
jmp 0x41e91b
movzx edx, byte [esp + 0x28]
xor byte [esp + 0x32], dl
mov cl, byte [esp + 0x31]
mov dl, byte [esp + 0x33]
xor cl, byte [esp + 0x20]
xor al, bl
xor dl, byte [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x32]
mov byte [esp + 0x30], dl
mov byte [esp + 0x31], al
lea eax, [esp + 0x30]
mov byte [esp + 0x32], cl
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41e925
lea edi, [esp + 0x894]
sub eax, edx
add edi, 0xffffffff
lea ebx, [ebx]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41e940
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp ebp, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x10]
jg 0x41e880
mov esi, dword [esp + 0x1c]
pop ebp
mov edx, edi
sub edx, dword [esp + 0x10]
test edx, edx
jle 0x41ea01
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x90]
lea edi, [esp + 0x2c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor eax, eax
test edx, edx
rep movsb byte es:[edi], byte [esi]
mov byte [esp + edx + 0x2c], 0
jle 0x41e9ac
xor byte [esp + eax + 0x2c], 0x89
add eax, 1
cmp eax, edx
jl 0x41e9a0
lea eax, [esp + 0x2c]
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41e9b2
lea edi, [esp + 0x890]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41e9c7
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xc]
push ecx
lea edx, [esp + 0x94]
push edx
mov eax, edx
push eax
call fcn.0042f4d0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
add esp, 0xc
cmp byte [esp + 0x10b4], 0
jne 0x41ea3c
xor eax, eax
test esi, esi
jle 0x41ea3c
lea ecx, [esp + edi + 0x88f]
jmp 0x41ea20
mov bl, byte [ecx]
mov dl, byte [esp + eax + 0x890]
mov byte [esp + eax + 0x890], bl
mov byte [ecx], dl
add eax, 1
sub ecx, 1
cmp eax, esi
jl 0x41ea20
mov esi, dword [esp + 0x10a0]
lea ecx, [esp + 0x890]
push ecx
mov ecx, esi
call fcn.0041e110
lea ecx, [esp + 0x10a4]
mov dword [esp + 0x28], 1
mov byte [esp + 0x1098], 0
call fcn.0041df70
mov ecx, dword [esp + 0x1090]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1090
ret