Function at 0x403a05
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6f0
push ebx
push esi
push edi
mov esi, str._WalkProcessHeapList_
lea edi, [ebp - 0x3b0]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0xffffffff
jne 0x403a4e
push 0x10
push 0x40b268
push str.Unable_to_create_toolhelp_snapshot
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x404174
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 8], eax
push 0
push 0
push 0xb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [ebp - 0x118]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [ebp - 0x11a]
push eax
mov eax, dword [ebp - 0x11c]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [ebp - 0x11e]
push eax
xor eax, eax
mov ax, word [ebp - 0x122]
push eax
push 0x40c638
lea eax, [ebp - 0x5d4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
cmp eax, 0xf
jbe 0x403ae4
push str._HW32__WalkProcessHeap:_GetLocalTime:_stack_trashed_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
movsx eax, byte [0x40db40]
test eax, eax
je 0x403b0c
push 0x40db40
push 0x40c688
push 0x40b038
push 2
call fcn.00405db6
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp + 8]
push eax
call fcn.00404d62
add esp, 4
push 0
push 0
push 0x1009
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x274], 0x128
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [0x40bb6c]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
je 0x40411a
mov dword [ebp - 0x298], 0x24
mov dword [ebp - 0x5e4], 0x10
mov eax, dword [ebp - 0x128]
cmp dword [ebp - 0x26c], eax
je 0x4040b5
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x5e0], eax
cmp dword [ebp - 0x274], 0x128
jb 0x403bf3
lea eax, [ebp - 0x6ec]
push eax
lea eax, [ebp - 0x5c0]
push eax
push 0x104
lea eax, [ebp - 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov eax, dword [ebp - 0x6ec]
push eax
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
jmp 0x403c10
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 0x264]
push eax
mov eax, dword [ebp - 0x26c]
push eax
call fcn.00404def
add esp, 0xc
mov eax, dword [ebp - 0x5e0]
push eax
push 1
call dword [0x40b450]
mov dword [ebp - 0x6e8], eax
lea eax, [ebp - 0x5e4]
push eax
mov eax, dword [ebp - 0x6e8]
push eax
call dword [0x40b75c]
mov dword [ebp - 0x114], eax
cmp dword [0x40b030], 0
je 0x403c7a
push str.HID_Cmd_Arg
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
lea eax, [ebp - 0x5dc]
push eax
push 0x40c69c
push 0x40dc50
call fcn.00406170
add esp, 0xc
cmp dword [ebp - 0x114], 0
je 0x404096
mov dword [ebp - 0x4bc], 0
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x4b4], 0
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x5dc]
push eax
mov eax, dword [ebp - 0x5e0]
push eax
lea eax, [ebp - 0x298]
push eax
call dword [0x40b554]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
je 0x403dd1
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x6f0], eax
jmp 0x403d32
cmp dword [ebp - 0x28c], 0
je 0x403d17
mov eax, dword [ebp - 0x28c]
add dword [ebp - 0x4bc], eax
inc dword [ebp - 0x4b4]
jmp 0x403d5e
mov eax, dword [ebp - 0x28c]
add dword [ebp - 0x4b8], eax
jmp 0x403d5e
cmp dword [ebp - 0x6f0], 1
je 0x403cf8
cmp dword [ebp - 0x6f0], 2
je 0x403d1c
cmp dword [ebp - 0x6f0], 4
je 0x403cf8
jmp 0x403d5e
lea eax, [ebp - 0x298]
push eax
call dword [0x40b658]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x403dcc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x12
je 0x403dcc
mov eax, dword [ebp - 0x5dc]
push eax
mov eax, dword [ebp - 0x5e0]
push eax
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 4]
push eax
push str.Unexpected_Heap32Next_error__d__s_pid:_x_hid:_x_r_n
lea eax, [ebp - 0x6e4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea eax, [ebp - 0x6e4]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x403cda
push 0x1c
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x5c4], eax
cmp dword [ebp - 0x5c4], 0
je 0x403ffb
mov eax, dword [ebp - 0x5e0]
push eax
push 0x40c6d4
lea eax, [ebp - 0x398]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov byte [ebp - 0xc], al
mov dword [ebp - 0x14c], 5
mov dword [ebp - 0x144], 0
lea eax, [ebp - 0x398]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x5c4]
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x14c]
push eax
push 0
push 0x1007
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x403e7d
mov dword [ebp - 0x114], 0
mov eax, dword [ebp - 0x5c4]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x404096
mov eax, dword [ebp - 0x5e0]
mov ecx, dword [ebp - 0x5c4]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x5c4]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x5dc]
push eax
push 0x40c6dc
lea eax, [ebp - 0x398]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov byte [ebp - 0xc], al
push 0
lea eax, [ebp - 0x398]
push eax
push 2
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call fcn.00404fb4
add esp, 0x14
push 0
lea eax, [ebp - 0x4b0]
push eax
push 1
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call fcn.00404fb4
add esp, 0x14
mov eax, dword [ebp - 0x4bc]
push eax
push 0x40c6e4
lea eax, [ebp - 0x398]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov byte [ebp - 0xc], al
push 0
lea eax, [ebp - 0x398]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call fcn.00404fb4
add esp, 0x14
mov eax, dword [ebp - 0x4b4]
push eax
push 0x40c6ec
lea eax, [ebp - 0x398]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov byte [ebp - 0xc], al
push 0
lea eax, [ebp - 0x398]
push eax
push 4
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call fcn.00404fb4
add esp, 0x14
mov eax, dword [ebp - 0x4b8]
push eax
push 0x40c6f0
lea eax, [ebp - 0x398]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov byte [ebp - 0xc], al
push 0
lea eax, [ebp - 0x398]
push eax
push 5
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call fcn.00404fb4
add esp, 0x14
cmp dword [0x40b244], 0
je 0x403ffb
mov eax, dword [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x4bc]
push eax
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x5dc]
push eax
mov eax, dword [ebp - 0x5e0]
push eax
lea eax, [ebp - 0x5d4]
push eax
push str._1_s___2_x___3_x___4__15s___5_08d___6_06d___7_08d__r_n
push 0x40b038
push 2
call fcn.00405db6
add esp, 0x28
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0x4b4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x4b8]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x34], eax
cmp dword [0x40b030], 0
je 0x404031
jmp 0x404096
lea eax, [ebp - 0x5e4]
push eax
mov eax, dword [ebp - 0x6e8]
push eax
call dword [0x40b860]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x404091
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x12
je 0x404091
mov eax, dword [ebp - 4]
push eax
push str.Unexpected_Heap32ListNext_error__d_r_n
lea eax, [ebp - 0x6e4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x6e4]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x403c7a
mov eax, dword [ebp - 0x6e8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x40b030], 0
je 0x4040b5
jmp 0x40411a
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [0x40bc70]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x404115
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x12
je 0x404115
mov eax, dword [ebp - 4]
push eax
push str.Unexpected_Process32Next_error__d_r_n
lea eax, [ebp - 0x6e4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x6e4]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x403b5e
push 0
push 1
push 0xb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 8], 0
je 0x404141
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
cmp dword [0x40b24c], 0
je 0x40416a
push 0
mov eax, dword [0x40b250]
push eax
push 1
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
jne 0x40416a
mov eax, 1
jmp 0x404174
pop edi
pop esi
pop ebx
leave
ret