Function at 0x1803c9460
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rax, qword [0x1804a9038]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov rax, qword [rdx + 0x98]
cmp rax, qword [rdx + 0xa0]
jne 0x1803c94ba
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.180364a40
nop
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, rdx
mov rsi, rcx
lea rcx, [rsp + 0xa0]
mov qword [rcx], rcx
mov qword [rcx + 8], rcx
mov qword [rcx + 0x10], 0
mov rdi, qword [rsi]
test byte [rdi + 0xc8], 0x10
jne 0x1803c94f2
mov rcx, rdi
call fcn.1803aed40
mov rax, qword [rbx + 0x98]
mov rcx, qword [rdi + 0x120]
mov r8, qword [rax]
lea rdi, [rsp + 0xa0]
mov rdx, rbx
mov r9, rdi
call fcn.1803c4680
movaps xmm0, xmmword [0x1803ff180]
movaps xmmword [rsp + 0x80], xmm0
mov ecx, 0x18
call fcn.180363d5c
test rax, rax
je 0x1803c9a54
mov rbx, rax
mov rbp, rax
add rbp, 0x18
mov dword [rax + 0xc], 0
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x90], rbp
xor eax, eax
mov qword [rbx + 0x10], rax
mov qword [rbx], rax
mov qword [rbx + 5], rax
mov r12, qword [rsp + 0xa8]
cmp r12, rdi
jne 0x1803c959d
mov rcx, rbx
call fcn.180363dac
lea rcx, [rsp + 0xa0]
call fcn.1803af280
jmp 0x1803c9495
mov rbx, qword [rsp + 0x80]
test rbx, rbx
jne 0x1803c9574
jmp 0x1803c957c
lea rax, [rsi + 8]
mov qword [rsp + 0x50], rax
lea rax, [rsi + 0x30]
mov qword [rsp + 0x58], rax
mov ecx, 0xb8
mov r13, rbp
jmp 0x1803c96b3
mov rcx, qword [r14 + 8]
xor eax, eax
cmp byte [rcx + 0x2d], 0
je 0x1803c95d1
movzx edx, byte [rcx + 0x2c]
call fcn.1803b5a80
cmp rbx, r13
je 0x1803c9a80
cmp eax, dword [r13 - 8]
jne 0x1803c95ef
add r13, 0xffffffffffffffe8
mov qword [rsp + 0x88], r13
mov rbp, r13
mov rcx, qword [r14 + 8]
xor eax, eax
cmp byte [rcx + 0x2d], 0
je 0x1803c9604
movzx edx, byte [rcx + 0x2c]
call fcn.1803b5a80
cmp rbx, rbp
je 0x1803c9a80
cmp eax, dword [rbp - 4]
jne 0x1803c9616
mov byte [rbp - 0xc], 1
mov rcx, qword [r14 + 8]
xor eax, eax
cmp byte [rcx + 0x2d], 0
je 0x1803c962b
movzx edx, byte [rcx + 0x2c]
call fcn.1803b5a80
lea rcx, [rbp - 0x18]
mov dword [rsp + 0x68], eax
movups xmm0, xmmword [rcx]
lea rax, [rsp + 0x6c]
movups xmmword [rax], xmm0
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0x68]
mov r9, r8
call fcn.1803c9fb0
mov rcx, r14
call fcn.1803c4370
test rax, rax
jne 0x1803c96f3
mov r14, rbp
mov r13, rbp
mov r15, rbx
mov ecx, 0xb8
jmp 0x1803c969f
mov rcx, r15
call fcn.1803aed40
mov ecx, 0xb8
mov rax, qword [r15 + 0x120]
add rax, rcx
cmp rax, r14
jne 0x1803c95bc
mov r14, rbp
mov r15, rbx
mov r12, qword [r12 + 8]
mov rbp, r14
mov rbx, r15
cmp r12, rdi
je 0x1803c958e
mov r14, qword [r12 + 0x10]
mov r15, qword [rsi]
test byte [r15 + 0xc8], 0x10
je 0x1803c96e4
mov rax, qword [r15 + 0x120]
add rax, 0x30
cmp rax, r14
je 0x1803c9699
mov r15, qword [rsi]
test byte [r15 + 0xc8], 0x10
jne 0x1803c9686
jmp 0x1803c9679
mov rcx, r15
call fcn.1803aed40
mov ecx, 0xb8
jmp 0x1803c96c5
mov r13, rax
movzx eax, byte [rax + 0x2d]
cmp eax, 1
mov edx, 2
sbb edx, 0
cmp byte [r13 + 0x2c], 0
cmove edx, eax
mov rcx, r13
call fcn.1803b5a80
mov dword [rsp + 0x44], eax
mov rcx, qword [r14 + 8]
xor r8d, r8d
cmp byte [rcx + 0x2d], 0
je 0x1803c9732
movzx edx, byte [rcx + 0x2c]
call fcn.1803b5a80
mov r8d, eax
cmp dword [r13 + 0x28], 0xf6
je 0x1803c97a9
mov r9d, dword [rbp - 0x14]
mov r11b, byte [rbp - 0xc]
mov r10d, dword [rbp - 4]
mov rax, qword [r13 + 8]
cmp byte [rax + 0x18], 0
mov ecx, 0
cmovne rax, rcx
cmp dword [rax + 0x28], 0xfb
je 0x1803c976b
mov r14d, dword [rbp - 0x10]
jmp 0x1803c989d
mov rcx, qword [r14 + 8]
xor r14d, r14d
cmp byte [rcx + 0x2d], 0
je 0x1803c989d
movzx edx, byte [rcx + 0x2c]
mov dword [rsp + 0x3c], r8d
mov r15d, r9d
mov r13d, r10d
mov r14d, r11d
call fcn.1803b5a80
mov r11d, r14d
mov r10d, r13d
mov r9d, r15d
mov r8d, dword [rsp + 0x3c]
mov r14d, eax
jmp 0x1803c989d
mov dword [rsp + 0x3c], r8d
mov rcx, qword [r14 + 8]
xor r15d, r15d
cmp byte [rcx + 0x2d], 0
mov eax, 0
je 0x1803c97c9
movzx edx, byte [rcx + 0x2c]
call fcn.1803b5a80
mov dword [rsp + 0x40], eax
movzx eax, byte [r13 + 0x2d]
cmp eax, 1
mov edx, 2
sbb edx, 0
cmp byte [r13 + 0x2c], 0
cmove edx, eax
inc edx
mov rcx, r13
call fcn.1803b5a80
mov r10d, eax
mov rcx, qword [r14 + 8]
cmp byte [rcx + 0x2d], 0
je 0x1803c980e
movzx edx, byte [rcx + 0x2c]
mov r15d, r10d
call fcn.1803b5a80
mov r10d, r15d
mov r15d, eax
xor r11d, r11d
cmp r15d, r10d
jne 0x1803c9890
mov r15d, r10d
mov rcx, qword [r14 + 8]
xor r14d, r14d
cmp byte [rcx + 0x2d], 0
mov eax, 0
je 0x1803c9834
movzx edx, byte [rcx + 0x2c]
call fcn.1803b5a80
mov dword [rsp + 0x64], eax
lea r8, [rsp + 0x64]
mov qword [rsp + 0xb8], r8
lea rax, [rsp + 0xcf]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x68]
lea r9, [0x1803ff2c7]
call fcn.1803ca310
mov rax, qword [rsp + 0x68]
mov byte [rax + 0x20], 1
mov r11b, 1
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x40]
mov r10d, r15d
jmp 0x1803c989d
xor r14d, r14d
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x40]
mov rax, qword [rsp + 0x90]
cmp rbp, rax
movabs rcx, 0xaaaaaaaaaaaaaaab
jae 0x1803c9918
test rbp, rbp
je 0x1803c9a54
mov dword [rbp], r8d
mov dword [rbp + 4], r9d
mov dword [rbp + 8], r14d
mov byte [rbp + 0xc], r11b
mov word [rbp + 0xd], 0xaaaa
mov byte [rbp + 0xf], 0xaa
mov eax, dword [rsp + 0x44]
mov dword [rbp + 0x10], eax
mov dword [rbp + 0x14], r10d
add rbp, 0x18
mov qword [rsp + 0x88], rbp
mov r15, qword [rsp + 0x80]
mov r14, rbp
cmp r15, r14
je 0x1803c9a80
mov rcx, qword [rsp + 0x58]
mov edx, dword [rsp + 0x44]
call fcn.1803ac290
mov r13, r14
jmp 0x1803c9672
mov r15, rbp
sub r15, rbx
sar r15, 3
imul r15, rcx
lea r13, [r15 + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp r13, rdx
ja 0x1803c9aac
sub rax, rbx
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, r13
cmova r13, rcx
movabs rcx, 0x555555555555555
cmp rax, rcx
cmovae r13, rdx
test r13, r13
je 0x1803c99b3
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x4c], r14d
mov dword [rsp + 0x3c], r10d
mov dword [rsp + 0x40], r9d
cmp r13, rdx
ja 0x1803c9ab1
mov r14d, r8d
lea rax, [r13*8]
lea rcx, [rax + rax*2]
call fcn.180363d5c
mov r8d, r14d
mov r9d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x4c]
mov r11d, dword [rsp + 0x48]
jmp 0x1803c99b5
xor eax, eax
lea r15, [r15 + r15*2]
shl r15, 3
add r15, rax
je 0x1803c9a54
lea rcx, [r13*2]
add rcx, r13
lea rax, [rax + rcx*8]
mov dword [r15], r8d
mov dword [r15 + 4], r9d
mov dword [r15 + 8], r14d
mov byte [r15 + 0xc], r11b
mov word [r15 + 0xd], 0xaaaa
mov byte [r15 + 0xf], 0xaa
mov ecx, dword [rsp + 0x44]
mov dword [r15 + 0x10], ecx
mov dword [r15 + 0x14], r10d
lea r14, [r15 + 0x18]
mov rcx, qword [rbp - 8]
mov qword [r15 - 8], rcx
movups xmm0, xmmword [rbp - 0x18]
lea rcx, [rbp - 0x18]
movups xmmword [r15 - 0x18], xmm0
add r15, 0xffffffffffffffe8
mov rbp, rcx
cmp rcx, rbx
jne 0x1803c9a00
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x90], rax
test rcx, rcx
je 0x1803c98f9
call fcn.180363dac
jmp 0x1803c98f9
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, 0x25
call fcn.1803aa860
lea rax, str.back___called_on_an_empty_vector
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._empty__
mov r8d, 0x241
call fcn.1803aa860
call fcn.180007700
call fcn.18039c870
int3