Function at 0x401000
Capabilities:
Accept command line arguments
Hide graphical window
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1908
call fcn.00401fa0
mov dword [ebp - 0x1024], 0
push 0x406afc
push 2
call dword [sym.imp.MSVCRT.dll_setlocale]
add esp, 8
mov dword [0x4042d0], 0
mov dword [0x406af8], 0
push 0x800
push 0
push 0x4062e0
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x800
push 0
push 0x404adc
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x800
push 0
push 0x405adc
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x800
push 0
lea eax, [ebp - 0x800]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x800
push 0
push 0x4042d8
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x820], 0
lea ecx, [ebp - 0x820]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00402950
add esp, 8
mov dword [ebp - 0x1828], eax
mov dword [ebp - 0x1830], 1
jmp 0x4010e2
mov edx, dword [ebp - 0x1830]
add edx, 1
mov dword [ebp - 0x1830], edx
mov eax, dword [ebp - 0x1830]
cmp eax, dword [ebp - 0x820]
jge 0x4012e1
push 0x404028
mov ecx, dword [ebp - 0x1830]
mov edx, dword [ebp - 0x1828]
mov eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x401157
xor ecx, ecx
mov cx, word [0x4062e0]
test ecx, ecx
jne 0x401157
push 0x404030
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
mov edx, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0x1828]
mov edx, dword [ecx + edx*4]
lea eax, [edx + eax*2]
push eax
push 0x4062e0
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
jmp 0x4012dc
push 0x404038
mov ecx, dword [ebp - 0x1830]
mov edx, dword [ebp - 0x1828]
mov eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x4011c4
xor ecx, ecx
mov cx, word [0x404adc]
test ecx, ecx
jne 0x4011c4
push 0x404040
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
mov edx, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0x1828]
mov edx, dword [ecx + edx*4]
lea eax, [edx + eax*2]
push eax
push 0x404adc
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
mov dword [0x406af4], 1
jmp 0x4012dc
push 0x404048
mov ecx, dword [ebp - 0x1830]
mov edx, dword [ebp - 0x1828]
mov eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x401231
xor ecx, ecx
mov cx, word [0x4042d8]
test ecx, ecx
jne 0x401231
mov dword [0x406af8], 1
push 0x404050
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
mov edx, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0x1828]
mov edx, dword [ecx + edx*4]
lea eax, [edx + eax*2]
push eax
push 0x4042d8
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
jmp 0x4012dc
push 0x404058
mov ecx, dword [ebp - 0x1830]
mov edx, dword [ebp - 0x1828]
mov eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x4012a5
mov ecx, dword [ebp - 0x800]
and ecx, 0xffff
test ecx, ecx
jne 0x4012a5
mov dword [0x4042d0], 1
push 0x404060
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
mov edx, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0x1828]
mov edx, dword [ecx + edx*4]
lea eax, [edx + eax*2]
push eax
push 0x404068
lea ecx, [ebp - 0x800]
push ecx
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
jmp 0x4012dc
push 0x404070
mov edx, dword [ebp - 0x1830]
mov eax, dword [ebp - 0x1828]
mov ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x4012dc
cmp dword [0x4042d0], 1
je 0x4012dc
mov dword [ebp - 0x1024], 1
jmp 0x4012e1
jmp 0x4010d3
cmp dword [0x4042d0], 1
jne 0x40138b
mov dword [ebp - 0x1024], 1
push 0x800
push 0
lea edx, [ebp - 0x1824]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x804], 0x800
mov eax, dword [ebp - 0x804]
push eax
lea ecx, [ebp - 0x1824]
push ecx
push 0x40407c
push str.section_order
push str.Init
lea edx, [ebp - 0x800]
push edx
call fcn.00401f5f
add esp, 0x18
mov dword [ebp - 0x1834], eax
cmp dword [ebp - 0x1834], 0
jbe 0x40138b
push 0x4040b8
lea eax, [ebp - 0x1824]
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
je 0x40138b
mov dword [ebp - 0x1024], 0
lea ecx, [ebp - 0x1824]
push ecx
push 0x405adc
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
cmp dword [ebp - 0x1024], 1
je 0x40139d
cmp dword [ebp - 0x820], 1
jne 0x4013a4
xor eax, eax
jmp 0x401d36
xor edx, edx
mov dx, word [0x4062e0]
test edx, edx
jne 0x4013c8
mov eax, dword [ebp - 0x1828]
mov ecx, dword [eax]
push ecx
push 0x4062e0
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
push 0x4062e0
push 1
push 1
push 0
call dword [0x4042a8]
mov dword [0x4042cc], eax
mov edx, dword [0x4042cc]
push edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
cmp dword [0x406af8], 0
je 0x401463
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x4042d8
push 0
push 1
push 0
call dword [0x4042a8]
mov dword [0x4062dc], eax
mov eax, dword [0x4062dc]
mov dword [ebp - 0x81c], eax
mov ecx, dword [0x4042cc]
mov dword [ebp - 0x818], ecx
push 0xffffffffffffffff
push 0
lea edx, [ebp - 0x81c]
push edx
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x182c], eax
mov eax, dword [ebp - 0x182c]
mov dword [ebp - 0x1904], eax
cmp dword [ebp - 0x1904], 1
je 0x40145c
jmp 0x401463
xor eax, eax
jmp 0x401d36
mov dword [ebp - 0x1864], 0x30
mov dword [ebp - 0x1860], 3
mov dword [ebp - 0x185c], 0x401ec3
mov dword [ebp - 0x1858], 0
mov dword [ebp - 0x1854], 0
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x1850], ecx
mov dword [ebp - 0x184c], 0
mov dword [ebp - 0x1838], 0
mov dword [ebp - 0x1848], 0
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x1844], eax
mov dword [ebp - 0x183c], 0x404014
mov dword [ebp - 0x1840], 0
lea edx, [ebp - 0x1864]
push edx
call dword [0x4042c8]
push 0
mov eax, dword [ebp + 8]
push eax
push 0
push 0
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0x8000000
push 0x404014
push 0x404014
push 0
call dword [0x4042bc]
mov dword [0x4042d4], eax
push 0
mov ecx, dword [0x4042d4]
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x4042d4]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp dword [0x4042d0], 0
jne 0x4016a9
push 0x800
push 0
lea eax, [ebp - 0x1020]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x1830], 0
mov ecx, dword [ebp - 0x1830]
cmp ecx, dword [ebp - 0x820]
jge 0x4015d1
push 0x4040cc
mov edx, dword [ebp - 0x1830]
mov eax, dword [ebp - 0x1828]
mov ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x4015d1
push 0x4040d8
mov edx, dword [ebp - 0x1830]
mov eax, dword [ebp - 0x1828]
mov ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x4015d1
mov edx, dword [ebp - 0x1830]
add edx, 1
mov dword [ebp - 0x1830], edx
jmp 0x40156e
mov dword [0x406af0], 1
mov eax, dword [ebp - 0x1830]
cmp eax, dword [ebp - 0x820]
jge 0x4016a4
push 0x4040e0
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
mov ecx, dword [ebp - 0x1830]
mov edx, dword [ebp - 0x1828]
mov ecx, dword [edx + ecx*4]
lea edx, [ecx + eax*2]
push edx
push 0x4040ec
lea eax, [ebp - 0x1020]
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
push 0x406b00
lea ecx, [ebp - 0x1020]
push ecx
lea edx, [ebp - 0x18a0]
push edx
call fcn.00401d3c
add esp, 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x1890], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x188c], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x1888], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x1884], edx
mov eax, dword [ebp - 0x1890]
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0x188c]
mov dword [ebp - 0x810], ecx
mov edx, dword [ebp - 0x1888]
mov dword [ebp - 0x80c], edx
mov eax, dword [ebp - 0x1884]
mov dword [ebp - 0x808], eax
cmp dword [ebp - 0x814], 0
je 0x4016a4
mov dword [0x406af0], 0
jmp 0x4018ab
mov dword [0x406af0], 1
push 0x404010
push 0x405adc
call dword [sym.imp.MSVCRT.dll_wcstok]
add esp, 8
mov dword [0x404ad8], eax
cmp dword [0x404ad8], 0
je 0x4018ab
mov dword [0x406af4], 0
push 0x800
push 0
lea ecx, [ebp - 0x1824]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x804], 0x800
mov edx, dword [ebp - 0x804]
push edx
lea eax, [ebp - 0x1824]
push eax
push 0x4040f4
push 0x404108
mov ecx, dword [0x404ad8]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.00401f5f
add esp, 0x18
mov dword [ebp - 0x1834], eax
cmp dword [ebp - 0x1834], 0
jbe 0x401790
push 0x404110
lea eax, [ebp - 0x1824]
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
je 0x401790
push 0x800
push 0
push 0x404adc
call sub.MSVCRT.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1824]
push ecx
push 0x404124
push 0x404adc
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
mov dword [0x406af4], 1
push 0x800
push 0
lea edx, [ebp - 0x1824]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x804], 0x800
mov eax, dword [ebp - 0x804]
push eax
lea ecx, [ebp - 0x1824]
push ecx
push 0x40412c
push 0x404140
mov edx, dword [0x404ad8]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.00401f5f
add esp, 0x18
mov dword [ebp - 0x1834], eax
cmp dword [ebp - 0x1834], 0
jbe 0x4018ab
push 0x404148
lea ecx, [ebp - 0x1824]
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
je 0x4018ab
lea edx, [ebp - 0x1824]
push edx
push 0x40415c
lea eax, [ebp - 0x1020]
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
push 0x406b04
lea ecx, [ebp - 0x1020]
push ecx
lea edx, [ebp - 0x18c0]
push edx
call fcn.00401d3c
add esp, 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x18b0], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x18ac], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x18a8], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x18a4], edx
mov eax, dword [ebp - 0x18b0]
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x810], ecx
mov edx, dword [ebp - 0x18a8]
mov dword [ebp - 0x80c], edx
mov eax, dword [ebp - 0x18a4]
mov dword [ebp - 0x808], eax
cmp dword [ebp - 0x814], 0
je 0x4018ab
mov dword [0x406af0], 0
cmp dword [0x406af0], 0
jne 0x401d34
push 1
push 0
push 0
mov ecx, dword [0x4042d4]
push ecx
lea edx, [ebp - 0x1880]
push edx
call dword [0x4042c4]
cmp dword [ebp - 0x187c], 0x12
jne 0x4018ea
mov dword [0x406af0], 1
jmp 0x401d2f
mov eax, dword [ebp - 0x814]
mov dword [ebp - 0x81c], eax
mov ecx, dword [0x4042cc]
mov dword [ebp - 0x818], ecx
push 0
push 0
lea edx, [ebp - 0x81c]
push edx
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x182c], eax
cmp dword [ebp - 0x182c], 0xffffffff
jne 0x401933
mov dword [0x406af0], 1
jmp 0x401ce7
cmp dword [ebp - 0x182c], 0x102
je 0x401ce7
mov eax, dword [ebp - 0x182c]
mov dword [ebp - 0x1908], eax
cmp dword [ebp - 0x1908], 0
je 0x40196a
cmp dword [ebp - 0x1908], 1
je 0x401cc6
jmp 0x401ce7
mov ecx, dword [ebp - 0x810]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x814]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x800
push 0
lea eax, [ebp - 0x1020]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
cmp dword [0x4042d0], 0
jne 0x401ac5
mov ecx, dword [ebp - 0x1830]
add ecx, 1
mov dword [ebp - 0x1830], ecx
mov edx, dword [ebp - 0x1830]
cmp edx, dword [ebp - 0x820]
jge 0x4019f7
push 0x404164
mov eax, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0x1828]
mov edx, dword [ecx + eax*4]
push edx
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x4019f7
mov eax, dword [ebp - 0x1830]
add eax, 1
mov dword [ebp - 0x1830], eax
jmp 0x4019b6
mov ecx, dword [ebp - 0x1830]
cmp ecx, dword [ebp - 0x820]
jge 0x401ac0
push str._cmd
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
mov edx, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0x1828]
mov edx, dword [ecx + edx*4]
lea eax, [edx + eax*2]
push eax
push 0x40417c
lea ecx, [ebp - 0x1020]
push ecx
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
push 0x406b08
lea edx, [ebp - 0x1020]
push edx
lea eax, [ebp - 0x18e0]
push eax
call fcn.00401d3c
add esp, 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x18d0], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x18cc], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x18c8], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x18c4], edx
mov eax, dword [ebp - 0x18d0]
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0x18cc]
mov dword [ebp - 0x810], ecx
mov edx, dword [ebp - 0x18c8]
mov dword [ebp - 0x80c], edx
mov eax, dword [ebp - 0x18c4]
mov dword [ebp - 0x808], eax
cmp dword [ebp - 0x814], 0
jne 0x401ac0
mov dword [0x406af0], 1
jmp 0x401cc4
mov dword [0x406af0], 1
push 0x404010
push 0
call dword [sym.imp.MSVCRT.dll_wcstok]
add esp, 8
mov dword [0x404ad8], eax
cmp dword [0x404ad8], 0
je 0x401cc4
mov dword [0x406af4], 0
push 0x800
push 0
lea ecx, [ebp - 0x1824]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x804], 0x800
mov edx, dword [ebp - 0x804]
push edx
lea eax, [ebp - 0x1824]
push eax
push 0x404184
push 0x404198
mov ecx, dword [0x404ad8]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.00401f5f
add esp, 0x18
mov dword [ebp - 0x1834], eax
cmp dword [ebp - 0x1834], 0
jbe 0x401ba9
push 0x4041a0
lea eax, [ebp - 0x1824]
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
je 0x401ba9
push 0x800
push 0
push 0x404adc
call sub.MSVCRT.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1824]
push ecx
push 0x4041b4
push 0x404adc
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
mov dword [0x406af4], 1
push 0x800
push 0
lea edx, [ebp - 0x1824]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x804], 0x800
mov eax, dword [ebp - 0x804]
push eax
lea ecx, [ebp - 0x1824]
push ecx
push 0x4041bc
push 0x4041d0
mov edx, dword [0x404ad8]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.00401f5f
add esp, 0x18
mov dword [ebp - 0x1834], eax
cmp dword [ebp - 0x1834], 0
jbe 0x401cc4
push str.Not_Found
lea ecx, [ebp - 0x1824]
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
je 0x401cc4
lea edx, [ebp - 0x1824]
push edx
push 0x4041ec
lea eax, [ebp - 0x1020]
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0xc
push 0x406b0c
lea ecx, [ebp - 0x1020]
push ecx
lea edx, [ebp - 0x1900]
push edx
call fcn.00401d3c
add esp, 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x18f0], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x18ec], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x18e8], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x18e4], edx
mov eax, dword [ebp - 0x18f0]
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0x18ec]
mov dword [ebp - 0x810], ecx
mov edx, dword [ebp - 0x18e8]
mov dword [ebp - 0x80c], edx
mov eax, dword [ebp - 0x18e4]
mov dword [ebp - 0x808], eax
cmp dword [ebp - 0x814], 0
je 0x401cc4
mov dword [0x406af0], 0
jmp 0x401ce7
push 0
mov ecx, dword [ebp - 0x814]
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov dword [0x406af0], 1
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea edx, [ebp - 0x1020]
test edx, edx
je 0x401d00
mov eax, dword [ebp - 0x1020]
and eax, 0xffff
test eax, eax
jne 0x401d0a
mov dword [0x406af0], 1
lea ecx, [ebp - 0x1880]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x1880]
push edx
call dword [0x4042c0]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4018ab
xor eax, eax
mov esp, ebp
pop ebp
ret 0x10