Function at 0x1401ca4b0
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rcx + 8]
mov ebx, dword [rcx + 0x47]
test dword [rcx + 0x47], 2
jne 0x1401ca50f
mov eax, dword [rcx + 0x47]
shr eax, 0x10
and eax, 0x3fff
shr ebx, 2
test dword [rcx + 0x47], 2
je 0x1401ca51d
mov edi, dword [rcx + 0x47]
shr edi, 0x10
and edi, 0x3fff
jmp 0x1401ca51f
xor eax, eax
shr ebx, 2
test dword [rcx + 0x47], 2
jne 0x1401ca501
xor edi, edi
and ebx, 0x3fff
mov r11, qword [rdx + 8]
mov r15d, dword [r11 + 0x47]
shr r15d, 2
and r15d, 0x3fff
test dword [r11 + 0x47], 2
jne 0x1401ca571
mov r10d, dword [r11 + 0x47]
shr r10d, 0x10
and r10d, 0x3fff
test dword [r11 + 0x47], 2
mov qword [rsp + 0x48], rdx
je 0x1401ca583
mov r13d, dword [r11 + 0x47]
shr r13d, 0x10
and r13d, 0x3fff
jmp 0x1401ca586
xor r10d, r10d
test dword [r11 + 0x47], 2
mov qword [rsp + 0x48], rdx
jne 0x1401ca560
xor r13d, r13d
mov r12d, dword [rcx + 0x47]
and r12d, 1
mov esi, dword [r11 + 0x47]
and esi, 1
mov rcx, rbx
sub rcx, r12
mov r14, r15
sub r14, rsi
xor ebp, ebp
cmp rcx, r14
jg 0x1401cac22
cmp edi, r13d
jb 0x1401cac22
add rcx, rax
add r14, r10
cmp rcx, r14
jl 0x1401cac22
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x2c], r8d
mov eax, dword [0x1404b15b8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 8]
mov rbp, qword [rax + 0x18]
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], r9
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x70], rcx
mov rdi, qword [rsp + 0x48]
mov qword [rsp + 0x78], rdi
lea r9, [rsp + 0x60]
mov rdx, rdi
mov r8d, 2
call fcn.1401ca180
test al, al
je 0x1401cac20
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x38], r15
mov rax, qword [rdi + 8]
mov rdx, qword [rax + 0x2f]
mov rcx, rbp
call fcn.140164900
mov r15, rax
mov rax, qword [rax]
mov rcx, r15
call qword [rax + 0x320]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xac
mov rdi, rbp
je 0x1401ca6ef
lea rbp, [rsp + 0x80]
mov r13, r15
nop dword [rax]
cmp eax, 0x53
jne 0x1401ca6ab
mov rcx, r13
mov rdx, rbp
call fcn.1401d9e50
mov rcx, qword [rsp + 0x80]
call fcn.140160760
mov r13, rax
mov rax, qword [rax]
mov rcx, r13
call qword [rax + 0x320]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xac
jne 0x1401ca670
jmp 0x1401ca6ef
cmp eax, 0x2d
jne 0x1401ca6bd
mov rax, qword [r13 + 8]
test dword [rax + 0xf], 1
je 0x1401ca6ef
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 8]
mov rdx, qword [rax + 0x2f]
mov rcx, rdi
call fcn.140164900
lea r9, [rsp + 0x60]
mov rcx, rax
mov rdx, r15
mov r8d, dword [rsp + 0x2c]
call fcn.1401bebf0
test al, al
je 0x1401cac20
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x30], rbx
test r14, r14
jle 0x1401ca80f
xor edi, edi
lea r15, [rsp + 0x80]
jmp 0x1401ca759
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x37]
call fcn.14015e7a0
add rbx, qword [rax + 8]
mov rcx, qword [rbx + rsi*8 + 0x17]
call fcn.140160760
mov rcx, rax
mov rdx, r13
mov r8d, dword [rsp + 0x2c]
lea r9, [rsp + 0x60]
call fcn.1401bebf0
test al, al
je 0x1401cac20
inc rdi
cmp rdi, r14
jge 0x1401ca80f
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x37]
call fcn.14015e7a0
lea rbx, [rdi*8]
mov rax, qword [rax + 8]
add rax, rbx
mov rcx, qword [rax + r12*8 + 0x17]
call fcn.140160760
mov r13, rax
mov rax, qword [rax]
mov rcx, r13
call qword [rax + 0x320]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xac
je 0x1401ca74d
mov rbp, r13
nop word cs:[rax + rax]
cmp eax, 0x53
jne 0x1401ca7f0
mov rcx, rbp
mov rdx, r15
call fcn.1401d9e50
mov rcx, qword [rsp + 0x80]
call fcn.140160760
mov rbp, rax
mov rax, qword [rax]
mov rcx, rbp
call qword [rax + 0x320]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xac
jne 0x1401ca7b0
jmp 0x1401ca74d
cmp eax, 0x2d
jne 0x1401ca710
mov rax, qword [rbp + 8]
test dword [rax + 0xf], 1
jne 0x1401ca710
jmp 0x1401ca74d
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x58]
lea r15, [rdi + rbx]
mov rax, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x50]
lea r13, [rsi + rax]
mov rcx, qword [rsp + 0x40]
call fcn.140164ae0
mov r12, rax
test rsi, rsi
mov r14, qword [rsp + 0x48]
je 0x1401ca9ed
test rdi, rdi
je 0x1401cac4c
mov rsi, qword [rsp + 0x38]
mov rax, qword [r14 + 8]
mov ecx, dword [rax + 0x47]
test dword [rax + 0x47], 2
je 0x1401cacab
shr ecx, 2
and ecx, 0x3fff
mov rdi, rsi
sub rdi, rcx
jb 0x1401cacab
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rax, qword [rax + rdi*8 + 0x17]
mov qword [r12 + 8], rax
mov rdi, rbx
nop word [rax + rax]
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 8]
mov ebx, dword [rax + 0x47]
test dword [rax + 0x47], 2
je 0x1401cacab
shr ebx, 2
and ebx, 0x3fff
cmp rdi, rbx
jb 0x1401cacab
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
shl ebx, 3
sub rax, rbx
mov rax, qword [rax + rdi*8 + 0x17]
cmp rax, qword [r12 + 8]
je 0x1401ca8f7
inc rdi
cmp rdi, r15
jb 0x1401ca8a0
jmp 0x1401cac20
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x37]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rcx, qword [rax + rdi*8 + 0x17]
call fcn.140160760
mov rcx, rax
mov rax, qword [rax]
mov qword [rsp + 0x40], rcx
call qword [rax + 0x320]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xac
mov rdi, qword [rsp + 0x58]
lea rbx, [rsp + 0x80]
je 0x1401ca989
mov rbp, qword [rsp + 0x40]
nop word [rax + rax]
cmp eax, 0x53
jne 0x1401ca990
mov rcx, rbp
mov rdx, rbx
call fcn.1401d9e50
mov rcx, qword [rsp + 0x80]
call fcn.140160760
mov rbp, rax
mov rax, qword [rax]
mov rcx, rbp
call qword [rax + 0x320]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xac
jne 0x1401ca950
mov rbx, qword [rsp + 0x30]
jmp 0x1401ca9e1
cmp eax, 0x2d
mov rbx, qword [rsp + 0x30]
jne 0x1401ca9a7
mov rax, qword [rbp + 8]
test dword [rax + 0xf], 1
je 0x1401ca9e1
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x37]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rcx, qword [rax + rsi*8 + 0x17]
call fcn.140160760
mov rcx, rax
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x2c]
lea r9, [rsp + 0x60]
call fcn.1401bebf0
test al, al
je 0x1401cac20
inc rsi
cmp rsi, r13
jb 0x1401ca854
mov bpl, 1
test rdi, rdi
jne 0x1401caa1c
jmp 0x1401cac22
test dil, 1
mov rbx, qword [rsp + 0x30]
je 0x1401cac20
nop dword [rax]
inc rbx
cmp rbx, r15
jae 0x1401cac22
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 8]
test dword [rax + 0x47], 2
je 0x1401caa10
mov ecx, dword [rax + 0x47]
shr ecx, 2
and ecx, 0x3fff
cmp rbx, rcx
jb 0x1401caa10
mov ecx, dword [rax + 0x47]
shr ecx, 2
and ecx, 0x3fff
mov rdx, rbx
sub rdx, rcx
mov ecx, edx
and cl, 0xf
mov esi, 1
shl esi, cl
test dword [rax + 0x47], 2
jne 0x1401caa6a
xor ecx, ecx
jmp 0x1401caa76
mov ecx, dword [rax + 0x47]
shr ecx, 0x10
and ecx, 0x3fff
lea rdi, [rdx + 0xf]
test rdx, rdx
cmovns rdi, rdx
sar rdi, 4
add rdi, rcx
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0xf]
sar rcx, 1
cmp rdi, rcx
jge 0x1401caa10
mov rax, qword [rax + rdi*8 + 0x17]
shr eax, 1
test eax, esi
je 0x1401caa10
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 8]
mov ecx, dword [rax + 0x47]
test dword [rax + 0x47], 2
je 0x1401cacab
shr ecx, 2
and ecx, 0x3fff
mov rsi, rbx
sub rsi, rcx
jb 0x1401cacab
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rax, qword [rax + rsi*8 + 0x17]
mov qword [r12 + 8], rax
cmp qword [rsp + 0x50], 0
je 0x1401cac20
xor edi, edi
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x30], rbx
nop word cs:[rax + rax]
mov rax, qword [r14 + 8]
mov ebx, dword [rax + 0x47]
test dword [rax + 0x47], 2
je 0x1401cacab
shr ebx, 2
and ebx, 0x3fff
cmp rsi, rbx
jb 0x1401cacab
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
shl ebx, 3
sub rax, rbx
mov rax, qword [rax + rsi*8 + 0x17]
cmp rax, qword [r12 + 8]
je 0x1401cab72
inc rsi
cmp rsi, r13
jb 0x1401cab20
jmp 0x1401ca9fa
mov rax, qword [r14 + 8]
test dword [rax + 0x47], 2
je 0x1401cac20
mov ecx, dword [rax + 0x47]
shr ecx, 2
and ecx, 0x3fff
cmp rsi, rcx
jb 0x1401cac20
mov edx, dword [rax + 0x47]
shr edx, 2
mov ecx, esi
sub ecx, edx
and cl, 0xf
mov edi, 1
shl edi, cl
test dword [rax + 0x47], 2
jne 0x1401cabb9
xor ecx, ecx
jmp 0x1401cabc5
mov ecx, dword [rax + 0x47]
shr ecx, 0x10
and ecx, 0x3fff
and edx, 0x3fff
mov r8, rsi
sub r8, rdx
lea rbx, [r8 + 0xf]
test r8, r8
cmovns rbx, r8
sar rbx, 4
add rbx, rcx
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0xf]
sar rcx, 1
cmp rbx, rcx
jge 0x1401cac20
mov rax, qword [rax + rbx*8 + 0x17]
shr eax, 1
test eax, edi
je 0x1401cac20
inc rsi
mov dil, 1
cmp rsi, r13
mov rbx, qword [rsp + 0x30]
jb 0x1401cab20
jmp 0x1401caa10
xor ebp, ebp
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x1401caca5
mov eax, ebp
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r14 + 8]
mov ecx, dword [rax + 0x47]
test dword [rax + 0x47], 2
je 0x1401cacab
shr ecx, 2
and ecx, 0x3fff
mov rdx, qword [rsp + 0x38]
sub edx, ecx
mov qword [rsp + 0x38], rdx
jb 0x1401cacab
mov rcx, qword [rax + 0x3f]
call fcn.14015e7a0
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rax + rcx*8 + 0x17]
mov qword [r12 + 8], rax
xor ebp, ebp
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x1401cac36
call fcn.14029fd30
int3
lea rax, str..._.._runtime_vm_object.cc
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x88], 0x22aa
lea rdx, str.unreachable_code
lea rcx, [rsp + 0x80]
call fcn.1402d94a0
int3