Function at 0x180007850
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov r15, rcx
call fcn.180002c40
mov rcx, rax
test rax, rax
je 0x180007b7b
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x80], rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x200
or eax, ecx
jge 0x1800078c9
mov edx, 0x200
lea rcx, [rsp + 0x80]
call fcn.180004d30
mov rbx, qword [rsp + 0x80]
xor r9d, r9d
lea r8d, [r9 + 0x1a]
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.18000e100
test eax, eax
js 0x180007b70
cmp eax, dword [rbx - 0xc]
jg 0x180007b70
mov dword [rbx - 0x10], eax
cdqe
xor ecx, ecx
mov word [rbx + rax*2], cx
mov esi, dword [rbx - 0x10]
test esi, esi
jne 0x18000799b
call fcn.180002c40
mov rcx, rax
test rax, rax
je 0x180007b86
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r15], rax
lea rdx, [0x1800218c8]
mov rdi, 0xffffffffffffffff
cmp rdx, 0x10000
jae 0x180007950
movzx edx, dx
mov rcx, r15
call fcn.180004270
jmp 0x180007969
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x180007953
mov r8d, eax
mov rcx, r15
call fcn.1800056c0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x180007980
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, r15
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea eax, [rsi - 1]
test eax, eax
js 0x180007b65
cmp eax, esi
jg 0x180007b65
movsxd rax, esi
mov rdi, 0xffffffffffffffff
mov ebp, 0x7fffffff
cmp word [rbx + rax*2 - 2], 0x5c
je 0x180007a7c
lea rbp, [0x1800218cc]
mov rax, rdi
inc rax
cmp word [rbp + rax*2], cx
jne 0x1800079d3
mov r12, rbp
sub r12, rbx
sar r12, 1
test eax, eax
js 0x180007b91
movsxd rdx, eax
mov rcx, rbp
call fcn.18000e100
mov r13, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, esi
jl 0x180007b9c
lea r14d, [rsi + rax]
test r14d, r14d
js 0x180007ba7
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x180007a42
mov edx, r14d
lea rcx, [rsp + 0x80]
call fcn.180004d30
mov rbx, qword [rsp + 0x80]
cmp r12, rsi
ja 0x180007a4b
lea rbp, [rbx + r12*2]
movsxd rdx, r13d
lea rcx, [rbx + rsi*2]
mov r9d, r13d
mov r8, rbp
call fcn.180006410
cmp r14d, dword [rbx - 0xc]
jg 0x180007bbd
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
xor ecx, ecx
mov word [rbx + rax*2], cx
mov esi, dword [rbx - 0x10]
mov ebp, 0x7fffffff
lea r14, str.Coupon_
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x180007a90
mov r12, r14
sub r12, rbx
sar r12, 1
test eax, eax
js 0x180007bb2
movsxd rdx, eax
mov rcx, r14
call fcn.18000e100
mov r13, rax
sub ebp, eax
cmp ebp, esi
jl 0x180007bc8
lea ebp, [rsi + rax]
test ebp, ebp
js 0x180007bd3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, ebp
or eax, ecx
jge 0x180007af7
mov edx, ebp
lea rcx, [rsp + 0x80]
call fcn.180004d30
mov rbx, qword [rsp + 0x80]
mov eax, esi
cmp r12, rax
ja 0x180007b02
lea r14, [rbx + r12*2]
movsxd rdx, r13d
lea rcx, [rbx + rax*2]
mov r9d, r13d
mov r8, r14
call fcn.180006410
cmp ebp, dword [rbx - 0xc]
jg 0x180007bde
mov dword [rbx - 0x10], ebp
movsxd rax, ebp
xor ecx, ecx
mov word [rbx + rax*2], cx
cmp dword [rsp + 0x78], ecx
je 0x180007b37
mov rcx, rbx
call fcn.1800064a0
lea rcx, [rbx - 0x18]
call fcn.180001750
add rax, 0x18
mov qword [r15], rax
lock xadd dword [rbx - 8], edi
sub edi, 1
jg 0x180007980
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
jmp 0x18000797d
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
nop
mov ecx, 0x80004005
call fcn.1800016f0
nop
mov ecx, 0x80004005
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3