Function at 0x403e00
Capabilities:
Get common file path
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x41e631
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
push ebx
push ebp
push esi
lea eax, [esp + 0x58]
push edi
push eax
mov ebp, ecx
push 0x64
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, str.AutoClick.ini
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.0041dd5c
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push 0x50
push ecx
push str.Fail_
xor ebx, ebx
push str.MouseSel
push str.Mouse
mov dword [esp + 0xf4], ebx
call esi
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
push edx
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 1
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
push str.MOUSE_LEFT
push eax
call edi
add esp, 8
test eax, eax
jne 0x403ef8
mov dword [ebp + 0xe0c], ebx
mov ecx, dword [ebp + 0x1c0]
push ebx
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0x14e
push ecx
call ebx
jmp 0x403f62
mov edx, dword [esp + 0x10]
push str.MOUSE_RIGHT
push edx
call edi
add esp, 8
test eax, eax
jne 0x403f26
mov dword [ebp + 0xe0c], 1
mov eax, dword [ebp + 0x1c0]
push ebx
push 1
push 0x14e
push eax
jmp 0x403f56
mov ecx, dword [esp + 0x10]
push str.MOUSE_MIDDLE
push ecx
call edi
add esp, 8
test eax, eax
jne 0x404a84
mov dword [ebp + 0xe0c], 2
mov edx, dword [ebp + 0x1c0]
push ebx
push 2
push 0x14e
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.ClickSel
push str.Click
call esi
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
push edx
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 2
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push str.CLICK_SINGLE
push eax
call edi
add esp, 8
test eax, eax
jne 0x403fd9
mov dword [ebp + 0xe08], eax
mov ecx, dword [ebp + 0x180]
push eax
push eax
push 0x14e
push ecx
call ebx
mov edx, dword [esp + 0x10]
push str.CLICK_DOUBLE
push edx
call edi
add esp, 8
test eax, eax
jne 0x404007
mov dword [ebp + 0xe08], 1
push eax
mov eax, dword [ebp + 0x180]
push 1
push 0x14e
push eax
call ebx
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x18]
push ecx
push 0x50
push edx
push str.Fail_
push str.m_nCounter
push str.Counter
call esi
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 3
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push str.TRUE
push ecx
call edi
add esp, 8
test eax, eax
jne 0x404074
mov dword [ebp + 0x1ec], 1
jmp 0x40407e
mov dword [ebp + 0x1ec], 0
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.m_nTimes
push str.Counter
call esi
mov edi, dword [sym.imp.MSVCRT.dll_atoi]
lea ecx, [esp + 0x18]
push ecx
call edi
add esp, 4
lea edx, [esp + 0x5c]
mov dword [ebp + 0x1f0], eax
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.Hotkey1
push str.AutoClick_Hotkey
call esi
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 4
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
push str.NULL
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x40412c
push eax
mov dword [ebp + 0xe20], eax
push eax
mov eax, dword [ebp + 0x140]
push 0x14e
push eax
call ebx
mov ecx, dword [esp + 0x10]
push str.MOD_CONTROL
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x40415e
mov dword [ebp + 0xe20], 2
mov edx, dword [ebp + 0x140]
push eax
push 1
push 0x14e
push edx
call ebx
mov eax, dword [esp + 0x10]
push str.MOD_CONTROL__MOD_ALT
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x404190
mov dword [ebp + 0xe20], 3
mov ecx, dword [ebp + 0x140]
push eax
push 2
push 0x14e
push ecx
call ebx
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.Hotkey2
push str.AutoClick_Hotkey
call esi
lea ecx, [esp + 0x18]
push ecx
call edi
mov dword [ebp + 0xe1c], eax
add eax, 0xffffff90
add esp, 4
cmp eax, 0xb
ja case.default.0x4041c9
jmp dword [eax*4 + 0x404ab4]
mov edx, dword [ebp + 0x100]
push 0
push 0
push 0x14e
push edx
jmp 0x404288
mov eax, dword [ebp + 0x100]
push 0
push 1
push 0x14e
push eax
jmp 0x404288
push 0
push 2
jmp 0x40427c
mov edx, dword [ebp + 0x100]
push 0
push 3
push 0x14e
push edx
jmp 0x404288
mov eax, dword [ebp + 0x100]
push 0
push 4
push 0x14e
push eax
jmp 0x404288
push 0
push 5
jmp 0x40427c
mov edx, dword [ebp + 0x100]
push 0
push 6
push 0x14e
push edx
jmp 0x404288
mov eax, dword [ebp + 0x100]
push 0
push 7
push 0x14e
push eax
jmp 0x404288
push 0
push 8
jmp 0x40427c
mov edx, dword [ebp + 0x100]
push 0
push 9
push 0x14e
push edx
jmp 0x404288
mov eax, dword [ebp + 0x100]
push 0
push 0xa
push 0x14e
push eax
jmp 0x404288
push 0
push 0xb
mov ecx, dword [ebp + 0x100]
push 0x14e
push ecx
call ebx
mov edx, dword [ebp + 0xe1c]
mov eax, dword [ebp + 0xe20]
mov ecx, dword [ebp + 0xe24]
push edx
mov edx, dword [ebp + 0x20]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x4042bb
push eax
push eax
push str.Register_Hotkey_Failed_
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_nHour
push str.Click_Interval
call esi
lea edx, [esp + 0x18]
push edx
call edi
add esp, 4
mov dword [ebp + 0x214], eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_nMinute
push str.Click_Interval
call esi
lea edx, [esp + 0x18]
push edx
call edi
add esp, 4
mov dword [ebp + 0x218], eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_nSecond
push str.Click_Interval
call esi
lea edx, [esp + 0x18]
push edx
call edi
add esp, 4
mov dword [ebp + 0x21c], eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_n10s
push str.Click_Interval
call esi
lea edx, [esp + 0x18]
push edx
call edi
add esp, 4
mov dword [ebp + 0x220], eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_n100s
push str.Click_Interval
call esi
lea edx, [esp + 0x18]
push edx
call edi
add esp, 4
mov dword [ebp + 0x224], eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_n1000s
push str.Click_Interval
call esi
lea edx, [esp + 0x18]
push edx
call edi
add esp, 4
mov dword [ebp + 0x228], eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_nStick
push str.Other_Setting
call esi
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
push edx
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 5
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push str.TRUE
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x40443a
mov dword [ebp + 0x1e8], 1
jmp 0x404444
mov dword [ebp + 0x1e8], 0
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x18]
push ecx
push 0x50
push edx
push str.Fail_
push str.m_nTop
push str.Other_Setting
call esi
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 6
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push str.TRUE
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4044b5
mov dword [ebp + 0x22c], 1
jmp 0x4044bf
mov dword [ebp + 0x22c], 0
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.m_nHide
push str.Other_Setting
call esi
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 7
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
push str.TRUE
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x404530
mov dword [ebp + 0x1f4], 1
jmp 0x40453a
mov dword [ebp + 0x1f4], 0
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x18]
push eax
push 0x50
push ecx
push str.Fail_
push str.m_nShow
push str.Other_Setting
call esi
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
push edx
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 8
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push str.TRUE
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4045ab
mov dword [ebp + 0x210], 1
jmp 0x4045b5
mov dword [ebp + 0x210], 0
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x18]
push ecx
push 0x50
push edx
push str.Fail_
push str.m_nSmartClick
push str.Smart_Click
call esi
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 9
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
push str.TRUE
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x40463a
push eax
push 0x3f2
mov ecx, ebp
mov dword [ebp + 0x1f8], 1
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::EnableWindow
jmp 0x404644
mov dword [ebp + 0x1f8], 0
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.m_nTotal
push str.Smart_Click
call esi
lea ecx, [esp + 0x18]
push ecx
call edi
add esp, 4
lea ecx, [esp + 0x40]
mov dword [ebp + 0x1fc], eax
call fcn.0041dd5c
lea ecx, [esp + 0x44]
mov byte [esp + 0xdc], 0xa
call fcn.0041dd5c
mov eax, dword [ebp + 0x1fc]
xor edi, edi
test eax, eax
mov byte [esp + 0xdc], 0xb
jle 0x40483f
lea ebx, [ebp + 0x240]
lea edx, [esp + 0xc0]
push 0xa
push edx
push edi
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x4c]
push eax
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x54]
push str.m_nX_
push ecx
mov byte [esp + 0xe8], 0xc
call sub.MFC42.DLL_operator_1
push 0x424304
lea edx, [esp + 0x18]
push eax
push edx
mov byte [esp + 0xe8], 0xd
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xe0], 0xe
call fcn.0041de40
lea ecx, [esp + 0x14]
mov byte [esp + 0xdc], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x50]
mov byte [esp + 0xdc], 0xc
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0xdc], 0xb
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push 0x50
push ecx
push str.Fail_
push edx
push str.Smart_Click
call esi
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0xc0]
mov dword [ebx + 0x384], eax
push ecx
lea ecx, [esp + 0x4c]
call sub.MFC42.DLL_CString::CString_1
push eax
lea edx, [esp + 0x58]
push str.m_nY_
push edx
mov byte [esp + 0xe8], 0xf
call sub.MFC42.DLL_operator_1
push 0x424304
push eax
lea eax, [esp + 0x60]
mov byte [esp + 0xe4], 0x10
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xe0], 0x11
call fcn.0041de40
lea ecx, [esp + 0x58]
mov byte [esp + 0xdc], 0x10
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0xdc], 0xf
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0xdc], 0xb
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x1c]
push 0x50
push edx
push str.Fail_
push eax
push str.Smart_Click
call esi
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebx], eax
mov eax, dword [ebp + 0x1fc]
inc edi
add ebx, 4
cmp edi, eax
jl 0x4046a9
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.Hotkey3
push str.Record_Hotkey
call esi
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x4c]
call sub.MFC42.DLL_CString::CString_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xe0], 0x12
call fcn.0041de40
lea ecx, [esp + 0x48]
mov byte [esp + 0xdc], 0xb
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
push str.NULL
push edx
call edi
add esp, 8
test eax, eax
jne 0x4048bc
push eax
mov dword [ebp + 0xe18], eax
push eax
mov eax, dword [ebp + 0xc0]
push 0x14e
push eax
call ebx
mov ecx, dword [esp + 0x10]
push str.MOD_CONTROL
push ecx
call edi
add esp, 8
test eax, eax
jne 0x4048ea
mov dword [ebp + 0xe18], 2
mov edx, dword [ebp + 0xc0]
push eax
push 1
push 0x14e
push edx
call ebx
mov eax, dword [esp + 0x10]
push str.MOD_CONTROL__MOD_ALT
push eax
call edi
add esp, 8
test eax, eax
jne 0x404918
mov dword [ebp + 0xe18], 3
mov ecx, dword [ebp + 0xc0]
push eax
push 2
push 0x14e
push ecx
call ebx
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push 0x50
push eax
push str.Fail_
push str.Hotkey4
push str.Record_Hotkey
call esi
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
mov dword [ebp + 0xe14], eax
add eax, 0xffffff90
add esp, 4
cmp eax, 0xb
ja case.default.0x404955
jmp dword [eax*4 + 0x404ae4]
mov edx, dword [ebp + 0x80]
push 0
push 0
push 0x14e
push edx
jmp 0x404a14
mov eax, dword [ebp + 0x80]
push 0
push 1
push 0x14e
push eax
jmp 0x404a14
push 0
push 2
jmp 0x404a08
mov edx, dword [ebp + 0x80]
push 0
push 3
push 0x14e
push edx
jmp 0x404a14
mov eax, dword [ebp + 0x80]
push 0
push 4
push 0x14e
push eax
jmp 0x404a14
push 0
push 5
jmp 0x404a08
mov edx, dword [ebp + 0x80]
push 0
push 6
push 0x14e
push edx
jmp 0x404a14
mov eax, dword [ebp + 0x80]
push 0
push 7
push 0x14e
push eax
jmp 0x404a14
push 0
push 8
jmp 0x404a08
mov edx, dword [ebp + 0x80]
push 0
push 9
push 0x14e
push edx
jmp 0x404a14
mov eax, dword [ebp + 0x80]
push 0
push 0xa
push 0x14e
push eax
jmp 0x404a14
push 0
push 0xb
mov ecx, dword [ebp + 0x80]
push 0x14e
push ecx
call ebx
mov edx, dword [ebp + 0xe14]
mov eax, dword [ebp + 0xe18]
mov ecx, dword [ebp + 0xe28]
push edx
mov edx, dword [ebp + 0x20]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x404a47
push eax
push eax
push str.Register_Hotkey_Failed_
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
lea ecx, [esp + 0x44]
mov byte [esp + 0xdc], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0xdc], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0xdc], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x404a9a
lea ecx, [esp + 0x10]
mov dword [esp + 0xdc], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0xd4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xd0
ret