Function at 0x40b770
Capabilities:
Accept command line arguments
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x455008]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push 0x200
push 4
push 0
push 1
mov dword [esp + 0x24], ebx
call fcn.0041e978
add esp, 4
push eax
call fcn.00420aa6
add esp, 0x10
push 0x4566d0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push ebx
lea edx, [ebp + 8]
call fcn.004020d0
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ebx, dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x40b82f
push 0
push dword [0x45670c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40b827
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [esp + 0x10], eax
test eax, eax
je 0x40b81d
push eax
lea edx, [esp + 0x1c]
call fcn.00402190
add esp, 4
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40b82f
call ebx
test eax, eax
je 0x40b82f
call esi
push dword [esp + 0x14]
lea edx, [ebp + 8]
call fcn.00401e20
add esp, 4
test eax, eax
jne 0x40b859
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push dword [esp + 0x14]
mov ecx, 0x456708
push dword [ebp + 8]
call fcn.0040e190
test eax, eax
jne 0x40b9e2
cmp byte [0x45683a], al
je 0x40b95f
mov eax, dword [0x45683c]
test eax, eax
jne 0x40b94c
cmp dword [0x456718], eax
je 0x40b948
push 0x820
call fcn.0041f021
add esp, 4
mov dword [0x45683c], eax
test eax, eax
je 0x40b95f
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
push dword [0x456718]
push 0x410
push dword [0x45683c]
call fcn.0041fa9e
mov edx, dword [0x45683c]
add esp, 0xc
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esp + 0x10], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b8f6
movzx eax, word [esp + 0x2a]
sub ecx, dword [esp + 0x10]
push eax
movzx eax, word [esp + 0x2c]
push eax
movzx eax, word [esp + 0x2e]
push eax
movzx eax, word [esp + 0x30]
push eax
movzx eax, word [esp + 0x32]
push eax
movzx eax, word [esp + 0x32]
push eax
movzx eax, word [esp + 0x34]
sar ecx, 1
push eax
push 0x4491b8
lea eax, [edx + ecx*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [0x45683c]
add esp, 0x24
test eax, eax
je 0x40b95f
push 0x451ffc
push eax
push 0x4566e8
call fcn.0041ffca
add esp, 0xc
cmp byte [0x45681a], 0
je 0x40ba18
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
push dword [0x45670c]
call eax
cmp eax, 0x102
jne 0x40b9b8
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40b9ae
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40b9c0
call ebx
test eax, eax
je 0x40b9c0
call esi
mov ecx, 0x456708
call fcn.00402960
test eax, eax
je 0x40b9f7
push 0x44514c
mov edx, 0x44514c
mov ecx, eax
call fcn.0040a300
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 0x448a30
call fcn.00401380
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
cmp byte [0x456ea0], 0
je 0x40bbac
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
push dword [0x45670c]
call eax
cmp eax, 0x102
jne 0x40ba71
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40ba67
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40ba79
call ebx
test eax, eax
je 0x40ba79
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x14]
push eax
push 0x103
push 0
push 0x445860
push 0x80000002
mov dword [esp + 0x28], 0
call edi
mov esi, eax
test esi, esi
je 0x40bab7
push 0x4458d0
call fcn.00401380
add esp, 4
jmp 0x40bb62
mov edx, dword [esp + 0x14]
push 0
call fcn.004025f0
add esp, 4
mov esi, eax
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x40bb62
push 0x447338
push 0x447348
mov dword [esp + 0x1c], esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x40bb08
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
cmp dword [esp + 0x14], 0
je 0x40bb5e
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0x203
push 0
push 0x445860
push 0x80000002
call edi
mov esi, eax
test esi, esi
je 0x40bb44
push 0x445968
call fcn.00401380
add esp, 4
jmp 0x40bb62
mov edx, dword [esp + 0x14]
push 1
call fcn.004025f0
add esp, 4
mov esi, eax
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x40bb8b
push 0x44514c
mov edx, 0x44514c
mov ecx, esi
call fcn.0040a300
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 0x448ab0
call fcn.00401380
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x456e88]
call fcn.00411d50
cmp eax, 0xfffffffd
je 0x40c284
cmp eax, 0xfffffffe
je 0x40c1eb
cmp eax, 0xffffffff
je 0x40c176
cmp byte [0x45675c], 0
mov dword [0x4566bc], 0
mov dword [0x4566cc], 0
mov dword [0x4566c0], 0x40a8f0
je 0x40bd6b
mov eax, dword [0x45684c]
test eax, eax
je 0x40bd6b
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
jne 0x40bcb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x18], eax
cmp eax, 0xffff0bad
je 0x40bcd1
cmp eax, 0xfffffffe
jne 0x40bd6b
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
push dword [0x45670c]
call eax
cmp eax, 0x102
jne 0x40bc83
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40bc79
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40bc8b
call ebx
test eax, eax
je 0x40bc8b
call esi
mov ecx, dword [esp + 0x18]
mov edx, 0x448d48
push 0x44514c
call fcn.0040a300
mov eax, 0xfffffff4
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 0x450728
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4566c4], eax
test eax, eax
jne 0x40bd6b
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
push dword [0x45670c]
call eax
cmp eax, 0x102
jne 0x40bd3f
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40bd13
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
push 0x448ca0
call fcn.00401380
mov eax, 0xfffffff5
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
call ebx
test eax, eax
je 0x40bd47
call esi
push 0x448ca0
call fcn.00401380
mov eax, 0xfffffff5
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 1
push 0x40b640
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
push 0
push 0
push 0x456708
push 0x407eb0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [0x456770]
push 0xffffffffffffffff
mov dword [ecx*4 + 0x456774], eax
push dword [0x456714]
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc dword [0x456770]
call eax
cmp dword [0x456674], 0
je 0x40bde2
push dword [0x456708]
call edi
push dword [0x456708]
call edi
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
cmp byte [0x456ea3], 0
jne 0x40be3e
push 0
push dword [0x45670c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40be36
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40be2c
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40be3e
call ebx
test eax, eax
je 0x40be3e
call esi
mov ecx, 0x456708
xor esi, esi
call fcn.00410b60
mov ecx, 0x456708
call fcn.0040db80
cmp dword [0x4567e4], 0xffffffff
mov ebx, dword [sym.imp.KERNEL32.dll_CreateThread]
je 0x40be8b
push esi
push esi
push 0x456708
push 0x405be0
push esi
push esi
call ebx
mov ecx, dword [0x456770]
mov esi, 1
mov dword [ecx*4 + 0x456774], eax
inc dword [0x456770]
cmp dword [0x456840], 0xffffffff
je 0x40bebc
push 0
push 0
push 0x456708
push 0x403820
push 0
push 0
call ebx
mov ecx, dword [0x456770]
mov dword [ecx*4 + 0x456774], eax
inc dword [0x456770]
inc esi
mov eax, dword [0x456860]
and eax, dword [0x456864]
cmp eax, 0xffffffff
je 0x40bef4
push 0
push 0
push 0x456708
push 0x40af50
push 0
push 0
call ebx
mov ecx, dword [0x456770]
mov dword [ecx*4 + 0x456774], eax
inc dword [0x456770]
inc esi
cmp byte [0x456819], 0
je 0x40bf25
push 0
push 0
push 0x456708
push 0x40a5b0
push 0
push 0
call ebx
mov ecx, dword [0x456770]
mov dword [ecx*4 + 0x456774], eax
inc dword [0x456770]
inc esi
cmp byte [0x456e8c], 0
je 0x40bf56
push 0
push 0
push 0x456708
push 0x415060
push 0
push 0
call ebx
mov ecx, dword [0x456770]
mov dword [ecx*4 + 0x456774], eax
inc dword [0x456770]
inc esi
push 0
push 0
push 0x456708
push 0x4010a0
push 0
push 0
call ebx
test esi, esi
jne 0x40c06a
cmp byte [0x45678d], 0
jne 0x40c06a
cmp dword [0x456820], 0xbadbad
jne 0x40bff0
cmp dword [0x456824], esi
jne 0x40bff0
push 0x80
call fcn.00416174
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, eax
push 0x456708
call fcn.00411b50
push 0x410
mov esi, eax
call fcn.0041f021
add esp, 4
mov dword [esi + 0x24], eax
push 0x450b78
push 0x208
push eax
call fcn.004013f0
add esp, 0xc
mov byte [esi + 0x2c], 0
mov ecx, esi
mov dword [esi + 0x30], 0x450b98
mov dword [esi + 0x50], 0
call fcn.00413300
jmp 0x40c063
push 0x80
call fcn.00416174
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, eax
push 0x456708
call fcn.00411b50
mov ebx, dword [0x456820]
mov esi, eax
mov edx, dword [0x456824]
mov ecx, ebx
or ecx, edx
jne 0x40c04d
mov eax, dword [0x456828]
test eax, eax
je 0x40c04d
mov edx, dword [0x456830]
mov ecx, dword [0x456834]
cmp edx, 0xbadbad
jne 0x40c042
test ecx, ecx
je 0x40c047
push ecx
push edx
push eax
jmp 0x40c055
mov edx, dword [0x456824]
push edx
push ebx
push dword [0x4558d4]
push dword [0x45681c]
push ecx
mov ecx, esi
call fcn.004128c0
mov ecx, esi
call fcn.00411c40
mov eax, dword [0x456770]
test eax, eax
jle 0x40c083
push 0xffffffffffffffff
push 1
push 0x456774
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xfa
call esi
cmp byte [0x456678], 0
je 0x40c0aa
push 0x448d8c
push 1
push 0
call fcn.00414dd0
add esp, 0xc
xor bl, bl
cmp dword [0x456684], 0
jle 0x40c0fd
mov edi, 0x448dd0
nop word [eax + eax]
test bl, bl
jne 0x40c0e7
cmp dword [0x456674], 0
mov eax, 0x448dc0
cmove eax, edi
push eax
push 0x448de4
push 1
push 0
call fcn.00414dd0
add esp, 0x10
mov bl, 1
push 0xfa
call esi
cmp dword [0x456684], 0
jg 0x40c0c0
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [0x456724]
cmp eax, dword [0x456854]
mov eax, 0x448e1c
mov byte [esp + 0x18], 0
mov byte [esp + 0x14], 1
je 0x40c11e
mov eax, 0x448e48
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.00414dd0
add esp, 0xc
push dword [0x456708]
call edi
mov eax, dword [0x4558d4]
cmp eax, 0xffffffff
je 0x40c152
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x4558d4], 0xffffffff
push 0x448630
call fcn.00401380
mov eax, dword [0x456724]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 0
push dword [0x45670c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40c1c1
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40c1b7
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40c1c9
call ebx
test eax, eax
je 0x40c1c9
call esi
push 0x448b2c
call fcn.00401380
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 0
push dword [0x45670c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40c258
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40c22c
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
push 0x448b68
call fcn.00401380
mov eax, 0xfffffffe
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
call ebx
test eax, eax
je 0x40c260
call esi
push 0x448b68
call fcn.00401380
mov eax, 0xfffffffe
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret
push 0
push dword [0x45670c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40c2cf
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40c2c5
push esi
lea edx, [esp + 0x14]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [0x45670c]
call edi
jmp 0x40c2d7
call ebx
test eax, eax
je 0x40c2d7
call esi
push 0x448bf8
call fcn.00401380
mov ecx, dword [esp + 0x40]
add esp, 4
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00415f69
mov esp, ebp
pop ebp
ret