Function at 0x401680
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 8]
sub esp, 0x24
mov ecx, 0x423dc8
push ebx
push esi
push edi
sub esp, 0xc
mov dword [0x423d64], eax
mov dword [0x423d60], 0x210000d7
call fcn.004032c0
mov dword [0x423d60], eax
test eax, eax
jne 0x40171b
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
test esi, esi
je 0x401702
lea eax, [esp + 0x10]
push eax
push esi
mov dword [esp + 0x18], 0
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
test edi, edi
jne 0x4016df
lea esi, [eax - 2]
jmp 0x401702
mov eax, dword [esp + 0x10]
cmp eax, 2
jge 0x4016ec
xor esi, esi
jmp 0x401702
push esi
push edi
push eax
mov ecx, 0x423dc8
call fcn.00403c20
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x423d60], esi
test esi, esi
jne 0x40171b
mov ecx, 0x423dc8
call fcn.00403860
mov dword [0x423d60], eax
mov ecx, 0x423dc8
call fcn.00404970
mov ecx, dword [0x423d60]
test ecx, ecx
cmove ecx, eax
cmp byte [0x423dca], 0
mov dword [0x423d60], ecx
je 0x40176a
cmp ecx, 0x21000064
jle 0x401753
sub ecx, 0x21000064
mov dword [0x423d60], ecx
test ecx, ecx
jle 0x40175f
neg ecx
mov dword [0x423d60], ecx
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [0x423dcc], 0
je 0x4017d7
cmp byte [0x423dcb], 0
jne 0x4017d7
test ecx, ecx
jne 0x4017a3
mov ecx, 0x423dc8
call fcn.00404d20
mov ecx, eax
mov dword [0x423d60], ecx
test ecx, ecx
jne 0x4017a3
call fcn.004060c0
mov ecx, eax
mov dword [0x423d60], ecx
cmp ecx, 0x21000064
jle 0x4017b7
sub ecx, 0x21000064
mov dword [0x423d60], ecx
test ecx, ecx
jle 0x4017c5
neg ecx
mov dword [0x423d60], ecx
test ecx, ecx
cmove ecx, dword [0x425054]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x426ae2
mov ecx, 0x423dc8
call fcn.00404890
mov esi, dword [0x423d60]
test al, al
jne 0x401800
mov eax, 0x21000117
test esi, esi
cmove esi, eax
mov dword [0x423d60], esi
mov al, byte [0x425869]
mov ebx, esi
mov dword [esp + 0x10], ebx
test al, al
jne 0x401858
push 0
push fcn.00402170
push 0
push 0x422208
push dword [0x423d64]
call dword [sym.imp.USER32.dll_DialogBoxIndirectParamW]
mov esi, dword [0x423d60]
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x401846
mov eax, 0x2100010f
test esi, esi
cmove esi, eax
mov dword [0x423d60], esi
mov al, byte [0x425869]
test al, al
jne 0x401858
cmp ecx, 0xffffffff
jne 0x401934
mov dword [0x421dc0], 0
cmp esi, 0x2100010f
jne 0x401876
mov dword [0x423d60], 0
jmp 0x401882
test esi, esi
je 0x401882
test al, al
jne 0x401934
push 0
push fcn.00402170
push 0
push 0x422208
push dword [0x423d64]
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamW]
mov esi, eax
test esi, esi
je 0x401911
cmp byte [0x425869], 0
jne 0x4018bb
push 5
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x20]
push eax
call edi
test eax, eax
je 0x40192e
mov ebx, dword [sym.imp.USER32.dll_IsDialogMessageW]
lea eax, [esp + 0x14]
push eax
push esi
call ebx
test eax, eax
jne 0x4018fa
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x20]
push eax
call edi
test eax, eax
jne 0x4018d8
mov ebx, dword [esp + 0x10]
jmp 0x40192e
push 0x21000110
push 0x40
push 0x112
push 0
mov dword [0x423d60], 0x2100010f
call fcn.00402170
mov esi, dword [0x423d60]
cmp esi, 0x2100011a
jne 0x401981
cmp byte [0x425a7b], 0
je 0x401981
call fcn.004060c0
mov esi, eax
mov dword [0x423d60], esi
test esi, esi
je 0x401981
cmp byte [0x425868], 0
jne 0x401981
cmp byte [0x425869], 0
jne 0x401981
call fcn.00401650
push dword [0x423d60]
push 0x40
push 0x112
push 0
call fcn.00402170
test ebx, ebx
cmovne esi, ebx
mov dword [0x423d60], esi
cmp esi, 0x21000064
jle 0x4019a0
sub esi, 0x21000064
mov dword [0x423d60], esi
test esi, esi
jle 0x4019ae
neg esi
mov dword [0x423d60], esi
test esi, esi
jne 0x4019c1
mov esi, dword [0x425054]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [0x423fde], 0
mov eax, 0x644
cmovne esi, eax
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10