Function at 0x403b40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x415b19
mov eax, dword fs:[0]
push eax
sub esp, 0x6d8
mov eax, dword [0x41c140]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x1a
xorps xmm0, xmm0
mov dword [ebp - 0x66c], 0
push str.Rockstar_GamesSocial_Club
lea ecx, [ebp - 0x67c]
mov dword [ebp - 0x668], 0
movups xmmword [ebp - 0x67c], xmm0
call fcn.004011f0
lea eax, [ebp - 0x218]
mov dword [ebp - 4], 0
push eax
mov eax, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0
push 0
push 5
push 0
mov dword [ebp - 0x69c], eax
call eax
test eax, eax
jne 0x4041a2
xorps xmm0, xmm0
mov dword [ebp - 0x63c], eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x638], eax
movups xmmword [ebp - 0x64c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403be7
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x64c]
call fcn.004011f0
push 0x4175c0
lea ecx, [ebp - 0x64c]
mov byte [ebp - 4], 1
call fcn.004057e0
mov eax, dword [ebp - 0x668]
lea edx, [ebp - 0x67c]
mov ecx, dword [ebp - 0x63c]
cmp eax, 8
mov edi, dword [ebp - 0x66c]
cmovae edx, dword [ebp - 0x67c]
mov dword [ebp - 0x680], eax
mov eax, dword [ebp - 0x638]
sub eax, ecx
mov dword [ebp - 0x630], ecx
cmp edi, eax
ja 0x403c95
cmp dword [ebp - 0x638], 8
lea eax, [edi + ecx]
lea esi, [ebp - 0x64c]
mov dword [ebp - 0x63c], eax
cmovae esi, dword [ebp - 0x64c]
lea eax, [edi + edi]
push eax
push edx
lea ecx, [esi + ecx*2]
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x630]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
jmp 0x403cbb
push edi
push edx
push dword [ebp - 0x630]
lea ecx, [ebp - 0x64c]
push edi
call fcn.00402d50
mov esi, dword [ebp - 0x668]
mov edi, dword [ebp - 0x66c]
mov dword [ebp - 0x680], esi
lea eax, [ebp - 0x664]
mov dword [ebp - 0x664], str.Cache
lea ecx, [ebp - 0x658]
mov dword [ebp - 0x660], 0x417784
mov dword [ebp - 0x65c], str.Titles
mov esi, eax
mov dword [ebp - 0x654], eax
cmp eax, ecx
je 0x403e7c
mov eax, dword [esi]
mov edx, dword [ebp - 0x630]
mov ecx, dword [ebp - 0x63c]
mov dword [ebp - 0x630], eax
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jb 0x40460e
cmp dword [ebp - 0x638], 8
lea eax, [ebp - 0x64c]
push 1
cmovae eax, dword [ebp - 0x64c]
push 0x4175c0
push ecx
push eax
lea eax, [ebp - 0x64c]
push eax
push edx
lea ecx, [ebp - 0x6cc]
call fcn.004032e0
push dword [ebp - 0x630]
lea ecx, [ebp - 0x6cc]
mov byte [ebp - 4], 2
call fcn.004057e0
xorps xmm0, xmm0
mov dword [ebp - 0x6a4], 0
movups xmmword [ebp - 0x6b4], xmm0
mov dword [ebp - 0x6a0], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6b4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x6a4], xmm0
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x6b4]
cmp dword [ebp - 0x6a0], 8
cmovae eax, dword [ebp - 0x6b4]
push eax
call fcn.00404700
mov ecx, dword [ebp - 0x6a0]
add esp, 4
mov byte [ebp - 4], 2
cmp ecx, 8
jb 0x403e0b
mov edx, dword [ebp - 0x6b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403e01
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4040a8
push ecx
push edx
call fcn.004149eb
add esp, 8
mov ecx, dword [ebp - 0x6b8]
xor eax, eax
mov dword [ebp - 0x6a4], 0
mov dword [ebp - 0x6a0], 7
mov word [ebp - 0x6b4], ax
mov byte [ebp - 4], 1
cmp ecx, 8
jb 0x403e6c
mov edx, dword [ebp - 0x6cc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403e62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4040a8
push ecx
push edx
call fcn.004149eb
add esp, 8
add esi, 4
lea eax, [ebp - 0x658]
cmp esi, eax
jmp 0x403cef
lea esi, [ebp - 0x654]
mov dword [ebp - 0x654], str.ipc.log
lea ecx, [ebp - 0x64c]
mov dword [ebp - 0x650], str.socialclub.log
mov eax, esi
cmp eax, ecx
je 0x404017
mov eax, dword [esi]
mov edx, dword [ebp - 0x630]
mov ecx, dword [ebp - 0x63c]
mov dword [ebp - 0x630], eax
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jb 0x40460e
cmp dword [ebp - 0x638], 8
lea eax, [ebp - 0x64c]
push 1
cmovae eax, dword [ebp - 0x64c]
push 0x4175c0
push ecx
push eax
lea eax, [ebp - 0x64c]
push eax
push edx
lea ecx, [ebp - 0x6e4]
call fcn.004032e0
push dword [ebp - 0x630]
lea ecx, [ebp - 0x6e4]
mov byte [ebp - 4], 4
call fcn.004057e0
mov dword [ebp - 0x688], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x698], xmm0
mov dword [ebp - 0x684], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x698], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x688], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x698]
push eax
call fcn.004046d0
mov ecx, dword [ebp - 0x684]
add esp, 4
cmp ecx, 8
jb 0x403fa6
mov edx, dword [ebp - 0x698]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403f9c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4040a8
push ecx
push edx
call fcn.004149eb
add esp, 8
mov ecx, dword [ebp - 0x6d0]
xor eax, eax
mov dword [ebp - 0x688], 0
mov dword [ebp - 0x684], 7
mov word [ebp - 0x698], ax
mov byte [ebp - 4], 1
cmp ecx, 8
jb 0x404007
mov edx, dword [ebp - 0x6e4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403ffd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4040a8
push ecx
push edx
call fcn.004149eb
add esp, 8
add esi, 4
lea eax, [ebp - 0x64c]
cmp esi, eax
jmp 0x403ea0
xorps xmm0, xmm0
mov dword [ebp - 0x65c], 0
movq qword [ebp - 0x664], xmm0
mov dword [ebp - 0x664], 0
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 0
lea eax, [ebp - 0x664]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x629]
call fcn.004034c0
lea ecx, [ebp - 0x664]
call fcn.00403430
mov ecx, dword [ebp - 0x638]
mov byte [ebp - 4], 0
cmp ecx, 8
jb 0x4040b8
mov edx, dword [ebp - 0x64c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4040ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4040ae
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004149eb
add esp, 8
mov esi, dword [ebp - 0x680]
lea eax, [ebp - 0x420]
push eax
push 0
push 0
push 0x1c
push 0
call dword [ebp - 0x69c]
test eax, eax
jne 0x404282
xorps xmm0, xmm0
mov dword [ebp - 0x63c], eax
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x638], eax
movups xmmword [ebp - 0x64c], xmm0
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404100
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x64c]
call fcn.004011f0
push 0x4175c0
lea ecx, [ebp - 0x64c]
mov byte [ebp - 4], 6
call fcn.004057e0
mov ecx, dword [ebp - 0x63c]
lea edx, [ebp - 0x67c]
mov eax, dword [ebp - 0x638]
cmp esi, 8
mov dword [ebp - 0x630], ecx
cmovae edx, dword [ebp - 0x67c]
sub eax, ecx
cmp edi, eax
ja 0x4041b9
cmp dword [ebp - 0x638], 8
lea eax, [edi + ecx]
lea esi, [ebp - 0x64c]
mov dword [ebp - 0x63c], eax
cmovae esi, dword [ebp - 0x64c]
lea eax, [edi + edi]
push eax
push edx
lea ecx, [esi + ecx*2]
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x630]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
mov esi, dword [ebp - 0x680]
jmp 0x4041df
mov esi, dword [ebp - 0x668]
mov edi, dword [ebp - 0x66c]
mov dword [ebp - 0x680], esi
jmp 0x4040be
push edi
push edx
push dword [ebp - 0x630]
lea ecx, [ebp - 0x64c]
push edi
call fcn.00402d50
mov esi, dword [ebp - 0x668]
mov edi, dword [ebp - 0x66c]
mov dword [ebp - 0x680], esi
xorps xmm0, xmm0
mov dword [ebp - 0x65c], 0
movq qword [ebp - 0x664], xmm0
mov dword [ebp - 0x664], 0
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 0
lea eax, [ebp - 0x664]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x629]
call fcn.004034c0
lea ecx, [ebp - 0x664]
call fcn.00403430
mov ecx, dword [ebp - 0x638]
mov byte [ebp - 4], 0
cmp ecx, 8
jb 0x404288
mov edx, dword [ebp - 0x64c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404276
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x404276
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004149eb
add esp, 8
jmp 0x404288
mov esi, dword [ebp - 0x680]
lea eax, [ebp - 0x628]
push eax
push 0
push 0
push 0x23
push 0
call dword [ebp - 0x69c]
test eax, eax
jne 0x4045b1
xorps xmm0, xmm0
mov dword [ebp - 0x63c], eax
lea ecx, [ebp - 0x628]
mov dword [ebp - 0x638], eax
movups xmmword [ebp - 0x64c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4042c4
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x64c]
call fcn.004011f0
push 0x4175c0
lea ecx, [ebp - 0x64c]
mov byte [ebp - 4], 8
call fcn.004057e0
mov ecx, dword [ebp - 0x63c]
lea edx, [ebp - 0x67c]
mov eax, dword [ebp - 0x638]
cmp esi, 8
mov dword [ebp - 0x630], ecx
cmovae edx, dword [ebp - 0x67c]
sub eax, ecx
cmp edi, eax
ja 0x404360
cmp dword [ebp - 0x638], 8
lea eax, [edi + ecx]
lea esi, [ebp - 0x64c]
mov dword [ebp - 0x63c], eax
cmovae esi, dword [ebp - 0x64c]
lea eax, [edi + edi]
push eax
push edx
lea ecx, [esi + ecx*2]
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x630]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
jmp 0x404380
push edi
push edx
push dword [ebp - 0x630]
lea ecx, [ebp - 0x64c]
push edi
call fcn.00402d50
mov esi, dword [ebp - 0x668]
mov dword [ebp - 0x680], esi
xorps xmm0, xmm0
mov dword [ebp - 0x650], 0
movq qword [ebp - 0x658], xmm0
mov dword [ebp - 0x658], 0
mov dword [ebp - 0x654], 0
mov dword [ebp - 0x650], 0
cmp dword [0x41c38c], 0
mov byte [ebp - 4], 9
jne 0x40454b
push 0x17
push str.scsdk_installer_log.txt
lea ecx, [ebp - 0x698]
mov dword [ebp - 0x688], 0
movups xmmword [ebp - 0x698], xmm0
mov dword [ebp - 0x684], 0
call fcn.004011f0
mov eax, dword [ebp - 0x654]
mov byte [ebp - 4], 0xa
cmp eax, dword [ebp - 0x650]
je 0x404431
movups xmm0, xmmword [ebp - 0x698]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x688]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [ebp - 0x654], 0x18
mov word [ebp - 0x698], ax
jmp 0x40444a
lea ecx, [ebp - 0x698]
push ecx
push eax
lea ecx, [ebp - 0x658]
call fcn.00402be0
mov ecx, dword [ebp - 0x684]
mov byte [ebp - 4], 9
cmp ecx, 8
jb 0x404488
mov edx, dword [ebp - 0x698]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40447e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4045a1
push ecx
push edx
call fcn.004149eb
add esp, 8
push 0x19
xorps xmm0, xmm0
mov dword [ebp - 0x688], 0
push str.scsdk_uninstaller_log.txt
lea ecx, [ebp - 0x698]
mov dword [ebp - 0x684], 0
movups xmmword [ebp - 0x698], xmm0
call fcn.004011f0
mov eax, dword [ebp - 0x654]
mov byte [ebp - 4], 0xb
cmp eax, dword [ebp - 0x650]
je 0x4044f8
movups xmm0, xmmword [ebp - 0x698]
mov ecx, 7
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x688]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [ebp - 0x654], 0x18
mov word [ebp - 0x698], ax
jmp 0x404511
lea ecx, [ebp - 0x698]
push ecx
push eax
lea ecx, [ebp - 0x658]
call fcn.00402be0
mov ecx, dword [ebp - 0x684]
mov byte [ebp - 4], 9
cmp ecx, 8
jb 0x40454b
mov edx, dword [ebp - 0x698]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404541
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4045a1
push ecx
push edx
call fcn.004149eb
add esp, 8
lea eax, [ebp - 0x658]
push eax
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x629]
call fcn.004034c0
lea ecx, [ebp - 0x658]
call fcn.00403430
mov ecx, dword [ebp - 0x638]
cmp ecx, 8
jb 0x4045b1
mov edx, dword [ebp - 0x64c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4045a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4045a7
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004149eb
add esp, 8
mov eax, dword [ebp - 0x680]
cmp eax, 8
jb 0x4045f3
mov edx, dword [ebp - 0x67c]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4045e9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4045e9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004149eb
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004149f9
mov esp, ebp
pop ebp
ret
call fcn.00401c90
int3