Function at 0x140018610
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov qword [rsp + 0x80], r9
mov ebp, r8d
mov qword [rsp + 0x68], rdx
mov r12d, ecx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov ecx, pe_nt_image_headers64
call fcn.140172a4c
mov rdi, rax
mov rcx, rax
xor edx, edx
call fcn.14013aea0
mov eax, ebp
mov rcx, rax
shl rcx, 4
mov qword [rsp + 0x58], rcx
add rcx, 8
mov qword [rsp + 0x30], rcx
test ebp, ebp
mov qword [rsp + 0x50], rdi
jne 0x1400189f3
lea rax, [rdi + 0x58]
mov qword [rsp + 0x60], rax
xor r13d, r13d
xor r15d, r15d
xor eax, eax
mov qword [rsp + 0x40], rax
mov ebx, r12d
mov rcx, rdi
call fcn.14013ae20
mov rsi, rax
mov r14, qword [rsp + 0x30]
mov qword [rsp + 0x78], rbx
lea rdx, [r14 + rbx]
add rdx, rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0xc8]
mov qword [rbx], rax
lea rcx, [rsp + 0xc0]
mov qword [rcx], rax
mov qword [rsp + 0x20], r13
mov r8, rdx
mov r9, rbx
call fcn.14013afd0
mov rdi, qword [rbx]
lea rbx, [rdi + rsi]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
test r13, r13
jne 0x140018abf
mov dword [rbx], ebp
mov rax, r14
shr rax, 0x20
jne 0x140018b3d
mov dword [rbx + 4], r14d
test ebp, ebp
jne 0x140018874
mov r12, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], 0
mov r15, rbx
lea r13, [rbx + r14]
xor ebp, ebp
mov rax, qword [rsp + 0xa0]
test rax, rax
jne 0x140018b57
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], 0
test rcx, rcx
jne 0x140018b8d
mov rcx, qword [rsp + 0x40]
test rcx, rcx
jne 0x1400189e9
test ebp, ebp
jne 0x140018ba3
mov ecx, 0x88
call fcn.140172a4c
mov rbx, rax
lea rax, [0x140262ba6]
mov qword [rbx + 8], rax
lea rax, str._ze_
mov qword [rbx], rax
mov rdi, qword [rsp + 0x50]
mov qword [rbx + 0x10], rdi
xorps xmm0, xmm0
movups xmmword [rbx + 0x18], xmm0
xor eax, eax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], r12
mov word [rbx + 0x38], 0x100
mov byte [rbx + 0x3a], 1
mov qword [rbx + 0x40], r15
mov rcx, qword [rsp + 0x30]
mov qword [rbx + 0x48], rcx
mov qword [rbx + 0x50], r13
mov rcx, qword [rsp + 0x78]
mov qword [rbx + 0x58], rcx
movups xmmword [rbx + 0x60], xmm0
movups xmmword [rbx + 0x70], xmm0
mov qword [rbx + 0x80], rax
mov eax, dword [0x1402983e0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140018ad4
lock inc dword [0x1402983d0]
mov rcx, qword [rdi + 0x70]
mov qword [rdi + 0x70], rbx
test rcx, rcx
jne 0x140018bdd
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax]
mov qword [rax], rdi
test rcx, rcx
jne 0x140018bf3
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.1401756e0
mov eax, ebp
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x70], rbx
lea r12, [rax + rbx]
add r12, 8
mov r8, qword [rsp + 0x40]
sub r15, r8
movabs rcx, 0x2aaaaaaaaaaaaaab
mov rax, r15
imul rcx
mov r13, rdx
mov rax, rdx
shr rax, 0x3f
sar r13, 1
add r13, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x48], rax
lea rbp, [rsi + rdi]
add rbp, 0x14
lea rbx, [r8 + 8]
xor r15d, r15d
xor r14d, r14d
xor edi, edi
sub r13, 1
jb 0x140018c52
mov rax, qword [rsp + 0x68]
mov rsi, qword [rax + r15]
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x1401d7990.0]
mov rcx, r14
shl rcx, 4
mov rdx, qword [rsp + 0x38]
add rcx, rdx
cmp rdx, qword [rsp + 0x48]
mov dword [rbp + r15 - 0xc], eax
mov eax, dword [rbx - 8]
mov dword [rbp + r15 - 8], eax
mov eax, dword [rbx - 4]
mov dword [rbp + r15 - 4], eax
mov eax, dword [rbx]
mov dword [rbp + r15], eax
mov r9d, 0
cmovne r9, rcx
mov r8, rdi
shl r8, 4
mov rax, qword [rsp + 0x60]
add r8, qword [rax]
mov rax, qword [rsi]
mov rax, qword [rax + 0xc0]
mov rcx, rsi
mov rdx, r12
call qword [case.0x1401d7990.0]
test al, al
je 0x140018c02
mov eax, dword [rbx - 8]
mov ecx, dword [rbx - 4]
add r12, rax
add rdi, rcx
mov eax, dword [rbx]
add r14, rax
add r15, 0x10
add rbx, 0xc
cmp qword [rsp + 0x58], r15
jne 0x1400188dc
mov rcx, qword [rsp + 0xc0]
lea rdx, [rsp + 0x88]
mov rax, qword [rsp + 0x38]
mov qword [rdx], rax
mov rax, qword [rsp + 0x48]
mov qword [rdx + 8], rax
mov rax, qword [rsp + 0xb0]
mov qword [rdx + 0x10], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [case.0x1401d7990.0]
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x70]
jmp 0x14001872a
call fcn.140172a44
jmp 0x140018783
shl rax, 2
lea rsi, [rax + rax*2]
mov rcx, rsi
call fcn.140172a4c
mov rcx, rax
mov qword [rsp + 0x40], rax
lea r15, [rax + rsi]
xor eax, eax
mov rcx, qword [rsp + 0x40]
add rcx, rax
je 0x140018c7e
mov dword [rcx + 8], 0
mov qword [rcx], 0
add rax, 0xc
cmp rsi, rax
jne 0x140018a11
mov rbx, qword [rsp + 0x40]
add rbx, 8
xor edi, edi
xor esi, esi
xor r13d, r13d
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + rdi]
lea rdx, [rbx - 8]
lea r8, [rbx - 4]
mov rax, qword [rcx]
mov rax, qword [rax + 0xb8]
mov r9, rbx
call qword [case.0x1401d7990.0]
mov eax, dword [rbx - 8]
mov ecx, dword [rbx - 4]
add qword [rsp + 0x30], rax
add rsi, rcx
mov eax, dword [rbx]
add r13, rax
add rdi, 0x10
add rbx, 0xc
cmp qword [rsp + 0x58], rdi
jne 0x140018a46
mov rdi, qword [rsp + 0x50]
lea rax, [rdi + 0x58]
mov qword [rsp + 0x60], rax
mov rax, qword [rdi + 0x60]
sub rax, qword [rdi + 0x58]
sar rax, 4
cmp rsi, rax
jbe 0x140018699
mov rcx, rdi
mov rdx, rsi
call fcn.14013b2c0
jmp 0x140018699
lea rcx, [rsp + 0xa0]
mov rdx, r13
call fcn.140018cd0
jmp 0x14001870f
lea rcx, [0x1402983e0]
call fcn.140172b08
cmp dword [0x1402983e0], 0xffffffff
jne 0x14001881f
lea rax, [0x14025ed90]
mov qword [0x1402983d8], rax
lea rsi, [0x1402983d8]
call fcn.140044090
lea rcx, [rsp + 0xa0]
mov byte [rcx], 1
mov qword [rsp + 0x20], rcx
lea r8, str.MojoMessages
mov rcx, rax
mov rdx, rsi
xor r9d, r9d
call fcn.14013d8a0
lea rcx, [0x1402983e0]
call fcn.140172aa8
jmp 0x14001881f
mov ebp, 0xb
xor r12d, r12d
xor r15d, r15d
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x140018747
mov rsi, qword [rsp + 0xa8]
mov rdi, rax
cmp rsi, rax
je 0x140018b80
add rsi, 0xfffffffffffffff0
mov rcx, rsi
call fcn.140163040
cmp rsi, rdi
jne 0x140018b67
mov rdi, qword [rsp + 0xa0]
mov rcx, rdi
call fcn.140172a44
jmp 0x140018758
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x1401d7990.0]
jmp 0x140018775
cmp qword [rsp + 0x50], 0
je 0x140018bba
mov rcx, qword [rsp + 0x50]
mov edx, 1
call fcn.140163510
test r12, r12
je 0x14001884e
mov rax, qword [r12]
mov rax, qword [rax]
mov rcx, r12
mov edx, 1
call qword [case.0x1401d7990.0]
jmp 0x14001884e
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x1401d7990.0]
jmp 0x140018837
mov edx, 1
call fcn.140163510
jmp 0x14001884e
mov rax, qword [rsp + 0x48]
cmp qword [rsp + 0x38], rax
je 0x140018caa
xor r12d, r12d
mov ebp, 3
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
call fcn.140074f50
add rsi, 0x10
mov r15d, 0
mov r13d, 0
mov eax, 0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
cmp rsi, qword [rsp + 0x48]
jne 0x140018c1a
jmp 0x140018747
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.1401b2820
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.1401b2820
mov ebp, 3
xor r12d, r12d
xor r15d, r15d
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x38]
jmp 0x14001874f