Function at 0x401af0
Capabilities:
Accept command line arguments
Create thread
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
lea eax, [ebp - 8]
mov dword [ebp - 4], 0
mov ebx, 1
push eax
mov dword [ebp - 0xc], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
test edi, edi
jne 0x401b33
push str.CommandLineToArgvW_failed__nExit_n
call fcn.00401010
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [0x41f394], ebx
jne 0x401b4b
push dword [ebp - 8]
push str._t_DBG__Got__i_arguments__n
call fcn.00401010
add esp, 8
xor esi, esi
cmp dword [ebp - 8], esi
jle 0x401f07
nop word [eax + eax]
push dword [edi + esi*4]
push str._ips
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401bd2
push 2
push dword [edi + esi*4 + 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
push eax
call fcn.00404ea0
add esp, 8
mov dword [ebp - 4], eax
test eax, eax
je 0x401cf4
push dword [edi + esi*4 + 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
push eax
push dword [edi + esi*4 + 4]
push dword [ebp - 4]
call fcn.004039e0
add esp, 0xc
cmp dword [0x41f394], 1
jne 0x401bcc
push dword [ebp - 4]
push dword [edi + esi*4]
push esi
push str.arg__d:__ws_with_param:__ws_n
call fcn.00401010
add esp, 0x10
inc esi
jmp 0x401c91
push dword [edi + esi*4]
push str._thr
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401c52
push 2
push dword [edi + esi*4 + 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
push eax
call fcn.00404ea0
mov ebx, eax
add esp, 8
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x401cf4
push dword [edi + esi*4 + 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
push eax
push dword [edi + esi*4 + 4]
push ebx
call fcn.004039e0
push ebx
call fcn.00405858
push dword [ebp - 0x14]
mov ebx, eax
mov dword [ebp - 0xc], ebx
call fcn.00407850
add esp, 0x14
cmp dword [0x41f394], 1
jne 0x401bcc
push ebx
push dword [edi + esi*4]
push esi
push str.arg__d:__ws_with_param:__i_n
call fcn.00401010
add esp, 0x10
inc esi
jmp 0x401c91
push dword [edi + esi*4]
push 0x41c514
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x401f07
push dword [edi + esi*4]
push str._dbg
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401c91
push str.Enable_debug_output_n
mov dword [0x41f394], 1
call fcn.00401010
add esp, 4
inc esi
cmp esi, dword [ebp - 8]
jl 0x401b60
mov esi, dword [ebp - 4]
test esi, esi
je 0x401f07
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea edx, [ebp - 4]
mov ecx, esi
call fcn.00401480
push esi
mov dword [ebp - 0x14], eax
call fcn.00407850
add esp, 4
push ebx
push 0
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov edi, eax
mov dword [ebp - 0x18], edi
test edi, edi
jne 0x401d10
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateIoCompletionPort_error:__d_nExit_n
call fcn.00401010
add esp, 8
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_on_memory_allocation__Error:__d_nExit_n
call fcn.00401010
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [ebx*4]
push eax
call fcn.0040786b
add esp, 4
mov dword [ebp - 0x10], eax
xor esi, esi
test ebx, ebx
jle 0x401d4f
nop dword [eax]
push 0
push 0
push edi
push 0x401650
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebx
jl 0x401d30
mov esi, dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
push 1
push 0
push 0
push 0xffffffffffffffff
call esi
mov dword [0x41f3b8], eax
test eax, eax
jne 0x401d84
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._t_ERR__CreateIoCompletionPort_error:__d_nExit_n
call fcn.00401010
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 1
push 0
push 0
push 0xffffffffffffffff
call esi
mov dword [0x41f3c0], eax
test eax, eax
jne 0x401db3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._t_ERR__CreateIoCompletionPort_error:__d_nExit_n
call fcn.00401010
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push dword [0x41f3b8]
push 0x401910
push 0
push 0
call esi
push 0
push 0
push dword [0x41f3c0]
mov dword [ebp - 0x1c], eax
push 0x401730
push 0
push 0
call esi
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x20], eax
addsd xmm0, xmm0
call fcn.00415210
xor esi, esi
mov dword [0x41f3bc], eax
cmp dword [ebp - 4], esi
jbe 0x401e4d
mov ebx, dword [ebp - 0x14]
nop dword [eax]
call fcn.00401050
push 0
push dword [ebx + esi*4]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x401e3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.PostQueuedCompletionStatus_Error:__d_n
call fcn.00401010
add esp, 8
jmp 0x401e44
lock inc dword [0x41f390]
inc esi
cmp esi, dword [ebp - 4]
jb 0x401e10
mov ebx, dword [ebp - 0xc]
cmp dword [0x41f390], 0
jle 0x401e6d
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax]
push 0x64
call esi
cmp dword [0x41f390], 0
jg 0x401e60
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jle 0x401eb1
mov esi, ebx
nop dword [eax]
push 0
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
sub esi, 1
jne 0x401e80
mov edi, dword [ebp - 0x10]
mov eax, dword [edi + esi*4]
test eax, eax
je 0x401ea3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, ebx
jl 0x401e95
mov edi, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
push 0
push 0
push 0
push dword [0x41f3b8]
call ebx
push 0
push 0
push 0
push dword [0x41f3c0]
call ebx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x401ee0
push eax
call esi
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x401eea
push eax
call esi
push dword [ebp - 0x14]
call fcn.00407850
push str._nFinished_n
call fcn.00401010
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.00401630
int3