Function at 0x417570
Capabilities:
Create directory
Create thread
Print debug messages

Disassembly:
sub esp, 0x884
mov eax, dword [0x487bb0]
xor eax, esp
mov dword [esp + 0x880], eax
mov eax, dword [esp + 0x888]
push esi
mov esi, dword [esp + 0x894]
push str.InstallWnd
mov dword [esp + 8], eax
mov dword [0x48931c], eax
call fcn.00423670
add esp, 4
test eax, eax
je 0x417b20
push ebx
push ebp
push edi
xor ebp, ebp
push ebp
call dword [sym.imp.ole32.dll_CoInitialize]
push str.C:install.log
call fcn.00418480
mov ebx, 1
push ebx
call fcn.004239a0
add esp, 8
call fcn.004242e0
mov dword [0x4890b4], ebp
mov dword [0x4890b0], ebx
mov dword [0x4890ac], ebx
mov dword [0x486b20], ebx
call fcn.00423640
test eax, eax
jne 0x417601
mov dword [0x486e50], ebp
push 0x208
lea eax, [esp + 0x484]
push ebp
push eax
call fcn.0044fe60
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add esp, 0xc
push ebp
push ebp
push 0xffffffffffffffff
push esi
push ebp
push ebp
call edi
push eax
lea ecx, [esp + 0x484]
push ecx
push 0xffffffffffffffff
push esi
push ebp
push ebp
call edi
xor edx, edx
lea eax, [esp + 0x480]
mov word [esp + 0x3c], dx
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x417653
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x484]
push eax
lea ecx, [esp + 0x40]
call fcn.00403680
push ebx
push ebp
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x20], 0x20
call fcn.00401a00
mov esi, eax
push esi
push ebp
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x44]
call fcn.004044a0
mov eax, dword [esp + 0x4c]
push eax
inc esi
push esi
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x44]
call fcn.004044a0
mov eax, dword [esp + 0x20]
mov esi, 8
cmp dword [esp + 0x34], esi
jae 0x4176c6
lea eax, [esp + 0x20]
push 0x46f5c8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x4176f3
push str..WinMain.cpp
push 0x123
push str.Line_no_d_source_s_current_build_mode_is_silent_r_n
call fcn.0040cfa0
add esp, 0xc
mov dword [0x4890ac], ebx
mov eax, dword [0x486e90]
cmp dword [0x486ea4], esi
jae 0x417705
mov eax, 0x486e90
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push ebp
push eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41774c
cmp dword [0x486ea4], esi
mov esi, dword [0x486e90]
jae 0x41772c
mov esi, 0x486e90
call ebx
push eax
push esi
push str..WinMain.cpp
push 0x12a
push str.Line_no_d_source_s_create_directory___s__failed_error_d._r_n
call fcn.0040cfa0
add esp, 0x14
mov esi, 8
mov eax, dword [0x486e74]
cmp dword [0x486e88], esi
jae 0x41775e
mov eax, 0x486e74
push eax
call fcn.00423030
add esp, 4
test eax, eax
jne 0x4177b8
mov eax, dword [0x486e74]
cmp dword [0x486e88], esi
jae 0x41777d
mov eax, 0x486e74
push ebp
push eax
call edi
test eax, eax
jne 0x4177b8
cmp dword [0x486e88], esi
mov esi, dword [0x486e74]
jae 0x417798
mov esi, 0x486e74
call ebx
push eax
push esi
push str..WinMain.cpp
push 0x12f
push str.Line_no_d_source_s_create_directory___s__failed_error_d._r_n
call fcn.0040cfa0
add esp, 0x14
mov esi, 8
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.ReleaseAllNeedRes
call edi
call fcn.004162f0
test eax, eax
jne 0x4177fc
push 0x46f4fc
call edi
push str..WinMain.cpp
push 0x137
push str.ReleaseAllNeedRes_Line_no_d_source_s_r_n
call fcn.0040cfa0
push ebp
call fcn.00424460
add esp, 0x10
call fcn.0040cfa0
jmp 0x417abb
push str.ReleaseAllNeedRes__________________
call edi
push 0x208
lea ecx, [esp + 0x68c]
push ebp
push ecx
call fcn.0044fe60
push 0x208
lea edx, [esp + 0x80]
push ebp
push edx
call fcn.0044fe60
lea eax, [esp + 0x88]
push eax
call fcn.00424190
add esp, 0x1c
test eax, eax
je 0x417898
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x70]
push ecx
call esi
test eax, eax
jle 0x417893
lea edx, [esp + 0x688]
push edx
call fcn.00423840
add esp, 4
test eax, eax
je 0x417893
lea eax, [esp + 0x70]
push eax
mov dword [0x4890b8], 1
call esi
cmp word [esp + eax*2 + 0x6e], 0x5c
lea eax, [esp + eax*2 + 0x6e]
jne 0x417884
xor ecx, ecx
mov word [eax], cx
lea edx, [esp + 0x70]
push edx
mov ecx, 0x486e54
call fcn.00404470
mov esi, 8
cmp dword [0x4890ac], ebp
jne 0x417915
mov eax, dword [esp + 0x10]
push eax
call fcn.004273bf
push 0x528
call fcn.004505ee
add esp, 8
cmp eax, ebp
je 0x417abb
mov ecx, eax
call fcn.004128c0
mov esi, eax
cmp esi, ebp
je 0x417ab6
push ebp
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push ebp
push 0x80000
push ebp
push ebp
mov ecx, esi
call fcn.00426767
mov ecx, esi
call fcn.00426357
push 1
mov ecx, esi
call fcn.0042620f
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0042a5ad
jmp 0x417ab6
push 0x489060
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.00424520
lea eax, [esp + 0x70]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x417930
sub eax, edx
sar eax, 1
je 0x4179bb
push 0x208
lea ecx, [esp + 0x27c]
push ebp
push ecx
call fcn.0044fe60
push str.ADSvc.exe
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x28c]
push 0x46d71c
push eax
call fcn.00401040
push 1
push ebp
lea ecx, [esp + 0x29c]
push str._stop
push ecx
call fcn.004236d0
push ebp
push ebp
lea edx, [esp + 0x2ac]
push str._uninstall
push edx
call fcn.004236d0
push str.ADSvc.exe
call fcn.004234f0
add esp, 0x40
push str.ADSafe.exe
call fcn.004234f0
add esp, 4
call fcn.00423530
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], ebp
call fcn.00415e00
test al, al
je 0x4179d9
push 0x400
call fcn.00416100
jmp 0x4179f0
push str..WinMain.cpp
push 0x17c
push str.Line_no_d_source_s_IsNeedModifyTcpipLimits_return_true._r_n
call fcn.0040cfa0
add esp, 0xc
push str.InstallProc
call edi
lea ecx, [esp + 0x18]
push ecx
push ebp
push ebp
push 0x408c30
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x46f398
call edi
call fcn.00406550
call fcn.004028c0
call fcn.004063a0
call fcn.00405650
call fcn.00406880
call fcn.004051b0
cmp dword [0x4890b0], ebp
je 0x417aa2
push 0x208
lea edx, [esp + 0x27c]
push ebp
push edx
call fcn.0044fe60
mov eax, dword [0x486e58]
add esp, 0xc
cmp dword [0x486e6c], 8
jae 0x417a73
mov eax, 0x486e58
push str.ADSafe.exe
push eax
lea eax, [esp + 0x280]
push 0x46c8b4
push eax
call fcn.00401040
push ebp
push ebp
lea ecx, [esp + 0x290]
push 0x46d59c
push ecx
call fcn.004236d0
add esp, 0x20
push 0x489060
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push ebp
call fcn.00424460
add esp, 4
mov esi, 8
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [esp + 0x34], esi
jb 0x417ad4
mov edx, dword [esp + 0x20]
push edx
call fcn.0044fc16
add esp, 4
xor eax, eax
mov edi, 7
mov word [esp + 0x20], ax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], edi
cmp dword [esp + 0x6c], esi
jb 0x417afb
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0044fc16
add esp, 4
xor edx, edx
mov word [esp + 0x58], dx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], edi
cmp dword [esp + 0x50], esi
jb 0x417b1d
mov eax, dword [esp + 0x3c]
push eax
call fcn.0044fc16
add esp, 4
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x884]
pop esi
xor ecx, esp
xor eax, eax
call fcn.0044ffb3
add esp, 0x884
ret 0x10