Function at 0x44600e
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x518
mov eax, dword [0x6f4e3c]
xor eax, ebp
mov dword [esp + 0x510], eax
lea esi, [esp + 0x27c]
mov ecx, 0x770d84
push esi
call fcn.004103ea
mov ecx, esi
push 0x642946
call fcn.00469188
mov ecx, dword [eax + 8]
mov dword [esp + 0x68], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x60], xmm0
xor edi, edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax], edi
cmp byte [esi + 0xb], 0
jns 0x446079
push dword [esp + 0x27c]
call fcn.00517bd6
add esp, 4
mov ebx, dword [ebp + 8]
mov ecx, 0x770d84
push esi
call fcn.004103ea
mov ecx, esi
push str..lnk
call fcn.00469188
mov ecx, dword [eax + 8]
mov dword [esp + 0x58], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x50], xmm0
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax], edi
cmp byte [esp + 0x287], 0
jns 0x4460c5
push dword [esp + 0x27c]
call fcn.00517bd6
add esp, 4
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
cmp ebx, 5
ja case.default.0x4460d8
jmp dword [ebx*4 + 0x64d13c]
lea eax, [esp + 0x40]
push eax
call fcn.00445f1c
jmp 0x44610d
lea eax, [esp + 0x40]
push eax
call fcn.0044651e
jmp 0x44610d
lea eax, [esp + 0x40]
push eax
call fcn.00446582
jmp 0x44610d
lea eax, [esp + 0x40]
push eax
call fcn.00446620
add esp, 4
movzx ecx, byte [esp + 0x4b]
mov eax, ecx
test cl, cl
jns 0x44611f
mov eax, dword [esp + 0x44]
xor ebx, ebx
test eax, eax
je 0x4464cd
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
test cl, cl
jns 0x44613f
mov edx, dword [esp + 0x40]
jmp 0x446143
lea edx, [esp + 0x40]
lea esi, [esp + 0x70]
mov ecx, esi
push eax
push edx
call fcn.0046ed80
lea eax, [esp + 0x50]
lea ecx, [esp + 0x27c]
push eax
push 1
push ebx
push esi
call fcn.00491480
mov ecx, esi
call fcn.0046ee40
lea edi, [esp + 0x28]
lea ecx, [esp + 0x27c]
push edi
call fcn.004916d0
movzx eax, byte [edi + 0xb]
test al, al
jns 0x446189
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4462aa
lea ebx, [esp + 4]
mov ecx, edi
lea esi, [esp + 0x1c]
push esi
call fcn.00470a90
push esi
lea eax, [esp + 0x14]
push eax
call fcn.004466b8
add esp, 8
lea esi, [esp + 0x70]
mov ecx, esi
push edi
call fcn.0046ed40
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], eax
lea ecx, [esp + 0x34]
push esi
call fcn.00446764
lea ecx, [esp + 0x27c]
push ebx
call fcn.004916d0
mov ecx, edi
push ebx
call fcn.0046ee80
mov ecx, ebx
call fcn.0046ee40
mov ecx, esi
call fcn.0046ee40
cmp byte [esp + 0x27], 0
jns 0x446211
push dword [esp + 0x1c]
call fcn.00517bd6
add esp, 4
movzx eax, byte [esp + 0x33]
test al, al
jns 0x44621e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x446195
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
xor ebx, ebx
cmp eax, esi
je 0x4462aa
mov dword [esp], eax
xor edi, edi
mov eax, esi
xor ebx, ebx
mov ecx, dword [ebp + 8]
cmp ecx, 3
je 0x446256
test ecx, ecx
jne 0x44627a
mov ecx, edi
cmp byte [eax + edi + 0xb], 0
js 0x446263
add eax, ecx
jmp 0x446266
mov ecx, edi
cmp byte [eax + edi + 0xb], 0
js 0x44626e
add eax, ecx
jmp 0x446271
mov eax, dword [eax + ecx]
push eax
call fcn.00445fa0
jmp 0x446277
mov eax, dword [eax + ecx]
push eax
call fcn.00446838
add esp, 4
mov eax, dword [esp + 0x34]
add eax, edi
push eax
call fcn.00481cb0
add esp, 4
inc ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 3
imul ecx, ecx, 0xaaaaaaab
add edi, 0x18
cmp ebx, ecx
jb 0x44623d
cmp dword [esp], esi
setne bl
lea ecx, [esp + 0x28]
call fcn.0046ee40
lea ecx, [esp + 0x27c]
call fcn.004915e0
lea ecx, [esp + 0x34]
call fcn.00449c94
jmp 0x4464cd
lea edi, [esp + 0x70]
mov ecx, edi
call fcn.0046ed20
push edi
push 0x6c
call fcn.00476650
add esp, 8
call fcn.00488190
cmp eax, 7
je 0x446359
call fcn.00488190
cmp eax, 8
je 0x446359
push 0x157e
push esi
call fcn.00498905
add esp, 8
movzx eax, byte [esp + 0x287]
test al, al
jns 0x44631f
mov esi, dword [esp + 0x27c]
mov eax, dword [esp + 0x280]
lea ebx, [esp + 0x34]
lea ecx, [esp + 0x70]
push eax
push esi
push ebx
call fcn.0046fbd0
lea ecx, [esp + 0x70]
push ebx
call fcn.0046ee80
mov ecx, ebx
call fcn.0046ee40
cmp byte [esp + 0x287], 0
jns 0x446359
push dword [esp + 0x27c]
call fcn.00517bd6
add esp, 4
lea eax, [esp + 0x60]
lea ebx, [esp + 0x27c]
mov ecx, ebx
push eax
push 2
push 0
push edi
call fcn.00491480
lea esi, [esp + 0x34]
mov ecx, esi
call fcn.0046ed20
lea edi, [esp + 0x28]
mov ecx, ebx
push edi
call fcn.004916d0
mov ecx, esi
push edi
call fcn.0046ee80
movzx ebx, byte [eax + 0xb]
test bl, bl
jns 0x44639b
mov ebx, dword [eax + 4]
mov ecx, edi
call fcn.0046ee40
test ebx, ebx
je 0x44640f
push esi
call fcn.00482720
add esp, 4
test al, al
je 0x4463bc
push esi
call fcn.00481cb0
add esp, 4
lea ecx, [esp + 0x27c]
jmp 0x446382
lea edi, [esp + 0x70]
push 0x208
push 0
push edi
call fcn.006030b0
sub esp, 8
mov dword [esp + 0x10], edi
movaps xmm0, xmmword [0x642c20]
movups xmmword [esp], xmm0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x4464cb
cmp word [esp + 0x70], 0
je 0x446434
xor ecx, ecx
lea eax, [ecx + 1]
cmp word [esp + ecx*2 + 0x72], 0
mov ecx, eax
jne 0x446400
jmp 0x446436
lea ecx, [esp + 0x34]
call fcn.0046ee40
lea ecx, [esp + 0x27c]
call fcn.004915e0
lea ecx, [esp + 0x70]
call fcn.0046ee40
mov bl, 1
jmp 0x4464cd
xor eax, eax
lea esi, [esp + 0x34]
mov ecx, esi
push eax
push edi
call fcn.0046ed80
lea eax, [esp + 0x50]
lea ebx, [esp + 0x27c]
mov ecx, ebx
push eax
push 1
push 0
push esi
call fcn.00491480
mov ecx, esi
call fcn.0046ee40
lea esi, [esp + 0x34]
mov ecx, esi
call fcn.0046ed20
lea edi, [esp + 0x28]
mov ecx, ebx
push edi
call fcn.004916d0
mov ecx, esi
push edi
call fcn.0046ee80
movzx ebx, byte [eax + 0xb]
test bl, bl
jns 0x44648c
mov ebx, dword [eax + 4]
mov ecx, edi
call fcn.0046ee40
test ebx, ebx
je 0x4464b6
push esi
call fcn.00482720
add esp, 4
test al, al
je 0x4464ad
push esi
call fcn.00481cb0
add esp, 4
lea ecx, [esp + 0x27c]
jmp 0x446473
lea ecx, [esp + 0x34]
call fcn.0046ee40
lea ecx, [esp + 0x27c]
call fcn.004915e0
xor ebx, ebx
cmp byte [esp + 0x4b], 0
jns 0x4464e0
push dword [esp + 0x40]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x5b], 0
jns 0x4464f3
push dword [esp + 0x50]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x6b], 0
jns 0x446506
push dword [esp + 0x60]
call fcn.00517bd6
add esp, 4
mov ecx, dword [esp + 0x510]
xor ecx, ebp
call fcn.00517c1a
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret