Function at 0x40a690
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x676693
mov eax, dword fs:[0]
push eax
sub esp, 0x1dc
mov eax, dword [0x71906c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 4], 0
call fcn.004cf935
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 1
call fcn.004cf935
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0xf
mov byte [ebp - 0x1ac], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
mov byte [ebp - 4], 4
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
push 0
push dword [ebp + 0x18]
cmovae eax, dword [ebp + 8]
push eax
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0
call fcn.004ccba8
add esp, 0xc
test eax, eax
je 0x40a7a6
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00406d70
lea eax, [ebp - 0x12c]
push eax
call fcn.004cca14
add esp, 0x1c
lea ecx, [ebp + 8]
push eax
call fcn.00406c50
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40a7a6
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a79c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b33a
push edx
push ecx
call fcn.0042dda0
add esp, 8
push dword [ebp - 0x1e8]
mov ebx, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov esi, dword [ebp + 0x18]
cmp ebx, 0x10
push 1
cmovae eax, dword [ebp + 8]
push 0x7007a8
push 0
push esi
push eax
call fcn.0040b880
mov edx, eax
add esp, 0x18
cmp edx, 0xffffffff
je 0x40a86a
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
cmp esi, edx
jb 0x40b33f
sub esi, edx
lea eax, [ebp + 8]
or ecx, 0xffffffff
cmp esi, 0xffffffff
cmovb ecx, esi
cmp ebx, 0x10
push ecx
cmovae eax, dword [ebp + 8]
lea ecx, [ebp - 0x12c]
add eax, edx
push eax
call fcn.00407210
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp + 8]
call fcn.00406c50
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40a86a
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a860
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b344
push edx
push ecx
call fcn.0042dda0
add esp, 8
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x1e4]
call fcn.004cffea
test al, al
jne 0x40a884
xor bl, bl
jmp 0x40b27f
push 4
push str.data
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
lea eax, [ebp - 0x194]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x1e4]
call fcn.004cfdf2
mov byte [ebp - 4], 4
mov bl, al
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40a90e
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a904
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b349
push edx
push ecx
call fcn.0042dda0
add esp, 8
test bl, bl
je 0x40b278
push 0x110
call fcn.0042ddd1
push 0x110
mov esi, eax
push 0
push esi
call fcn.00506fe0
add esp, 0x10
mov ecx, esi
call fcn.0040b390
mov dword [edi + 0x68], eax
lea ecx, [ebp - 0x12c]
push 3
push 0x70076c
mov dword [eax + 0x30], 0
mov eax, dword [edi + 0x68]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
mov dword [eax + 0xdc], 0
call fcn.00407210
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0x30
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfd9e
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40a9d8
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a9ce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b34e
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 8
push str.filename
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0x34
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40aa60
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40aa56
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b353
push edx
push ecx
call fcn.0042dda0
add esp, 8
mov eax, dword [edi + 0x68]
cmp dword [eax + 0x44], 0
ja 0x40aaf5
push 9
push str.file_name
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0x34
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40aaf5
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40aaeb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b358
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 8
push str.fullname
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0x4c
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40ab7d
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ab73
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b35d
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 7
push str.downurl
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0x64
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40ac05
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40abfb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b362
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 8
push str.softtype
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0x94
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40ac8f
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ac85
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b367
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 4
push str.size
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0xac
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40ad19
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ad0f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b36c
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 4
push str.type
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0xdc
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfd9e
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40ada3
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ad99
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b371
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 3
push 0x7007f4
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x194]
mov eax, dword [edi + 0x68]
add eax, 0xe0
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40ae2d
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ae23
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b376
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 0xb
push str.description
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00407210
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x194]
call fcn.004cfea3
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40aeb5
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40aeab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b37b
push edx
push ecx
call fcn.0042dda0
add esp, 8
cmp dword [ebp - 0x130], 0x10
lea eax, [ebp - 0x144]
push 0
push dword [ebp - 0x134]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.004ccba8
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x144]
je 0x40af38
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004cda89
add esp, 8
mov ecx, dword [edi + 0x68]
push eax
add ecx, 0x7c
call fcn.00408c30
mov edx, dword [ebp - 0x118]
cmp edx, 8
jb 0x40af63
mov ecx, dword [ebp - 0x12c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40af59
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
jmp 0x40af59
push 0x3a8
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00406d70
lea eax, [ebp - 0x12c]
push eax
call fcn.004cd229
add esp, 0x20
jmp 0x40aef4
push edx
push ecx
call fcn.0042dda0
add esp, 8
mov eax, dword [edi + 0x68]
add eax, 0x34
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x40af74
mov eax, dword [eax]
push 0
push ecx
push eax
call fcn.004ccba8
add esp, 0xc
test eax, eax
je 0x40afea
mov eax, dword [edi + 0x68]
sub esp, 0x18
add eax, 0x34
mov ecx, esp
push eax
call fcn.00406d70
lea eax, [ebp - 0x12c]
push eax
call fcn.004cca14
mov ecx, dword [edi + 0x68]
add esp, 0x1c
add ecx, 0x34
push eax
call fcn.00406c50
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40afea
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40afe0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
mov eax, dword [edi + 0x68]
add eax, 0x4c
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x40affb
mov eax, dword [eax]
push 0
push ecx
push eax
call fcn.004ccba8
add esp, 0xc
test eax, eax
je 0x40b071
mov eax, dword [edi + 0x68]
sub esp, 0x18
add eax, 0x4c
mov ecx, esp
push eax
call fcn.00406d70
lea eax, [ebp - 0x12c]
push eax
call fcn.004cca14
mov ecx, dword [edi + 0x68]
add esp, 0x1c
add ecx, 0x4c
push eax
call fcn.00406c50
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40b071
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b067
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.00506fe0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov ecx, dword [edi + 0x68]
lea edx, [ebp - 0x114]
add ecx, 0x18
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x40b0a8
sub edx, esi
lea eax, [ebp - 0x114]
push edx
push eax
call fcn.00407210
mov eax, dword [edi + 0x68]
add eax, 0xe0
cmp dword [eax + 0x14], 0x10
jb 0x40b0ce
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
mov ecx, dword [edi + 0x68]
push eax
add ecx, 0x18
call fcn.00406b40
mov eax, dword [edi + 0x68]
push 0
push 0
push 0
push 0
push 0x3a8
sub esp, 0x18
add eax, 0x18
mov ecx, esp
push eax
call fcn.00406d70
lea eax, [ebp - 0x15c]
push eax
call fcn.004cd229
add esp, 0x20
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 8
jb 0x40b11a
mov eax, dword [eax]
push eax
mov eax, dword [edi + 0x68]
push 0x3a8
sub esp, 0x18
add eax, 0xe0
mov ecx, esp
push eax
call fcn.00406d70
lea eax, [ebp - 0x12c]
push eax
call fcn.004cd229
add esp, 0x20
mov byte [ebp - 4], 0x11
cmp dword [eax + 0x14], 8
jb 0x40b14e
mov eax, dword [eax]
push eax
call fcn.004df3c0
add esp, 0x18
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x118]
test al, al
sete bl
cmp edx, 8
jb 0x40b1a0
mov ecx, dword [ebp - 0x12c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b196
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 7
mov word [ebp - 0x12c], ax
cmp edx, 8
jb 0x40b201
mov ecx, dword [ebp - 0x15c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b1f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
test bl, bl
je 0x40b21d
mov eax, dword [edi + 0x68]
add eax, 0x18
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 0x10
jb 0x40b21a
mov eax, dword [eax]
mov byte [eax], 0
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x194]
call fcn.004d01bb
mov ecx, dword [edi + 0x68]
push eax
add ecx, 0xf8
call fcn.00406c50
mov edx, dword [ebp - 0x148]
cmp edx, 0x10
jb 0x40b278
mov ecx, dword [ebp - 0x15c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b26e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
cmp dword [edi + 0x68], 0
setne bl
mov edx, dword [ebp - 0x130]
cmp edx, 0x10
jb 0x40b2b9
mov ecx, dword [ebp - 0x144]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b2af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
call fcn.004cf9eb
lea ecx, [ebp - 0x1e4]
call fcn.004cf9eb
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x40b31a
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b310
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b380
push edx
push ecx
call fcn.0042dda0
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042d755
mov esp, ebp
pop ebp
ret 0x18
call fcn.0050cb1e
call fcn.00405020
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
call fcn.0050cb1e
int3