Function at 0x409e80
Capabilities:
Check if file exists
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44d649
mov eax, dword fs:[0]
push eax
sub esp, 0x870
mov eax, dword [0x466240]
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 - 0x6bc], ecx
lea ecx, [ebp - 0x648]
mov dword [ebp - 0x6c4], 0
call fcn.00401e00
lea ecx, [ebp - 0x664]
mov dword [ebp - 4], 0
call fcn.00401e00
lea ecx, [ebp - 0x6b8]
mov byte [ebp - 4], 1
call fcn.00401e00
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x62c], xmm0
movdqu xmmword [ebp - 0x62c], xmm0
push 8
mov byte [ebp - 4], 3
call fcn.00411a70
add esp, 4
test eax, eax
jne 0x409f13
call fcn.0040f530
mov dword [ebp - 0x62c], eax
lea ecx, [ebp - 0x62c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x62c]
mov dword [eax], ecx
push 0
push 0x45f842
lea ecx, [ebp - 0x664]
mov byte [ebp - 4], 4
call fcn.00402520
call fcn.004087d0
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x409f8b
push str.__atl_condVal
push 0x45f9c0
push eax
push 0xcd
push str.C:Program_Files__x86_Microsoft_Visual_Studio_12.0VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.00411440
add esp, 0x18
cmp eax, 1
jne 0x409f81
int3
push 0x80004005
call fcn.00407f90
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x61c], eax
xor eax, eax
mov byte [ebp - 4], 5
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.0041b5f0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0
push 0x2e
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x40a010
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409fe0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x61c]
call fcn.0040d980
push ecx
lea ecx, [ebp - 0x61c]
call fcn.0040be30
jmp 0x40a036
push str.C:Document_and_SettingsAll_UsersDocumentsAliWorkbenchDataConfig.ini
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [ebp - 0x61c]
test eax, eax
je 0x40a02c
push str.C:Document_and_SettingsAll_UsersDocuments
jmp 0x40a031
push str.C:UsersPublicDocuments
call fcn.0040bdb0
push 0x1c
push str.AliWorkbenchDataConfig.ini
lea ecx, [ebp - 0x61c]
call fcn.0040caf0
mov esi, dword [ebp - 0x61c]
lea eax, [ebp - 0x74c]
push 3
push esi
lea ecx, [ebp - 0x750]
mov dword [ebp - 0x750], eax
call fcn.0040d620
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x750]
test edi, edi
jne 0x40a08d
push 0x490
push str.C:Program_Files__x86_Microsoft_Visual_Studio_12.0VCincludexstring
push str.invalid_null_pointer
call fcn.0040f290
add esp, 0xc
cmp byte [edi], 0
jne 0x40a096
xor ecx, ecx
jmp 0x40a0a9
mov ecx, edi
lea edx, [ecx + 1]
jmp 0x40a0a0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a0a0
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x664]
call fcn.00402520
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74c]
mov eax, dword [ebp - 0x750]
cmp eax, ecx
je 0x40a0d3
push eax
call fcn.00414870
add esp, 4
push 0x400
lea eax, [ebp - 0x618]
push 0
push eax
call fcn.0041b5f0
add esp, 0xc
lea eax, [ebp - 0x660]
cmp dword [ebp - 0x64c], 0x10
cmovae eax, dword [ebp - 0x660]
push eax
push 0x400
lea eax, [ebp - 0x618]
push eax
push 0
push str.data_path_v2
push str.config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x618], 0
jne 0x40a129
xor ecx, ecx
jmp 0x40a13b
lea ecx, [ebp - 0x618]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a132
sub ecx, edx
push ecx
lea eax, [ebp - 0x618]
push eax
lea ecx, [ebp - 0x6b8]
call fcn.00402520
lea edx, [ebp - 0x62c]
lea ecx, [ebp - 0x6b8]
call fcn.0040aee0
lea eax, [ebp - 0x648]
push eax
sub esp, 0xc
lea ecx, [ebp - 0x62c]
push esp
call fcn.0040c8f0
sub esp, 0xc
lea ecx, [ebp - 0x62c]
push esp
call fcn.0040c8d0
lea ecx, [ebp - 0x6c0]
call fcn.0040e570
add esp, 0x1c
lea ecx, [ebp - 0x69c]
push 0x45fac4
call fcn.0040bf60
push str.QNaccounts
push str.SOFTWAREQianDun
mov edx, SysStringLen
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x76c]
call fcn.00408f20
add esp, 8
mov byte [ebp - 4], 8
cmp dword [eax + 0x18], 8
jb 0x40a1d2
mov edi, dword [eax + 4]
jmp 0x40a1d5
lea edi, [eax + 4]
test edi, edi
jne 0x40a1f0
push 0x490
push str.C:Program_Files__x86_Microsoft_Visual_Studio_12.0VCincludexstring
push str.invalid_null_pointer
call fcn.0040f290
add esp, 0xc
cmp word [edi], 0
jne 0x40a1fa
xor ecx, ecx
jmp 0x40a20f
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a200
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x69c]
call fcn.0040d2e0
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 7
call fcn.0040c040
cmp dword [ebp - 0x684], 8
lea eax, [ebp - 0x698]
lea ecx, [ebp - 0x74c]
cmovae eax, dword [ebp - 0x698]
push 3
mov dword [ebp - 0x750], ecx
lea ecx, [ebp - 0x750]
push eax
call fcn.0040d620
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x680]
push dword [ebp - 0x750]
call fcn.00401e90
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x74c]
mov eax, dword [ebp - 0x750]
cmp eax, ecx
je 0x40a28d
push eax
call fcn.00414870
add esp, 4
jmp 0x40a2a6
push 0x80
lea eax, [ebp - 0x74c]
push 0xfe
push eax
call fcn.0041b5f0
add esp, 0xc
mov ecx, dword [ebp - 0x634]
test ecx, ecx
jne 0x40a2bb
lea eax, [ebp - 0x680]
jmp 0x40a347
cmp dword [ebp - 0x668], 0x10
lea eax, [ebp - 0x67c]
push dword [ebp - 0x66c]
cmovae eax, dword [ebp - 0x67c]
push eax
push ecx
push ecx
lea ecx, [ebp - 0x648]
call fcn.0040d040
test eax, eax
je 0x40a341
cmp dword [ebp - 0x630], 0x10
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x874]
cmovae eax, dword [ebp - 0x644]
push 3
mov dword [ebp - 0x878], ecx
lea ecx, [ebp - 0x878]
push eax
call fcn.0040d6f0
push dword [ebp - 0x878]
push str.QNaccounts
call fcn.004090a0
mov eax, dword [ebp - 0x878]
lea ecx, [ebp - 0x874]
add esp, 8
cmp eax, ecx
je 0x40a341
push eax
call fcn.00414870
add esp, 4
lea eax, [ebp - 0x648]
mov ecx, dword [ebp - 0x6bc]
push eax
call fcn.00401f70
lea ecx, [ebp - 0x680]
call fcn.00402020
lea ecx, [ebp - 0x69c]
call fcn.0040c040
add esi, 0xfffffff0
mov byte [ebp - 4], 4
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jne 0x40a39c
push str.nRefs___0
push 0x45f9c0
push 0
push 0x56
push str.C:Program_Files__x86_Microsoft_Visual_Studio_12.0VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.00411440
add esp, 0x18
cmp eax, 1
jne 0x40a39c
int3
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40a3b0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x62c]
call fcn.0040c820
lea ecx, [ebp - 0x6b8]
call fcn.00402020
lea ecx, [ebp - 0x664]
call fcn.00402020
lea ecx, [ebp - 0x648]
call fcn.00402020
mov eax, dword [ebp - 0x6bc]
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.00410850
mov esp, ebp
pop ebp
ret