Function at 0x45f190
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a5529
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x530
mov dword [ebp - 0x20], 0
mov eax, dword [ebx + 8]
push esi
push edi
mov dword [ebp - 0x1c], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
lea edi, [ecx + 4]
mov dword [ebp - 4], 0
cmp dword [edi + 0x14], 0x10
mov esi, edi
mov dword [ebp - 0x20], 1
jb 0x45f200
mov esi, dword [edi]
lea ecx, [ebp - 0x14]
call fcn.00441630
mov edx, esi
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.00431c30
mov esi, eax
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x45f22e
call fcn.0040d490
mov byte [ebp - 4], 0
cmp esi, 2
jne 0x45f589
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x45f245
mov ecx, dword [edi]
test ecx, ecx
jne 0x45f251
mov byte [ebp - 0x230], cl
jmp 0x45f270
lea eax, [ebp - 0x230]
mov dl, byte [ecx]
lea ecx, [ecx + 1]
test dl, dl
je 0x45f26d
mov byte [eax], dl
inc eax
lea edx, [ebp - 0x12d]
cmp eax, edx
jb 0x45f257
mov byte [eax], 0
lea ecx, [ebp - 0x230]
mov esi, str.Setup
mov eax, ecx
nop dword [eax]
mov dl, byte [ecx]
lea ecx, [ecx + 1]
test dl, dl
je 0x45f296
mov byte [eax], dl
inc eax
lea edx, [ebp - 0x12d]
cmp eax, edx
jb 0x45f280
mov byte [eax], 0
cmp byte [ebp - 0x230], 0
je 0x45f2b7
push 0
mov edx, 0x104
lea ecx, [ebp - 0x230]
call fcn.0043a2c0
add esp, 4
mov al, byte [esi]
cmp al, 0x2f
je 0x45f2c1
cmp al, 0x5c
jne 0x45f2c4
inc esi
jmp 0x45f2b7
lea eax, [ebp - 0x230]
nop word [eax + eax]
cmp byte [eax], 0
lea ecx, [ebp - 0x12d]
je 0x45f2e2
inc eax
cmp eax, ecx
jbe 0x45f2d0
jmp 0x45f309
cmp eax, ecx
ja 0x45f309
lea ecx, [ebp - 0x12d]
cmp eax, ecx
jae 0x45f306
mov cl, byte [esi]
lea esi, [esi + 1]
test cl, cl
je 0x45f306
mov byte [eax], cl
inc eax
lea ecx, [ebp - 0x12d]
cmp eax, ecx
jb 0x45f2f0
mov byte [eax], 0
lea edx, [ebp - 0x230]
push 0x104
mov ecx, edx
call fcn.0043a0f0
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.00441630
lea edx, [ebp - 0x230]
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x14]
call fcn.00431c30
mov esi, eax
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x45f350
call fcn.0040d490
mov byte [ebp - 4], 0
cmp esi, 2
jne 0x45f3cc
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], 0xffffffff
mov edx, dword [esi + 4]
mov dword [ebp - 0x18], edx
cmp edx, dword [esi + 8]
je 0x45f3b9
lea ecx, [ebp - 0x230]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
lea eax, [ecx + 1]
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [ebp - 0x14], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f390
sub ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x230]
push ecx
push eax
mov ecx, edx
call fcn.004422e0
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], 0xffffffff
add dword [esi + 4], 0x1c
jmp 0x45f3cc
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
lea eax, [ebp - 0x230]
push eax
push edx
call fcn.0045fd30
cmp dword [edi + 0x14], 0x10
jb 0x45f3d4
mov edi, dword [edi]
test edi, edi
jne 0x45f3e1
mov byte [ebp - 0x128], 0
jmp 0x45f3fd
lea eax, [ebp - 0x128]
mov cl, byte [edi]
lea edi, [edi + 1]
test cl, cl
je 0x45f3fa
mov byte [eax], cl
inc eax
lea ecx, [ebp - 0x25]
cmp eax, ecx
jb 0x45f3e7
mov byte [eax], 0
lea ecx, [ebp - 0x128]
mov esi, str.Agent
mov eax, ecx
nop word [eax + eax]
mov dl, byte [ecx]
lea ecx, [ecx + 1]
test dl, dl
je 0x45f423
mov byte [eax], dl
inc eax
lea edx, [ebp - 0x25]
cmp eax, edx
jb 0x45f410
mov byte [eax], 0
cmp byte [ebp - 0x128], 0
je 0x45f444
push 0
mov edx, 0x104
lea ecx, [ebp - 0x128]
call fcn.0043a2c0
add esp, 4
mov al, byte [esi]
cmp al, 0x2f
je 0x45f44e
cmp al, 0x5c
jne 0x45f451
inc esi
jmp 0x45f444
lea eax, [ebp - 0x128]
cmp byte [eax], 0
lea ecx, [ebp - 0x25]
je 0x45f466
inc eax
cmp eax, ecx
jbe 0x45f457
jmp 0x45f487
cmp eax, ecx
ja 0x45f487
lea ecx, [ebp - 0x25]
cmp eax, ecx
jae 0x45f484
mov cl, byte [esi]
lea esi, [esi + 1]
test cl, cl
je 0x45f484
mov byte [eax], cl
inc eax
lea ecx, [ebp - 0x25]
cmp eax, ecx
jb 0x45f471
mov byte [eax], 0
lea edx, [ebp - 0x128]
push 0x104
mov ecx, edx
call fcn.0043a0f0
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.00441630
lea edx, [ebp - 0x128]
mov dword [ebp - 4], 5
lea ecx, [ebp - 0x14]
call fcn.00431c30
mov esi, eax
mov dword [ebp - 4], 6
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x45f4ce
call fcn.0040d490
mov byte [ebp - 4], 0
mov edi, dword [ebp - 0x1c]
cmp esi, 2
jne 0x45f58c
mov esi, dword [edi + 4]
mov dword [ebp - 0x18], 1
cmp esi, dword [edi + 8]
je 0x45f535
xorps xmm0, xmm0
lea ecx, [ebp - 0x128]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edx, [ecx + 1]
mov dword [esi + 0x14], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f510
sub ecx, edx
lea eax, [ebp - 0x128]
push ecx
push eax
mov ecx, esi
call fcn.004422e0
mov dword [esi + 0x18], 1
add dword [edi + 4], 0x1c
jmp 0x45f548
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
lea eax, [ebp - 0x128]
push eax
push esi
call fcn.0045fd30
lea ecx, [ebp - 0x14]
call fcn.00441630
push 0
push 0x45f920
push edi
lea edx, [ebp - 0x128]
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x14]
call fcn.004321d0
add esp, 0xc
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x45f583
call fcn.0040d490
mov byte [ebp - 4], 0
jmp 0x45f58c
mov edi, dword [ebp - 0x1c]
lea eax, [ebp - 0x540]
push eax
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x45f5c2
sub esp, 0xc
lea eax, [ebp - 0x540]
mov edx, 0x104
lea ecx, [ebp - 0x338]
push eax
call fcn.0043a8f0
add esp, 0x10
lea ecx, [ebp - 0x338]
mov esi, 0x4bc558
mov eax, ecx
nop
mov dl, byte [ecx]
lea ecx, [ecx + 1]
test dl, dl
je 0x45f5e6
mov byte [eax], dl
inc eax
lea edx, [ebp - 0x235]
cmp eax, edx
jb 0x45f5d0
mov byte [eax], 0
cmp byte [ebp - 0x338], 0
je 0x45f607
push 0
mov edx, 0x104
lea ecx, [ebp - 0x338]
call fcn.0043a2c0
add esp, 4
mov al, byte [esi]
cmp al, 0x2f
je 0x45f611
cmp al, 0x5c
jne 0x45f614
inc esi
jmp 0x45f607
lea eax, [ebp - 0x338]
nop word [eax + eax]
cmp byte [eax], 0
lea ecx, [ebp - 0x235]
je 0x45f632
inc eax
cmp eax, ecx
jbe 0x45f620
jmp 0x45f659
cmp eax, ecx
ja 0x45f659
lea ecx, [ebp - 0x235]
cmp eax, ecx
jae 0x45f656
mov cl, byte [esi]
lea esi, [esi + 1]
test cl, cl
je 0x45f656
mov byte [eax], cl
inc eax
lea ecx, [ebp - 0x235]
cmp eax, ecx
jb 0x45f640
mov byte [eax], 0
lea edx, [ebp - 0x338]
push 0x104
mov ecx, edx
call fcn.0043a0f0
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.00441630
lea edx, [ebp - 0x338]
mov dword [ebp - 4], 9
lea ecx, [ebp - 0x14]
call fcn.00431c30
mov esi, eax
mov dword [ebp - 4], 0xa
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x45f6a0
call fcn.0040d490
mov byte [ebp - 4], 0
cmp esi, 2
jne 0x45f709
mov dword [ebp - 0x18], esi
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
je 0x45f6f6
xorps xmm0, xmm0
lea ecx, [ebp - 0x338]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edx, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f6d1
sub ecx, edx
lea eax, [ebp - 0x338]
push ecx
push eax
mov ecx, esi
call fcn.004422e0
mov dword [esi + 0x18], 2
add dword [edi + 4], 0x1c
jmp 0x45f709
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
lea eax, [ebp - 0x338]
push eax
push esi
call fcn.0045fd30
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4