Function at 0x517770
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x725d49
mov eax, dword fs:[0]
push eax
sub esp, 0x200
mov eax, dword [0x7db1e8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1dc], ecx
mov edi, dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 1
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
lea ecx, [ebp - 0x1f0]
push ecx
push 0xf01ff
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea eax, [ebp - 0x1e0]
push eax
push 0
push dword [ebp - 0x1f0]
push 0x801a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
js 0x517917
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.006f7570
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
push dword [ebp - 0x1e0]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
je 0x517917
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x134], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x517850
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [ebp - 0x144]
call fcn.0044f130
push 0x18
push str.NeteaseFoxmail_Addins_
lea ecx, [ebp - 0x144]
mov dword [ebp - 4], 0
call fcn.0044ef80
mov dword [ebp - 4], 0xffffffff
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x15c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x130]
movq qword [ebp - 0x14c], xmm0
cmp edx, 0x10
jb 0x5178ee
mov ecx, dword [ebp - 0x144]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5178e4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x517e46
push edx
push ecx
call fcn.006f4b9f
add esp, 8
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
jmp 0x51793a
xor edx, edx
mov dword [ebp - 0x15c], 0
mov ecx, 0xf
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], ecx
mov byte [ebp - 0x15c], dl
mov dword [ebp - 4], 1
test edx, edx
jne 0x517950
mov byte [ebp - 0x1d5], dl
jmp 0x517df1
mov eax, dword [edi + 0x10]
mov esi, closesocket
mov dword [ebp - 0x1ec], eax
mov eax, esi
sub eax, edx
cmp eax, dword [ebp - 0x1ec]
jb 0x517e4b
cmp ecx, 0x10
lea eax, [ebp - 0x15c]
cmovae eax, dword [ebp - 0x15c]
cmp dword [edi + 0x14], 0x10
jb 0x517986
mov edi, dword [edi]
push dword [ebp - 0x1ec]
lea ecx, [ebp - 0x174]
push edi
push edx
push eax
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x1e0]
call fcn.004cc200
mov edi, dword [ebp - 0x1dc]
lea ecx, [ebp - 0x174]
push 1
push 0
push ecx
lea ecx, [edi + 0x1c]
mov byte [ebp - 4], 2
call fcn.004e8110
test al, al
jne 0x5179d3
mov byte [ebp - 0x1d5], al
jmp 0x517d96
mov ecx, dword [edi + 0x14]
add edi, 4
sub esi, ecx
cmp esi, 0x40
jb 0x517e50
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x5179ee
mov eax, dword [edi]
push ecx
push eax
push 0x40
push str.SELECT_COUNT___FROM_sqlite_master_where_typetable_and_name
push edi
push dword [ebp - 0x1e0]
lea ecx, [ebp - 0x144]
call fcn.004cc200
push 1
push 0x7c4380
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 3
call fcn.0044ef80
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x12c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x11c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea ecx, [ebp - 0x144]
call fcn.0044f440
mov eax, dword [ebp - 0x1dc]
add eax, 0x1c
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1e8], eax
lea ecx, [ebp - 0x20c]
mov byte [ebp - 4], 6
call fcn.004e5aa0
cmp dword [ebp - 0x118], 0x10
lea ecx, [ebp - 0x1e4]
push 0
push ecx
push dword [ebp - 0x11c]
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 7
cmovae eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0x1e8]
push dword [eax]
call fcn.00460ff0
add esp, 0x14
test eax, eax
jne 0x517ceb
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x1e8]
call fcn.0051a1f0
test al, al
je 0x517ceb
lea ecx, [ebp - 0x20c]
call fcn.004edd20
test al, al
je 0x517cc4
push 0
lea ecx, [ebp - 0x20c]
call fcn.004e99e0
mov ecx, eax
cmp dword [eax + 0x14], 0x10
jb 0x517b1c
mov ecx, dword [eax]
push 1
push 0x7c439c
push dword [eax + 0x10]
push ecx
call fcn.004cbcc0
add esp, 0x10
test eax, eax
jne 0x517cc4
push edi
lea eax, [ebp - 0x18c]
push str.CREATE_TABLE
push eax
call fcn.0044e8f0
push str._key_TEXT__value_TEXT__
push eax
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 8
push eax
call fcn.0044f050
mov esi, eax
add esp, 0x18
lea eax, [ebp - 0x12c]
cmp eax, esi
je 0x517beb
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x517ba8
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x517b9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x517e55
push edx
push ecx
call fcn.006f4b9f
add esp, 8
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x12c], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x11c], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x144]
call fcn.0044f440
lea ecx, [ebp - 0x18c]
mov byte [ebp - 4], 7
call fcn.0044f440
push edi
lea eax, [ebp - 0x1d4]
push str.CREATE_UNIQUE_INDEX
push eax
call fcn.0044e8f0
push str._key_index_ON
push eax
lea eax, [ebp - 0x1bc]
mov byte [ebp - 4], 9
push eax
call fcn.0044f050
push edi
push eax
lea eax, [ebp - 0x1a4]
mov byte [ebp - 4], 0xa
push eax
call fcn.0044f600
push str._key_ASC__
push eax
lea eax, [ebp - 0x18c]
mov byte [ebp - 4], 0xb
push eax
call fcn.0044f050
add esp, 0x30
push eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0xc
call fcn.0044ec40
lea ecx, [ebp - 0x18c]
call fcn.0044f440
lea ecx, [ebp - 0x1a4]
call fcn.0044f440
lea ecx, [ebp - 0x1bc]
call fcn.0044f440
lea ecx, [ebp - 0x1d4]
call fcn.0044f440
cmp dword [ebp - 0x118], 0x10
lea eax, [ebp - 0x12c]
mov ecx, dword [ebp - 0x1dc]
cmovae eax, dword [ebp - 0x12c]
push 0
push 0
push 0
push eax
push dword [ecx + 0x1c]
call fcn.0045e090
add esp, 0x14
test eax, eax
jne 0x517ceb
mov ecx, dword [ebp - 0x1dc]
push 0
push 0
push 0
push str.BEGIN_TRANSACTION
push dword [ecx + 0x1c]
call fcn.0045e090
add esp, 0x14
mov byte [ebp - 0x1d5], 1
test eax, eax
je 0x517cf2
mov byte [ebp - 0x1d5], 0
mov eax, dword [ebp - 0x1fc]
push dword [eax + 4]
lea eax, [ebp - 0x1fc]
push eax
mov ecx, eax
call fcn.004e48d0
push 0x2c
push dword [ebp - 0x1fc]
call fcn.006f4b9f
add esp, 8
lea ecx, [ebp - 0x20c]
call fcn.004e6560
mov eax, dword [ebp - 0x1e4]
test eax, eax
je 0x517d41
push eax
call fcn.00462630
add esp, 4
neg eax
sbb eax, eax
and dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x517d7b
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x517d71
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x517e5a
push edx
push ecx
call fcn.006f4b9f
add esp, 8
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
mov edx, dword [ebp - 0x160]
cmp edx, 0x10
jb 0x517dd0
mov ecx, dword [ebp - 0x174]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x517dc6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x517e5a
push edx
push ecx
call fcn.006f4b9f
add esp, 8
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0xf
mov byte [ebp - 0x174], 0
cmp ecx, 0x10
jb 0x517e23
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x15c]
mov eax, ecx
cmp edx, 0x1000
jb 0x517e19
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x517e5a
push edx
push ecx
call fcn.006f4b9f
add esp, 8
mov al, byte [ebp - 0x1d5]
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.006f4db8
mov esp, ebp
pop ebp
ret 4
call fcn.006fb96e
call fcn.0044f120
call fcn.0044f120
call fcn.006fb96e
call fcn.006fb96e
int3