Function at 0x403195
Capabilities:
Create thread
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa3c
push 0x3ec
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x414], eax
push 0x3ef
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x828], eax
push 0x3f2
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
sub eax, 1
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0xa34], eax
push 0x104
lea eax, [ebp - 0x208]
push eax
push 0x3f1
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
push 0x104
lea edx, [ebp - 0x824]
push edx
push 0x3e8
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
push 0
push 0
push 0x3ea
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItemInt]
mov dword [ebp - 0xa38], eax
push 0
push 0
push 0x184
mov edx, dword [ebp - 0x828]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x194
mov eax, dword [ebp - 0x828]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x104
lea ecx, [ebp - 0xa30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0x104
lea edx, [ebp - 0x410]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [ebp - 0xa30]
and eax, 0xffff
mov ecx, dword [ebp - 0x824]
and ecx, 0xffff
cmp eax, ecx
jne 0x4032db
lea edx, [ebp - 0x824]
push edx
push str.Drive__s_contains_the_Windows_system_directory__you_cant_format_it_while_Windows_is_running
lea eax, [ebp - 0x61c]
push eax
call fcn.004040b7
add esp, 0xc
push 0x10
push 0x40e02c
lea ecx, [ebp - 0x61c]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40342e
mov eax, dword [ebp - 0x410]
and eax, 0xffff
mov ecx, dword [ebp - 0x824]
and ecx, 0xffff
cmp eax, ecx
jne 0x403330
lea edx, [ebp - 0x824]
push edx
push str.This_utility_is_running_from_drive__s__you_cant_format_a_drive_with_open_files
lea eax, [ebp - 0x61c]
push eax
call fcn.004040b7
add esp, 0xc
push 0x10
push 0x40e0d8
lea ecx, [ebp - 0x61c]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40342e
push 0x430
push 1
call fcn.00404a20
add esp, 8
mov dword [ebp - 0xa3c], eax
mov eax, dword [ebp - 0xa3c]
mov dword [eax], 0xdeadbeef
mov ecx, dword [ebp - 0xa3c]
mov edx, dword [ebp + 8]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xa3c]
mov ecx, dword [ebp - 0xa38]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0xa3c]
mov eax, dword [ebp - 0xa34]
mov dword [edx + 0xc], eax
mov ecx, dword [ebp - 0xa3c]
mov edx, dword [ebp - 0x414]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0xa3c]
mov ecx, dword [ebp - 0x828]
mov dword [eax + 0x14], ecx
push 0x3eb
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebp - 0xa3c]
mov dword [ecx + 0x18], eax
push 0x3f0
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebp - 0xa3c]
mov dword [ecx + 0x1c], eax
lea edx, [ebp - 0x824]
push edx
mov eax, dword [ebp - 0xa3c]
add eax, 0x20
push eax
call fcn.004047ba
add esp, 8
lea ecx, [ebp - 0x208]
push ecx
mov edx, dword [ebp - 0xa3c]
add edx, 0x228
push edx
call fcn.004047ba
add esp, 8
mov dword [0x40f1d0], 0
push 0
push 0
mov eax, dword [ebp - 0xa3c]
push eax
push 0x40314a
push 0
push 0
call fcn.004048e7
add esp, 0x18
mov dword [0x40ddb8], eax
mov eax, 1
mov esp, ebp
pop ebp