Function at 0x406710
Capabilities:
Create directory
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42e2f8
mov eax, dword fs:[0]
push eax
sub esp, 0xcec
mov eax, dword [0x44106c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0xa50]
call fcn.00407400
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xa80]
call fcn.00407400
mov byte [ebp - 4], 1
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.00415740
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x628]
push ecx
call fcn.00415740
add esp, 0xc
push 0x104
lea edx, [ebp - 0x218]
push edx
call fcn.00406220
add esp, 8
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0xa98]
call fcn.00401470
mov byte [ebp - 4], 2
push 0
push 0x43c9cc
lea ecx, [ebp - 0xa98]
call fcn.004072f0
cmp eax, 0xffffffff
je 0x4067e7
push 0x104
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0xa98]
call fcn.004013d0
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea edx, [ebp - 0x218]
mov dword [ebp - 0xbd4], edx
mov eax, dword [ebp - 0xbd4]
add eax, 2
mov dword [ebp - 0xc30], eax
mov ecx, dword [ebp - 0xbd4]
mov dx, word [ecx]
mov word [ebp - 0xbe2], dx
add dword [ebp - 0xbd4], 2
cmp word [ebp - 0xbe2], 0
jne 0x406802
mov eax, dword [ebp - 0xbd4]
sub eax, dword [ebp - 0xc30]
sar eax, 1
mov dword [ebp - 0xc2c], eax
cmp dword [ebp - 0xc2c], 1
jb 0x406991
lea ecx, [ebp - 0x218]
mov dword [ebp - 0xbd8], ecx
mov edx, dword [ebp - 0xbd8]
add edx, 2
mov dword [ebp - 0xc28], edx
mov eax, dword [ebp - 0xbd8]
mov cx, word [eax]
mov word [ebp - 0xbe4], cx
add dword [ebp - 0xbd8], 2
cmp word [ebp - 0xbe4], 0
jne 0x40685f
mov edx, dword [ebp - 0xbd8]
sub edx, dword [ebp - 0xc28]
sar edx, 1
mov dword [ebp - 0xc24], edx
mov eax, dword [ebp - 0xc24]
movzx ecx, word [ebp + eax*2 - 0x21a]
cmp ecx, 0x5c
je 0x40690e
lea edx, [ebp - 0x218]
mov dword [ebp - 0xbd0], edx
mov eax, dword [ebp - 0xbd0]
add eax, 2
mov dword [ebp - 0xc20], eax
mov ecx, dword [ebp - 0xbd0]
mov dx, word [ecx]
mov word [ebp - 0xbe6], dx
add dword [ebp - 0xbd0], 2
cmp word [ebp - 0xbe6], 0
jne 0x4068c2
mov eax, dword [ebp - 0xbd0]
sub eax, dword [ebp - 0xc20]
sar eax, 1
mov dword [ebp - 0xc1c], eax
mov ecx, dword [ebp - 0xc1c]
movzx edx, word [ebp + ecx*2 - 0x21a]
cmp edx, 0x2f
jne 0x406991
lea eax, [ebp - 0x218]
mov dword [ebp - 0xbdc], eax
mov ecx, dword [ebp - 0xbdc]
add ecx, 2
mov dword [ebp - 0xc18], ecx
mov edx, dword [ebp - 0xbdc]
mov ax, word [edx]
mov word [ebp - 0xbe8], ax
add dword [ebp - 0xbdc], 2
cmp word [ebp - 0xbe8], 0
jne 0x406929
mov ecx, dword [ebp - 0xbdc]
sub ecx, dword [ebp - 0xc18]
sar ecx, 1
mov dword [ebp - 0xc14], ecx
mov edx, dword [ebp - 0xc14]
lea eax, [edx + edx - 2]
mov dword [ebp - 0xbf4], eax
cmp dword [ebp - 0xbf4], 0x208
jae 0x40697c
jmp 0x406981
call fcn.004136ab
xor ecx, ecx
mov edx, dword [ebp - 0xbf4]
mov word [ebp + edx - 0x218], cx
lea eax, [ebp - 0x218]
push eax
push 0x43c9d0
lea ecx, [ebp - 0x628]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea edx, [ebp - 0x628]
push edx
call fcn.00411960
add esp, 4
push 1
push 0x40
push 1
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0xcf8]
call fcn.00407860
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xcf8]
push ecx
lea ecx, [ebp - 0xaa4]
call fcn.00407040
push 0
push 0x400
push 0
lea ecx, [ebp - 0xaf4]
call fcn.004070e0
mov byte [ebp - 4], 4
lea edx, [ebp - 0xaa4]
push edx
lea ecx, [ebp - 0xaf4]
call fcn.0040ac00
lea ecx, [ebp - 0xaf4]
call fcn.00407070
movzx eax, al
test eax, eax
je 0x406a84
lea ecx, [ebp - 0xcf8]
call fcn.004077d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xaf4]
call fcn.00407090
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcf8]
call fcn.004066e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa98]
call fcn.00401420
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa80]
call fcn.00401420
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa50]
call fcn.00401420
jmp 0x406ffa
push 0x43c9f0
lea ecx, [ebp - 0xaf4]
call fcn.00407200
movzx ecx, al
test ecx, ecx
je 0x406b4b
push str.sync_folder
push 0x43ca00
lea ecx, [ebp - 0xaf4]
call fcn.0040ac20
mov ecx, eax
call fcn.0040ac20
mov ecx, eax
call fcn.004071c0
push eax
lea edx, [ebp - 0xbb4]
push edx
call fcn.00411c10
add esp, 8
mov dword [ebp - 0xc34], eax
mov eax, dword [ebp - 0xc34]
push eax
lea ecx, [ebp - 0xa50]
call fcn.00407370
lea ecx, [ebp - 0xbb4]
call fcn.00401420
push str.sync_folder_en
push str.customAppName
lea ecx, [ebp - 0xaf4]
call fcn.0040ac20
mov ecx, eax
call fcn.0040ac20
mov ecx, eax
call fcn.004071c0
push eax
lea ecx, [ebp - 0xb9c]
push ecx
call fcn.00411c10
add esp, 8
mov dword [ebp - 0xc10], eax
mov edx, dword [ebp - 0xc10]
push edx
lea ecx, [ebp - 0xa80]
call fcn.00407370
lea ecx, [ebp - 0xb9c]
call fcn.00401420
lea ecx, [ebp - 0xcf8]
call fcn.004077d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xaf4]
call fcn.00407090
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcf8]
call fcn.004066e0
lea ecx, [ebp - 0xa50]
call fcn.004013b0
test eax, eax
jne 0x406bc7
lea ecx, [ebp - 0xa80]
call fcn.004013b0
test eax, eax
jne 0x406bc7
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa98]
call fcn.00401420
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa80]
call fcn.00401420
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa50]
call fcn.00401420
jmp 0x406ffa
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa98]
call fcn.00401420
push 0x208
push 0
lea eax, [ebp - 0xa38]
push eax
call fcn.00415740
add esp, 0xc
lea ecx, [ebp - 0xa80]
call fcn.004013b0
lea ecx, [ebp - 0xa50]
call fcn.004013b0
test eax, eax
je 0x406fd9
mov dword [ebp - 0xbf0], 0x43ca3c
mov dword [ebp - 0xbec], 0x43ca40
lea ecx, [ebp - 0xa50]
call fcn.004013d0
push eax
push str.ProductName
call fcn.00402490
add esp, 8
lea ecx, [ebp - 0xa50]
call fcn.004013d0
push eax
push str.PROGRAMMENUDIR
call fcn.00402420
add esp, 8
lea ecx, [ebp - 0xa50]
push ecx
lea ecx, [ebp - 0xa68]
call fcn.00407450
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa68]
call fcn.004013d0
push eax
push str.ds0F98123F01424BC2BF8B9BE4F25A3D5C
call fcn.004022e0
add esp, 8
lea edx, [ebp - 0xa50]
push edx
mov eax, dword [ebp - 0xbf0]
push eax
lea ecx, [ebp - 0xb84]
push ecx
call fcn.0040acb0
add esp, 0xc
mov dword [ebp - 0xc0c], eax
mov edx, dword [ebp - 0xc0c]
push edx
lea ecx, [ebp - 0xa68]
call fcn.00407370
lea ecx, [ebp - 0xb84]
call fcn.00401420
lea ecx, [ebp - 0xa68]
call fcn.004013d0
push eax
push str.dsA058D873247649999B506FB1EAE6D0FF
call fcn.004022e0
add esp, 8
lea eax, [ebp - 0xa50]
push eax
mov ecx, dword [ebp - 0xbec]
push ecx
lea edx, [ebp - 0xbcc]
push edx
call fcn.0040acb0
add esp, 0xc
mov dword [ebp - 0xc08], eax
mov eax, dword [ebp - 0xc08]
push eax
lea ecx, [ebp - 0xa68]
call fcn.00407370
lea ecx, [ebp - 0xbcc]
call fcn.00401420
lea ecx, [ebp - 0xa68]
call fcn.004013d0
push eax
push str.dsCDF28A67A2B941D2AB5DA5BED184FE8F
call fcn.004022e0
add esp, 8
lea ecx, [ebp - 0xa50]
push ecx
mov edx, dword [ebp - 0xbf0]
push edx
lea eax, [ebp - 0xb54]
push eax
call fcn.0040acb0
add esp, 0xc
mov dword [ebp - 0xc04], eax
mov ecx, dword [ebp - 0xc04]
mov dword [ebp - 0xbfc], ecx
mov byte [ebp - 4], 6
push 0x43cb58
mov edx, dword [ebp - 0xbfc]
push edx
lea eax, [ebp - 0xb6c]
push eax
call fcn.0040ae50
add esp, 0xc
mov dword [ebp - 0xc00], eax
mov ecx, dword [ebp - 0xc00]
push ecx
lea ecx, [ebp - 0xa68]
call fcn.00407370
lea ecx, [ebp - 0xb6c]
call fcn.00401420
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xb54]
call fcn.00401420
lea ecx, [ebp - 0xa68]
call fcn.004013d0
push eax
push str.DeleteStartShortcut
call fcn.00402380
add esp, 8
lea edx, [ebp - 0xa50]
push edx
mov eax, dword [ebp - 0xbec]
push eax
lea ecx, [ebp - 0xb24]
push ecx
call fcn.0040acb0
add esp, 0xc
mov dword [ebp - 0xc38], eax
mov edx, dword [ebp - 0xc38]
mov dword [ebp - 0xc3c], edx
mov byte [ebp - 4], 7
push 0x43cb8c
mov eax, dword [ebp - 0xc3c]
push eax
lea ecx, [ebp - 0xb3c]
push ecx
call fcn.0040ae50
add esp, 0xc
mov dword [ebp - 0xc40], eax
mov edx, dword [ebp - 0xc40]
push edx
lea ecx, [ebp - 0xa68]
call fcn.00407370
lea ecx, [ebp - 0xb3c]
call fcn.00401420
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xb24]
call fcn.00401420
lea ecx, [ebp - 0xa68]
call fcn.004013d0
push eax
push str.DeleteStartUninstallShortcut
call fcn.00402380
add esp, 8
push str..lnk
lea eax, [ebp - 0xa50]
push eax
lea ecx, [ebp - 0xb0c]
push ecx
call fcn.0040ad80
add esp, 0xc
mov dword [ebp - 0xbf8], eax
mov edx, dword [ebp - 0xbf8]
push edx
lea ecx, [ebp - 0xa68]
call fcn.00407370
lea ecx, [ebp - 0xb0c]
call fcn.00401420
lea ecx, [ebp - 0xa68]
call fcn.004013d0
push eax
push str.DeleteDesktopShortcut
call fcn.00402380
add esp, 8
push 0x208
push 0
lea eax, [ebp - 0x830]
push eax
call fcn.00415740
add esp, 0xc
lea ecx, [ebp - 0x830]
push ecx
call fcn.00401140
add esp, 4
push 0x208
push 0
lea edx, [ebp - 0x420]
push edx
call fcn.00415740
add esp, 0xc
lea eax, [ebp - 0x830]
push eax
push str._suires
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x830]
push eax
push str._suires_appname.ini
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0xa50]
call fcn.004013d0
push eax
lea edx, [ebp - 0xabc]
push edx
call fcn.00411aa0
add esp, 8
push 0x43cc44
lea eax, [ebp - 0x420]
push eax
call fcn.00419bf9
add esp, 8
mov dword [ebp - 0xbe0], eax
cmp dword [ebp - 0xbe0], 0
je 0x406fb4
mov ecx, dword [ebp - 0xbe0]
push ecx
lea ecx, [ebp - 0xabc]
call fcn.004013b0
push eax
push 1
lea ecx, [ebp - 0xabc]
call fcn.00407500
push eax
call fcn.00419e53
add esp, 0x10
mov edx, dword [ebp - 0xbe0]
push edx
call fcn.00419f21
add esp, 4
jmp 0x406fbf
push 0x43cc48
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0xabc]
call fcn.004075c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa68]
call fcn.00401420
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa80]
call fcn.00401420
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa50]
call fcn.00401420
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00413262
mov esp, ebp
pop ebp
ret