Function at 0x4b2fa0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov dword [rsp + 0x80], ecx
mov rdi, rdx
call fcn.00480ce0
mov edx, 1
lea rcx, [0x004ad650]
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
mov dword [rsp + 0x20], pe_nt_image_headers64
xor r8d, r8d
mov r9d, 0x80000000
mov edx, 0xfffffff6
lea rcx, str.GIT_REDIRECT_STDIN
call fcn.004ab570
mov r9d, 0x40000000
mov r8d, 1
mov dword [rsp + 0x20], pe_nt_image_headers64
mov edx, 0xfffffff5
lea rcx, str.GIT_REDIRECT_STDOUT
call fcn.004ab570
mov r9d, 0x40000000
mov r8d, 2
mov dword [rsp + 0x20], 0x20000000
mov edx, 0xfffffff4
lea rcx, str.GIT_REDIRECT_STDERR
call fcn.004ab570
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x3a7bffff
jbe 0x4b3058
or dword [0x005ee9f0], 2
or dword [0x005765d8], 2
mov rax, qword [0x005aad00]
mov rcx, qword [rdi]
mov dword [rax], 1
call sub.msvcrt.dll_wcslen
cmp dword [rsp + 0x80], 1
mov esi, eax
jle 0x4b32a8
mov eax, dword [rsp + 0x80]
lea rbx, [rdi + 8]
sub eax, 2
lea rbp, [rdi + rax*8 + 0x10]
jmp 0x4b30a1
add rbx, 8
cmp rbp, rbx
je 0x4b30c4
mov rcx, qword [rbx]
call sub.msvcrt.dll_wcslen
movsxd rdx, esi
cmp rdx, rax
ja 0x4b3098
mov rcx, qword [rbx]
add rbx, 8
call sub.msvcrt.dll_wcslen
mov esi, eax
cmp rbp, rbx
jne 0x4b30a1
lea ebp, [rsi + rsi*2 + 1]
movsxd rbp, ebp
mov rcx, rbp
call fcn.004c8d40
mov r15, rax
test rax, rax
je 0x4b3309
mov eax, dword [rsp + 0x80]
lea r12d, [rax + 1]
movsxd r12, r12d
shl r12, 3
mov rcx, r12
call fcn.004996e0
mov rcx, r12
mov r13, rax
call fcn.004996e0
mov r12, rax
mov eax, dword [rsp + 0x80]
mov ebx, 1
lea r14d, [rax - 1]
add r14, 2
nop dword [rax + rax]
mov rdx, qword [rdi + rbx*8 - 8]
mov r8, rbp
mov rcx, r15
call fcn.004add30
lea esi, [rax + 1]
movsxd rsi, esi
mov rcx, rsi
call fcn.004c8d40
mov rcx, rax
test rax, rax
je 0x4b3309
mov r8, rsi
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov qword [r12 + rbx*8 - 8], rax
mov qword [r13 + rbx*8 - 8], rax
movsxd rax, ebx
add rbx, 1
cmp rbx, r14
jne 0x4b3120
shl rax, 3
lea rdx, [r12 + rax]
lea rbx, [r13 + rax]
mov qword [rdx], 0
mov rcx, r15
mov qword [rbx], 0
call fcn.004c9260
call fcn.004ae690
lea rcx, str.PERL5LIB
call fcn.004996c0
mov rbx, qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x00605dc0]
mov qword [0x005ee9f8], rax
call rbx
lea rcx, [0x005ee9c0]
call rbx
mov rcx, qword [0x005aace0]
call rbx
call qword [fcn.00570a30]
mov rdi, qword [fcn.005707a0]
xor ecx, ecx
mov dword [rax], 0x8000
call rdi
mov rsi, qword [sym.imp.msvcrt.dll__fileno]
mov rcx, rax
call rsi
mov edx, 0x8000
mov rbx, qword [sym.imp.msvcrt.dll__setmode]
mov ecx, eax
call rbx
mov ecx, 1
call rdi
mov rcx, rax
call rsi
mov edx, 0x8000
mov ecx, eax
call rbx
mov ecx, 2
call rdi
mov rcx, rax
call rsi
mov edx, 0x8000
mov ecx, eax
call rbx
call fcn.004b4e30
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, dword [rsp + 0x80]
mov rdx, r13
mov dword [0x005ee9b8], eax
call fcn.00570e60
mov r14d, eax
mov eax, dword [rsp + 0x80]
test eax, eax
jle 0x4b3281
mov eax, dword [rsp + 0x80]
mov rbx, r12
sub eax, 1
lea rsi, [r12 + rax*8 + 8]
nop dword [rax]
mov rcx, qword [rbx]
add rbx, 8
call fcn.004c9260
cmp rsi, rbx
jne 0x4b3270
mov rcx, r12
call fcn.004c9260
mov rcx, r13
call fcn.004c9260
mov eax, r14d
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea ebp, [rax + rax*2 + 1]
movsxd rbp, ebp
mov rcx, rbp
call fcn.004c8d40
mov r15, rax
test rax, rax
je 0x4b3309
mov eax, dword [rsp + 0x80]
lea r8d, [rax + 1]
movsxd r8, r8d
mov rax, r8
shr rax, 0x3d
jne 0x4b3319
lea r12, [r8*8]
mov rcx, r12
call fcn.004996e0
mov rcx, r12
mov rbx, rax
call fcn.004996e0
cmp dword [rsp + 0x80], 1
mov rdx, rax
je 0x4b330e
mov r12, rax
mov r13, rbx
jmp 0x4b3178
call fcn.004ab520
mov r12, rax
mov r13, rbx
jmp 0x4b3107
mov edx, 8
lea rcx, [0x00590d98]
call fcn.00494770
nop
nop dword [rax + rax]