Function at 0x14001fff0
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov rsi, r8
mov r13, rdx
mov rdi, rcx
mov rbx, qword [rdx + 8]
lea r12, [rdx + 0x28]
mov qword [rbp - 0x21], r12
lea rcx, [rbx + 0x48]
mov rdx, r8
call fcn.14001d1e0
test rax, rax
je 0x14002006f
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002006f
mov edx, dword [rax]
cmp edx, dword [rcx + 8]
je 0x14002005e
jae 0x140020053
mov rcx, qword [rcx + 0x18]
jmp 0x140020057
mov rcx, qword [rcx + 0x20]
test rcx, rcx
jne 0x140020046
jmp 0x14002006f
test rcx, rcx
je 0x14002006f
test r12, r12
je 0x14002006f
mov rax, qword [rcx]
mov qword [r12], rax
lea r15, [r13 + 0x20]
mov qword [rbp - 0x31], r15
lea rcx, [rdi + 0x48]
mov rdx, rsi
call fcn.14001d1e0
test rax, rax
je 0x1400200ba
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400200ba
mov edx, dword [rax]
cmp edx, dword [rcx + 8]
je 0x1400200aa
jae 0x14002009f
mov rcx, qword [rcx + 0x18]
jmp 0x1400200a3
mov rcx, qword [rcx + 0x20]
test rcx, rcx
jne 0x140020092
jmp 0x1400200ba
test rcx, rcx
je 0x1400200ba
test r15, r15
je 0x1400200ba
mov rax, qword [rcx]
mov qword [r15], rax
mov rbx, qword [r13]
test rbx, rbx
je 0x14002010e
lea rdi, [r13 + 0x30]
lea rcx, [rbx + 0x48]
mov rdx, rsi
call fcn.14001d1e0
test rax, rax
je 0x14002010a
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002010a
mov edx, dword [rax]
cmp edx, dword [rcx + 8]
je 0x1400200fa
jae 0x1400200ef
mov rcx, qword [rcx + 0x18]
jmp 0x1400200f3
mov rcx, qword [rcx + 0x20]
test rcx, rcx
jne 0x1400200e2
jmp 0x14002010a
test rcx, rcx
je 0x14002010a
test rdi, rdi
je 0x14002010a
mov rax, qword [rcx]
mov qword [rdi], rax
mov rdi, qword [rbp + 0x67]
mov r9, qword [r15]
mov r8, qword [r12]
mov rax, r8
neg rax
sbb rdx, rdx
and edx, 0xc
mov rax, r9
neg rax
sbb rcx, rcx
and ecx, 0x18
add rdx, rcx
lea rax, [0x1400bb470]
add rdx, rax
cmp qword [r13 + 0x30], 0
je 0x140020145
xor eax, eax
jmp 0x140020153
mov rax, qword [r13]
neg rax
sbb rax, rax
add rax, 2
mov ecx, dword [rdx + rax*4]
mov dword [rbp - 0x29], ecx
test ecx, ecx
je 0x1400209bb
sub ecx, 1
je 0x1400209b7
sub ecx, 1
je 0x1400209aa
sub ecx, 1
je 0x1400201ac
cmp ecx, 1
jne 0x1400201ea
cmp byte [r13 + 0x10], 0
jne 0x1400201ac
cmp byte [r13 + 0x12], 0
je 0x1400209b7
cmp byte [r8 + 0x6d], 0
jne 0x1400201ac
cmp byte [r8 + 0x6c], 0
je 0x1400209b7
cmp byte [r13 + 0x11], 0
je 0x1400209b7
lea rdx, [r8 + 0x48]
mov r9, r15
movzx r8d, byte [r8 + 0x6d]
mov rcx, rdi
call fcn.14001a010
cmp eax, 1
ja 0x1400209c0
mov rax, qword [r12]
test rax, rax
je 0x1400201ea
mov rcx, qword [r15]
movzx eax, byte [rax + 0x68]
mov byte [rcx + 0x68], al
mov rax, qword [r12]
mov rdx, qword [r15]
movzx ecx, byte [rax + 0x69]
mov byte [rdx + 0x69], cl
xor edi, edi
mov qword [rbp - 0x49], rdi
xor r14d, r14d
mov qword [rbp - 0x41], r14
xor esi, esi
mov qword [rbp + 0x7f], rsi
mov rax, qword [r12]
mov rcx, qword [r15]
mov ebx, dword [rax + 0x38]
mov r8, 0xffffffffffffffff
mov qword [rbp - 0x39], r8
add ebx, dword [rcx + 0x38]
je 0x140020239
mov ecx, ebx
mov eax, 8
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.14002833c
mov rdi, rax
mov qword [rbp - 0x49], rax
test rax, rax
je 0x140020282
mov esi, 0x20000000
mov eax, 0x20
xor ecx, ecx
shr eax, 1
inc ecx
cmp eax, 1
ja 0x140020245
mov eax, 7
cmp ecx, eax
cmova ecx, eax
shl ecx, 0x1d
mov eax, r14d
and eax, 0x1fffffff
mov r14d, ecx
or r14d, eax
mov dword [rbp - 0x41], r14d
and esi, esi
and ebx, 0x1fffffff
or esi, ebx
bts esi, 0x1e
mov qword [rbp + 0x7f], rsi
mov dword [rbp - 0x3d], esi
mov rax, qword [r15]
mov rbx, qword [rax + 0x20]
add rax, 0x28
or rax, 1
cmp rbx, rax
je 0x1400203ea
mov r13, 0xffffffffffffffff
mov r15d, r14d
and r15d, 0x1fffffff
mov eax, esi
and eax, 0x1fffffff
cmp r15d, eax
jne 0x140020386
bt esi, 0x1d
jae 0x1400203b4
mov ecx, r14d
shr ecx, 0x1d
mov r8d, 1
shl r8d, cl
lea ecx, [r8 + rax]
xor edx, edx
mov eax, ecx
div r8d
sub ecx, edx
and esi, 0xe0000000
and ecx, 0x1fffffff
or esi, ecx
mov dword [rbp - 0x3d], esi
mov ecx, esi
and ecx, 0x1fffffff
mov eax, 8
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.14002833c
mov r12, rax
test rax, rax
je 0x1400203b4
test r15d, r15d
je 0x140020341
mov rcx, rax
mov r8, rdi
sub r8, rax
mov edx, r15d
nop dword [rax + rax]
mov rax, qword [r8 + rcx]
mov qword [rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x140020330
test esi, esi
jns 0x14002036a
mov r8d, esi
and r8d, 0x1fffffff
sub r8d, r15d
shl r8, 3
mov rax, qword [rbp - 0x41]
and eax, 0x1fffffff
lea rcx, [r12 + rax*8]
xor edx, edx
call fcn.14002b5b0
bt esi, 0x1e
jae 0x140020378
mov rcx, rdi
call fcn.140028344
mov rdi, r12
mov qword [rbp - 0x49], r12
bts esi, 0x1e
mov dword [rbp - 0x3d], esi
mov rcx, qword [rbp - 0x41]
and ecx, 0x1fffffff
mov rax, qword [rbx + 0x10]
mov qword [rdi + rcx*8], rax
lea ecx, [r14 + 1]
and ecx, 0x1fffffff
mov eax, r14d
and eax, 0xe0000000
mov r14d, ecx
or r14d, eax
mov dword [rbp - 0x41], r14d
test bl, 3
je 0x1400203c2
and rbx, 0xfffffffffffffffc
mov rbx, qword [rbx]
jmp 0x1400203c6
mov rbx, qword [rbx + 0x28]
mov rax, qword [rbp - 0x31]
mov rax, qword [rax]
add rax, 0x28
or rax, 1
cmp rbx, rax
jne 0x1400202a1
mov qword [rbp + 0x7f], rsi
mov r13, qword [rbp + 0x6f]
mov r12, qword [rbp - 0x21]
mov rax, qword [r12]
mov rbx, qword [rax + 0x20]
add rax, 0x28
or rax, 1
cmp rbx, rax
je 0x140020650
xor r13d, r13d
mov r15d, r14d
and r15d, 0x1fffffff
lea rax, [rbx + 0x10]
mov qword [rbp - 0x31], rax
jbe 0x1400204ef
mov r12, rdi
nop dword [rax]
nop word [rax + rax]
mov rdi, qword [rax]
mov rsi, qword [r12]
movzx eax, byte [rdi + 0x5e]
cmp byte [rsi + 0x5e], al
jne 0x140020472
lea rcx, [rsi + 0x10]
lea rdx, [rdi + 0x10]
call fcn.140027820
test al, al
je 0x140020472
lea rcx, [rsi + 0x40]
lea rdx, [rdi + 0x40]
call fcn.140027820
test al, al
je 0x140020472
mov eax, dword [rdi + 0x60]
cmp dword [rsi + 0x60], eax
jne 0x140020472
mov eax, dword [rdi + 0x64]
cmp dword [rsi + 0x64], eax
je 0x140020484
inc r13d
add r12, 8
cmp r13d, r15d
jae 0x1400204e9
mov rax, qword [rbp - 0x31]
jmp 0x140020430
mov rdi, qword [rbp - 0x49]
test rdi, rdi
je 0x1400204d0
cmp r13d, r15d
jae 0x1400204d0
lea r8d, [r13 + 1]
cmp r8d, r15d
jae 0x1400204b4
nop dword [rax + rax]
lea ecx, [r8 - 1]
mov rax, qword [rdi + r8*8]
mov qword [rdi + rcx*8], rax
inc r8d
cmp r8d, r15d
jb 0x1400204a0
lea ecx, [r14 - 1]
and ecx, 0x1fffffff
mov eax, r14d
and eax, 0xe0000000
mov r14d, ecx
or r14d, eax
mov dword [rbp - 0x41], r14d
mov rsi, qword [rbp + 0x7f]
test bl, 3
je 0x14002062f
and rbx, 0xfffffffffffffffc
mov rbx, qword [rbx]
jmp 0x140020633
mov rsi, qword [rbp + 0x7f]
jmp 0x1400204f3
mov qword [rbp - 0x31], rax
mov eax, esi
and eax, 0x1fffffff
cmp r15d, eax
jne 0x1400205ec
bt esi, 0x1d
jae 0x140020626
mov ecx, r14d
shr ecx, 0x1d
mov r8d, 1
shl r8d, cl
lea ecx, [r8 + rax]
xor edx, edx
mov eax, ecx
div r8d
sub ecx, edx
and esi, 0xe0000000
and ecx, 0x1fffffff
or esi, ecx
mov ecx, esi
mov qword [rbp + 0x7f], rsi
mov dword [rbp - 0x3d], esi
and ecx, 0x1fffffff
mov eax, 8
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14002833c
mov r12, rax
test rax, rax
je 0x140020626
mov rdi, qword [rbp - 0x49]
test r15d, r15d
je 0x1400205a1
mov rcx, rax
mov r8, rdi
sub r8, rax
mov edx, r15d
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r8 + rcx]
mov qword [rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x140020590
test esi, esi
jns 0x1400205ca
mov r8d, esi
and r8d, 0x1fffffff
sub r8d, r15d
shl r8, 3
mov rax, qword [rbp - 0x41]
and eax, 0x1fffffff
lea rcx, [r12 + rax*8]
xor edx, edx
call fcn.14002b5b0
bt esi, 0x1e
jae 0x1400205d8
mov rcx, rdi
call fcn.140028344
mov rdi, r12
mov qword [rbp - 0x49], r12
bts esi, 0x1e
mov qword [rbp + 0x7f], rsi
mov dword [rbp - 0x3d], esi
jmp 0x1400205f0
mov rdi, qword [rbp - 0x49]
mov rcx, qword [rbp - 0x41]
and ecx, 0x1fffffff
mov rax, qword [rbp - 0x31]
mov rax, qword [rax]
mov qword [rdi + rcx*8], rax
lea ecx, [r14 + 1]
and ecx, 0x1fffffff
mov eax, r14d
and eax, 0xe0000000
mov r14d, ecx
or r14d, eax
mov dword [rbp - 0x41], r14d
jmp 0x1400204d4
mov rdi, qword [rbp - 0x49]
jmp 0x1400204d4
mov rbx, qword [rbx + 0x28]
mov r12, qword [rbp - 0x21]
mov rax, qword [r12]
add rax, 0x28
or rax, 1
cmp rbx, rax
jne 0x140020403
mov r13, qword [rbp + 0x6f]
xor eax, eax
mov ebx, eax
and r14d, 0x1fffffff
jbe 0x140020697
mov r12, rdi
mov qword [r13 + 0x48], rax
mov qword [r13 + 0x40], rax
mov qword [r13 + 0x38], rax
mov r8, qword [r12]
mov rdx, r13
mov rcx, qword [rbp + 0x67]
call fcn.14001fd80
mov r15d, eax
cmp eax, 1
ja 0x140020992
inc ebx
add r12, 8
cmp ebx, r14d
jae 0x140020697
xor eax, eax
jmp 0x140020660
mov r8, qword [r13 + 0x20]
mov rax, qword [r13 + 0x28]
mov ecx, dword [r8 + 8]
add ecx, dword [rax + 8]
mov edx, ecx
xor r14d, r14d
mov qword [rbp - 0x11], r14
mov dword [rbp + 7], 0xffffffff
mov qword [rbp + 0xf], r14
mov qword [rbp + 0x17], r14
mov dword [rbp + 0x1f], 0x3f400000
mov dword [rbp + 0x23], 0x3e000000
mov eax, ecx
shr rax, 1
or rdx, rax
mov rax, rdx
shr rax, 2
or rdx, rax
mov rax, rdx
shr rax, 4
or rdx, rax
mov rax, rdx
shr rax, 8
or rdx, rax
mov rax, rdx
shr rax, 0x10
or rdx, rax
imul ecx, edx, 0x7c4acdd
shr rcx, 0x1b
lea rax, [0x1400a0660]
movzx eax, byte [rcx + rax]
mov dword [rbp + 0xb], eax
xorps xmm0, xmm0
movdqa xmmword [rbp - 9], xmm0
mov rbx, qword [r8]
test rbx, rbx
je 0x1400207c8
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14002073d
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140020731
test rbx, rbx
je 0x1400207c8
mov dword [rbp + 0x6f], 1
nop dword [rax]
mov rax, qword [rbx]
mov ecx, dword [rax + 0x14]
mov dword [rbp + 0x7f], ecx
lea r8, [rbp + 0x6f]
lea rdx, [rbp + 0x7f]
lea rcx, [rbp - 0x19]
call fcn.14001ea00
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x140020793
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
je 0x14002078c
nop
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140020780
test rbx, rbx
je 0x1400207bb
jmp 0x140020750
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x1400207b2
nop dword [rax]
cmp rbx, qword [rax + 0x20]
jne 0x1400207b2
mov rbx, rax
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400207a0
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140020750
mov edx, dword [rbp + 7]
mov qword [rbp - 0x39], rdx
mov r14, qword [rbp - 0x11]
jmp 0x1400207cf
mov rdx, 0xffffffffffffffff
mov rax, qword [r13 + 0x28]
mov rbx, qword [rax]
test rbx, rbx
je 0x140020886
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1400207fc
nop dword [rax + rax]
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1400207f0
test rbx, rbx
je 0x140020886
mov dword [rbp + 0x6f], 1
nop dword [rax]
mov rax, qword [rbx]
mov ecx, dword [rax + 0x14]
mov dword [rbp + 0x7f], ecx
lea r8, [rbp + 0x6f]
lea rdx, [rbp + 0x7f]
lea rcx, [rbp - 0x19]
call fcn.14001ea00
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x140020853
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
je 0x14002084c
nop
mov rbx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140020840
test rbx, rbx
je 0x14002087b
jmp 0x140020810
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140020872
nop dword [rax]
cmp rbx, qword [rax + 0x20]
jne 0x140020872
mov rbx, rax
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140020860
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140020810
mov edx, dword [rbp + 7]
mov qword [rbp - 0x39], rdx
mov r14, qword [rbp - 0x11]
mov rbx, qword [rbp - 9]
nop word [rax + rax]
test r14, r14
je 0x1400208a9
mov ecx, edx
mov eax, 1
shl rax, cl
lea rax, [rax + rax*2]
lea rcx, [r14 + rax*4]
jmp 0x1400208ab
xor ecx, ecx
cmp rbx, rcx
je 0x1400208c9
mov eax, dword [rbx + 8]
and eax, 0xc0000000
cmp eax, 0x40000000
je 0x1400208c9
add rbx, 0xc
mov qword [rbp - 9], rbx
jmp 0x140020890
mov r12, qword [rbp + 0x67]
nop dword [rax]
test r14, r14
je 0x1400208e9
mov ecx, edx
mov eax, 1
shl rax, cl
lea rax, [rax + rax*2]
lea rcx, [r14 + rax*4]
jmp 0x1400208eb
xor ecx, ecx
cmp rbx, rcx
je 0x14002094d
mov qword [r13 + 0x60], 0
mov qword [r13 + 0x58], 0
mov qword [r13 + 0x50], 0
mov r8d, dword [rbx]
mov rdx, r13
mov rcx, r12
call fcn.1400209e0
mov r15d, eax
cmp eax, 1
ja 0x140020983
add rbx, 0xc
mov rdx, qword [rbp - 0x39]
je 0x1400208d0
mov eax, dword [rbx + 8]
shr eax, 0x1e
cmp eax, 1
je 0x1400208d0
cmp eax, 3
mov rdx, qword [rbp - 0x39]
je 0x1400208d0
add rbx, 0xc
mov eax, dword [rbx + 8]
shr eax, 0x1e
cmp eax, 1
jne 0x140020933
jmp 0x1400208d0
cmp byte [r13 + 0x10], 0
je 0x140020980
mov eax, dword [rbp - 0x29]
add eax, 0xfffffffd
cmp eax, 1
ja 0x140020980
mov rdx, qword [r13 + 0x20]
cmp dword [rdx + 0x38], 0
jne 0x140020980
mov rax, qword [r13 + 0x28]
cmp dword [rax + 0x38], 0
jbe 0x140020980
mov rcx, r12
call fcn.140022380
mov r15d, eax
jmp 0x140020983
xor r15d, r15d
test r14, r14
je 0x140020992
lea rcx, [r14 - 0xc]
call fcn.140028344
nop
test rdi, rdi
je 0x1400209a5
bt esi, 0x1e
jae 0x1400209a5
mov rcx, rdi
call fcn.140028344
mov eax, r15d
jmp 0x1400209c0
mov rdx, r9
mov rcx, rdi
call fcn.140022380
jmp 0x1400209c0
xor eax, eax
jmp 0x1400209c0
mov eax, 2
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret