Function at 0x4c74e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x4f8c9d
mov eax, dword fs:[0]
push eax
sub esp, 0x22c
mov eax, dword [0x54d000]
xor eax, esp
mov dword [esp + 0x224], eax
push esi
push edi
mov eax, dword [0x54d000]
xor eax, esp
push eax
lea eax, [esp + 0x238]
mov dword fs:[0], eax
mov edi, ecx
xor esi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], esi
mov byte [esp + 0x94], 0
mov dword [esp + 0x240], esi
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], esi
mov byte [esp + 0xac], 0
push 0x104
lea eax, [esp + 0x129]
mov byte [esp + 0x244], 1
push esi
push eax
mov byte [esp + 0x130], 0
call fcn.004dc9b0
add esp, 0xc
lea eax, [esp + 0x124]
push 0x104
push eax
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xorps xmm0, xmm0
mov dword [esp + 0x114], esi
lea eax, [esp + 0x124]
movdqa xmmword [esp + 0xf4], xmm0
push eax
lea ecx, [esp + 0xf8]
movdqa xmmword [esp + 0x108], xmm0
call fcn.004c8250
lea eax, [esp + 0x7c]
mov byte [esp + 0x240], 2
push eax
lea ecx, [esp + 0xf8]
call fcn.004c8170
lea ecx, [edi + 0x54]
mov byte [esp + 0x240], 3
cmp ecx, eax
je 0x4c7603
push 0xffffffffffffffff
push esi
push eax
call fcn.00426d70
mov byte [esp + 0x240], 2
lea eax, [esp + 0x7c]
cmp dword [esp + 0x90], 0x10
mov dword [esp + 0x8c], 0
cmovae eax, dword [esp + 0x7c]
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c7640
push dword [esp + 0x7c]
call fcn.004d9d65
add esp, 4
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xf8]
call fcn.004c5f80
lea ecx, [edi + 0x3c]
mov byte [esp + 0x240], 4
cmp ecx, eax
je 0x4c766a
push 0xffffffffffffffff
push 0
push eax
call fcn.00426d70
mov byte [esp + 0x240], 2
lea eax, [esp + 0x7c]
cmp dword [esp + 0x90], 0x10
mov dword [esp + 0x8c], 0
cmovae eax, dword [esp + 0x7c]
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c76a7
push dword [esp + 0x7c]
call fcn.004d9d65
add esp, 4
push 0x6a
lea ecx, [esp + 0x98]
call fcn.004c66f0
push 0x6c
lea ecx, [esp + 0xb0]
call fcn.004c66f0
lea eax, [esp + 0x124]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
mov byte [esp + 0x240], 5
cmp byte [esp + 0x124], 0
jne 0x4c7704
xor ecx, ecx
jmp 0x4c7719
lea ecx, [esp + 0x124]
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c7710
sub ecx, edx
push ecx
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0x38]
call fcn.004270f0
lea eax, [esp + 0x30]
mov byte [esp + 0x240], 6
push eax
lea eax, [esp + 0x80]
push eax
call fcn.004c6220
lea ecx, [esp + 0xac]
mov byte [esp + 0x240], 7
push ecx
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.004c80c0
lea esi, [edi + 0x6c]
mov byte [esp + 0x240], 8
lea eax, [esp + 0x14]
cmp esi, eax
je 0x4c7780
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00426d70
cmp dword [esp + 0x28], 0x10
lea eax, [esp + 0x14]
mov dword [esp + 0x24], 0
cmovae eax, dword [esp + 0x14]
mov byte [eax], 0
cmp dword [esp + 0x28], 0x10
jb 0x4c77ac
push dword [esp + 0x14]
call fcn.004d9d65
add esp, 4
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
mov dword [esp + 0x28], 0xf
cmovae eax, dword [esp + 0x7c]
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
mov dword [esp + 0x8c], 0
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c77f6
push dword [esp + 0x7c]
call fcn.004d9d65
add esp, 4
mov byte [esp + 0x240], 2
lea eax, [esp + 0x30]
cmp dword [esp + 0x44], 0x10
mov dword [esp + 0x90], 0xf
cmovae eax, dword [esp + 0x30]
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
mov dword [esp + 0x40], 0
mov byte [eax], 0
cmp dword [esp + 0x44], 0x10
jb 0x4c7845
push dword [esp + 0x30]
call fcn.004d9d65
add esp, 4
lea eax, [esp + 0x7c]
mov ecx, esi
push eax
call fcn.00434a90
lea esi, [edi + 0x90]
mov byte [esp + 0x240], 9
lea eax, [esp + 0x7c]
cmp esi, eax
je 0x4c7873
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00426d70
mov byte [esp + 0x240], 2
lea eax, [esp + 0x7c]
cmp dword [esp + 0x90], 0x10
mov dword [esp + 0x8c], 0
cmovae eax, dword [esp + 0x7c]
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c78b0
push dword [esp + 0x7c]
call fcn.004d9d65
add esp, 4
lea eax, [esp + 0x30]
push eax
lea ecx, [edi + 0x6c]
call fcn.00434a90
lea ecx, [esp + 0x94]
mov byte [esp + 0x240], 0xa
push ecx
lea ecx, [esp + 0x80]
push ecx
mov ecx, eax
call fcn.004c80c0
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0x244], 0xb
push eax
call fcn.004c6220
lea eax, [esp + 0x14]
mov byte [esp + 0x240], 0xc
cmp esi, eax
je 0x4c790b
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00426d70
cmp dword [esp + 0x28], 0x10
lea eax, [esp + 0x14]
mov dword [esp + 0x24], 0
cmovae eax, dword [esp + 0x14]
mov byte [eax], 0
cmp dword [esp + 0x28], 0x10
jb 0x4c7937
push dword [esp + 0x14]
call fcn.004d9d65
add esp, 4
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
mov dword [esp + 0x28], 0xf
cmovae eax, dword [esp + 0x7c]
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
mov dword [esp + 0x8c], 0
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c7981
push dword [esp + 0x7c]
call fcn.004d9d65
add esp, 4
mov byte [esp + 0x240], 2
lea eax, [esp + 0x30]
cmp dword [esp + 0x44], 0x10
mov dword [esp + 0x90], 0xf
cmovae eax, dword [esp + 0x30]
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
mov dword [esp + 0x40], 0
mov byte [eax], 0
cmp dword [esp + 0x44], 0x10
jb 0x4c79d0
push dword [esp + 0x30]
call fcn.004d9d65
add esp, 4
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.00434a90
push str.Save
lea ecx, [esp + 0x80]
mov byte [esp + 0x244], 0xd
push ecx
mov ecx, eax
call fcn.00434d60
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0x244], 0xe
push eax
call fcn.004c6220
lea eax, [edi + 0xb4]
mov byte [esp + 0x240], 0xf
lea ecx, [esp + 0x14]
cmp eax, ecx
je 0x4c7a2d
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00426d70
cmp dword [esp + 0x28], 0x10
lea eax, [esp + 0x14]
mov dword [esp + 0x24], 0
cmovae eax, dword [esp + 0x14]
mov byte [eax], 0
cmp dword [esp + 0x28], 0x10
jb 0x4c7a59
push dword [esp + 0x14]
call fcn.004d9d65
add esp, 4
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
mov dword [esp + 0x28], 0xf
cmovae eax, dword [esp + 0x7c]
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
mov dword [esp + 0x8c], 0
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c7aa3
push dword [esp + 0x7c]
call fcn.004d9d65
add esp, 4
mov byte [esp + 0x240], 2
lea eax, [esp + 0x30]
cmp dword [esp + 0x44], 0x10
mov dword [esp + 0x90], 0xf
cmovae eax, dword [esp + 0x30]
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
mov dword [esp + 0x40], 0
mov byte [eax], 0
cmp dword [esp + 0x44], 0x10
jb 0x4c7af2
push dword [esp + 0x30]
call fcn.004d9d65
add esp, 4
push 0x70
call fcn.004d9d79
add esp, 4
mov dword [esp + 0x48], eax
mov byte [esp + 0x240], 0x10
test eax, eax
je 0x4c7ba0
push 0x70
push 0
push eax
call fcn.004dc9b0
add esp, 0xc
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.00434a90
lea ecx, [esp + 0x94]
mov byte [esp + 0x240], 0x11
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x14], 1
push ecx
mov ecx, eax
call fcn.004c80c0
push str._inst.xml
lea ecx, [esp + 0x80]
mov dword [esp + 0x244], 0x12
push ecx
mov ecx, eax
mov dword [esp + 0x18], 3
call fcn.00434d60
mov dword [esp + 0x240], 0x13
mov esi, 7
cmp dword [eax + 0x14], 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], esi
jb 0x4c7b94
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
push eax
call fcn.004c84c0
jmp 0x4c7ba2
xor eax, eax
mov ecx, dword [esp + 0xc]
mov dword [edi + 0xec], eax
test cl, 4
je 0x4c7c0c
and ecx, 0xfffffffb
mov dword [esp + 0x8c], 0
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
mov dword [esp + 0xc], ecx
cmovae eax, dword [esp + 0x7c]
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c7bf1
push dword [esp + 0x7c]
call fcn.004d9d65
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
test cl, 2
je 0x4c7c5d
and ecx, 0xfffffffd
mov dword [esp + 0x40], 0
cmp dword [esp + 0x44], 0x10
lea eax, [esp + 0x30]
mov dword [esp + 0xc], ecx
cmovae eax, dword [esp + 0x30]
mov byte [eax], 0
cmp dword [esp + 0x44], 0x10
jb 0x4c7c48
push dword [esp + 0x30]
call fcn.004d9d65
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
mov dword [esp + 0x240], 2
test cl, 1
je 0x4c7ca0
and ecx, 0xfffffffe
mov dword [esp + 0x24], 0
cmp dword [esp + 0x28], 0x10
lea eax, [esp + 0x14]
mov dword [esp + 0xc], ecx
cmovae eax, dword [esp + 0x14]
mov byte [eax], 0
cmp dword [esp + 0x28], 0x10
jb 0x4c7ca0
push dword [esp + 0x14]
call fcn.004d9d65
add esp, 4
mov ecx, dword [edi + 0xec]
call fcn.004c8730
push 0x65
lea ecx, [edi + 0x24]
call fcn.004c66f0
push 0x70
call fcn.004d9d79
add esp, 4
mov dword [esp + 0x48], eax
mov byte [esp + 0x240], 0x17
test eax, eax
je 0x4c7d67
push 0x70
push 0
push eax
call fcn.004dc9b0
add esp, 0xc
lea eax, [esp + 0x14]
lea ecx, [edi + 0xb4]
push eax
call fcn.00434a90
lea ecx, [esp + 0x94]
mov byte [esp + 0x240], 0x18
mov esi, dword [esp + 0xc]
push ecx
lea ecx, [esp + 0x34]
or esi, 8
push ecx
mov ecx, eax
mov dword [esp + 0x18], esi
call fcn.004c80c0
push str..xml
lea ecx, [esp + 0x80]
mov dword [esp + 0x244], 0x19
push ecx
or esi, 0x10
mov ecx, eax
mov dword [esp + 0x18], esi
call fcn.00434d60
mov dword [esp + 0x240], 0x1a
or esi, 0x20
cmp dword [eax + 0x14], 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], esi
jb 0x4c7d5b
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
push eax
call fcn.004c84c0
jmp 0x4c7d69
xor eax, eax
mov ecx, dword [esp + 0xc]
mov dword [edi + 0xf0], eax
test cl, 0x20
je 0x4c7dd3
and ecx, 0xffffffdf
mov dword [esp + 0x8c], 0
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
mov dword [esp + 0xc], ecx
cmovae eax, dword [esp + 0x7c]
mov byte [eax], 0
cmp dword [esp + 0x90], 0x10
jb 0x4c7db8
push dword [esp + 0x7c]
call fcn.004d9d65
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
test cl, 0x10
je 0x4c7dec
and ecx, 0xffffffef
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x30]
call fcn.00426b30
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x240], 2
test cl, 8
je 0x4c7e0c
and ecx, 0xfffffff7
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x14]
call fcn.00426b30
mov ecx, dword [edi + 0xf0]
call fcn.004c8730
cmp dword [edi + 0x68], 0x10
lea eax, [edi + 0x54]
xorps xmm0, xmm0
mov dword [esp + 0xe4], 0
movdqa xmmword [esp + 0xc4], xmm0
movdqa xmmword [esp + 0xd4], xmm0
jb 0x4c7e42
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc8]
call fcn.004c8250
push 0x70
mov byte [esp + 0x244], 0x1e
call fcn.004d9d79
add esp, 4
mov dword [esp + 0x48], eax
mov byte [esp + 0x240], 0x1f
test eax, eax
je 0x4c7f07
push 0x70
push 0
push eax
call fcn.004dc9b0
add esp, 0xc
lea eax, [esp + 0x14]
lea ecx, [esp + 0xc4]
push eax
call fcn.00434a90
mov byte [esp + 0x240], 0x20
mov esi, dword [esp + 0xc]
push eax
lea eax, [esp + 0x34]
or esi, 0x40
push eax
mov dword [esp + 0x18], esi
call fcn.004c6220
push str.FileInfo.xml
lea ecx, [esp + 0x80]
mov dword [esp + 0x244], 0x21
push ecx
or esi, 0x80
mov ecx, eax
mov dword [esp + 0x18], esi
call fcn.00434d60
mov dword [esp + 0x240], 0x22
or esi, 0x100
cmp dword [eax + 0x14], 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], esi
jb 0x4c7efb
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
push eax
call fcn.004c84c0
jmp 0x4c7f09
xor eax, eax
mov dword [edi + 0xf4], eax
mov eax, dword [esp + 0xc]
test eax, 0x100
je 0x4c7f30
and eax, 0xfffffeff
lea ecx, [esp + 0x7c]
mov dword [esp + 0xc], eax
call fcn.00426b30
mov eax, dword [esp + 0xc]
test al, al
jns 0x4c7f4a
and eax, 0xffffff7f
lea ecx, [esp + 0x30]
mov dword [esp + 0xc], eax
call fcn.00426b30
mov eax, dword [esp + 0xc]
mov dword [esp + 0x240], 0x1e
test al, 0x40
je 0x4c7f62
lea ecx, [esp + 0x14]
call fcn.00426b30
mov ecx, dword [edi + 0xf4]
call fcn.004c8730
test eax, eax
jne 0x4c8062
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], eax
mov byte [esp + 0x7c], al
lea eax, [esp + 0x4c]
mov byte [esp + 0x240], 0x26
push eax
lea ecx, [esp + 0xc8]
call fcn.00434a90
push eax
lea eax, [esp + 0x68]
mov byte [esp + 0x244], 0x27
push eax
call fcn.004c6220
push str.FileInfo.xml
lea ecx, [esp + 0x18]
mov byte [esp + 0x244], 0x28
push ecx
mov ecx, eax
call fcn.00434d60
sub esp, 0x18
mov byte [esp + 0x258], 0x29
movdqu xmm0, xmmword [eax]
mov ecx, esp
push str.Load_Error:_n_s
movdqu xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x9c]
movq qword [ecx + 0x10], xmm0
push eax
call fcn.004c6540
add esp, 0x24
lea ecx, [esp + 0x30]
call fcn.00426b30
lea ecx, [esp + 0x14]
call fcn.00426b30
lea ecx, [esp + 0x64]
call fcn.00426b30
lea ecx, [esp + 0x4c]
mov byte [esp + 0x240], 0x26
call fcn.00426b30
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
push 0
cmovae eax, dword [esp + 0x80]
mov ecx, 0x58dba0
push eax
mov eax, dword [0x58dba0]
call dword [eax + 4]
lea ecx, [esp + 0x7c]
call fcn.00426b30
lea ecx, [esp + 0xc4]
call fcn.00434e00
lea ecx, [esp + 0xf4]
call fcn.00434e00
lea ecx, [esp + 0xac]
call fcn.00426b30
lea ecx, [esp + 0x94]
call fcn.00426b30
mov ecx, dword [esp + 0x238]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x224]
xor ecx, esp
call fcn.004d9d6a
mov esp, ebp
pop ebp
ret