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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push r12
push r14
sub rsp, 0xa8
cmp dword [rcx + 4], 1
mov r14, rdx
mov r12, rcx
jle 0x1400464e0
mov qword [rax - 0x18], rbx
xor r8d, r8d
mov qword [rax - 0x20], rbp
mov qword [rax - 0x28], rsi
mov qword [rax - 0x30], rdi
mov qword [rax - 0x38], r13
mov qword [rax - 0x40], r15
call fcn.1400464f0
mov r8d, dword [r14]
test r8d, r8d
jle 0x140045fba
mov eax, r8d
nop dword [rax]
mov r9, qword [r14 + 8]
mov ecx, eax
imul rdx, rcx, 0x38
cmp dword [rdx + r9 - 0x18], 0
jne 0x140045fba
cmp qword [rdx + r9 - 0x10], 0
jne 0x140045fba
test eax, eax
jne 0x140045fab
mov r8d, 0x7dd
lea rdx, str.C:UsersShovenDesktopmenuimgui.h
lea rcx, str.Size___0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, dword [r14]
lea r8d, [rax - 1]
mov dword [r14], r8d
mov eax, r8d
test r8d, r8d
jg 0x140045f70
mov edx, dword [r12 + 4]
xor r10d, r10d
xor r11d, r11d
mov dword [rsp + 0xd0], r10d
mov dword [rsp + 0xc0], r11d
test edx, edx
jle 0x140045ff9
test r8d, r8d
jle 0x140045ff9
lea eax, [r8 - 1]
movsxd rcx, eax
imul r13, rcx, 0x38
add r13, qword [r14 + 8]
je 0x140045ffc
mov esi, dword [r13 + 0x20]
add esi, dword [r13 + 0x1c]
jmp 0x140045ffe
xor r13d, r13d
xor esi, esi
mov eax, 1
mov dword [rsp + 0xd8], eax
lea r15d, [rax + 0x1f]
cmp edx, eax
jle 0x140046233
mov ecx, eax
mov qword [rsp + 0x20], rax
mov ebx, r15d
movabs r14, 0x4924924924924925
nop word [rax + rax]
test rcx, rcx
js 0x14004603c
cmp eax, dword [r12 + 8]
jl 0x140046066
mov r8d, 0x7c7
lea rdx, str.C:UsersShovenDesktopmenuimgui.h
lea rcx, str.i___0__i___Size
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov r10d, dword [rsp + 0xd0]
mov r11d, dword [rsp + 0xc0]
mov rdi, qword [r12 + 0x10]
movsxd rbp, dword [rbx + rdi]
test ebp, ebp
jle 0x14004609c
mov r8, qword [rbx + rdi + 8]
mov rcx, rbp
imul rax, rbp, 0x38
mov rdx, rbp
cmp dword [rax + r8 - 0x18], 0
jne 0x14004609c
imul rax, rdx, 0x38
cmp qword [rax + r8 - 0x10], 0
jne 0x14004609c
lea ebp, [rcx - 1]
mov dword [rbx + rdi], ebp
mov r15d, ebp
test ebp, ebp
jle 0x1400461de
test r13, r13
je 0x14004616f
mov rax, qword [rbx + rdi + 8]
mov r8d, Ordinal_32
mov rdx, rax
mov qword [rsp + 0x28], rax
mov rcx, r13
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14004616f
cmp qword [r13 + 0x28], 0
jne 0x14004616f
mov rcx, qword [rsp + 0x28]
cmp qword [rcx + 0x28], 0
jne 0x14004616f
mov eax, dword [rcx + 0x20]
add dword [r13 + 0x20], eax
add esi, dword [rcx + 0x20]
mov rbp, qword [rbx + rdi + 8]
movsxd r8, dword [rbx + rdi]
mov r9, rbp
imul rcx, r8, 0x38
add rcx, rbp
cmp rbp, rcx
jb 0x140046133
mov r8d, 0x7df
lea rdx, str.C:UsersShovenDesktopmenuimgui.h
lea rcx, [0x140155928]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov r9, qword [rbx + rdi + 8]
mov r8d, dword [rbx + rdi]
sub rbp, r9
mov rax, r14
imul rbp
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r8d
imul rcx, rdx, 0x38
sub rax, rdx
imul r8, rax, 0x38
add rcx, r9
sub r8, 0x38
lea rdx, [rcx + 0x38]
call sub.VCRUNTIME140.dll_memmove
dec dword [rbx + rdi]
mov r15d, dword [rbx + rdi]
mov r10d, dword [rsp + 0xd0]
mov r11d, dword [rsp + 0xc0]
test r15d, r15d
jle 0x1400461de
mov r9, qword [rbx + rdi + 8]
lea eax, [r15 - 1]
add r10d, r15d
movsxd rcx, eax
imul r13, rcx, 0x38
xor edx, edx
mov dword [rsp + 0xd0], r10d
add r13, r9
xor r8d, r8d
add r11d, dword [rbx + rdi + 0x10]
mov dword [rsp + 0xc0], r11d
nop dword [rax]
nop dword [rax + rax]
mov dword [rdx + r9 + 0x1c], esi
lea rdx, [rdx + 0x38]
mov r9, qword [rbx + rdi + 8]
inc r8d
add esi, dword [rdx + r9 - 0x18]
cmp r8d, dword [rbx + rdi]
jl 0x1400461c0
jmp 0x1400461f6
add r10d, r15d
add r11d, dword [rbx + rdi + 0x10]
mov dword [rsp + 0xc0], r11d
mov dword [rsp + 0xd0], r10d
mov eax, dword [rsp + 0xd8]
add rbx, 0x20
mov rcx, qword [rsp + 0x20]
inc eax
inc rcx
mov dword [rsp + 0xd8], eax
mov qword [rsp + 0x20], rcx
cmp eax, dword [r12 + 4]
jl 0x140046030
mov r14, qword [rsp + 0xc8]
mov r15d, reloc.WLDAP32.dll_Ordinal_32
mov r8d, dword [r14]
lea edx, [r8 + r10]
mov rcx, r14
call fcn.140038680
mov edx, dword [r14 + 0x10]
lea rbp, [r14 + 0x10]
movsxd rbx, dword [rsp + 0xc0]
mov rcx, rbp
add edx, ebx
call fcn.140039160
movsxd rax, dword [rsp + 0xd0]
mov esi, 1
movsxd rdx, dword [r14]
mov rcx, rdx
sub rcx, rax
mov rax, qword [r14 + 0x18]
imul r13, rcx, 0x38
movsxd rcx, dword [rbp]
add r13, qword [r14 + 8]
sub rcx, rbx
lea rdi, [rax + rcx*2]
mov qword [rsp + 0xc0], rdi
cmp dword [r12 + 4], esi
jle 0x140046341
mov ebp, esi
nop dword [rax + rax]
test rbp, rbp
js 0x1400462ac
cmp esi, dword [r12 + 8]
jl 0x1400462c6
mov r8d, 0x7c7
lea rdx, str.C:UsersShovenDesktopmenuimgui.h
lea rcx, str.i___0__i___Size
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov rdi, qword [r12 + 0x10]
movsxd rax, dword [r15 + rdi]
test eax, eax
je 0x1400462ea
mov rdx, qword [r15 + rdi + 8]
mov rcx, r13
imul rbx, rax, 0x38
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r13, rbx
movsxd rax, dword [r15 + rdi + 0x10]
test eax, eax
je 0x14004631e
mov rdx, qword [r15 + rdi + 0x18]
mov rbx, rax
mov rdi, qword [rsp + 0xc0]
add rbx, rbx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
add rdi, rbx
mov qword [rsp + 0xc0], rdi
jmp 0x140046326
mov rdi, qword [rsp + 0xc0]
inc esi
inc rbp
add r15, 0x20
cmp esi, dword [r12 + 4]
jl 0x1400462a0
mov edx, dword [r14]
lea rbp, [r14 + 0x10]
mov r15, qword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x90]
mov qword [r14 + 0x48], rdi
mov rdi, qword [rsp + 0x88]
test edx, edx
je 0x140046398
jg 0x140046385
mov r8d, 0x7d0
lea rdx, str.C:UsersShovenDesktopmenuimgui.h
lea rcx, str.Size___0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [r14]
movsxd rax, edx
imul rcx, rax, 0x38
mov rax, qword [r14 + 8]
cmp qword [rcx + rax - 0x10], 0
je 0x14004640c
movups xmm1, xmmword [r14 + 0x60]
mov rax, qword [r14 + 0x70]
xorps xmm0, xmm0
mov qword [rsp + 0x40], rax
mov eax, dword [r14 + 0x78]
movdqu xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x48], eax
mov eax, dword [rbp]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
comiss xmm0, xmm1
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x4c], eax
movups xmmword [rsp + 0x30], xmm1
jb 0x1400463e5
movss xmm0, dword [rsp + 0x3c]
comiss xmm0, dword [rsp + 0x34]
jae 0x1400463ff
mov r8d, 0x1dc
lea rdx, str.C:UsersShovenDesktopmenuimgui_draw.cpp
lea rcx, str.draw_cmd.ClipRect.x___draw_cmd.ClipRect.z__draw_cmd.ClipRect.y___draw_cmd.ClipRect.w
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400385b0
movsxd rax, dword [r14]
imul rcx, rax, 0x38
add rcx, 0xffffffffffffffc8
add rcx, qword [r14 + 8]
cmp dword [rcx + 0x20], 0
jne 0x140046440
movups xmm0, xmmword [r14 + 0x60]
movups xmmword [rcx], xmm0
movsd xmm1, qword [r14 + 0x70]
movsd qword [rcx + 0x10], xmm1
mov eax, dword [r14 + 0x78]
mov dword [rcx + 0x18], eax
jmp 0x1400464c7
mov r8d, Ordinal_32
lea rdx, [r14 + 0x60]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1400464c7
movups xmm1, xmmword [r14 + 0x60]
mov rax, qword [r14 + 0x70]
xorps xmm0, xmm0
mov qword [rsp + 0x40], rax
mov eax, dword [r14 + 0x78]
movdqu xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x48], eax
mov eax, dword [rbp]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
comiss xmm0, xmm1
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x4c], eax
movups xmmword [rsp + 0x30], xmm1
jb 0x1400464a0
movss xmm0, dword [rsp + 0x3c]
comiss xmm0, dword [rsp + 0x34]
jae 0x1400464ba
mov r8d, 0x1dc
lea rdx, str.C:UsersShovenDesktopmenuimgui_draw.cpp
lea rcx, str.draw_cmd.ClipRect.x___draw_cmd.ClipRect.z__draw_cmd.ClipRect.y___draw_cmd.ClipRect.w
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400385b0
mov rbp, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
mov dword [r12 + 4], 1
add rsp, 0xa8
pop r14
pop r12
ret