Function at 0x412490
Capabilities:
Create directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcf4
mov eax, dword [0x43c040]
xor eax, esp
mov dword [esp + 0xcf0], eax
push ebx
push esi
push edi
lea eax, [esp + 0x8f8]
mov esi, edx
push eax
push 1
push 0
push 0x1c
push 0
mov ebx, ecx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [esp + 0x8f8]
push 0x436718
push eax
call edi
lea eax, [esp + 0x628]
push eax
lea eax, [esp + 0x8fc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x412508
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
test byte [esp + 0x628], 0x10
jne 0x412518
push 0
lea eax, [esp + 0x8fc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str.conf
lea eax, [esp + 0x8fc]
push eax
call edi
push 0x208
lea eax, [esp + 0x14]
push 0
push eax
call fcn.0041d2c0
add esp, 0xc
lea eax, [esp + 0x218]
push 0x208
push 0
push eax
call fcn.0041d2c0
add esp, 0xc
lea eax, [esp + 0x420]
push 0x208
push 0
push eax
call fcn.0041d2c0
add esp, 8
lea eax, [esp + 0x8fc]
mov edx, 0x104
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401190
lea eax, [esp + 0x628]
push eax
lea eax, [esp + 0x8fc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp eax, 0xffffffff
je 0x4125b6
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
test byte [esp + 0x628], 0x10
je 0x412645
cmp word [esp + 0x10], 0
je 0x41260e
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
movzx eax, word [ebx]
cdq
push edx
push eax
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push str.version
push str.main
call edi
push ecx
lea ecx, [esp + 0x14]
call fcn.00411920
test eax, eax
jne 0x412645
test esi, esi
je 0x412abe
mov edi, dword [ebp + 8]
mov edx, edi
shr edx, 1
je 0x41263b
push ecx
push str.Failed_to_save_options.
push ecx
mov ecx, esi
call fcn.00401190
push str.Error__crypt_function.
jmp 0x412aa4
push ecx
lea ecx, [esp + 0x14]
call fcn.00411ad0
test eax, eax
jne 0x41267c
test esi, esi
je 0x412abe
mov edi, dword [ebp + 8]
mov edx, edi
shr edx, 1
je 0x412672
push ecx
push str.Failed_to_save_options.
push ecx
mov ecx, esi
call fcn.00401190
push str.Error__crypt_begin_write_function.
jmp 0x412aa4
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
movzx eax, word [ebx]
cdq
push edx
push eax
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push str.version
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
movzx eax, word [ebx + 2]
cdq
push edx
push eax
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push str.lang_id
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
mov eax, dword [ebx + 0x8c]
cdq
push edx
push eax
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push str.always_on_top
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
mov eax, dword [ebx + 0x90]
cdq
push edx
push eax
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push str.auto_update
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
cmp word [esp + 0x218], 0
lea ecx, [esp + 0x10]
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [ebx + 0x94]
push eax
push str.output_folder
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
cmp word [esp + 0x218], 0
lea ecx, [esp + 0x10]
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [ebx + 0x29c]
push eax
push str.proxy_server
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
cmp word [esp + 0x218], 0
lea ecx, [esp + 0x10]
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [ebx + 0x49c]
push eax
push str.commands
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
cmp word [esp + 0x218], 0
lea ecx, [esp + 0x10]
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [ebx + 0x89c]
push eax
push str.output_template
push str.main
call edi
mov ax, word [esp + 0x10]
test ax, ax
je 0x412a6c
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
push 0
push dword [ebx + 4]
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push str.validate
push str.license
call edi
cmp word [esp + 0x10], 0
je 0x412a6c
cmp word [esp + 0x218], 0
lea ecx, [esp + 0x10]
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [ebx + 8]
push eax
push 0x4368cc
push str.license
call edi
cmp word [esp + 0x10], 0
je 0x412a6c
xor eax, eax
push 0xa
mov word [esp + 0x87c], ax
lea eax, [esp + 0x87c]
push 0x40
push eax
push 0
push dword [ebx + 0x88]
call fcn.0041ef86
add esp, 0x14
lea ecx, [esp + 0x10]
cmp word [esp + 0x218], 0
lea eax, [esp + 0x218]
cmove eax, ecx
push eax
lea eax, [esp + 0x87c]
push eax
push 0x4368d4
push str.license
call edi
cmp word [esp + 0x10], 0
je 0x412a6c
cmp word [esp + 0x218], 0
je 0x412a6c
push ecx
lea eax, [esp + 0x424]
push eax
push ecx
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x224]
call fcn.0040f260
add esp, 0xc
mov edi, eax
lea eax, [esp + 0x218]
push 0
push 0x4000000
push 5
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x412a3d
lea eax, [esp + 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x412a44
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov word [esp + 0x218], ax
test edi, edi
je 0x412a84
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xcf0]
xor ecx, esp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret
push ecx
push str.FilePath_not_set.
push ecx
mov edx, 0x104
lea ecx, [esp + 0x42c]
call fcn.00401190
test esi, esi
je 0x412abe
mov edi, dword [ebp + 8]
mov edx, edi
shr edx, 1
je 0x412a9f
push ecx
push str.Failed_to_save_options.
push ecx
mov ecx, esi
call fcn.00401190
push str.Error__crypt_end_write_function.
mov edx, edi
mov ecx, esi
call fcn.00401120
lea eax, [esp + 0x420]
mov edx, edi
push eax
mov ecx, esi
call fcn.00401120
mov ecx, dword [esp + 0xcfc]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret