Function at 0x41df80
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
push ebx
sub esp, 0x20
call fcn.005231a0
mov dword [esp + 0x1c], 0
mov dword [esp], 0xb
call fcn.005112d0
sub esp, 4
test eax, eax
je 0x41e366
movzx eax, byte [0x693f24]
shl eax, 8
movzx edx, byte [0x693f1c]
or eax, edx
add eax, 2
mov edx, dword [0x69402c]
test edx, edx
jne 0x41dfe7
movzx ebx, byte [0x693f2a]
mov dword [0x69402c], 3
cmp ebx, 0xff
jne 0x41e150
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.005112f0
sub esp, 8
movzx eax, byte [0x693f2a]
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
movzx eax, byte [0x693f24]
shl eax, 8
movzx edx, byte [0x693f1c]
or eax, edx
je 0x41e0a3
movzx eax, byte [0x693c5e]
movzx edx, byte [0x693c5d]
mov ebx, 1
lea esi, [esi]
shl eax, 8
movzx edx, dl
or eax, edx
movzx eax, ax
mov dword [esp], eax
call fcn.004010a0
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
movzx eax, byte [0x693c5d]
lea edx, [eax + 1]
mov byte [0x693c5d], dl
test dl, dl
sete al
add al, byte [0x693c5e]
mov byte [0x693c5e], al
add ebx, 1
movzx ecx, byte [0x693f24]
shl ecx, 8
movzx esi, byte [0x693f1c]
or ecx, esi
cmp ecx, ebx
jge 0x41e040
mov eax, dword [0x693b68]
add eax, 0x17
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 8], eax
mov dword [esp], 0xb
call fcn.00511390
sub esp, 0xc
xor esi, esi
xor ebx, ebx
lea esi, [esi]
mov dword [esp], 0xb
call fcn.005113f0
sub esp, 4
xor ebx, eax
add esi, 1
movzx eax, byte [0x693f24]
shl eax, 8
movzx edx, byte [0x693f1c]
or eax, edx
cmp esi, eax
jle 0x41e0d0
movzx ebx, bl
mov dword [esp + 4], ebx
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
mov dword [0x69402c], 0
mov dword [esp], 0xb
call fcn.00511450
sub esp, 4
mov dword [0x693b68], eax
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 8], eax
mov dword [esp], 0xb
call fcn.00511390
sub esp, 0xc
jmp 0x41e35b
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.005112f0
sub esp, 8
mov dword [esp + 4], ebx
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
movzx edx, byte [0x693c5e]
shl edx, 8
movzx eax, byte [0x693c5d]
or eax, edx
movzx eax, ax
mov dword [esp], eax
call fcn.004010a0
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
movzx eax, byte [0x693c5d]
add eax, 1
mov byte [0x693c5d], al
cmp al, 1
adc byte [0x693c5e], 0
mov dword [esp + 4], 0x694178
lea esi, [esp + 0x1c]
mov dword [esp], esi
call fcn.00523110
sub esp, 8
mov ebx, 0xa
nop
call fcn.005232e0
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00523370
sub esp, 4
call fcn.005232e0
call fcn.005232e0
movzx edx, byte [0x693c5e]
shl edx, 8
movzx eax, byte [0x693c5d]
or eax, edx
movzx eax, ax
mov dword [esp], eax
call fcn.004010a0
sub esp, 4
mov edi, eax
call fcn.00523210
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.005212e0
sub esp, 8
call fcn.00523210
call fcn.00523210
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00523300
sub esp, 8
movzx eax, byte [0x693c5d]
add eax, 1
mov byte [0x693c5d], al
cmp al, 1
adc byte [0x693c5e], 0
sub ebx, 1
jne 0x41e1e0
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.00510d10
sub esp, 8
movzx eax, byte [0x693c5e]
movzx edx, byte [0x693c5d]
mov ebx, 6
lea esi, [esi]
shl eax, 8
movzx edx, dl
or eax, edx
movzx eax, ax
mov dword [esp], eax
call fcn.004010a0
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
movzx eax, byte [0x693c5d]
lea edx, [eax + 1]
mov byte [0x693c5d], dl
test dl, dl
sete al
add al, byte [0x693c5e]
mov byte [0x693c5e], al
sub ebx, 1
jne 0x41e2a0
mov eax, dword [0x693b68]
add eax, 2
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 8], eax
mov dword [esp], 0xb
call fcn.00511390
sub esp, 0xc
mov ebx, 0x12
xor esi, esi
lea esi, [esi]
nop
mov dword [esp], 0xb
call fcn.005113f0
sub esp, 4
xor esi, eax
sub ebx, 1
jne 0x41e320
mov eax, esi
movzx esi, al
mov dword [esp + 4], esi
mov dword [esp], 0xb
call fcn.00511340
sub esp, 8
cmp dword [0x69402c], 5
je 0x41e111
mov eax, 0x555
mov word [0x693f80], ax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00523470
sub esp, 4
xor eax, eax
add esp, 0x20
pop ebx
pop esi
pop edi
ret