Function at 0x10011ed48
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x288
mov rax, qword [0x100151198]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rax, qword [rsp + 0x2f0]
xor ebx, ebx
mov dword [rsp + 0x80], r9d
cmp rcx, rbx
mov qword [rsp + 0x1b8], r8
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0xa0], rax
mov r12, rcx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x128], rbx
mov rdi, rbx
mov r14, rbx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x1a8], rbx
mov r15d, 0x664
lea r13d, [rbx + 0x14]
je 0x10011f96a
cmp rdx, rbx
je 0x10011f96a
cmp r8, rbx
je 0x10011f96a
cmp r9d, ebx
je 0x10011f96a
cmp rax, rbx
je 0x10011f96a
lea r8d, [rbx + 0x10]
lea rcx, [rsp + 0x134]
xor edx, edx
mov dword [rsp + 0xc8], 0x123174bb
mov dword [rsp + 0xcc], 0x86521ff8
mov dword [rsp + 0xd0], 0x98d2438b
mov dword [rsp + 0xd4], 0x7966ce12
mov dword [rsp + 0xd8], 0xc5d92014
mov dword [rsp + 0x130], ebx
call sub.msvcrt.dll_memset
lea rdi, [rsp + 0x130]
lea rsi, [0x10015234c]
mov rcx, r13
lea r8d, [rbx + 5]
movabs r14, 0xcccccccccccccccd
rep movsb byte [rdi], byte [rsi]
mov rsi, rbx
lea rdi, [rsp + 0x130]
mov rcx, rsi
mov rax, r14
mul rsi
add rsi, 1
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rsp + rcx*4 + 0xc8]
xor dword [rdi], eax
add rdi, 4
sub r8, 1
jne 0x10011ee73
lea rdi, [rsp + 0xb0]
lea rsi, [rsp + 0x130]
mov rcx, r13
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x78], ebx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov edx, 8
mov r8d, 0x1b4
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r14, rbx
cmp rax, rbx
mov r15, rax
jne 0x10011eeea
mov ebp, 0x80000002
mov dword [rsp + 0x78], ebp
jmp 0x10011f200
lea rdx, [rax + 0x60]
lea rsi, [0x100152d88]
mov rdi, r15
lea rax, [rdx + 0xa8]
mov ecx, 0x60
mov dword [rsp + 0xe0], 0x123174bb
rep movsb byte [rdi], byte [rsi]
mov qword [r15], rdx
mov rsi, qword [0x100152d88]
mov qword [rsp + 0x168], rax
add rax, 0x70
mov rdi, rdx
mov edx, 8
lea r14, [rax + 0x14]
mov qword [rsp + 0x88], rax
lea rax, [r14 + 0x14]
mov ecx, 0xa8
mov dword [rsp + 0xe4], 0x86521ff8
rep movsb byte [rdi], byte [rsi]
mov rdi, qword [r15]
mov qword [rsp + 0x188], rax
add rdi, 0x58
mov rcx, rdx
lea rsi, [rsp + 0x168]
rep movsb byte [rdi], byte [rsi]
mov rdi, qword [r15]
mov rsi, qword [0x100152d88]
mov rdi, qword [rdi + 0x58]
mov rsi, qword [rsi + 0x58]
lea ecx, [rdx + 0x68]
rep movsb byte [rdi], byte [rsi]
mov rax, qword [r15]
mov rcx, rdx
mov rdi, qword [rax + 0x58]
xor edx, edx
lea rsi, [rsp + 0x188]
add rdi, 0x38
lea r8d, [rdx + 0x10]
mov dword [rsp + 0xe8], 0x98d2438b
rep movsb byte [rdi], byte [rsi]
mov rax, qword [r15]
mov dword [rsp + 0xec], 0x7966ce12
mov rcx, qword [rax + 0x58]
mov dword [rsp + 0xf0], 0xc5d92014
mov dword [rsp + 0x150], ebx
mov rax, qword [rcx + 0x38]
lea rcx, [rsp + 0x154]
mov qword [rsp + 0x68], rax
call sub.msvcrt.dll_memset
mov rdx, qword [0x100152d88]
mov rsi, qword [rdx + 0x58]
lea rdi, [rsp + 0x150]
mov rcx, r13
mov rsi, qword [rsi + 0x38]
mov r8, rbx
mov r9d, 5
rep movsb byte [rdi], byte [rsi]
lea rsi, [rsp + 0x150]
movabs rdi, 0xcccccccccccccccd
mov rcx, r8
mov rax, rdi
mul r8
add r8, 1
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rsp + rcx*4 + 0xe0]
xor dword [rsi], eax
add rsi, 4
sub r9, 1
jne 0x10011f01e
mov rax, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x68]
lea rsi, [rsp + 0x150]
mov rcx, r13
lea r8d, [r9 + 0x10]
xor edx, edx
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x174]
mov dword [rsp + 0x110], 0x123174bb
mov qword [r15 + 8], rax
mov dword [rsp + 0x114], 0x86521ff8
mov dword [rsp + 0x118], 0x98d2438b
mov dword [rsp + 0x11c], 0x7966ce12
mov dword [rsp + 0x120], 0xc5d92014
mov dword [rsp + 0x170], ebx
call sub.msvcrt.dll_memset
mov rsi, qword [0x100152d90]
lea rdi, [rsp + 0x170]
mov rcx, r13
mov r8, rbx
mov r9d, 5
rep movsb byte [rdi], byte [rsi]
lea rsi, [rsp + 0x170]
movabs r12, 0xcccccccccccccccd
mov rcx, r8
mov rax, r12
mul r8
add r8, 1
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rsp + rcx*4 + 0x110]
xor dword [rsi], eax
add rsi, 4
sub r9, 1
jne 0x10011f0e7
mov rdi, qword [rsp + 0x88]
lea rsi, [rsp + 0x170]
mov rcx, r13
rep movsb byte [rdi], byte [rsi]
lea r8d, [r9 + 0x10]
lea rcx, [rsp + 0x194]
xor edx, edx
mov qword [r15 + 0x10], r14
mov dword [rsp + 0xf8], 0x123174bb
mov dword [rsp + 0xfc], 0x86521ff8
mov dword [rsp + 0x100], 0x98d2438b
mov dword [rsp + 0x104], 0x7966ce12
mov dword [rsp + 0x108], 0xc5d92014
mov dword [rsp + 0x190], ebx
call sub.msvcrt.dll_memset
mov rsi, qword [0x100152d98]
mov r12, qword [rsp + 0x70]
lea rdi, [rsp + 0x190]
mov rcx, r13
mov r8, rbx
mov r9d, 5
rep movsb byte [rdi], byte [rsi]
lea rsi, [rsp + 0x190]
movabs rbp, 0xcccccccccccccccd
mov rcx, r8
mov rax, rbp
mul r8
add r8, 1
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov eax, dword [rsp + rcx*4 + 0xf8]
xor dword [rsi], eax
add rsi, 4
sub r9, 1
jne 0x10011f1b0
mov rdi, r14
lea rsi, [rsp + 0x190]
mov rcx, r13
mov r14, r15
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x1a8], r15
rep movsb byte [rdi], byte [rsi]
mov ebp, ebx
cmp ebp, ebx
jl 0x10011f971
lea rax, [r12 + 0x10]
mov dword [r12], ebx
mov dword [r12 + 4], 0x157c
mov qword [r12 + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r15d, 0x664
mov r8, r15
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp rax, rbx
mov rdi, rax
mov qword [rsp + 0x60], rax
jne 0x10011f253
mov ebp, 0x80000002
jmp 0x10011f97a
mov rsi, qword [rsp + 0xa0]
add rax, 0x200
mov r8d, 0x28
lea rdx, [rax + 0x14]
mov qword [rsp + 0x88], rax
lea r15, [rdx + 0x14]
mov qword [rsp + 0x70], rdx
lea rcx, [r15 + 0x400]
mov qword [rsp + 0x148], r15
mov qword [rsp + 0x98], rcx
add rcx, 0x28
mov qword [rsp + 0x1b0], rcx
lea rcx, [rsp + 0x1c0]
cmp rcx, rsi
je 0x10011f2b9
lea rdi, [rsp + 0x1c0]
mov rcx, r8
rep movsb byte [rdi], byte [rsi]
mov rdi, rax
lea rsi, [rsp + 0x1c0]
mov rcx, r13
rep movsb byte [rdi], byte [rsi]
lea rsi, [rsp + 0x1d4]
mov rdi, rdx
mov rcx, r13
lea rax, [rsp + 0x1e8]
rep movsb byte [rdi], byte [rsi]
mov rsi, qword [rsp + 0x90]
cmp rax, rsi
je 0x10011f2fb
lea rdi, [rsp + 0x1e8]
mov rcx, r8
rep movsb byte [rdi], byte [rsi]
mov rax, qword [r14]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x90], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r13
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp rax, rbx
mov qword [rsp + 0x68], rax
je 0x10011f38c
mov r9, qword [rsp + 0x90]
mov rdi, rax
lea rsi, [rsp + 0x1e8]
mov rcx, r13
mov edx, 5
mov qword [rsp + 0x20], r12
rep movsb byte [rdi], byte [rsi]
mov rsi, qword [rsp + 0x98]
mov rcx, rax
mov r8, rsi
call fcn.1001258a4
mov rdi, qword [rsp + 0x68]
mov edx, r13d
mov rax, rdi
mov byte [rax], bl
add rax, 1
add edx, 0xffffffff
jne 0x10011f36b
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x10011f394
mov rsi, qword [rsp + 0x98]
mov rax, qword [r14]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x90], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r13
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp rax, rbx
mov qword [rsp + 0x68], rax
je 0x10011f424
mov r9, qword [rsp + 0x90]
mov rdi, rax
lea rsi, [rsp + 0x1fc]
mov rcx, r13
mov edx, 5
mov qword [rsp + 0x20], r12
rep movsb byte [rdi], byte [rsi]
mov rsi, qword [rsp + 0x98]
mov rcx, rax
lea r8, [rsi + 0x14]
call fcn.1001258a4
mov rdi, qword [rsp + 0x68]
mov edx, r13d
mov rax, rdi
mov byte [rax], bl
add rax, 1
add edx, 0xffffffff
jne 0x10011f405
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
lea rdi, [rsi + 0x28]
mov rcx, r13
rep stosb byte [rdi], al
lea rcx, [rsp + 0x210]
call fcn.10011fcfc
mov edx, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x1b8]
lea r8, [rsp + 0x210]
call fcn.10011fd40
lea rdx, [rsi + 0x28]
lea rcx, [rsp + 0x210]
call fcn.10011ffe4
mov edx, 0x5c
lea rax, [rsp + 0x210]
mov byte [rax], bl
add rax, 1
add edx, 0xffffffff
jne 0x10011f476
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], r12
call fcn.100121534
cmp eax, ebx
jne 0x10011f4aa
mov rdi, qword [rsp + 0x60]
mov ebp, 0x800480d5
jmp 0x10011f974
mov r8d, dword [0x100152360]
mov rcx, qword [rsp + 0x88]
cmp r8, rbx
mov rax, r8
je 0x10011f4dc
lea rdx, [rcx + r8*4 - 4]
cmp dword [rdx], ebx
jne 0x10011f4d7
sub rax, 1
sub rdx, 4
cmp rax, rbx
jne 0x10011f4c6
cmp rax, rbx
jne 0x10011f505
cmp r8, rbx
mov rax, r8
lea rdi, [rcx + 0x14]
je 0x10011f509
lea rdx, [rdi + r8*4 - 4]
cmp dword [rdx], ebx
jne 0x10011f4fe
sub rax, 1
sub rdx, 4
cmp rax, rbx
jne 0x10011f4ed
cmp rax, rbx
je 0x10011f509
jmp 0x10011f49b
lea rdi, [rcx + 0x14]
lea rdx, [rsp + 0xb0]
call fcn.100120d80
cmp eax, ebx
jge 0x10011f49b
mov r8d, dword [0x100152360]
lea rdx, [rsp + 0xb0]
mov rcx, rdi
call fcn.100120d80
mov rdi, qword [rsp + 0x60]
cmp eax, ebx
jl 0x10011f544
mov ebp, 0x800480d5
jmp 0x10011f974
mov edx, dword [0x100152360]
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], rbx
lea rax, [rsp + 0x128]
lea rsi, [rdi + 0x100]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rsi
lea r8, [rsp + 0xb0]
mov r9, rdx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.100126cb4
lea r8, [rsp + 0xa0]
movsxd rdx, eax
mov eax, 1
mov rcx, rsi
mov r9, rax
mov dword [rsp + 0xa0], eax
call fcn.100120cf8
cmp eax, ebx
jne 0x10011f53a
mov rcx, qword [rsp + 0x1b0]
mov r8, r12
mov rdx, rsi
call fcn.10011ea50
cmp eax, ebx
je 0x10011f53a
mov edi, dword [0x100152360]
mov rax, qword [rsp + 0x60]
cmp rdi, rdi
mov rcx, rdi
mov qword [rsp + 0x80], rdi
jbe 0x10011f5f5
mov r10, rax
mov rdx, rsi
jmp 0x10011f5fb
mov rdx, rax
mov r10, rsi
cmp rax, r15
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x70], rdx
je 0x10011f6b6
cmp rsi, r15
je 0x10011f6b6
cmp rcx, rbx
jne 0x10011f62f
mov rcx, rdi
mov rdi, r15
shl rcx, 2
xor eax, eax
rep stosb byte [rdi], al
jmp 0x10011f6b6
mov edx, dword [rdx]
mov r9, rdi
mov r8, r15
mov rcx, r10
mov qword [rsp + 0x20], r12
call fcn.100120ab0
mov dword [r15 + rdi*4], eax
mov rax, qword [rsp + 0x80]
cmp rax, 1
je 0x10011f6b6
mov rcx, qword [rsp + 0x70]
mov rbx, r15
lea r14, [r15 + rdi*4 + 4]
mov r15, qword [rsp + 0x68]
lea rbp, [rax - 1]
lea r13, [rcx + 4]
sub rbx, rcx
mov edx, dword [r13]
lea r8, [rbx + r13]
mov r9, rdi
mov rcx, r15
mov qword [rsp + 0x20], r12
call fcn.100120904
add r13, 4
mov dword [r14], eax
add r14, 4
sub rbp, 1
jne 0x10011f673
mov ebp, dword [rsp + 0x78]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x148]
xor ebx, ebx
lea r13d, [rbx + 0x14]
mov eax, dword [0x100152360]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
lea edx, [rax + rax]
mov r9, rax
lea rax, [0x100152e90]
lea r8, [rsp + 0xb0]
mov rcx, r15
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.1001265f0
mov edx, dword [0x100152360]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdx
mov edx, 4
lea rcx, [0x10015238c]
lea r8d, [rdx + 0x38]
mov r9, rsi
call fcn.100124adc
cmp eax, ebx
je 0x10011f49b
mov edi, dword [0x100152360]
mov rax, qword [rsp + 0x60]
cmp rdi, rdi
lea rcx, [rax + 0x200]
mov rdx, rdi
mov qword [rsp + 0x68], rdi
jbe 0x10011f758
mov qword [rsp + 0x80], rax
mov r11, rcx
mov qword [rsp + 0x70], rcx
jmp 0x10011f768
mov r11, rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], rcx
lea r10, [r15 + 0x200]
cmp rax, r10
je 0x10011f833
cmp rcx, r10
je 0x10011f833
cmp rdx, rbx
jne 0x10011f799
mov rcx, rdi
mov rdi, r10
shl rcx, 2
xor eax, eax
rep stosb byte [rdi], al
jmp 0x10011f833
mov edx, dword [r11]
mov rcx, qword [rsp + 0x80]
mov r9, rdi
mov r8, r10
mov qword [rsp + 0x20], r12
call fcn.100120ab0
lea r10, [r15 + 0x200]
mov dword [r10 + rdi*4], eax
mov rax, qword [rsp + 0x68]
cmp rax, 1
je 0x10011f833
mov rcx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x80]
mov r14, r10
sub r14, rcx
add rax, 0xffffffffffffffff
lea r13, [rcx + 4]
mov qword [rsp + 0x68], rax
lea rbp, [r10 + rdi*4 + 4]
mov edx, dword [r13]
lea r8, [r14 + r13]
mov r9, rdi
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.100120904
add r13, 4
mov dword [rbp], eax
add rbp, 4
sub qword [rsp + 0x68], 1
jne 0x10011f7ef
mov ebp, dword [rsp + 0x78]
mov r14, qword [rsp + 0xa8]
xor ebx, ebx
lea r13d, [rbx + 0x14]
lea r10, [r15 + 0x200]
mov eax, dword [0x100152360]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
lea edx, [rax + rax]
mov r9, rax
lea rax, [0x100152e90]
lea r8, [rsp + 0xb0]
mov rcx, r10
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.1001265f0
mov rcx, qword [rsp + 0x98]
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], r12
call fcn.100121534
cmp eax, ebx
je 0x10011f49b
mov eax, dword [0x100152360]
mov qword [rsp + 0x38], r12
lea rdi, [r15 + 0x200]
xor r8d, r8d
mov qword [rsp + 0x30], r14
lea rcx, [rdi + 0x200]
lea edx, [r8 + 4]
mov r9, rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call fcn.100124adc
cmp eax, ebx
je 0x10011f49b
mov qword [rsp + 0x30], r12
mov r9d, 1
mov r8, r15
mov rdx, rdi
mov rcx, r15
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
call fcn.100121828
mov r8, r12
mov rdx, r14
mov rcx, r15
call fcn.1001213e8
cmp eax, ebx
jne 0x10011f49b
mov r9d, dword [0x100152360]
mov rdx, qword [r14]
lea rax, [0x100152e90]
mov qword [rsp + 0x30], r12
lea r8, [rsp + 0xb0]
mov rcx, r15
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
call fcn.10011ebe8
cmp eax, ebx
je 0x10011f49b
mov r8d, dword [0x100152360]
mov rcx, qword [rsp + 0x88]
mov rdx, rsi
call fcn.100120d80
mov rdi, qword [rsp + 0x60]
mov r15d, 0x664
cmp eax, ebx
je 0x10011f97a
mov ebp, 0x800480d5
jmp 0x10011f97a
mov ebp, 0x80070057
jmp 0x10011f97a
mov rdi, rbx
mov r15d, 0x664
cmp r14, rbx
mov esi, 0xffffffff
je 0x10011f9d2
mov rax, qword [r14]
mov edx, r13d
mov rcx, qword [rax + 0x58]
mov rax, qword [rcx + 0x38]
mov byte [rax], bl
add rax, 1
add edx, esi
jne 0x10011f992
mov rax, qword [r14 + 8]
mov ecx, r13d
mov byte [rax], bl
add rax, 1
add ecx, esi
jne 0x10011f9a3
mov rax, qword [r14 + 0x10]
mov ecx, r13d
mov byte [rax], bl
add rax, 1
add ecx, esi
jne 0x10011f9b4
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rax, [rsp + 0xb0]
mov byte [rax], bl
add rax, 1
add r13d, esi
jne 0x10011f9da
cmp r12, rbx
je 0x10011fa11
cmp rdi, rbx
je 0x10011fa11
mov rax, rdi
mov byte [rax], bl
add rax, 1
add r15d, esi
jne 0x10011f9f2
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp ebp, ebx
setge bl
mov eax, ebx
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.10011b980
add rsp, 0x288
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret