Function at 0x406d80
Capabilities:
Create thread

Disassembly:
sub esp, 0xc0c
mov eax, dword [0x43b10c]
xor eax, esp
mov dword [esp + 0xc08], eax
push ebx
mov ebx, dword [esp + 0xc1c]
push ebp
push esi
push edi
mov edi, dword [esp + 0xc20]
push 0x9f6
xor ebp, ebp
lea eax, [esp + 0x224]
push ebp
push eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebx
call fcn.00407af0
lea ecx, [esp + 0x22c]
push ecx
push ebx
mov dword [0x43ce7c], ebp
mov dword [0x43ce78], ebp
call fcn.0040107d
mov esi, eax
push esi
lea edx, [esp + 0x138]
push str.nCmdCnt___d
push edx
call fcn.00407cf1
add esp, 0x20
cmp esi, ebp
jle 0x406eb0
lea ebp, [esp + 0x220]
lea ebx, [esp + 0x20]
mov eax, ebp
sub ebx, eax
mov dword [esp + 0x10], esi
mov edi, 0x4366ac
mov esi, ebp
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
mov eax, 1
jne 0x406e2c
mov dword [0x43ce7c], eax
mov edi, 0x4366a8
mov esi, ebp
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x406e43
mov dword [0x43ce7c], eax
mov edi, 0x4366a4
mov esi, ebp
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x406e5a
mov dword [0x43ce78], eax
mov edi, 0x4366a0
mov esi, ebp
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x406e71
mov dword [0x43ce78], eax
push str..ini
push ebp
call fcn.004072e0
add esp, 8
test eax, eax
je 0x406e91
mov eax, ebp
mov cl, byte [eax]
mov byte [ebx + eax], cl
add eax, 1
test cl, cl
jne 0x406e85
sub ebx, 0xff
add ebp, 0xff
sub dword [esp + 0x10], 1
jne 0x406e10
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x104
push 0x43ca88
push 0x65
push edi
call esi
test eax, eax
jne 0x406f0f
mov eax, dword [str.drivers_vm331avs.sys]
mov ecx, dword [0x436680]
mov edx, dword [0x436684]
mov dword [0x43ca88], eax
mov eax, dword [0x436688]
mov dword [0x43ca8c], ecx
mov ecx, dword [0x43668c]
mov dword [0x43ca90], edx
mov dx, word [0x436690]
mov dword [0x43ca94], eax
mov dword [0x43ca98], ecx
mov word [0x43ca9c], dx
push 0x104
push 0x43cb90
push 0x66
push edi
call esi
test eax, eax
jne 0x406f46
mov eax, dword [str.VM331_STI]
mov ecx, dword [0x436674]
mov dx, word [0x436678]
mov dword [0x43ca88], eax
mov dword [0x43ca8c], ecx
mov word [0x43ca90], dx
push 0x43ca88
push str.Driver_Name___s
push 0x43cf88
call fcn.00401041
push 0x43cb90
push str.Monitor_Name___s
push 0x43cf88
call fcn.00401041
push str.Enter_WinMain__
push 0x43cf88
call fcn.00401041
push ebx
push str.lpCmdLine___s
push 0x43cf88
call fcn.00401041
add esp, 0x2c
xor eax, eax
mov cl, byte [esp + eax + 0x20]
mov byte [eax + 0x43ce80], cl
add eax, 1
test cl, cl
jne 0x406f92
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x401145
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 1
push 0x4010f0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
je 0x40700b
push str._nThe_Control_Handler_is_installed._n
call fcn.00408a55
push str._n____Now_try_pressing_CtrlC_or_CtrlBreak__or
call fcn.00408a55
push str._n____try_logging_off_or_closing_the_console..._n
call fcn.00408a55
push str._n_...waiting_in_a_loop_for_events...__n_n
call fcn.00408a55
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
add esp, 0x10
nop
push 0
push esi
call edi
test eax, eax
jne 0x407000
jmp 0x407018
push str._nERROR:_Could_not_set_control_handler
call fcn.00408a55
add esp, 4
mov ecx, dword [esp + 0xc18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00407adf
add esp, 0xc0c
ret 0x10