Function at 0x180046e10
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x240]
sub rsp, 0x340
mov rax, qword [0x180143ae0]
xor rax, rsp
mov qword [rbp + 0x230], rax
mov r11, qword [rbp - 0x78]
lea r14d, [r8 - 0x13]
mov rdi, qword [rbp - 0x78]
mov r10, rdx
mov ebx, dword [rsp + 0x78]
mov r12, rcx
mov rcx, qword [rbp - 0x78]
mov r15, r9
mov r9d, dword [rsp + 0x78]
mov eax, r8d
mov r13, qword [rbp + 0x2a8]
mov esi, r8d
mov qword [rbp - 0x40], rdx
mov rdx, qword [rbp + 0x2a0]
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x78], rcx
mov dword [rbp - 0x70], eax
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x64], r9d
mov dword [rsp + 0x68], ebx
mov qword [rbp - 0x68], rdi
cmp r8d, r14d
jbe 0x1800472c8
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x60], eax
mov r10d, 0x43
lea eax, [rsi - 0xb0]
lea rdx, str.argument_must_be_an_array_object_or_length
lea r8d, [r10 + 0x2b]
cmp eax, 0x4d
ja case.0x180046ee3.178
lea r9, [0x180000000]
movzx eax, byte [r9 + rax + 0x47a2c]
mov ecx, dword [r9 + rax*4 + 0x479dc]
add rcx, r9
jmp rcx
mov word [rbp], r8w
jmp case.0x180046ee3.178
xor eax, eax
mov r11d, eax
mov qword [rsp + 0x70], rax
mov r9d, eax
mov dword [rsp + 0x64], eax
jmp 0x180046fda
mov eax, 0x6572
mov word [rbp - 8], r10w
mov word [rbp - 7], ax
jmp case.0x180046ee3.178
mov rax, qword [r13]
cmp rax, 2
jb 0x180046f2a
test al, 1
je case.0x180046ee3.178
mov ebx, 0x54
nop
mov eax, ebx
sub eax, 0x52
je case.0x18004703e.216
sub eax, 1
je 0x180046f6b
cmp eax, 1
jne 0x180046f72
mov rax, qword [0x180195140]
lea r9, str.Set_control_patch_output_size_30
mov edx, 0x61
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x5c]
call fcn.1800c8a10
jmp 0x180046f72
mov dword [rbp - 0x80], 0xffffffff
dec ebx
cmp ebx, 0x51
ja 0x180046f30
jmp case.0x180046ee3.178
mov r11, qword [rsp + 0x70]
mov ebx, 0x36
mov r9d, dword [rsp + 0x64]
xor edi, edi
mov dword [rsp + 0x68], ebx
mov qword [rbp - 0x68], rdi
jmp 0x180046fde
xor edi, edi
cmp dword [r13], edi
jle 0x180046fcc
mov rbx, r15
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rbx]
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 0x5f]
call fcn.180039da0
inc edi
lea rbx, [rbx + 8]
cmp edi, dword [r13]
jl 0x180046fb0
mov rdi, qword [rbp - 0x68]
mov r11, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x64]
mov ebx, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x60]
dec esi
cmp esi, r14d
ja 0x180046ea8
mov rdx, qword [rbp - 0x48]
mov r10, qword [rbp - 0x40]
mov eax, dword [rbp - 0x70]
lea esi, [rax + 0x13]
cmp eax, esi
jae case.0x18004703e.216
mov r14, qword [rbp - 0x18]
nop dword [rax + rax]
add eax, 0xffffff29
cmp eax, 0x30
ja case.0x18004703e.217
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x47ac4]
mov ecx, dword [rcx + rax*4 + 0x47a7c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov rax, qword [r15 + 0x10]
cmp qword [r13], rax
jae case.0x180046ee3.178
nop word [rax + rax]
mov ebx, 0xa4
cmp ebx, 0xa4
je 0x18004706b
cmp ebx, 0x63f0
jne 0x180047091
inc qword [r13]
jmp 0x180047091
cmp qword [r15 + 0x18], 0x10
mov rcx, r15
jb 0x180047078
mov rcx, qword [r15]
mov rax, qword [r13]
movsx ecx, byte [rcx + rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x180046ee3.211
inc rdi
mov qword [rbp - 0x68], rdi
add ebx, 0x634c
cmp ebx, 0xc698
jbe 0x180047055
mov rax, qword [r15 + 0x10]
cmp qword [r13], rax
jb 0x180047050
jmp case.0x180046ee3.178
mov esi, 0xd3
jmp case.0x180046ee3.178
mov dword [rbp - 4], 0x69576574
jmp case.0x180046ee3.178
mov qword [0x180195140], rdx
jmp case.0x180046ee3.178
mov eax, 0x64
mov word [rbp + 1], ax
mov eax, 0x6f
mov word [rbp + 2], ax
jmp case.0x180046ee3.178
mov eax, 0x61
mov word [rbp - 5], ax
jmp case.0x180046ee3.178
mov qword [rbp - 0x78], 0
jmp case.0x180046ee3.178
mov ecx, dword [r13]
sub ecx, 0x34001
je 0x18004711d
sub ecx, 1
je 0x180047155
cmp ecx, 1
je 0x180047192
jmp case.0x180046ee3.178
mov ebx, 0xe5
mov eax, ebx
sub eax, 0xe5
je 0x18004713a
cmp eax, 0x37
jne 0x18004714a
mov esi, 0xc3
jmp case.0x180046ee3.178
xor edx, edx
mov r9, r15
xor r8d, r8d
lea ecx, [rdx + 0x2f]
call fcn.1800c6120
add ebx, 0x37
cmp ebx, 0x153
jb 0x180047122
mov ebx, 9
nop word [rax + rax]
mov eax, ebx
sub eax, 9
je 0x18004716e
cmp eax, 1
je case.0x180046ee3.195
jmp 0x18004718b
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x77]
call fcn.180056990
inc ebx
cmp ebx, 0xb
jb 0x180047160
mov ebx, 0x10b
cmp ebx, 0x10b
je 0x1800471a9
cmp ebx, 0x1d0
je case.0x180046ee3.195
jmp 0x1800471bb
mov r9, r15
xor r8d, r8d
mov edx, 0xd5
xor ecx, ecx
call fcn.180010860
add ebx, 0xc5
cmp ebx, 0x295
jb 0x180047197
jmp case.0x180046ee3.178
mov r11, qword [rsp + 0x70]
xor eax, eax
mov r9d, dword [rsp + 0x64]
mov r8d, eax
mov ebx, dword [rsp + 0x68]
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x60], eax
jmp 0x180046fe3
test r15, r15
jne 0x180047247
mov ebx, 0x8b
cmp ebx, 0x8b
je 0x18004720e
cmp ebx, 0x148
je case.0x18004703e.216
jmp 0x180047239
mov rax, qword [0x180195140]
lea r9, str.get_ThroughputLimitControl
mov edx, 0x61
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x60]
call fcn.1800c8a10
mov dword [rbp - 0x80], 0xffffffff
add ebx, 0xbd
cmp ebx, 0x205
jb 0x1800471f8
cmp qword [r13], 0x7fffffff
jbe case.0x180046ee3.178
mov ebx, 0x84
nop word [rax + rax]
mov eax, ebx
sub eax, 0x84
je 0x18004727a
cmp eax, 1
jne 0x18004729e
mov dword [rbp - 0x80], 0xffffffff
jmp case.0x18004703e.216
mov rax, qword [0x180195140]
lea r9, str.add_shared_block:_tag_0x_08x_thread__d____d_threads
mov edx, 0x61
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x5d]
call fcn.1800c8a10
inc ebx
cmp ebx, 0x86
jb 0x180047260
jmp case.0x180046ee3.178
mov qword [rbp - 0x60], 0
jmp case.0x180046ee3.178
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp case.0x180046ee3.178
mov r8d, dword [rsp + 0x78]
mov dword [rsp + 0x60], r8d
jmp 0x180046ff9
mov qword [rsp + 0x38], r13
xor eax, eax
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov qword [rsp + 0x28], r15
xor r8d, r8d
mov rdx, r10
mov dword [rsp + 0x20], 0x45
xor ecx, ecx
call fcn.180049e70
test eax, eax
je 0x1800473b0
mov dword [rbp - 0x80], 1
jmp 0x1800479aa
movzx eax, byte [r15]
cmp al, 0xff
jne 0x180047362
cmp byte [r15 + 1], 0xfe
jne case.0x18004703e.217
mov eax, 0x3f
nop dword [rax]
cmp eax, 0x3f
je 0x180047346
cmp eax, 0x1ec3
jne 0x18004734c
mov qword [rbp - 0x60], 2
jmp 0x18004734c
mov r8d, 0x6c
add eax, 0x1e84
cmp eax, 0x3d08
jbe 0x180047330
mov dword [rsp + 0x60], r8d
jmp case.0x18004703e.217
cmp al, 0xfe
jne case.0x18004703e.217
cmp byte [r15 + 1], 0xff
jne case.0x18004703e.217
mov r8d, 0x62
mov qword [rbp - 0x60], 2
mov dword [rsp + 0x60], r8d
jmp case.0x18004703e.217
test r14, r14
jne 0x1800473fe
mov ebx, StrCmpNICA
mov eax, ebx
sub eax, 0x95
je 0x1800473e3
cmp eax, 1
jne 0x1800473f4
nop word [rax + rax]
xor eax, eax
mov dword [rbp - 0x80], eax
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp + 0x230]
xor rcx, rsp
call fcn.1800c9c10
mov rbx, qword [rsp + 0x390]
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, str.Output_warnings_and_errors_to_a_specific_file
mov ecx, 0x10008
call fcn.18003e500
inc ebx
cmp ebx, 0x97
jb 0x180047397
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov r9d, dword [r15 + 0x250]
lea rdx, str.GLFW30
mov ecx, dword [r15 + 0x254]
mov r8, r14
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
mov eax, dword [rbp - 0x58]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp - 0x54]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 0x4c]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp - 0x50]
mov dword [rsp + 0x20], eax
call qword [rbp - 0x10]
mov qword [r15 + 0x248], rax
jmp 0x1800479aa
test rdx, rdx
jne 0x1800474c9
mov ebx, 0x11e
nop dword [rax]
mov eax, ebx
sub eax, 0x11e
je 0x180047492
sub eax, 1
je 0x180047489
cmp eax, 1
je case.0x18004703e.216
jmp 0x1800474b6
mov dword [rbp - 0x80], 0xffffffff
jmp 0x1800474b6
mov rax, qword [0x180195140]
lea r9, str.Error:_Cannot_send_HECI_message
mov edx, 0x61
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x60]
call fcn.1800c8a10
inc ebx
cmp ebx, 0x121
jb 0x180047470
mov rdx, qword [rbp - 0x48]
mov r8d, dword [rsp + 0x60]
xor eax, eax
mov qword [rdx], rax
jmp case.0x18004703e.217
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp qword [r15 + 0x248], 0
jne 0x1800479aa
mov ebx, 0x5e
nop
mov eax, ebx
sub eax, 0x5c
je case.0x18004703e.216
sub eax, 1
je 0x180047518
cmp eax, 1
jne 0x18004751d
lea rdx, str._wxFileOffset_int_diff__diff
mov ecx, 0x10008
call fcn.18003e500
jmp 0x18004751d
xor eax, eax
mov dword [rbp - 0x80], eax
dec ebx
cmp ebx, 0x5b
ja 0x1800474f0
jmp 0x1800479aa
mov eax, 0x4577
mov word [rbp + 3], ax
jmp case.0x18004703e.217
mov r9d, 0x78
lea r8, [rbp - 8]
lea rdx, [rbp + 8]
xor ecx, ecx
call fcn.180097890
mov qword [rbp - 0x10], rax
mov dword [r15 + 0x250], 0x6000000
jmp 0x1800479aa
mov rax, qword [r13]
cmp qword [rbp - 0x60], rax
je 0x1800475c6
mov ebx, 0xea
nop
mov eax, ebx
sub eax, 0xea
je 0x180047592
sub eax, 0x17
je 0x180047589
cmp eax, 0x17
je case.0x18004703e.216
jmp 0x1800475b6
mov dword [rbp - 0x80], 0xffffffff
jmp 0x1800475b6
mov rax, qword [0x180195140]
lea r9, str.Saiz_fail__s_melebihi_had_4GB_
mov edx, 0x61
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x5c]
call fcn.1800c8a10
add ebx, 0x17
cmp ebx, 0x12f
jb 0x180047570
mov r8d, dword [rsp + 0x60]
mov dword [rbp - 0x80], 1
jmp case.0x18004703e.217
mov r8d, 9
lea rdx, str.user32.dl
lea rcx, [rbp + 8]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
lea rcx, [rbp + 8]
sub rcx, 2
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x1800475f1
mov eax, dword [0x180124330]
mov dword [rcx], eax
jmp 0x1800479aa
cmp qword [r15 + 0x30], 0
mov dword [r15 + 0x254], 0x40000
je 0x18004768e
mov ebx, 0x22
xor edi, edi
cmp ebx, 0x22
je 0x18004763f
cmp ebx, 0xa7e
jne 0x180047677
mov eax, dword [r13]
mov dword [rbp - 0x54], eax
mov eax, dword [r13 + 4]
mov dword [rbp - 0x58], eax
jmp 0x180047677
or dword [r15 + 0x250], 0x80000000
lea rax, [rbp - 0x50]
mov r9, qword [r13 + 0x30]
lea rdx, [rbp - 0x4c]
mov qword [rsp + 0x38], rdi
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov ecx, 0xc8
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18006f990
add ebx, 0xa5c
cmp ebx, 0x14b8
jbe 0x180047622
mov rdi, qword [rbp - 0x68]
jmp 0x1800479aa
mov ebx, 0x77
cmp ebx, 0x77
je 0x1800476f3
cmp ebx, 0x10f
je 0x1800476e3
cmp ebx, 0x1a7
jne 0x18004774e
mov eax, dword [r13 + 4]
lea r9, [rbp - 0x30]
mov dword [rbp - 0x38], eax
lea rcx, [rbp - 0x54]
mov eax, dword [r13]
mov r8, r15
mov dword [rbp - 0x30], eax
mov edx, 0x11e
lea rax, [rbp - 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
call fcn.1800c03c0
jmp 0x18004774e
mov dword [rbp - 0x50], 0x80000000
mov dword [rbp - 0x4c], 0x80000000
jmp 0x18004774e
cmp byte [r13 + 0x12], 0
je 0x180047743
or dword [r15 + 0x250], 0xca0000
cmp byte [r13 + 0x10], 0
je 0x18004774e
mov ecx, 0x88
mov eax, ecx
sub eax, 0x88
je 0x18004772c
cmp eax, 1
jne 0x180047737
or dword [r15 + 0x254], 0x100
jmp 0x180047737
or dword [r15 + 0x250], 0x50000
inc ecx
cmp ecx, 0x8a
jb 0x180047711
jmp 0x18004774e
or dword [r15 + 0x250], 0x80000000
add ebx, 0x98
cmp ebx, 0x23f
jb 0x180047693
jmp 0x1800479aa
xor eax, eax
mov word [rbp + 8], ax
jmp case.0x18004703e.217
mov rcx, qword [r13]
cmp byte [rcx + r15 - 2], 0
jne 0x180047784
cmp byte [rcx + r15 - 1], 0
je 0x18004778b
inc qword [rdx]
mov rcx, qword [r13]
mov rax, qword [rbp - 0x60]
inc rax
cmp rax, rcx
jae case.0x18004703e.217
nop dword [rax + rax]
mov edi, 0x42
mov eax, edi
sub eax, 0x41
je 0x180047854
cmp eax, 1
jne 0x1800478ca
mov eax, dword [r10]
lea r8, [rbp - 0x28]
mov dword [rbp - 0x28], eax
lea rcx, [rbp - 0x60]
mov rax, qword [r13]
mov r9, r12
mov qword [rbp - 0x18], rax
mov rdx, r15
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x18]
mov dword [rsp + 0x28], 0x11a
mov qword [rsp + 0x20], rax
call fcn.1800b8820
cmp eax, 1
je 0x1800478ca
mov ebx, SHTestTokenMembership
cmp ebx, 0xf3
je 0x180047819
cmp ebx, 0x1023
je case.0x18004703e.216
jmp 0x180047844
mov rax, qword [0x180195140]
lea r9, str.short2___OVERLOADABLE___convert_short_sat_rtp_ushort2__
mov edx, 0x63
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x62]
call fcn.1800c8a10
mov dword [rbp - 0x80], 0xffffffff
add ebx, 0xf30
cmp ebx, 0x1e60
jbe 0x180047803
jmp 0x1800478ca
mov eax, dword [rsp + 0x78]
mov r8, rdx
mov dword [rbp - 0x20], eax
mov r9d, 0xc0
lea rax, [rbp - 0x20]
mov rdx, r12
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.1800a4530
cmp eax, 1
je 0x1800478ca
mov ebx, 0x1c
mov eax, ebx
sub eax, 0x1a
je case.0x18004703e.216
sub eax, 1
je 0x1800478bc
cmp eax, 1
jne 0x1800478c3
mov rax, qword [0x180195140]
lea r9, str.Update_Installer_:_Returning_from____ProductUpdateProcessHandler___...
mov edx, 0x63
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x62]
call fcn.1800c8a10
jmp 0x1800478c3
mov dword [rbp - 0x80], 0xffffffff
dec ebx
cmp ebx, 0x19
ja 0x180047881
mov rdx, qword [rbp - 0x48]
dec edi
mov r10, qword [rbp - 0x40]
cmp edi, 0x40
ja 0x1800477a5
mov rax, qword [rbp - 0x60]
inc rax
cmp rax, qword [r13]
jb 0x1800477a0
mov rdi, qword [rbp - 0x68]
jmp 0x1800479aa
mov rcx, qword [r13 + 8]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xdb
call fcn.1800bff30
mov r14, rax
jmp 0x1800479aa
mov eax, 0x5778
mov byte [rbp + 7], 0
mov word [rbp + 5], ax
jmp case.0x18004703e.217
mov rcx, qword [rbp - 0x78]
lea rax, [rbp + 0x20]
mov r8, r11
mov qword [rsp + 0x20], rax
mov edx, ebx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov qword [rbp - 0x80], rdi
jmp 0x1800479aa
mov eax, dword [r10]
test eax, eax
jne 0x180047950
mov dword [r10], r8d
mov eax, r8d
cmp eax, 0x62
je case.0x18004703e.217
cmp eax, 0x6c
je case.0x18004703e.217
mov ebx, 0xc2
nop
mov eax, ebx
sub eax, 0xc2
je 0x180047974
cmp eax, 0x65
je case.0x18004703e.216
jmp 0x18004799f
mov rax, qword [0x180195140]
lea r9, str._Z18convert_ulong4_rtnDv4_l
mov edx, 0x61
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [rdx - 0x59]
call fcn.1800c8a10
mov dword [rbp - 0x80], 0xffffffff
add ebx, 0x65
cmp ebx, 0x18c
jb 0x180047960
mov r8d, dword [rsp + 0x60]
mov eax, dword [rbp - 0x70]
inc eax
mov dword [rbp - 0x70], eax
cmp eax, esi
jae case.0x18004703e.216
mov rdx, qword [rbp - 0x48]
mov r10, qword [rbp - 0x40]
mov r11, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x64]
mov ebx, dword [rsp + 0x68]
jmp 0x180047010