Function at 0x140106710
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, r9
mov rbx, r8
mov r14, rdx
mov r13, rcx
mov rbp, qword [r9 + 0x10]
mov rdi, qword [r9 + 0x20]
cmp rdi, rbp
jae 0x1401067b5
mov rax, qword [rsi + 8]
movzx r12d, byte [rax + rdi]
mov edx, dword [rsi]
mov r8d, dword [rsi + 4]
mov rax, qword [r14 + 0x290]
or rax, qword [r14 + 0x2a0]
mov rcx, qword [r14 + 0x288]
or rcx, qword [r14 + 0x298]
or rcx, rax
je 0x1401067ca
lea rax, [r14 + 0x288]
mov r9d, r12d
shr r9d, 7
shl r9, 4
mov r10d, 1
xor r11d, r11d
mov ecx, r12d
shld r11, r10, cl
shl r10, cl
xor ecx, ecx
test r12b, 0x40
cmovne r11, r10
cmovne r10, rcx
and r11, qword [rax + r9 + 8]
and r10, qword [rax + r9]
or r10, r11
je 0x1401067ca
mov r15d, 4
jmp 0x140106a1d
mov edx, dword [rsi]
mov r8d, dword [rsi + 4]
mov al, 2
movzx r9d, al
mov rax, r9
test edx, edx
jne 0x1401067db
jmp 0x1401067e8
movzx eax, byte [r14 + r12 + 0x78]
movzx r9d, al
mov rax, r9
test edx, edx
je 0x1401067e8
cmp edx, 1
jne 0x140106a09
lea rax, [r9 + 6]
cmp rax, qword [rbx + 0x58]
jae 0x14010710c
mov rcx, qword [rbx + 0x48]
mov r12d, dword [rcx + rax*4]
test r12d, r12d
js 0x140106dca
mov r15, qword [rsi + 0x18]
cmp r15, rdi
jne 0x140106879
test rdi, rdi
je 0x140106bc5
lea r15, [rdi - 1]
cmp r15, rbp
jae 0x14010710c
mov rax, qword [rsi + 8]
movzx esi, byte [rax + r15]
movzx ecx, byte [r14 + rsi + 0x188]
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp rax, qword [rbx + 0x40]
jae 0x14010710c
mov rcx, qword [rbx + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
js 0x140106ea8
mov edx, edx
test edx, 0x8000000
jne 0x140106c18
test edx, 0x20000000
jne 0x140106cdb
xor eax, eax
jmp 0x140106e97
mov qword [rsp + 0x38], r13
dec rdi
mov r13, qword [rsi + 8]
mov r10, qword [r14 + 0x178]
mov rcx, qword [r14 + 0x180]
and ecx, 0x3f
xor r11d, r11d
nop dword [rax]
cmp rdi, rbp
jae 0x14010710c
movzx r8d, byte [r13 + rdi]
movzx r9d, byte [r14 + r8 + 0x188]
mov edx, r12d
and edx, 0x7ffffff
add rdx, r9
cmp rdx, qword [rbx + 0x40]
jae 0x14010710c
mov r9, qword [rbx + 0x30]
mov esi, dword [r9 + rdx*4]
test esi, esi
js 0x14010699f
cmp esi, 0x7ffffff
jbe 0x14010697d
mov edx, esi
test edx, 0x8000000
jne 0x140106910
test edx, 0x40000000
jne 0x140106df7
test edx, 0x20000000
je 0x14010697d
jmp 0x140106e10
xor eax, eax
cmp qword [r10 + 0x160], 1
je 0x14010696e
mov r8d, esi
and r8d, 0x7ffffff
shr r8, cl
cmp r8, qword [rbx + 0x70]
jae 0x14010710c
mov rdx, qword [rbx + 0x60]
shl r8, 4
mov r9, qword [rdx + r8 + 8]
test r9, r9
je 0x14010710c
mov rdx, qword [rdx + r8]
test byte [rdx + 0x10], 2
je 0x14010696e
cmp r9, 0xd
jb 0x14010710c
add r9, 0xfffffffffffffff3
cmp r9, 3
jbe 0x14010710c
mov eax, dword [rdx + 0x1d]
lea rdx, [rdi + 1]
mov qword [rsp + 0x50], rdx
mov r11d, 1
cmp r15, rdi
je 0x140106b28
dec rdi
mov r12d, esi
cmp rdi, qword [rsp + 0xd0]
jae 0x1401068a0
jmp 0x140106bac
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rbp
mov rbp, r15
mov r15d, eax
shl r8d, 8
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x28]
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x140106f46
mov esi, edx
mov eax, r15d
mov r15, rbp
mov rbp, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
cmp esi, 0x7ffffff
ja 0x1401068ea
jmp 0x14010697d
test byte [r14 + 0x71], 1
mov r12d, r8d
mov r15d, 2
jne 0x140106af9
lea ecx, [r15 - 3]
cmp ecx, 2
mov eax, 2
cmovb eax, ecx
test eax, eax
je 0x140106a83
cmp eax, 1
jne 0x1401070d3
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140106a64
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14010710c
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14010710c
mov byte [rax], 0
mov byte [rax + 1], r12b
jmp 0x140106ac7
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140106aae
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14010710c
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14010710c
mov byte [rax], 1
mov qword [rax + 8], rdi
mov rsi, qword [rax + 8]
mov rcx, qword [0x1402d9150]
xor edx, edx
mov r8, rax
call sub.kernel32.dll_HeapFree
mov qword [r13 + 8], 1
mov qword [r13 + 0x10], rsi
mov qword [r13], 2
jmp 0x1401070c2
mov rax, qword [r14 + 0x178]
cmp qword [rax + 0x160], r12
jbe 0x140106c91
lea rax, [r12 + r12*2]
lea rax, [r9 + rax*2]
add rax, 0xc
cmp rax, qword [rbx + 0x58]
jb 0x1401067f2
jmp 0x14010710c
test r15, r15
je 0x140106d41
movzx edi, byte [r13 + r15 - 1]
movzx r8d, byte [r14 + rdi + 0x188]
mov edx, esi
and edx, 0x7ffffff
add rdx, r8
cmp rdx, qword [rbx + 0x40]
jae 0x14010710c
mov r8, qword [rbx + 0x30]
mov edx, dword [r8 + rdx*4]
test edx, edx
mov r12, qword [rsp + 0x38]
js 0x140106faa
mov edx, edx
test edx, 0x8000000
jne 0x14010702f
test edx, 0x20000000
je 0x140106d91
dec r15
mov ecx, edi
mov rdx, r15
call fcn.1400e5250
mov rcx, rax
call fcn.140100d00
mov qword [r12 + 8], 1
mov qword [r12 + 0x10], rax
jmp 0x140106dbd
mov rax, qword [rsp + 0x38]
mov qword [rax + 8], 0
mov qword [rax], 2
jmp 0x1401070c2
movzx r8d, byte [r14 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov ecx, r8d
shr ecx, 0x10
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp qword [rbx + 0x40], rax
jbe 0x14010710c
mov rcx, qword [rbx + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
js 0x140106f73
xor r8d, r8d
test edx, 0x8000000
jne 0x140106cba
xor eax, eax
jmp 0x140106e97
mov rcx, qword [r14 + 0x178]
mov eax, 1
xor r8d, r8d
cmp qword [rcx + 0x160], 1
je 0x140106e97
and edx, 0x7ffffff
movzx ecx, byte [r14 + 0x180]
shr rdx, cl
cmp rdx, qword [rbx + 0x70]
jae 0x14010710c
mov rcx, qword [rbx + 0x60]
shl rdx, 4
mov r9, qword [rcx + rdx + 8]
test r9, r9
je 0x14010710c
mov rcx, qword [rcx + rdx]
test byte [rcx + 0x10], 2
je 0x140106e97
cmp r9, 0xd
jb 0x14010710c
add r9, 0xfffffffffffffff3
cmp r9, 3
ja 0x140106e93
jmp 0x14010710c
mov rcx, qword [r14 + 0x180]
and ecx, 0x3f
cmp rcx, 0x1b
jae 0x14010710c
mov r12d, 1
shl r12, cl
or r12d, 0x40000000
jmp 0x140106803
mov rcx, qword [r14 + 0x178]
mov eax, 1
cmp qword [rcx + 0x160], 1
jne 0x140106e37
xor edi, edi
jmp 0x140106e97
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140106d06
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14010710c
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14010710c
mov byte [rax], 0
mov byte [rax + 1], sil
mov qword [rax + 8], r15
movzx ecx, byte [rax]
test rcx, rcx
je 0x140106acb
cmp ecx, 1
je 0x140106acb
jmp 0x14010710c
movzx r8d, byte [r14 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov r9d, r8d
shr r9d, 0x10
mov edx, esi
and edx, 0x7ffffff
add rdx, r9
cmp qword [rbx + 0x40], rdx
mov r12, qword [rsp + 0x38]
jbe 0x14010710c
mov r9, qword [rbx + 0x30]
mov edx, dword [r9 + rdx*4]
test edx, edx
js 0x140106fdf
test edx, 0x8000000
jne 0x14010706a
test esi, 0x40000000
jne 0x140106f3c
test r11, r11
mov rcx, qword [rsp + 0x50]
je 0x1401070b4
cmp rcx, r15
jbe 0x1401070b4
mov qword [r12 + 8], 0
mov qword [r12], 2
jmp 0x1401070c2
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x28]
call fcn.1400cdb30
mov r15, rax
mov r12, rax
shr r12, 0x20
cmp r15d, 5
je 0x140106803
jmp 0x140106a1d
mov rcx, qword [rsp + 0x38]
mov qword [rcx], r11
mov rdx, qword [rsp + 0x50]
mov qword [rcx + 8], rdx
mov dword [rcx + 0x10], eax
jmp 0x1401070c2
movzx ebx, byte [r13 + rdi]
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
je 0x140106ed6
mov rsi, qword [rsp + 0x38]
jmp 0x140106ef3
and edx, 0x7ffffff
movzx ecx, byte [r14 + 0x180]
shr rdx, cl
cmp rdx, qword [rbx + 0x70]
jae 0x14010710c
mov rcx, qword [rbx + 0x60]
shl rdx, 4
mov r8, qword [rcx + rdx + 8]
test r8, r8
je 0x14010710c
mov rcx, qword [rcx + rdx]
test byte [rcx + 0x10], 2
jne 0x140106e79
xor r8d, r8d
xor edi, edi
jmp 0x140106e97
cmp r8, 0xd
jb 0x14010710c
add r8, 0xfffffffffffffff3
cmp r8, 3
jbe 0x14010710c
xor edi, edi
mov r8d, dword [rcx + 0x1d]
mov qword [r13], rax
mov qword [r13 + 8], rdi
mov dword [r13 + 0x10], r8d
jmp 0x1401070c2
mov r8d, esi
shl r8d, 8
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x28]
mov edx, r12d
call fcn.1400cc830
test eax, eax
je 0x140106858
mov rcx, rdi
jmp 0x140106f94
call sub.kernel32.dll_GetProcessHeap
test rax, rax
mov rsi, qword [rsp + 0x38]
je 0x14010710c
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14010710c
mov byte [rax], 0
mov byte [rax + 1], bl
mov qword [rax + 8], rdi
mov rcx, qword [0x1402d9150]
xor edx, edx
mov r8, rax
call sub.kernel32.dll_HeapFree
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rdi
mov qword [rsi], 2
jmp 0x1401070c2
mov rcx, qword [rsp + 0x50]
jmp 0x1401070b4
mov rcx, rdi
call fcn.1400e52b0
mov rcx, rax
call fcn.140100d00
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 8], 1
mov qword [rcx + 0x10], rax
mov qword [rcx], 2
jmp 0x1401070c2
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x28]
mov edx, r12d
call fcn.1400cc830
test eax, eax
je 0x140106c02
xor ecx, ecx
call fcn.1400e52b0
movzx ecx, byte [rax]
test rcx, rcx
jne 0x140106d33
jmp 0x140106acb
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], r10
mov r13, rcx
mov ebp, eax
mov r8d, edi
shl r8d, 8
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x28]
mov edx, esi
call fcn.1400cc830
test eax, eax
je 0x140107012
mov rcx, r15
jmp 0x140107008
mov qword [rsp + 0x40], r11
mov rbp, r10
mov r13, rcx
mov edi, eax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x28]
mov edx, esi
call fcn.1400cc830
test eax, eax
je 0x140107051
xor ecx, ecx
call fcn.1400e52b0
jmp 0x140106b91
mov eax, ebp
mov rcx, r13
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov edx, edx
test edx, 0x8000000
je 0x140106b78
cmp qword [r10 + 0x160], 1
jne 0x14010703d
xor eax, eax
jmp 0x1401070ab
and edx, 0x7ffffff
shr rdx, cl
cmp rdx, qword [rbx + 0x70]
jb 0x140107092
jmp 0x14010710c
mov eax, edi
mov rcx, r13
mov r10, rbp
mov r11, qword [rsp + 0x40]
test edx, 0x8000000
je 0x140106d91
cmp qword [r10 + 0x160], 1
jne 0x140107080
xor ecx, ecx
mov r11d, 1
xor eax, eax
jmp 0x1401070b4
and edx, 0x7ffffff
shr rdx, cl
cmp rdx, qword [rbx + 0x70]
jae 0x14010710c
xor r15d, r15d
mov rax, qword [rbx + 0x60]
shl rdx, 4
mov rcx, qword [rax + rdx]
mov rdx, qword [rax + rdx + 8]
xor r8d, r8d
call fcn.1400f1ef0
mov r11d, 1
mov rcx, r15
mov qword [r12], r11
mov qword [r12 + 8], rcx
mov dword [r12 + 0x10], eax
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x1401070fa
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14010710c
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
jne 0x140107110
ud2
mov byte [rax], 3
mov dword [rax + 4], r15d
mov dword [rax + 8], r12d
ud2