Function at 0x45ea90
Capabilities:
Get common file path

Disassembly:
mov eax, 0x2128
call fcn.00499730
sub rsp, rax
mov qword [rsp + 0x2120], rbx
mov qword [rsp + 0x2118], rbp
mov qword [rsp + 0x2110], rsi
mov qword [rsp + 0x2108], rdi
mov qword [rsp + 0x2100], r12
mov qword [rsp + 0x20f8], r13
mov qword [rsp + 0x20f0], r14
mov qword [rsp + 0x20e8], r15
mov rbx, rdx
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x004dfd00]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rax
lea r12, [0x00402490]
mov qword [rsp + 0x20], r12
lea r9, [0x00402470]
mov r8d, 5
mov edx, InitCommonControls
lea rcx, [rsp + 0xe8]
call fcn.00486b20
mov rdx, qword [0x004dfd00]
mov qword [rsp + 0x138], rdx
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x148], rdx
lea rcx, [rsp + 0x70]
call fcn.0041cfe0
nop
xor ebp, ebp
mov qword [rsp + 0xf40], rbp
mov r8d, 0x1f4
mov edx, 0x4b
lea rcx, [rsp + 0xf48]
call fcn.00499630
lea rax, [rsp + 0x1140]
mov ecx, 0x3e
nop
mov qword [rax], rbp
mov qword [rax + 8], rbp
mov qword [rax + 0x10], rbp
add rax, 0x40
mov qword [rax - 0x28], rbp
mov qword [rax - 0x20], rbp
mov qword [rax - 0x18], rbp
mov qword [rax - 0x10], rbp
mov qword [rax - 8], rbp
dec rcx
jne 0x45ebb0
mov qword [rax], rbp
mov qword [rax + 8], rbp
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rbp
mov rax, qword [0x004dfd00]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rax
mov esi, ebp
mov edx, 0x104
lea rcx, [rsp + 0xc30]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea rdi, [rsp + 0xc30]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x004a9dfc]
mov word [rdi - 1], ax
mov r14, qword [rbx + 8]
test r14, r14
je 0x45f141
lea rax, [rsp + 0x670]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x670]
mov qword [rsp + 0x50], rax
mov r15, r14
lea rbx, [r14 + 0x10]
mov r14, qword [r14]
mov rdx, rbx
lea rcx, [rsp + 0xb0]
call fcn.0049b31c
lea rdx, [rbx + 8]
lea rcx, [rsp + 0xb8]
call fcn.0049b31c
lea rdx, [rbx + 0x10]
lea rcx, [rsp + 0xc0]
call fcn.0049b31c
lea rdx, [rbx + 0x18]
lea rcx, [rsp + 0xc8]
call fcn.0049b31c
lea rdx, [rbx + 0x20]
lea rcx, [rsp + 0xd0]
call fcn.0049b31c
lea rdx, [rbx + 0x28]
lea rcx, [rsp + 0xd8]
call fcn.0049b31c
lea rdx, [rbx + 0x30]
lea rcx, [rsp + 0xe0]
call fcn.0049b31c
lea rdi, [rbx + 0x38]
mov rax, rbx
neg rax
lea r12, [rsp + rax + 0xb8]
lea r13, [rsp + rax + 0xb0]
mov ebp, 5
lea rcx, [r13 + rdi]
mov rdx, rdi
call fcn.0049b31c
lea rdx, [rdi + 8]
lea rcx, [r12 + rdi]
call fcn.0049b31c
add rdi, 0x10
dec rbp
jne 0x45ecf1
lea rdx, [rbx + 0x88]
lea rcx, [rsp + 0x138]
call fcn.0049b31c
lea rdx, [rbx + 0x90]
lea rcx, [rsp + 0x140]
call fcn.0049b31c
lea rdx, [rbx + 0x98]
lea rcx, [rsp + 0x148]
call fcn.0049b31c
mov edx, dword [rbx + 0xa0]
mov dword [rsp + 0x150], edx
lea rcx, [rsp + 0x154]
lea rdx, [rbx + 0xa4]
mov r8d, 0x518
call fcn.00486d40
xor ebp, ebp
mov dword [rsp + 0x154], ebp
mov r8d, 1
mov rdx, qword [rsp + 0xd8]
lea rcx, [rsp + 0x70]
call fcn.0041dca0
mov dword [rsp + 0x38], 0x1f4
lea r9, [rsp + 0x38]
lea r8, [rsp + 0xd40]
lea rdx, str.CoInstallers32
lea rcx, [rsp + 0x70]
call fcn.0041c500
test eax, eax
je 0x45ef41
lea rax, [rsp + 0xf40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, dword [rsp + 0x38]
lea rdx, [rsp + 0xd40]
lea rcx, [rsp + 0x70]
call fcn.0041cd00
lea rcx, [rsp + 0xf40]
call fcn.00402150
mov rbx, rax
test rax, rax
je 0x45ef41
test rbx, rbx
je 0x45ee4c
lea rax, [rsp + 0xf48]
sub rbx, rax
inc rbx
mov rcx, rbx
lea rax, [rbx - 1]
cmp rax, 0x1f3
ja 0x45ee4c
mov rax, qword [rsp + 0xf40]
cmp rbx, rax
jae 0x45ee3f
lea rbx, [rsp + rbx + 0xf48]
jmp 0x45ee42
mov rbx, rbp
dec rcx
cmp rcx, rax
jae 0x45ee61
jmp 0x45ee51
mov rbx, rbp
jmp 0x45ee61
cmp rcx, 0xffffffffffffffff
je 0x45ee61
mov rdx, qword [rsp + rcx*8 + 0x1140]
jmp 0x45ee64
mov rdx, rbp
lea rcx, [rsp + 0x40]
call fcn.0049b398
lea rdx, [0x004af0fc]
lea rcx, [rsp + 0x40]
call fcn.0049a400
cmp eax, 0xffffffff
je 0x45ef38
mov r8d, eax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x40]
call fcn.00499e24
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
lea rcx, [rsp + 0x30]
call fcn.0049a3a4
lea rcx, [rsp + 0x30]
call fcn.0049a348
lea rdx, [rsp + 0xc30]
movsxd rdi, esi
mov rax, rdi
imul rax, rax, 0x104
lea rcx, [rsp + 0xc30]
sub rax, rcx
lea rcx, [rsp + rax + 0x158]
nop
movzx eax, byte [rdx]
mov byte [rdx + rcx], al
inc rdx
test al, al
jne 0x45eef0
imul rdi, rdi, 0x104
lea rdi, [rsp + rdi + 0x158]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rdx, qword [rsp + 0x30]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x45ef20
inc esi
mov dword [rsp + 0x154], esi
test rbx, rbx
jne 0x45ee06
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x670]
call fcn.0049b680
nop
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x678]
call fcn.0049b680
nop
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x680]
call fcn.0049b680
nop
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x688]
call fcn.0049b680
nop
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x690]
call fcn.0049b680
nop
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x698]
call fcn.0049b680
nop
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x6a0]
call fcn.0049b680
nop
lea r12, [0x00402490]
mov qword [rsp + 0x28], r12
lea rax, [0x004024e0]
mov qword [rsp + 0x20], rax
mov r9d, 5
mov r8d, InitCommonControls
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x6a8]
call fcn.00486fa0
lea rdx, [rsp + 0x138]
lea rcx, [rsp + 0x6f8]
call fcn.0049b680
nop
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x700]
call fcn.0049b680
nop
lea rdx, [rsp + 0x148]
lea rcx, [rsp + 0x708]
call fcn.0049b680
mov edx, dword [rsp + 0x150]
mov dword [rsp + 0x710], edx
lea rcx, [rsp + 0x714]
lea rdx, [rsp + 0x154]
mov r8d, 0x518
call fcn.00486d40
nop
lea rcx, [r15 + 0x10]
lea rdx, [rsp + 0x670]
call fcn.00404c70
nop
lea rcx, [rsp + 0x708]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x700]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x6f8]
call fcn.0049b1dc
nop
mov r9, r12
mov r8d, 5
mov edx, InitCommonControls
lea rcx, [rsp + 0x6a8]
call fcn.00486c80
nop
lea rcx, [rsp + 0x6a0]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x698]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x690]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x688]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x680]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x678]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x670]
call fcn.0049b1dc
test r14, r14
jne 0x45ec52
lea rcx, [rsp + 0x30]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
mov rdi, rbp
mov rax, qword [rsp + 0xf40]
test rax, rax
je 0x45f19a
nop
nop
nop
mov rcx, qword [rsp + rdi*8 + 0x1140]
test rcx, rcx
je 0x45f192
call fcn.0049bb84
mov qword [rsp + rdi*8 + 0x1140], rbp
mov rax, qword [rsp + 0xf40]
inc rdi
cmp rdi, rax
jb 0x45f170
lea rcx, [rsp + 0x70]
call fcn.0041d010
nop
lea rcx, [rsp + 0x148]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x140]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x138]
call fcn.0049b1dc
nop
mov r9, r12
mov r8d, 5
mov edx, InitCommonControls
lea rcx, [rsp + 0xe8]
call fcn.00486c80
nop
lea rcx, [rsp + 0xe0]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0xd8]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0xd0]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0xc8]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0xc0]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0xb8]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0xb0]
call fcn.0049b1dc
mov rbx, qword [rsp + 0x2120]
mov rbp, qword [rsp + 0x2118]
mov rsi, qword [rsp + 0x2110]
mov rdi, qword [rsp + 0x2108]
mov r12, qword [rsp + 0x2100]
mov r13, qword [rsp + 0x20f8]
mov r14, qword [rsp + 0x20f0]
mov r15, qword [rsp + 0x20e8]
add rsp, 0x2128
ret