Function at 0x140020f60
Capabilities:
Inspect section memory permissions

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x138
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xb0], 0xfffffffffffffffe
mov qword [rbp + 0xa8], r9
mov qword [r9], 0
mov r12, qword [r8 + 0x18]
mov r11, qword [r8 + 0x20]
cmp r12, r11
jbe 0x140020fa8
xor edx, edx
jmp 0x1400222f7
mov rdi, r8
mov rsi, rdx
mov r10, rcx
mov ebx, dword [r8]
mov rax, rbx
dec rax
cmp rax, 2
jb 0x140020fdf
lea rax, [r10 + 0x58]
cmp byte [r10 + 0x68], 3
lea r13, [0x1401108f8]
cmovne r13, rax
cmp byte [r13 + 0x10], 2
jne 0x140021303
mov rax, qword [r10 + 0x178]
mov qword [rbp + 0x90], rax
mov rax, qword [rbp + 0xa8]
cmp dword [rax + 0x28], 0
je 0x140021243
mov rax, qword [rbp + 0xa8]
mov r13d, dword [rax + 0x2c]
cmp qword [rax + 0x18], 0
je 0x140021106
test r13d, 0x8000000
je 0x1400223b0
mov eax, r13d
and eax, 0x7ffffff
movzx ecx, byte [r10 + 0x180]
shr rax, cl
mov rdx, qword [rsi + 0x70]
cmp rax, rdx
jae 0x140022363
mov rcx, qword [rsi + 0x60]
shl rax, 4
mov rdx, qword [rcx + rax + 8]
test rdx, rdx
je 0x140022351
mov r8, qword [rcx + rax]
movzx ecx, byte [r8 + 0x10]
test cl, 1
je 0x140021106
mov rax, qword [rbp + 0xa8]
mov rax, qword [rax + 0x20]
mov r9d, 1
test cl, 2
je 0x14002108d
cmp rdx, 0xc
jbe 0x140022466
mov r9d, dword [r8 + 0x19]
cmp rax, r9
jae 0x140021106
lea r10, [rax + 1]
xor r9d, r9d
mov r11, qword [rbp + 0xa8]
mov qword [r11 + 0x18], 1
mov qword [r11 + 0x20], r10
test cl, 2
je 0x1400210e5
mov rcx, qword [rbp + 0x90]
cmp qword [rcx + 0x160], 1
je 0x1400210e5
lea rcx, [rax*4 + 0xd]
mov rax, rdx
sub rax, rcx
jb 0x140022493
cmp rax, 3
jbe 0x1400224a1
mov r9d, dword [r8 + rcx + 0x10]
mov rcx, qword [rbp + 0xa8]
mov rax, qword [rcx + 0x30]
mov qword [rcx], 1
mov qword [rcx + 8], rax
mov dword [rcx + 0x10], r9d
xor edx, edx
jmp 0x1400222f7
mov rax, qword [rbp + 0xa8]
mov r12, qword [rax + 0x30]
inc r12
mov qword [rax + 0x30], r12
cmp r12, r11
ja 0x140020fa1
cmp qword [rsi], 1
jne 0x140021146
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 8]
mov rdx, rax
sub rdx, rcx
neg rdx
sub rax, rcx
cmovb rax, rdx
add qword [rsi + 0x158], rax
mov qword [rsi], 1
mov qword [rsi + 8], r12
mov qword [rsi + 0x10], r12
mov rbx, qword [rdi + 0x10]
cmp r12, r11
jae 0x140021449
mov r14, qword [rdi + 8]
mov qword [rbp - 0x18], r11
mov qword [rbp - 0x10], rdi
nop
cmp r12, rbx
jae 0x140022222
movzx r8d, byte [r14 + r12]
movzx eax, byte [r10 + r8 + 0x188]
mov ecx, r13d
and ecx, 0x7ffffff
add rcx, rax
mov rdx, qword [rsi + 0x40]
cmp rcx, rdx
jae 0x140022214
mov rax, qword [rsi + 0x30]
mov r15d, dword [rax + rcx*4]
test r15d, r15d
js 0x140021203
cmp r15d, 0x8000000
jb 0x1400211d6
mov rax, qword [rbp + 0xa8]
mov dword [rax + 0x28], 1
mov dword [rax + 0x2c], r15d
mov eax, r15d
test eax, 0x10000000
je 0x140021732
inc r12
mov rax, qword [rbp + 0xa8]
mov qword [rax + 0x30], r12
cmp qword [rsi], 0
je 0x140022396
mov qword [rsi + 0x10], r12
mov r13d, r15d
cmp r11, r12
jne 0x140021170
jmp 0x14002144c
shl r8d, 8
mov rdi, r10
mov qword [rbp + 0x60], r10
mov qword [rbp + 0x68], rsi
lea rcx, [rbp + 0x60]
mov edx, r13d
call fcn.1401077e0
test eax, eax
jne 0x140021e5f
mov r15d, edx
mov r11, qword [rbp - 0x18]
mov r10, rdi
mov rdi, qword [rbp - 0x10]
cmp r15d, 0x8000000
jae 0x1400211b6
jmp 0x1400211d6
mov rax, qword [rbp + 0xa8]
mov qword [rax + 0x30], r12
test r12, r12
je 0x140021429
lea rax, [r12 - 1]
cmp qword [rdi + 0x10], rax
jbe 0x140021429
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140021429
movzx eax, byte [rcx + rax]
movzx r13d, al
mov r8d, dword [rdi + 4]
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x38], rsi
mov rax, qword [r10 + 0x290]
or rax, qword [r10 + 0x2a0]
mov rcx, qword [r10 + 0x288]
or rcx, qword [r10 + 0x298]
or rcx, rax
je 0x140021768
lea rax, [r10 + 0x288]
mov edx, r13d
shr edx, 7
shl rdx, 4
mov r14d, r8d
mov r8d, 1
xor r9d, r9d
mov ecx, r13d
shld r9, r8, cl
shl r8, cl
xor ecx, ecx
test r13b, 0x40
cmovne r9, r8
cmovne r8, rcx
and r9, qword [rax + rdx + 8]
and r8, qword [rax + rdx]
or r8, r9
mov r8d, r14d
je 0x140021768
mov r14, rsi
mov ebx, 4
jmp 0x1400217aa
mov rax, qword [r10 + 0x178]
mov qword [rbp + 0x58], rax
mov eax, dword [rax + 0x17c]
mov dword [rbp + 0x1c], eax
mov rax, qword [rbp + 0xa8]
cmp dword [rax + 0x28], 0
mov qword [rbp + 0x28], rbx
je 0x1400215ed
mov rax, qword [rbp + 0xa8]
mov edx, dword [rax + 0x2c]
cmp qword [rax + 0x18], 0
je 0x14002153f
test edx, 0x8000000
je 0x1400223b0
mov r9d, edx
and r9d, 0x7ffffff
movzx ecx, byte [r10 + 0x180]
shr r9, cl
mov rax, qword [rsi + 0x70]
cmp r9, rax
jae 0x140022382
mov rcx, qword [rsi + 0x60]
shl r9, 4
mov rax, qword [rcx + r9 + 8]
test rax, rax
je 0x140022351
mov rcx, qword [rcx + r9]
movzx r9d, byte [rcx + 0x10]
test r9b, 1
je 0x14002153f
mov r8, qword [rbp + 0xa8]
mov rbx, qword [r8 + 0x20]
mov r8d, 1
test r9b, 2
je 0x1400213bd
cmp rax, 0xc
jbe 0x1400224d1
mov r8d, dword [rcx + 0x19]
cmp rbx, r8
jae 0x14002153f
lea rax, [rbx + 1]
mov rcx, qword [rbp + 0xa8]
mov qword [rcx + 0x18], 1
mov qword [rcx + 0x20], rax
xor eax, eax
mov rcx, qword [rbp + 0x58]
cmp qword [rcx + 0x160], 1
je 0x140021409
mov qword [rbp + 0x60], r10
mov qword [rbp + 0x68], rsi
lea rcx, [rbp + 0x60]
call fcn.140071190
mov rcx, rax
mov rdx, rbx
call fcn.14004acf0
mov rdx, qword [rbp + 0xa8]
mov rcx, qword [rdx + 0x30]
mov qword [rdx], 1
mov qword [rdx + 8], rcx
mov dword [rdx + 0x10], eax
xor edx, edx
jmp 0x1400222f7
mov r8d, dword [rdi + 4]
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x38], rsi
mov r15b, 2
movzx ecx, r15b
test ebx, ebx
jne 0x140021776
jmp 0x140021783
mov r15d, r13d
cmp r11, rbx
jae 0x1400214ad
mov rax, qword [rdi + 8]
movzx ebx, byte [rax + r11]
movzx eax, byte [r10 + rbx + 0x188]
mov ecx, r15d
and ecx, 0x7ffffff
add rcx, rax
mov rdx, qword [rsi + 0x40]
cmp rcx, rdx
jae 0x140022214
mov rax, qword [rsi + 0x30]
mov r12d, dword [rax + rcx*4]
test r12d, r12d
js 0x140021f27
mov eax, r12d
test eax, 0x8000000
jne 0x1400220d4
test eax, 0x20000000
jne 0x14002196f
xor edx, edx
jmp 0x140021982
movzx r8d, byte [r10 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov eax, r8d
shr eax, 0x10
mov ecx, r15d
and ecx, 0x7ffffff
add rcx, rax
mov rdx, qword [rsi + 0x40]
cmp rdx, rcx
jbe 0x140022374
mov rax, qword [rsi + 0x30]
mov r12d, dword [rax + rcx*4]
test r12d, r12d
js 0x140021f66
xor edx, edx
test r12d, 0x8000000
je 0x140021982
mov rax, qword [rbp + 0x90]
cmp qword [rax + 0x160], 1
je 0x140022115
mov qword [rbp + 0x60], r10
mov qword [rbp + 0x68], rsi
lea rcx, [rbp + 0x60]
mov edx, r12d
mov rdi, r11
call fcn.140071190
mov rcx, rax
xor edx, edx
call fcn.14004acf0
mov r11, rdi
mov edx, eax
jmp 0x140022115
mov rax, qword [rbp + 0xa8]
mov r12, qword [rax + 0x30]
inc r12
mov qword [rax + 0x30], r12
cmp r12, r11
ja 0x140020fa1
cmp qword [rsi], 1
jne 0x14002157f
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 8]
mov r8, rax
sub r8, rcx
neg r8
sub rax, rcx
cmovb rax, r8
add qword [rsi + 0x158], rax
mov qword [rsi], 1
mov qword [rsi + 8], r12
mov qword [rsi + 0x10], r12
mov r9, qword [rdi + 0x10]
cmp r12, r11
jae 0x1400216cd
mov rbx, qword [rdi + 8]
mov eax, dword [rdi + 4]
lea rcx, [r11 + 1]
mov qword [rbp - 8], rcx
lea rcx, [r10 + 0x288]
mov qword [rbp + 8], rcx
movzx ecx, byte [r10 + 0x71]
mov byte [rbp + 0x9f], cl
mov qword [rbp + 0x20], rax
lea rax, [rax + rax*2]
lea rax, [rax + rax + 0xc]
mov qword [rbp + 0x10], rax
mov rax, qword [r13]
mov qword [rbp + 0x50], rax
mov rax, qword [r13 + 8]
mov qword [rbp - 0x20], rax
mov qword [rbp + 0x90], rbx
jmp 0x140021a50
mov rax, qword [rbp + 0xa8]
mov qword [rax + 0x30], r12
test r12, r12
je 0x1400216aa
lea rax, [r12 - 1]
cmp qword [rdi + 0x10], rax
jbe 0x1400216aa
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400216aa
movzx eax, byte [rcx + rax]
movzx edx, al
mov ebx, dword [rdi + 4]
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x38], rsi
mov rax, qword [r10 + 0x290]
or rax, qword [r10 + 0x2a0]
mov rcx, qword [r10 + 0x288]
or rcx, qword [r10 + 0x298]
or rcx, rax
je 0x140021dbc
lea rax, [r10 + 0x288]
mov r8d, edx
shr r8d, 7
shl r8, 4
mov r9d, 1
mov r14, r10
xor r10d, r10d
mov ecx, edx
shld r10, r9, cl
shl r9, cl
xor ecx, ecx
test dl, 0x40
cmovne r10, r9
cmovne r9, rcx
and r10, qword [rax + r8 + 8]
and r9, qword [rax + r8]
or r9, r10
mov r10, r14
je 0x140021dbc
mov r14, rsi
mov ecx, 4
jmp 0x140021dfd
mov ebx, dword [rdi + 4]
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x38], rsi
mov r15b, 2
movzx eax, r15b
mov rcx, qword [rbp + 0x28]
test ecx, ecx
jne 0x140021dce
jmp 0x140021dd7
mov r13d, edx
cmp r11, r9
jae 0x1400218d8
mov rax, qword [rdi + 8]
movzx r15d, byte [rax + r11]
movzx eax, byte [r10 + r15 + 0x188]
mov ecx, r13d
and ecx, 0x7ffffff
add rcx, rax
mov rdx, qword [rsi + 0x40]
cmp rcx, rdx
jae 0x140022214
mov rax, qword [rsi + 0x30]
mov ebx, dword [rax + rcx*4]
test ebx, ebx
js 0x14002219d
mov eax, ebx
test eax, 0x8000000
jne 0x14002225d
test eax, 0x20000000
jne 0x140021ef9
xor edx, edx
jmp 0x140021f0d
test eax, 0x8000000
jne 0x14002199c
test eax, 0x40000000
jne 0x140021ee9
test eax, 0x20000000
je 0x1400224e7
mov rcx, rsi
mov rdx, r12
call fcn.14001cfd0
movzx ecx, byte [r14 + r12]
jmp 0x140021e3c
movzx r15d, byte [r10 + r13 + 0x78]
movzx ecx, r15b
test ebx, ebx
je 0x140021783
cmp ebx, 1
jne 0x14002181a
add rcx, 6
mov rdx, qword [rsi + 0x58]
cmp rcx, rdx
jae 0x1400218ca
mov rax, qword [rsi + 0x48]
mov eax, dword [rax + rcx*4]
test eax, eax
js 0x140021d82
mov r14, rsi
mov r13d, eax
mov ebx, 5
cmp ebx, 5
jne 0x1400217c1
mov rsi, r14
cmp qword [rsi], 1
jne 0x140021146
jmp 0x140021127
lea ecx, [rbx - 3]
cmp ecx, 2
mov eax, 2
cmovb eax, ecx
test eax, eax
je 0x140021834
cmp eax, 1
jne 0x140021862
test r12, r12
je 0x140022479
movzx eax, byte [0x1401b21c1]
mov ecx, 0x10
mov edx, 8
call fcn.140008480
test rax, rax
je 0x1400223ca
mov rdx, rax
dec r12
mov byte [rax], 0
mov byte [rax + 1], r13b
mov qword [rax + 8], r12
jmp 0x1400222f7
mov r14, rbx
test byte [r10 + 0x71], 1
mov r13d, r8d
mov ebx, 2
jne 0x140021893
mov r14, rsi
jmp 0x1400217aa
movzx eax, byte [0x1401b21c1]
mov ecx, 0x10
mov edx, 8
call fcn.140008480
test rax, rax
je 0x1400223ca
mov rdx, rax
mov byte [rax], 1
mov qword [rax + 8], r12
jmp 0x1400222f7
movzx eax, byte [0x1401b21c1]
mov ecx, 0x10
mov edx, 8
call fcn.140008480
test rax, rax
je 0x1400223ca
mov rdx, rax
mov byte [rax], 3
mov dword [rax + 4], ebx
mov dword [rax + 8], r13d
jmp 0x1400222f7
mov rax, qword [rbp + 0x90]
cmp qword [rax + 0x160], r13
jbe 0x140021d4e
lea rax, [r13*2]
add rax, r13
lea rcx, [rcx + rax*2]
add rcx, 0xc
mov rbx, r14
mov rdx, qword [rsi + 0x58]
cmp rcx, rdx
jb 0x140021790
lea r8, [0x1401108e0]
call fcn.14010ac00
ud2
movzx r8d, byte [r10 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov eax, r8d
shr eax, 0x10
mov ecx, r13d
and ecx, 0x7ffffff
add rcx, rax
mov rdx, qword [rsi + 0x40]
cmp rdx, rcx
jbe 0x140022374
mov rax, qword [rsi + 0x30]
mov ebx, dword [rax + rcx*4]
test ebx, ebx
invalid
invalid