Function at 0x140045804
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
xor ebx, ebx
mov rbp, r9
mov r12, r8
mov rax, rdx
mov r13, rcx
mov edi, ebx
test r8, r8
je 0x14004583b
mov qword [r8], rbx
test rbp, rbp
je 0x140045843
mov qword [r9], rbx
mov r15, qword [rsp + 0xc0]
test r15, r15
je 0x140045853
mov qword [r15], rbx
test rax, rax
jne 0x140045862
mov eax, 0x57
jmp 0x140045bbe
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x140069f08], eax
je 0x14004587a
mov eax, 0x10dd
jmp 0x140045bbe
mov eax, dword [0x140069f0c]
test eax, eax
jne 0x140045bbe
test r13, r13
jne 0x140045896
lea eax, [r13 + 6]
jmp 0x140045bbe
mov rcx, qword [r13]
test rcx, rcx
jne 0x1400458ad
lea edi, [rcx + 6]
mov dword [0x140069f0c], edi
jmp 0x140045bb5
xor edx, edx
mov rsi, rbx
mov r14, rbx
call fcn.14004574c
mov rcx, qword [rsp + 0xa8]
xor edx, edx
mov rbx, rax
call fcn.14004574c
mov qword [rsp + 0x48], rax
cmp rax, rbx
jne 0x1400458eb
xor r15d, r15d
cmp dword [0x140069f00], r15d
jne 0x140045bb5
jmp 0x140045b6b
test rbp, rbp
je 0x1400458f4
mov qword [rbp], rbx
test r15, r15
je 0x1400458fc
mov qword [r15], rax
mov ecx, 0x30
call fcn.1400246c8
xor r15d, r15d
mov r14, rax
test rax, rax
jne 0x14004591b
mov edi, 8
jmp 0x140045b6b
mov rcx, rbx
call fcn.140045288
mov rsi, rax
test rax, rax
je 0x140045911
test r12, r12
je 0x140045934
mov qword [r12], rax
xor eax, eax
mov rbp, rbx
mov qword [rsi + 0x40], rax
mov r12, rsi
lea rax, [rsi + 0x1e]
mov r13d, r15d
mov qword [rsp + 0x38], rax
mov edi, 8
and dword [rsp + 0xc0], 0
lea rax, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8, rbp
lea rdx, [rsp + 0x38]
mov rcx, r12
mov r15, rbp
call fcn.140046918
mov rbp, rax
mov edx, r13d
movsxd rax, dword [rsp + 0xc0]
mov r8d, ebp
sub rax, r15
sub r8d, ebx
add rax, rbp
inc r13d
add r12, rax
mov al, r8b
and al, 7
mov r9b, r12b
sub r9b, sil
mov cl, r9b
mov byte [rsp + 0xa8], r9b
shl cl, 3
or cl, al
mov byte [rdx + rsi + 0x40], cl
cmp r13d, edi
jae 0x140045a22
mov cl, byte [r15]
lea eax, [rcx + 0x3e]
cmp al, 0x29
ja 0x1400459da
movabs rdx, 0x28040000403
bt rdx, rax
jb 0x140045a22
cmp cl, 0xf3
jne 0x1400459e6
cmp byte [r15 + 1], 0xc3
jmp 0x140045a16
cmp cl, 0xff
jne 0x1400459f2
cmp byte [r15 + 1], 0x25
jmp 0x140045a16
sub cl, 0x26
cmp cl, 0x3f
ja 0x140045a18
movabs rax, 0xc000000001010101
bt rax, rcx
jae 0x140045a18
cmp byte [r15 + 1], 0xff
jne 0x140045a18
cmp byte [r15 + 2], 0x25
je 0x140045a22
cmp r8d, 5
jb 0x140045951
mov qword [rsp + 0x40], r12
mov r12, qword [rsp + 0xb0]
mov dword [rsp + 0x30], r13d
mov r13, qword [rsp + 0xa0]
cmp r8d, 5
jae 0x140045a70
xor r15d, r15d
mov rcx, rbp
call fcn.140045494
test eax, eax
je 0x140045b5d
cdqe
add rbp, rax
mov r8d, ebp
sub r8d, ebx
cmp r8d, 5
jb 0x140045a45
mov r9b, byte [rsp + 0xa8]
jmp 0x140045a73
xor r15d, r15d
cmp dword [rsp + 0x30], edi
ja 0x140045b5d
mov rax, qword [rsp + 0x40]
cmp rax, qword [rsp + 0x38]
jbe 0x140045a8a
int3
lea rcx, [rsi + 0x20]
mov byte [rsi + 0x1e], r9b
mov rdx, rbx
mov byte [rsi + 0x3e], r8b
mov edi, r8d
call fcn.140028980
cmp rdi, 0x19
jbe 0x140045ab1
mov edi, 6
jmp 0x140045b6b
movzx edx, byte [rsi + 0x1e]
lea rax, [rdi + rbx]
mov qword [rsi + 0x48], rax
add rdx, rsi
mov rax, qword [rsp + 0x48]
mov qword [rsi + 0x50], rax
mov eax, esi
mov word [rdx], 0x25ff
lea rcx, [rdx + 6]
sub eax, ecx
lea rcx, [rdx + 6]
add eax, 0x48
mov dword [rdx + 2], eax
mov r8, qword [rsp + 0x38]
sub r8, rcx
cmp rcx, qword [rsp + 0x38]
cmova r8, r15
test r8, r8
je 0x140045afd
mov dl, 0xcc
call fcn.1400261f0
lea r9, [rsp + 0xb8]
mov dword [rsp + 0xb8], r15d
mov r8d, 0x40
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140045b2d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x140045b6b
mov dword [r14 + 8], r15d
mov qword [r14 + 0x10], r13
mov qword [r14 + 0x20], rsi
mov qword [r14 + 0x18], rbx
mov eax, dword [rsp + 0xb8]
mov dword [r14 + 0x28], eax
mov rax, qword [0x140069f20]
mov qword [r14], rax
xor eax, eax
mov qword [0x140069f20], r14
jmp 0x140045bbe
cmp dword [0x140069f00], r15d
mov edi, 9
jne 0x140045b76
mov dword [0x140069f0c], edi
test rsi, rsi
je 0x140045ba3
xor edx, edx
mov rbx, rsi
mov rcx, rsi
and rbx, 0xffffffffffff0000
lea r8d, [rdx + 0x60]
call fcn.1400261f0
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x48], rax
mov qword [rbx + 0x10], rsi
test r12, r12
je 0x140045ba3
mov qword [r12], r15
test r14, r14
je 0x140045bb5
mov edx, 0x30
mov rcx, r14
call fcn.1400246c0
mov eax, edi
mov qword [0x140069f10], r13
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret