Function at 0x10011f248
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 [0x100152198]
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 0x10011fe6a
cmp rdx, rbx
je 0x10011fe6a
cmp r8, rbx
je 0x10011fe6a
cmp r9d, ebx
je 0x10011fe6a
cmp rax, rbx
je 0x10011fe6a
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, [0x10015334c]
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 0x10011f373
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 0x10011f3ea
mov ebp, 0x80000002
mov dword [rsp + 0x78], ebp
jmp 0x10011f700
lea rdx, [rax + 0x60]
lea rsi, [0x100153d88]
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 [0x100153d88]
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 [0x100153d88]
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 [0x100153d88]
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 0x10011f51e
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 [0x100153d90]
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 0x10011f5e7
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 [0x100153d98]
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 0x10011f6b0
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 0x10011fe71
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 0x10011f753
mov ebp, 0x80000002
jmp 0x10011fe7a
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 0x10011f7b9
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 0x10011f7fb
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 0x10011f88c
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.100125da4
mov rdi, qword [rsp + 0x68]
mov edx, r13d
mov rax, rdi
mov byte [rax], bl
add rax, 1
add edx, 0xffffffff
jne 0x10011f86b
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x10011f894
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 0x10011f924
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.100125da4
mov rdi, qword [rsp + 0x68]
mov edx, r13d
mov rax, rdi
mov byte [rax], bl
add rax, 1
add edx, 0xffffffff
jne 0x10011f905
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.1001201fc
mov edx, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x1b8]
lea r8, [rsp + 0x210]
call fcn.100120240
lea rdx, [rsi + 0x28]
lea rcx, [rsp + 0x210]
call fcn.1001204e4
mov edx, 0x5c
lea rax, [rsp + 0x210]
mov byte [rax], bl
add rax, 1
add edx, 0xffffffff
jne 0x10011f976
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], r12
call fcn.100121a34
cmp eax, ebx
jne 0x10011f9aa
mov rdi, qword [rsp + 0x60]
mov ebp, 0x800480d5
jmp 0x10011fe74
mov r8d, dword [0x100153360]
mov rcx, qword [rsp + 0x88]
cmp r8, rbx
mov rax, r8
je 0x10011f9dc
lea rdx, [rcx + r8*4 - 4]
cmp dword [rdx], ebx
jne 0x10011f9d7
sub rax, 1
sub rdx, 4
cmp rax, rbx
jne 0x10011f9c6
cmp rax, rbx
jne 0x10011fa05
cmp r8, rbx
mov rax, r8
lea rdi, [rcx + 0x14]
je 0x10011fa09
lea rdx, [rdi + r8*4 - 4]
cmp dword [rdx], ebx
jne 0x10011f9fe
sub rax, 1
sub rdx, 4
cmp rax, rbx
jne 0x10011f9ed
cmp rax, rbx
je 0x10011fa09
jmp 0x10011f99b
lea rdi, [rcx + 0x14]
lea rdx, [rsp + 0xb0]
call fcn.100121280
cmp eax, ebx
jge 0x10011f99b
mov r8d, dword [0x100153360]
lea rdx, [rsp + 0xb0]
mov rcx, rdi
call fcn.100121280
mov rdi, qword [rsp + 0x60]
cmp eax, ebx
jl 0x10011fa44
mov ebp, 0x800480d5
jmp 0x10011fe74
mov edx, dword [0x100153360]
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.1001271b4
lea r8, [rsp + 0xa0]
movsxd rdx, eax
mov eax, 1
mov rcx, rsi
mov r9, rax
mov dword [rsp + 0xa0], eax
call fcn.1001211f8
cmp eax, ebx
jne 0x10011fa3a
mov rcx, qword [rsp + 0x1b0]
mov r8, r12
mov rdx, rsi
call fcn.10011ef50
cmp eax, ebx
je 0x10011fa3a
mov edi, dword [0x100153360]
mov rax, qword [rsp + 0x60]
cmp rdi, rdi
mov rcx, rdi
mov qword [rsp + 0x80], rdi
jbe 0x10011faf5
mov r10, rax
mov rdx, rsi
jmp 0x10011fafb
mov rdx, rax
mov r10, rsi
cmp rax, r15
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x70], rdx
je 0x10011fbb6
cmp rsi, r15
je 0x10011fbb6
cmp rcx, rbx
jne 0x10011fb2f
mov rcx, rdi
mov rdi, r15
shl rcx, 2
xor eax, eax
rep stosb byte [rdi], al
jmp 0x10011fbb6
mov edx, dword [rdx]
mov r9, rdi
mov r8, r15
mov rcx, r10
mov qword [rsp + 0x20], r12
call fcn.100120fb0
mov dword [r15 + rdi*4], eax
mov rax, qword [rsp + 0x80]
cmp rax, 1
je 0x10011fbb6
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.100120e04
add r13, 4
mov dword [r14], eax
add r14, 4
sub rbp, 1
jne 0x10011fb73
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 [0x100153360]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
lea edx, [rax + rax]
mov r9, rax
lea rax, [0x100153e90]
lea r8, [rsp + 0xb0]
mov rcx, r15
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.100126af0
mov edx, dword [0x100153360]
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, [0x10015338c]
lea r8d, [rdx + 0x38]
mov r9, rsi
call fcn.100124fdc
cmp eax, ebx
je 0x10011f99b
mov edi, dword [0x100153360]
mov rax, qword [rsp + 0x60]
cmp rdi, rdi
lea rcx, [rax + 0x200]
mov rdx, rdi
mov qword [rsp + 0x68], rdi
jbe 0x10011fc58
mov qword [rsp + 0x80], rax
mov r11, rcx
mov qword [rsp + 0x70], rcx
jmp 0x10011fc68
mov r11, rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], rcx
lea r10, [r15 + 0x200]
cmp rax, r10
je 0x10011fd33
cmp rcx, r10
je 0x10011fd33
cmp rdx, rbx
jne 0x10011fc99
mov rcx, rdi
mov rdi, r10
shl rcx, 2
xor eax, eax
rep stosb byte [rdi], al
jmp 0x10011fd33
mov edx, dword [r11]
mov rcx, qword [rsp + 0x80]
mov r9, rdi
mov r8, r10
mov qword [rsp + 0x20], r12
call fcn.100120fb0
lea r10, [r15 + 0x200]
mov dword [r10 + rdi*4], eax
mov rax, qword [rsp + 0x68]
cmp rax, 1
je 0x10011fd33
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.100120e04
add r13, 4
mov dword [rbp], eax
add rbp, 4
sub qword [rsp + 0x68], 1
jne 0x10011fcef
mov ebp, dword [rsp + 0x78]
mov r14, qword [rsp + 0xa8]
xor ebx, ebx
lea r13d, [rbx + 0x14]
lea r10, [r15 + 0x200]
mov eax, dword [0x100153360]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
lea edx, [rax + rax]
mov r9, rax
lea rax, [0x100153e90]
lea r8, [rsp + 0xb0]
mov rcx, r10
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.100126af0
mov rcx, qword [rsp + 0x98]
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], r12
call fcn.100121a34
cmp eax, ebx
je 0x10011f99b
mov eax, dword [0x100153360]
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.100124fdc
cmp eax, ebx
je 0x10011f99b
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.100121d28
mov r8, r12
mov rdx, r14
mov rcx, r15
call fcn.1001218e8
cmp eax, ebx
jne 0x10011f99b
mov r9d, dword [0x100153360]
mov rdx, qword [r14]
lea rax, [0x100153e90]
mov qword [rsp + 0x30], r12
lea r8, [rsp + 0xb0]
mov rcx, r15
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
call fcn.10011f0e8
cmp eax, ebx
je 0x10011f99b
mov r8d, dword [0x100153360]
mov rcx, qword [rsp + 0x88]
mov rdx, rsi
call fcn.100121280
mov rdi, qword [rsp + 0x60]
mov r15d, 0x664
cmp eax, ebx
je 0x10011fe7a
mov ebp, 0x800480d5
jmp 0x10011fe7a
mov ebp, 0x80070057
jmp 0x10011fe7a
mov rdi, rbx
mov r15d, 0x664
cmp r14, rbx
mov esi, 0xffffffff
je 0x10011fed2
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 0x10011fe92
mov rax, qword [r14 + 8]
mov ecx, r13d
mov byte [rax], bl
add rax, 1
add ecx, esi
jne 0x10011fea3
mov rax, qword [r14 + 0x10]
mov ecx, r13d
mov byte [rax], bl
add rax, 1
add ecx, esi
jne 0x10011feb4
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 0x10011feda
cmp r12, rbx
je 0x10011ff11
cmp rdi, rbx
je 0x10011ff11
mov rax, rdi
mov byte [rax], bl
add rax, 1
add r15d, esi
jne 0x10011fef2
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.10011be80
add rsp, 0x288
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret