Function at 0x1401b2790
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov r12, r9
mov ebx, r8d
mov qword [rsp + 0x70], rdx
mov r15d, ecx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov ecx, pe_nt_image_headers64
call fcn.14016ecd4
mov rdi, rax
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov qword [rax + 0x30], 0xffffffffffffffff
lea rax, str._._n_
mov qword [rdi], rax
movups xmmword [rdi + 0x38], xmm0
movups xmmword [rdi + 0x48], xmm0
movups xmmword [rdi + 0x58], xmm0
movups xmmword [rdi + 0x68], xmm0
mov eax, ebx
mov rcx, rax
shl rcx, 4
mov qword [rsp + 0x58], rcx
lea r13, [rcx + 8]
test ebx, ebx
mov dword [rsp + 0x50], ebx
jne 0x1401b2c06
lea rax, [rdi + 0x58]
mov qword [rsp + 0x68], rax
xor ebp, ebp
xor eax, eax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov esi, r15d
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
lea rcx, [0x14021f870]
cmp rax, rcx
mov qword [rsp + 0x80], r12
jne 0x1401b2bcf
mov rax, qword [rdi + 0x60]
sub rax, qword [rdi + 0x58]
sar rax, 4
mov ecx, 0x70
mul rcx
jo 0x1401b301e
mov r15, rax
add r15, 0x10
jb 0x1401b3027
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x78], rsi
lea rax, [rsi + r13]
lea rcx, [r15 + rax]
add rcx, 0x30
lea r14, [r15 + rax]
add r14, 0x38
cmp r14, rcx
mov rax, rcx
cmova rax, r14
test rcx, rcx
mov ebx, 8
cmovne rbx, rax
mov ecx, 0x48
call fcn.14016ecd4
mov r12, rax
lea rax, [0x140300228]
mov qword [r12], rax
mov rdx, rbp
mov qword [r12 + 0x20], rbp
lea rax, [rbp*4]
and eax, 4
mov ecx, 8
sub ecx, eax
mov eax, edx
and eax, 1
neg eax
and eax, ecx
lea rcx, [rax + rbp*4]
lea rsi, [rax + rbp*4]
add rsi, 0x10
lea rbx, [rbx + rcx + 0x10]
xorps xmm0, xmm0
movups xmmword [r12 + 0x28], xmm0
movups xmmword [r12 + 0x38], xmm0
mov qword [r12 + 0x18], rbx
add r14, rsi
mov qword [r12 + 8], r14
mov eax, dword [0x140352b68]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401b2ee0
lea rcx, [0x140352b50]
mov rdx, rbx
call fcn.140158830
test rax, rax
je 0x1401b2f6a
mov qword [r12 + 0x10], rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call fcn.140173760
mov ebx, dword [r12 + 8]
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
mov rcx, r12
call qword [case.0x140211850.0]
mov dword [rax], ebx
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
mov rcx, r12
call qword [case.0x140211850.0]
mov word [rax + 6], 1
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
mov rcx, r12
call qword [case.0x140211850.0]
mov word [rax + 4], si
cmp qword [r12 + 0x20], 0
je 0x1401b2a30
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
mov rcx, r12
call qword [case.0x140211850.0]
mov rsi, rax
add rsi, 0x10
mov rcx, qword [r12 + 0x40]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x1401b29f0
call fcn.1401571d0
mov rax, qword [0x1403428e0]
and rax, rsi
cmp rax, qword [0x1403428c8]
jne 0x1401b2a0b
mov rcx, rsi
call fcn.140156f20
mov qword [r12 + 0x40], rsi
cmp qword [r12 + 0x20], 0
je 0x1401b2a30
xor eax, eax
mov rcx, qword [r12 + 0x40]
mov dword [rcx + rax*4], 0xffffffff
inc rax
cmp rax, qword [r12 + 0x20]
jb 0x1401b2a1a
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
lea rsi, [0x1400a4bf0]
cmp rax, rsi
jne 0x1401b2f6d
mov rcx, rbp
mov r13, qword [r12 + 0x10]
cmp word [r13 + 6], 0
mov rax, r13
je 0x1401b3145
movzx ebx, word [rax + 4]
add rbx, r13
mov rsi, qword [rsp + 0x28]
mov ebp, dword [rsp + 0x50]
mov qword [rbx], 5
test rcx, rcx
mov r13, qword [rsp + 0x38]
jne 0x1401b2e40
xor r8d, r8d
xor edx, edx
lea rax, [r15 + 0x30]
lea rcx, [rbx + rax]
add rcx, 8
mov qword [rsp + 0x60], rcx
mov dword [rcx], ebp
mov rcx, rsi
shr rcx, 0x20
jne 0x1401b2f1f
add rax, rbx
mov dword [rax + 0xc], esi
test ebp, ebp
jne 0x1401b2ccd
mov r15, qword [rsp + 0x60]
lea rbx, [r15 + rsi]
xor esi, esi
mov r14b, 1
xor ebp, ebp
test r8, r8
jne 0x1401b2fa2
test rsi, rsi
jne 0x1401b2fe0
test r13, r13
jne 0x1401b2e28
test r14b, r14b
je 0x1401b2f3e
mov ecx, 0x88
call fcn.14016ecd4
mov rsi, rax
lea rax, [0x140306193]
mov qword [rsi + 8], rax
lea rax, [0x1402fe5a0]
mov qword [rsi], rax
mov qword [rsi + 0x10], rdi
xorps xmm0, xmm0
movups xmmword [rsi + 0x18], xmm0
xor eax, eax
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], r12
mov word [rsi + 0x38], 0x100
mov byte [rsi + 0x3a], 1
mov qword [rsi + 0x40], r15
mov rcx, qword [rsp + 0x28]
mov qword [rsi + 0x48], rcx
mov qword [rsi + 0x50], rbx
mov rcx, qword [rsp + 0x78]
mov qword [rsi + 0x58], rcx
movups xmmword [rsi + 0x60], xmm0
movups xmmword [rsi + 0x70], xmm0
mov qword [rsi + 0x80], rax
mov eax, dword [0x1403513a8]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401b2e87
lock inc dword [0x140351398]
mov rcx, qword [rdi + 0x70]
mov qword [rdi + 0x70], rsi
test rcx, rcx
mov rsi, qword [rsp + 0x80]
jne 0x1401b2ff9
mov rcx, qword [rsi]
mov qword [rsi], rdi
test rcx, rcx
jne 0x1401b300f
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.140171860
mov eax, ebp
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x14015f500]
cmp rax, rcx
je 0x1401b2e35
mov r15d, 0x40
lea rcx, [0x14021f920]
cmp rax, rcx
je 0x1401b2884
mov rcx, rdi
call qword [case.0x140211850.0]
mov r15, rax
jmp 0x1401b2884
shl rax, 2
lea rsi, [rax + rax*2]
mov rcx, rsi
call fcn.14016ecd4
lea rdx, [rax + rsi]
xor r8d, r8d
mov rcx, rax
add rcx, r8
je 0x1401b305a
mov dword [rcx + 8], 0
mov qword [rcx], 0
add r8, 0xc
cmp rsi, r8
jne 0x1401b2c1d
mov qword [rsp + 0x48], rdx
mov rcx, rax
mov qword [rsp + 0x38], rax
mov rbx, rax
add rbx, 8
xor r14d, r14d
xor esi, esi
xor ebp, ebp
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + r14]
lea rdx, [rbx - 8]
lea r8, [rbx - 4]
mov rax, qword [rcx]
mov rax, qword [rax + 0xb8]
mov r9, rbx
call qword [case.0x140211850.0]
mov eax, dword [rbx - 8]
mov ecx, dword [rbx - 4]
add r13, rax
add rsi, rcx
mov eax, dword [rbx]
add rbp, rax
add r14, 0x10
add rbx, 0xc
cmp qword [rsp + 0x58], r14
jne 0x1401b2c5b
lea rax, [rdi + 0x58]
mov qword [rsp + 0x68], rax
mov rax, qword [rdi + 0x60]
sub rax, qword [rdi + 0x58]
sar rax, 4
cmp rsi, rax
jbe 0x1401b283b
mov rcx, rdi
mov rdx, rsi
call fcn.1400a2b40
jmp 0x1401b283b
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x40], rdx
mov rcx, qword [rsp + 0x58]
lea r8, [rcx + rax]
add r8, 0x10
mov rax, qword [rsp + 0x48]
sub rax, r13
movabs rcx, 0x2aaaaaaaaaaaaaab
imul rcx
mov rsi, rdx
mov rax, rdx
shr rax, 0x3f
sar rsi, 1
add rsi, rax
lea rax, [r15 + rbx]
add rax, 0x4c
mov qword [rsp + 0x48], rax
mov rbx, r8
lea r15, [r13 + 8]
xor r13d, r13d
xor r14d, r14d
xor ebp, ebp
mov qword [rsp + 0x50], rbx
sub rsi, 1
jb 0x1401b3086
mov rax, qword [rsp + 0x70]
mov rbx, qword [rax + r13]
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
call qword [case.0x140211850.0]
mov rcx, r14
shl rcx, 4
mov rdx, qword [rsp + 0x30]
add rcx, rdx
cmp rdx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov dword [rdx + r13 - 0xc], eax
mov eax, dword [r15 - 8]
mov dword [rdx + r13 - 8], eax
mov eax, dword [r15 - 4]
mov dword [rdx + r13 - 4], eax
mov eax, dword [r15]
mov dword [rdx + r13], eax
mov r9d, 0
cmovne r9, rcx
mov r8, rbp
shl r8, 4
mov rax, qword [rsp + 0x68]
add r8, qword [rax]
mov rax, qword [rbx]
mov rax, qword [rax + 0xc0]
mov rcx, rbx
mov rbx, qword [rsp + 0x50]
mov rdx, rbx
call qword [case.0x140211850.0]
test al, al
je 0x1401b30b2
mov eax, dword [r15 - 8]
mov ecx, dword [r15 - 4]
add rbx, rax
add rbp, rcx
mov eax, dword [r15]
add r14, rax
add r13, 0x10
add r15, 0xc
cmp qword [rsp + 0x58], r13
jne 0x1401b2d25
lea rdx, [rsp + 0x88]
mov rax, qword [rsp + 0x30]
mov qword [rdx], rax
mov rax, qword [rsp + 0x40]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rax
mov rax, qword [r12]
mov rax, qword [rax + 0x30]
mov rcx, r12
call qword [case.0x140211850.0]
xor r8d, r8d
xor edx, edx
mov r13, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x28]
jmp 0x1401b2ab7
mov rcx, r13
call fcn.14016eccc
jmp 0x1401b2ae2
mov r15d, 8
jmp 0x1401b2884
mov rax, rcx
shr rax, 0x3c
jne 0x1401b312b
shl rcx, 4
mov r14, rcx
call fcn.14016ecd4
mov rdx, r14
mov r8, rax
add rdx, rax
test rax, rax
je 0x1401b305a
mov dword [rax], 0
mov qword [rax + 8], 0
add rax, 0x10
cmp rax, rdx
jne 0x1401b2e62
jmp 0x1401b2a89
lea rcx, [0x1403513a8]
call fcn.14016f8b4
cmp dword [0x1403513a8], 0xffffffff
jne 0x1401b2b7a
lea rax, [0x1402ff4d8]
mov qword [0x1403513a0], rax
lea rbx, [0x1403513a0]
call fcn.14008fb10
lea r8, str.MojoMessages
mov rcx, rax
mov rdx, rbx
xor r9d, r9d
call fcn.140041ab0
lea rcx, [0x1403513a8]
call fcn.14016ef8c
jmp 0x1401b2b7a
lea rcx, [0x140352b68]
call fcn.14016f8b4
cmp dword [0x140352b68], 0xffffffff
jne 0x1401b2945
xorps xmm0, xmm0
movups xmmword [0x140352b50], xmm0
mov qword [0x140352b60], 0
lea rcx, [0x140352b68]
call fcn.14016ef8c
jmp 0x1401b2945
mov ebp, 0xb
xor r15d, r15d
mov rsi, r12
xor r12d, r12d
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x28], rax
xor r14d, r14d
jmp 0x1401b2ac7
test rdi, rdi
jne 0x1401b3130
test r12, r12
je 0x1401b2ba9
mov rax, qword [r12]
mov rax, qword [rax]
mov rcx, r12
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x1401b2ba9
int3
mov rcx, r12
call qword [case.0x140211850.0]
mov rcx, rax
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
cmp word [rcx + 6], 0
je 0x1401b3142
cmp rax, rsi
jne 0x1401b3030
mov r13, qword [r12 + 0x10]
mov rax, r13
jmp 0x1401b3052
mov qword [rsp + 0x60], r15
mov r13, r8
cmp rdx, r8
je 0x1401b2fc9
mov rax, rdx
mov r15, rax
add r15, 0xfffffffffffffff0
mov rcx, r15
call fcn.140066ba2
mov rax, r15
cmp r15, r13
jne 0x1401b2fb2
mov rcx, r13
call fcn.14016eccc
mov r13, qword [rsp + 0x38]
mov r15, qword [rsp + 0x60]
jmp 0x1401b2ad0
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x1401b2ad9
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x1401b2b9a
mov edx, 1
call fcn.1400a2e60
jmp 0x1401b2ba9
int3
int3
mov rcx, r12
call qword [case.0x140211850.0]
mov r13, rax
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
cmp rax, rsi
jne 0x1401b3160
mov rax, qword [r12 + 0x10]
mov rcx, rbp
jmp 0x1401b2a5f
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.1401c469a
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x587
call fcn.1401c469a
mov ebp, 3
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x40]
je 0x1401b3104
mov rsi, qword [rsp + 0x30]
mov rcx, rsi
call fcn.1400788ae
add rsi, 0x10
cmp rsi, qword [rsp + 0x40]
jne 0x1401b30c8
mov rsi, r12
xor r12d, r12d
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x28], rax
xor r14d, r14d
mov r13, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
xor r15d, r15d
mov r8, qword [rsp + 0x30]
jmp 0x1401b2ac7
xor r15d, r15d
mov rsi, r12
mov r8, qword [rsp + 0x30]
mov rdx, r8
xor r12d, r12d
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x28], rax
xor r14d, r14d
mov r13, qword [rsp + 0x38]
jmp 0x1401b2ac7
call fcn.14016fee0
mov rcx, rdi
mov edx, 1
call fcn.1400a2e60
jmp 0x1401b2f47
mov rsi, rax
mov rcx, r12
mov rax, rsi
call qword [case.0x140211850.0]
mov rcx, rbp
mov rbx, rax
add rbx, 8
jmp 0x1401b2a66
mov rcx, r12
call qword [case.0x140211850.0]
jmp 0x1401b3052