Function at 0x41f3e0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov r14, rdx
mov rbx, r8
mov r12, rcx
call fcn.0049fe50
cmp qword [r14 + 8], 0
mov dword [rbx], 0
mov qword [rbx + 8], rax
mov rdi, rax
jne 0x41f5e0
lea r13, [rsp + 0xb0]
lea rsi, [rsp + 0xc0]
xor r8d, r8d
xor edx, edx
mov rcx, r13
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], 0
mov word [rsp + 0xc0], r8w
call fcn.004aa550
mov edx, 2
mov rcx, r13
mov qword [rsp + 0xd0], 0
call fcn.0041bdf0
mov qword [rbx + 8], rdi
mov rbp, qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xor edx, edx
xor ecx, ecx
mov dword [rbx], 0
call rbp
mov eax, eax
lea rcx, [rax + rax + 2]
mov r15, rax
call fcn.004b9d20
mov r14, rax
mov rdx, rax
mov ecx, r15d
call rbp
test eax, eax
jne 0x41f8b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rbx + 8], rdi
xor ecx, ecx
lea rdi, [rsp + 0x60]
lea rbp, [rsp + 0x80]
mov dword [rbx], eax
lea r15, [rsp + 0x50]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0
mov word [rsp + 0x60], cx
mov qword [rsp + 0x70], 0
mov rcx, r14
call fcn.004b9cf0
mov r8, rbx
mov rdx, r15
mov rcx, rbp
call fcn.0041f3e0
mov rax, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
lea r15, [r12 + 0x10]
mov qword [r12], r15
lea rbx, [rax + rax]
mov rax, r14
add rax, rbx
je 0x41f525
test r14, r14
je 0x41fc1f
mov rbp, rbx
mov rcx, r15
sar rbp, 1
mov qword [rsp + 0x48], rbp
mov rax, rbp
cmp rbx, 0xe
ja 0x41fa20
cmp rbp, 1
je 0x41fa10
test rbp, rbp
jne 0x41f9c0
xor r14d, r14d
mov qword [r12 + 8], rax
mov rdx, r13
mov word [rcx + rax*2], r14w
mov rax, qword [rsp + 0xa0]
mov rcx, r12
mov qword [r12 + 0x20], rax
call fcn.00401620
mov rcx, qword [rsp + 0x80]
lea rax, [rsp + 0x90]
cmp rcx, rax
je 0x41f59f
mov rax, qword [rsp + 0x90]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
mov rcx, qword [rsp + 0x50]
cmp rcx, rdi
je 0x41f5b8
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
mov rcx, qword [rsp + 0xb0]
cmp rcx, rsi
je 0x41f896
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
jmp 0x41f896
mov rcx, qword [r14]
mov rbp, qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call rbp
mov esi, eax
test eax, eax
je 0x41f867
mov eax, eax
lea r15, [rax + rax]
mov rcx, r15
mov qword [rsp + 0x38], r15
call fcn.004b9d50
mov r8, r15
xor edx, edx
mov r15, rax
mov rcx, rax
mov qword [rsp + 0x30], rax
call fcn.00419548
mov rcx, qword [r14]
xor r9d, r9d
mov r8, r15
mov edx, esi
call rbp
test eax, eax
je 0x41f858
cmp esi, eax
jbe 0x41f858
mov eax, eax
lea rsi, [rsp + 0xc0]
lea r13, [rsp + 0xb0]
mov qword [rsp + 0xb0], rsi
lea rbx, [rax + rax]
mov qword [rsp + 0x80], rax
cmp rax, 7
ja 0x41fa9f
cmp rbx, 2
jne 0x41fc17
mov rdi, qword [rsp + 0x30]
xor ebp, ebp
movzx edx, word [rdi]
lea rdi, [rsp + 0x60]
mov word [rsp + 0xc0], dx
mov word [rsp + rax*2 + 0xc0], bp
mov qword [rsp + 0x50], rdi
movdqu xmm1, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x60], xmm1
lea r15, [rsp + 0x50]
xor ebx, ebx
mov edx, 2
mov qword [rsp + 0x58], rax
mov rcx, r15
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], 0
mov word [rsp + 0xc0], bx
mov qword [rsp + 0x70], 0
call fcn.0041bdf0
mov rcx, qword [rsp + 0xb0]
cmp rcx, rsi
je 0x41f70c
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
xor r11d, r11d
mov edx, 1
mov rcx, r13
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], 0
mov word [rsp + 0xc0], r11w
call fcn.004aa550
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
mov edx, 7
cmp rax, rsi
lea rbp, [rbx + 1]
cmovne rdx, qword [rsp + 0xc0]
cmp rbp, rdx
ja 0x41fa78
mov r9d, 0x2e
xor r10d, r10d
mov edx, 2
mov rcx, r13
mov word [rax + rbx*2], r9w
mov qword [rsp + 0xb8], rbp
mov word [rax + rbx*2 + 2], r10w
mov qword [rsp + 0xd0], 0
call fcn.0041bdf0
lea rbp, [rsp + 0x80]
mov rdx, r14
mov rcx, rbp
call fcn.00425e10
mov rcx, rbp
mov rdx, r13
call fcn.00425820
mov rcx, qword [rsp + 0x80]
mov ebx, eax
lea rax, [rsp + 0x90]
cmp rcx, rax
je 0x41f7e3
mov rax, qword [rsp + 0x90]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
mov rcx, qword [rsp + 0xb0]
cmp rcx, rsi
je 0x41f802
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
test ebx, ebx
je 0x41fb1a
lea rax, [r12 + 0x10]
mov qword [r12], rax
mov rax, qword [rsp + 0x50]
cmp rax, rdi
je 0x41fbd5
mov qword [r12], rax
mov rax, qword [rsp + 0x60]
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov qword [r12 + 8], rax
mov rax, qword [rsp + 0x70]
mov qword [r12 + 0x20], rax
call fcn.004b9d10
jmp 0x41f896
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.004b9d10
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rbx + 8], rdi
mov dword [rbx], eax
lea rax, [r12 + 0x10]
mov qword [r12], rax
xor eax, eax
mov qword [r12 + 8], 0
mov word [r12 + 0x10], ax
mov qword [r12 + 0x20], 0
mov rax, r12
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x90]
mov rcx, r14
lea rbp, [rsp + 0x80]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x80], rax
call sub.msvcrt.dll_wcslen
add rax, rax
mov rdi, rax
mov qword [rsp + 0x38], rax
sar rdi, 1
mov qword [rsp + 0x50], rdi
cmp rax, 0xe
ja 0x41f9e0
mov rcx, qword [rsp + 0x80]
mov rax, rdi
lea r15, [rsp + 0x50]
cmp rdi, 1
je 0x41fa50
test rdi, rdi
je 0x41f92b
mov r8, qword [rsp + 0x38]
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x80]
xor edx, edx
lea rdi, [rsp + 0x60]
mov word [rcx + rax*2], dx
mov qword [rsp + 0x50], rdi
cmp rcx, qword [rsp + 0x30]
je 0x41fa60
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rax
mov rcx, r15
mov rax, qword [rsp + 0x30]
mov edx, 1
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x80], rax
xor eax, eax
mov word [rsp + 0x90], ax
mov qword [rsp + 0x70], 0
call fcn.0041bdf0
mov rcx, qword [rsp + 0x80]
cmp rcx, qword [rsp + 0x30]
je 0x41f4e1
mov rax, qword [rsp + 0x90]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
jmp 0x41f4e1
mov r8, rbx
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x48]
mov rcx, qword [r12]
jmp 0x41f553
lea r15, [rsp + 0x50]
xor r8d, r8d
mov rcx, rbp
mov rdx, r15
call fcn.004aa870
mov qword [rsp + 0x80], rax
mov rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x90], rax
jmp 0x41f902
movzx edx, word [r14]
mov word [rcx], dx
jmp 0x41f553
lea rdx, [rsp + 0x48]
xor r8d, r8d
mov rcx, r12
call fcn.004aa870
mov qword [r12], rax
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [r12 + 0x10], rax
jmp 0x41f540
movzx edx, word [r14]
mov word [rcx], dx
jmp 0x41f92b
movdqu xmm0, xmmword [rsp + 0x90]
movups xmmword [rsp + 0x60], xmm0
jmp 0x41f958
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, r13
mov qword [rsp + 0x20], 1
call fcn.004aa8f0
mov rax, qword [rsp + 0xb0]
jmp 0x41f767
lea rdx, [rsp + 0x80]
xor r8d, r8d
mov rcx, r13
call fcn.004aa870
mov qword [rsp + 0xb0], rax
mov rcx, rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xc0], rax
mov rdx, qword [rsp + 0x30]
mov r8, rbx
xor edi, edi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x80]
mov word [rdx + rax*2], di
lea rdi, [rsp + 0x60]
mov qword [rsp + 0x50], rdi
cmp rdx, rsi
je 0x41f6a1
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0xc0]
mov qword [rsp + 0x60], rdx
jmp 0x41f6af
xor r8d, r8d
mov edx, 1
mov rcx, r13
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], 0
mov word [rsp + 0xc0], r8w
call fcn.004aa550
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
mov edx, 7
cmp rax, rsi
lea rbp, [rbx + 1]
cmovne rdx, qword [rsp + 0xc0]
cmp rbp, rdx
ja 0x41fbf0
mov edx, 0x2e
xor ecx, ecx
mov word [rax + rbx*2], dx
mov edx, 2
mov qword [rsp + 0xb8], rbp
mov word [rax + rbx*2 + 2], cx
mov rcx, r13
mov qword [rsp + 0xd0], 0
call fcn.0041bdf0
mov rdx, r13
mov rcx, r15
call fcn.00401620
mov rcx, qword [rsp + 0xb0]
cmp rcx, rsi
je 0x41f80a
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + rax + 2]
call fcn.004b9d10
jmp 0x41f80a
movdqu xmm2, xmmword [rsp + 0x60]
movups xmmword [r12 + 0x10], xmm2
jmp 0x41f82f
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, r13
mov qword [rsp + 0x20], 1
call fcn.004aa8f0
mov rax, qword [rsp + 0xb0]
jmp 0x41fb71
mov rcx, rsi
jmp 0x41facd
lea rcx, section..rdata
call fcn.004bb930
mov rcx, qword [rsp + 0xb0]
mov rbx, rax
cmp rcx, rsi
je 0x41fc4f
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.004b9d10
mov rcx, qword [rsp + 0x50]
cmp rcx, rdi
je 0x41fc6a
mov rax, qword [rsp + 0x60]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.004b9d10
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
call fcn.004b9d10
mov rcx, rbx
call fcn.0040ed80
mov r12, rax
mov rcx, qword [rsp + 0x80]
lea rax, [rsp + 0x90]
cmp rcx, rax
je 0x41fcad
mov rax, qword [rsp + 0x90]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.004b9d10
mov rcx, qword [rsp + 0x50]
cmp rcx, rdi
je 0x41fd67
mov rax, qword [rsp + 0x60]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.004b9d10
jmp 0x41fd67
mov rcx, qword [rsp + 0xb0]
cmp rcx, rsi
je 0x41fd88
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.004b9d10
mov rcx, r12
call fcn.0040ed80
mov r12, rax
jmp 0x41fd67