Function at 0x406ce0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63e6b8
mov eax, dword fs:[0]
push eax
sub esp, 0x1e0
mov eax, dword [0x6d906c]
xor eax, ebp
mov dword [ebp - 0x10], eax
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.004c6f9d
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 1
call fcn.004c6f9d
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x180], 0xf
mov byte [ebp - 0x194], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
sub esp, 0x18
mov byte [ebp - 4], 4
lea eax, [ebp + 8]
mov dword [edi + 4], 0
mov ecx, esp
mov dword [edi + 0x38], 0
push eax
call fcn.00403930
lea eax, [ebp - 0x12c]
push eax
call fcn.004c43c7
add esp, 0x1c
lea ecx, [ebp + 8]
push eax
call fcn.00403810
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x406dd8
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406dce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407841
push edx
push ecx
call fcn.004216e0
add esp, 8
push dword [ebp - 0x1ec]
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
mov esi, dword [ebp + 0x18]
cmovae eax, dword [ebp + 8]
push 1
push 0x6c25c0
push 0
push esi
push eax
call fcn.00407ca0
mov edx, eax
add esp, 0x18
cmp edx, 0xffffffff
je 0x406e9b
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
cmp esi, edx
jb 0x407846
sub esi, edx
lea eax, [ebp + 8]
or ecx, 0xffffffff
cmp esi, 0xffffffff
cmovb ecx, esi
cmp dword [ebp + 0x1c], 0x10
push ecx
cmovae eax, dword [ebp + 8]
lea ecx, [ebp - 0x12c]
add eax, edx
push eax
call fcn.00403f10
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp + 8]
call fcn.00403810
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x406e9b
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406e91
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40784b
push edx
push ecx
call fcn.004216e0
add esp, 8
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x1e4]
call fcn.004c7658
test al, al
jne 0x406eb9
mov byte [ebp - 0x1e5], al
jmp 0x40777f
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.00403f10
lea eax, [ebp - 0x17c]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x1e4]
call fcn.004c74ab
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
mov byte [ebp - 0x1e5], al
cmp edx, 0x10
jb 0x406f4d
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f3d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407850
push edx
push ecx
call fcn.004216e0
mov al, byte [ebp - 0x1e5]
add esp, 8
test al, al
je 0x407774
push 0xe0
call fcn.00421335
push 0xe0
mov esi, eax
push 0
push esi
call fcn.004fab00
add esp, 0x10
mov ecx, esi
call fcn.004078b0
mov dword [edi + 0x38], eax
lea ecx, [ebp - 0x12c]
push 3
push 0x6c25cc
mov dword [eax + 0x30], 0
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
mov dword [eax + 0xc4], 0
call fcn.00403f10
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0x30
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c7406
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x407017
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40700d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407855
push edx
push ecx
call fcn.004216e0
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.00403f10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0x34
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40709f
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407095
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40785a
push edx
push ecx
call fcn.004216e0
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.00403f10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0x4c
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x407127
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40711d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40785f
push edx
push ecx
call fcn.004216e0
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.00403f10
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0x64
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x4071af
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4071a5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407864
push edx
push ecx
call fcn.004216e0
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.00403f10
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0x94
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x407239
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40722f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407869
push edx
push ecx
call fcn.004216e0
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.00403f10
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0xac
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x4072c3
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4072b9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40786e
push edx
push ecx
call fcn.004216e0
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.00403f10
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0xc4
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c7406
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40734d
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407343
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407873
push edx
push ecx
call fcn.004216e0
add esp, 8
push 3
push 0x6c260c
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.00403f10
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x17c]
mov eax, dword [edi + 0x38]
add eax, 0xc8
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x4073d7
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4073cd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407878
push edx
push ecx
call fcn.004216e0
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.00403f10
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x17c]
call fcn.004c755c
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40745f
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407455
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40787d
push edx
push ecx
call fcn.004216e0
add esp, 8
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.004c5317
mov esi, eax
add esp, 8
mov eax, dword [edi + 0x38]
add eax, 0x7c
mov dword [ebp - 0x1ec], eax
cmp eax, esi
je 0x4074b7
mov ecx, eax
call fcn.004035e0
movups xmm0, xmmword [esi]
mov eax, dword [ebp - 0x1ec]
movups xmmword [eax], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [eax + 0x10], xmm0
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x118]
cmp edx, 8
jb 0x4074f7
mov ecx, dword [ebp - 0x12c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4074ed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407882
push edx
push ecx
call fcn.004216e0
add esp, 8
mov eax, dword [edi + 0x38]
sub esp, 0x18
add eax, 0x34
mov ecx, esp
push eax
call fcn.00403930
lea eax, [ebp - 0x12c]
push eax
call fcn.004c43c7
mov ecx, dword [edi + 0x38]
add esp, 0x1c
add ecx, 0x34
push eax
call fcn.00403810
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x40755d
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407553
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407887
push edx
push ecx
call fcn.004216e0
add esp, 8
mov eax, dword [edi + 0x38]
sub esp, 0x18
add eax, 0x4c
mov ecx, esp
push eax
call fcn.00403930
lea eax, [ebp - 0x12c]
push eax
call fcn.004c43c7
mov ecx, dword [edi + 0x38]
add esp, 0x1c
add ecx, 0x4c
push eax
call fcn.00403810
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x4075c3
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4075b9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40788c
push edx
push ecx
call fcn.004216e0
add esp, 8
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.004fab00
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov ecx, dword [edi + 0x38]
lea edx, [ebp - 0x114]
add ecx, 0x18
lea esi, [edx + 1]
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x407600
sub edx, esi
lea eax, [ebp - 0x114]
push edx
push eax
call fcn.00403f10
mov eax, dword [edi + 0x38]
add eax, 0xc8
cmp dword [eax + 0x14], 0x10
jb 0x407626
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
mov ecx, dword [edi + 0x38]
push eax
add ecx, 0x18
call fcn.004036b0
mov eax, dword [edi + 0x38]
push 0
push 0
push 0
push 0x3a8
sub esp, 0x18
add eax, 0x18
mov ecx, esp
push eax
call fcn.00403930
lea eax, [ebp - 0x1ac]
push eax
call fcn.004c4b35
add esp, 0x20
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x14], 8
jb 0x407670
mov eax, dword [eax]
push eax
mov eax, dword [edi + 0x38]
push 0x3a8
sub esp, 0x18
add eax, 0xc8
mov ecx, esp
push eax
call fcn.00403930
lea eax, [ebp - 0x12c]
push eax
call fcn.004c4b35
add esp, 0x20
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 8
jb 0x4076a4
mov eax, dword [eax]
push eax
call fcn.004d4380
mov edx, dword [ebp - 0x118]
add esp, 0x14
test al, al
sete byte [ebp - 0x1e5]
cmp edx, 8
jb 0x4076f6
mov ecx, dword [ebp - 0x12c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4076ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407891
push edx
push ecx
call fcn.004216e0
add esp, 8
mov edx, dword [ebp - 0x198]
xor eax, eax
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 7
mov word [ebp - 0x12c], ax
cmp edx, 8
jb 0x407753
mov ecx, dword [ebp - 0x1ac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407749
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407896
push edx
push ecx
call fcn.004216e0
add esp, 8
cmp byte [ebp - 0x1e5], 0
je 0x407774
mov eax, dword [edi + 0x38]
add eax, 0x18
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 0x10
jb 0x407771
mov eax, dword [eax]
mov byte [eax], 0
cmp dword [edi + 0x38], 0
setne byte [ebp - 0x1e5]
mov edx, dword [ebp - 0x130]
cmp edx, 0x10
jb 0x4077b9
mov ecx, dword [ebp - 0x144]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4077af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40789b
push edx
push ecx
call fcn.004216e0
add esp, 8
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
call fcn.004c7053
lea ecx, [ebp - 0x1e4]
call fcn.004c7053
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x40781e
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407814
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078a0
push edx
push ecx
call fcn.004216e0
add esp, 8
mov al, byte [ebp - 0x1e5]
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.00421065
mov esp, ebp
pop ebp
ret 0x18
call fcn.004fe980
call fcn.00407b30
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
call fcn.004fe980
int3