Function at 0x140003938
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x350]
sub rsp, 0x450
xor ebx, ebx
lea rax, str.CI.dll
cmp ecx, 0x23f0
mov qword [rbp + 0x3a0], rbx
mov r12d, ecx
mov qword [rsp + 0x28], rbx
lea r15, str.ntoskrnl.exe
mov dword [rsp + 0x20], ebx
cmovae r15, rax
lea rcx, [rsp + 0x30]
mov rdx, r15
mov edi, ebx
mov r14d, ebx
mov r13d, ebx
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov r8b, 1
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call qword [sym.imp.ntdll.dll_RtlUnicodeStringToAnsiString]
test eax, eax
js 0x140003bb0
call fcn.14000189c
mov rsi, rax
test rax, rax
je 0x140003a42
cmp dword [rax], ebx
jbe 0x140003a1f
lea r12, [rax + 0x2e]
movzx ecx, word [r12]
mov rdx, qword [rsp + 0x28]
mov r13d, edi
imul rax, r13, 0x128
add rax, 0x30
add rax, rsi
add rcx, rax
call fcn.1400013d4
test eax, eax
je 0x140003a07
inc edi
add r12, 0x128
cmp edi, dword [rsi]
jb 0x1400039ce
mov r13d, ebx
jmp 0x140003a18
imul rax, r13, 0x128
mov r14, qword [rax + rsi + 0x18]
mov r13d, dword [rax + rsi + 0x20]
mov r12d, dword [rbp + 0x390]
mov rax, qword gs:[0x30]
mov r8, rsi
xor edx, edx
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rdi, qword [rbp + 0x3a0]
lea rcx, [rsp + 0x20]
call qword [sym.imp.ntdll.dll_RtlFreeAnsiString]
test r14, r14
je 0x140003bb0
mov edx, 0x104
mov word [rsp + 0x40], bx
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x140003bc4
lea rdx, [0x140032530]
lea rcx, [rsp + 0x40]
call fcn.140001398
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.140001398
xor edx, edx
lea rcx, [rsp + 0x40]
lea r8d, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
test rax, rax
je 0x140003b8e
mov rdx, r15
lea rcx, str.___Module___ws__loaded_for_pattern_search_r_n
call fcn.14000220c
mov rcx, rsi
cmp r12d, 0x23f0
jae 0x140003b28
lea rdx, [rbp + 0x398]
mov qword [rbp + 0x398], rbx
call qword [sym.imp.ntdll.dll_LdrFindEntryForAddress]
mov r8d, eax
test eax, eax
js 0x140003b74
mov rax, qword [rbp + 0x398]
mov r8d, 0xc0000001
mov rdx, rbx
mov ecx, dword [rax + 0x40]
add rcx, 0xfffffffffffffffc
je 0x140003b44
cmp dword [rdx + rsi], 0x1d8806eb
je 0x140003b14
inc rdx
cmp rdx, rcx
jb 0x140003b01
jmp 0x140003b44
movsxd rax, dword [rdx + rsi + 4]
lea rdi, [r14 + 8]
add rax, rdx
mov r8d, ebx
add rdi, rax
jmp 0x140003b44
mov r9d, r12d
lea r8, [rbp + 0x3a0]
mov rdx, r14
call fcn.14000350c
mov rdi, qword [rbp + 0x3a0]
mov r8d, eax
test r8d, r8d
js 0x140003b74
cmp rdi, r14
jb 0x140003b5e
mov eax, r13d
add rax, r14
cmp rdi, rax
ja 0x140003b5e
mov rbx, rdi
jmp 0x140003b83
mov r8, rdi
lea rdx, str.____Resolved_address_0x_llX_does_not_belong_required_module._r_n
mov ecx, 1
call fcn.14000e264
jmp 0x140003b83
mov edx, r8d
lea rcx, str.____Failed_to_locate_kernel_variable_address
call fcn.14000f0e0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x140003bab
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, r15
lea rdx, str.____Could_not_load___ws___GetLastError__lu_r_n
mov r9d, eax
mov ecx, 1
call fcn.14000e264
mov rax, rbx
jmp 0x140003bc6
mov r8, r15
lea rdx, str.____Abort__could_not_query___ws__image_base_r_n
mov ecx, 1
call fcn.14000e264
xor eax, eax
mov rbx, qword [rsp + 0x4a8]
add rsp, 0x450
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret