Function at 0x4011a0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x42233c
mov eax, dword fs:[0]
push eax
sub esp, 0xbc8
mov eax, dword [0x428060]
xor eax, esp
mov dword [esp + 0xbc0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x428060]
xor eax, esp
push eax
lea eax, [esp + 0xbdc]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xbec]
push 0x103
lea eax, [esp + 0x91]
push 0
push eax
mov dword [esp + 0x24], ebp
mov ebx, ecx
mov byte [esp + 0x98], 0
call fcn.00411230
add esp, 0xc
push 0x103
lea ecx, [esp + 0x6b9]
push 0
push ecx
mov byte [esp + 0x6c0], 0
call fcn.00411230
add esp, 0xc
push 0x103
lea edx, [esp + 0x199]
push 0
push edx
mov byte [esp + 0x1a0], 0
call fcn.00411230
add esp, 0xc
push 0x103
lea eax, [esp + 0x2a1]
push 0
push eax
mov byte [esp + 0x2a8], 0
call fcn.00411230
add esp, 0xc
push 0x103
lea ecx, [esp + 0x7c1]
push 0
push ecx
mov byte [esp + 0x7c8], 0
call fcn.00411230
add esp, 0xc
push 0x103
lea edx, [esp + 0x8c9]
push 0
push edx
mov byte [esp + 0x8d0], 0
call fcn.00411230
add esp, 0xc
push 0x103
lea eax, [esp + 0x3a9]
push 0
push eax
mov byte [esp + 0x3b0], 0
call fcn.00411230
add esp, 0xc
push str._slient
push ebx
call fcn.0040f170
add esp, 8
test eax, eax
je 0x4012dc
mov dword [ebp], 1
jmp 0x4012ea
push str._default
push ebx
call fcn.0040f170
add esp, 8
push str.callExe
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x401353
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401310
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401330
sub eax, edx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 8
lea ecx, [esp + 0x94]
push edi
push ecx
call fcn.00421580
add esp, 0x10
push str.callIni
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x4013b7
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401378
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401394
sub eax, edx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 8
lea edx, [esp + 0x6bc]
push edi
push edx
call fcn.00421580
add esp, 0x10
push str.tempName
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x401423
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4013e0
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401400
sub eax, edx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 9
lea eax, [esp + 0x19c]
push edi
push eax
call fcn.00421580
add esp, 0x10
push str.downloadafile
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x401487
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401448
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401464
sub eax, edx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 0xe
lea ecx, [esp + 0x2a4]
push edi
push ecx
call fcn.00421580
add esp, 0x10
push str.version1
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x4014f3
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4014b0
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4014d0
sub eax, edx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 9
lea edx, [esp + 0x7c4]
push edi
push edx
call fcn.00421580
add esp, 0x10
push str.version2
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x401557
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401518
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401534
sub eax, edx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 9
lea eax, [esp + 0x8cc]
push edi
push eax
call fcn.00421580
add esp, 0x10
push str.mainhwnd
push ebx
call fcn.0040f170
mov edi, eax
add esp, 8
test edi, edi
je 0x4015f4
push 0x424d08
push edi
call fcn.0040f170
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401580
sub eax, edx
push 0x424d0c
push edi
mov esi, eax
call fcn.0040f170
add esp, 8
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4015a0
sub eax, ecx
sub esi, eax
dec esi
push esi
push 0xa
add edi, 9
lea ecx, [esp + 0x3ac]
push edi
push ecx
call fcn.00421580
lea eax, [esp + 0x3b4]
add esp, 0x10
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4015d0
sub eax, edx
cmp eax, 1
jbe 0x4015f4
lea edx, [esp + 0x3a4]
push edx
call fcn.0040f417
add esp, 4
mov dword [ebp + 0xc8], eax
lea eax, [esp + 0x8c]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401600
sub eax, edx
push eax
lea eax, [esp + 0x90]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00401ed0
lea eax, [esp + 0x6b4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401624
sub eax, edx
push eax
lea ecx, [esp + 0x6b8]
push ecx
lea ecx, [ebp + 0x58]
call fcn.00401ed0
lea eax, [esp + 0x29c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401648
sub eax, edx
push eax
lea edx, [esp + 0x2a0]
push edx
lea ecx, [ebp + 0x74]
call fcn.00401ed0
xor esi, esi
lea eax, [esp + 0x194]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], esi
mov byte [esp + 0x58], 0
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401680
sub eax, ecx
push eax
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x5c]
call fcn.00401ed0
mov dword [esp + 0xbe4], esi
xor ecx, ecx
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], esi
mov word [esp + 0x74], cx
mov byte [esp + 0xbe4], 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
mov eax, edx
cmp ecx, 0x10
jae 0x4016d6
lea eax, [esp + 0x58]
mov ebx, dword [esp + 0x68]
lea edi, [eax + ebx]
test edi, edi
je 0x401701
mov eax, edx
cmp ecx, 0x10
jae 0x4016ec
lea eax, [esp + 0x58]
cmp eax, edi
ja 0x401701
mov eax, edx
cmp ecx, 0x10
jae 0x4016fb
lea eax, [esp + 0x58]
add eax, ebx
cmp edi, eax
jbe 0x401712
call fcn.0040f353
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
lea ebp, [esp + 0x54]
cmp ecx, 0x10
jb 0x401afe
mov esi, edx
test edx, edx
je 0x401745
mov eax, edx
cmp ecx, 0x10
jae 0x401730
lea eax, [esp + 0x58]
cmp eax, esi
ja 0x401745
mov eax, edx
cmp ecx, 0x10
jae 0x40173f
lea eax, [esp + 0x58]
add eax, ebx
cmp esi, eax
jbe 0x40174a
call fcn.0040f353
mov edx, dword [esp + 0x18]
push edi
push ebp
push esi
lea eax, [esp + 0x60]
push eax
push edx
lea eax, [esp + 0x84]
call fcn.00402720
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x9d6]
push ecx
mov word [esp + 0x9d8], ax
call fcn.00411230
add esp, 0xc
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x4b6]
push eax
mov word [esp + 0x4b8], dx
call fcn.00411230
add esp, 0xc
push 0x104
lea ecx, [esp + 0x9d0]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [esp + 0x9cc]
push 0x5c
push edx
call fcn.0040f363
xor ecx, ecx
mov word [eax], cx
add esp, 8
xor edx, edx
lea eax, [esp + 0x9cc]
mov word [esp + 0x3c], dx
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], ecx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4017f0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x9d0]
lea esi, [esp + 0x3c]
call fcn.00402100
mov byte [esp + 0xbe4], 2
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
mov eax, edx
cmp ecx, 8
jae 0x40182b
lea eax, [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
lea edi, [eax + ebx*2]
test edi, edi
je 0x401857
mov eax, edx
cmp ecx, 8
jae 0x401841
lea eax, [esp + 0x3c]
cmp eax, edi
ja 0x401857
mov eax, edx
cmp ecx, 8
jae 0x401850
lea eax, [esp + 0x3c]
lea eax, [eax + ebx*2]
cmp edi, eax
jbe 0x401868
call fcn.0040f353
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
lea ebp, [esp + 0x38]
cmp ecx, 8
jb 0x401b07
mov esi, edx
test edx, edx
je 0x40189c
mov eax, edx
cmp ecx, 8
jae 0x401886
lea eax, [esp + 0x3c]
cmp eax, esi
ja 0x40189c
mov eax, edx
cmp ecx, 8
jae 0x401895
lea eax, [esp + 0x3c]
lea ecx, [eax + ebx*2]
cmp esi, ecx
jbe 0x4018a1
call fcn.0040f353
mov edx, dword [esp + 0x18]
push edi
push ebp
push esi
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x28]
push edx
add eax, 0x20
call fcn.004027d0
push 0
push 0x23
lea eax, [esp + 0x4b4]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [esp + 0x4ac]
push 0x5c
push ecx
call fcn.0040f363
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x4b4]
push eax
mov ecx, eax
push str._sTemp
push ecx
call esi
mov eax, dword [esp + 0x88]
add esp, 0x14
cmp dword [esp + 0x88], 8
jae 0x401912
lea eax, [esp + 0x74]
push eax
lea edx, [esp + 0x4b0]
push edx
mov eax, edx
push str._s_s
push eax
call esi
add esp, 0x10
xor ecx, ecx
lea eax, [esp + 0x4ac]
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], 0
mov word [esp + 0x20], cx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401950
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x4b0]
lea esi, [esp + 0x20]
call fcn.00402100
mov byte [esp + 0xbe4], 3
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov eax, edx
cmp ecx, 8
jae 0x40198b
lea eax, [esp + 0x20]
mov ebx, dword [esp + 0x30]
lea edi, [eax + ebx*2]
test edi, edi
je 0x4019b7
mov eax, edx
cmp ecx, 8
jae 0x4019a1
lea eax, [esp + 0x20]
cmp eax, edi
ja 0x4019b7
mov eax, edx
cmp ecx, 8
jae 0x4019b0
lea eax, [esp + 0x20]
lea eax, [eax + ebx*2]
cmp edi, eax
jbe 0x4019c8
call fcn.0040f353
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
lea ebp, [esp + 0x1c]
cmp ecx, 8
jb 0x401b10
mov esi, edx
test edx, edx
je 0x4019fc
mov eax, edx
cmp ecx, 8
jae 0x4019e6
lea eax, [esp + 0x20]
cmp eax, esi
ja 0x4019fc
mov eax, edx
cmp ecx, 8
jae 0x4019f5
lea eax, [esp + 0x20]
lea ecx, [eax + ebx*2]
cmp esi, ecx
jbe 0x401a01
call fcn.0040f353
mov edx, dword [esp + 0x18]
push edi
push ebp
push esi
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x28]
push edx
add eax, 4
call fcn.004027d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
xor edi, edi
xor eax, eax
mov esi, 7
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], edi
push 0xffffffffffffffff
mov word [ecx + 4], ax
push edi
lea eax, [esp + 0x40]
call fcn.00401de0
call fcn.0040aee0
mov ebx, 8
add esp, 0x1c
cmp dword [esp + 0x34], ebx
jb 0x401a62
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0040f38f
add esp, 4
xor edx, edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], edi
mov word [esp + 0x20], dx
cmp dword [esp + 0x50], ebx
jb 0x401a84
mov eax, dword [esp + 0x3c]
push eax
call fcn.0040f38f
add esp, 4
xor ecx, ecx
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], edi
mov word [esp + 0x3c], cx
cmp dword [esp + 0x88], ebx
jb 0x401aa9
mov edx, dword [esp + 0x74]
push edx
call fcn.0040f38f
add esp, 4
xor eax, eax
cmp dword [esp + 0x6c], 0x10
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], edi
mov word [esp + 0x74], ax
jb 0x401ad2
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0040f38f
add esp, 4
mov al, 1
mov ecx, dword [esp + 0xbdc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xbc0]
xor ecx, esp
call fcn.0040efdf
add esp, 0xbd4
ret 4
lea esi, [esp + 0x58]
jmp 0x401725
lea esi, [esp + 0x3c]
jmp 0x40187b
lea esi, [esp + 0x20]
jmp 0x4019db