Function at 0xb77930
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xbcad40
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0xd08954]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, 7
jb 0xb77980
cmp ecx, 0x8004
jae 0xb77980
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp ecx, 6
je 0xb77aaf
ja 0xb77ade
sub ecx, 2
jne 0xb77b09
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], 8
cmp byte [edi + 0x19], cl
jne 0xb77a3f
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_GetLastInputInfo]
test eax, eax
je 0xb77a3f
push 4
lea eax, [ebp - 0x1c]
push eax
push 0
push 0
push 0x10
call dword [sym.imp.api_ms_win_power_base_l1_1_0.dll_CallNtPowerInformation]
test eax, eax
js 0xb779dd
test byte [ebp - 0x1c], 2
jne 0xbf1337
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, dword [ebp - 0x24]
cmp eax, dword [edi + 0x1c]
jae 0xb77bba
mov byte [ebp - 0xd], 1
xor esi, esi
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
lea ebx, [edi + 0x28]
mov dword [ebp - 4], esi
push ebx
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov al, byte [ebp - 0xd]
cmp al, byte [edi + 0x18]
jne 0xb77bc4
push ebx
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0xb77c27
mov dword [ebp - 4], 0xffffffff
test esi, esi
jne 0xb77c45
cmp dword [edi + 0x7c], 0
je 0xbf1360
xor ebx, ebx
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
xor esi, esi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], esi
lea eax, [edi + 0x28]
mov dword [ebp - 4], 1
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov eax, dword [edi + 0x24]
cmp dword [ebp + 0x10], eax
je 0xb77b14
lea eax, [edi + 0x28]
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
test ebx, ebx
js 0xb77a92
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0xb77b76
push esi
call dword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 8]
lea esi, [edi + 0x28]
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov eax, dword [ebp + 0x10]
cmp eax, dword [edi + 0x24]
je 0xb77c51
xor bl, bl
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
test bl, bl
je 0xb7796a
jmp 0xbf136a
cmp ecx, 0x8004
jne 0xb7796a
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
call fcn.00b77405
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub ecx, 2
jne 0xb7796a
jmp 0xb77aea
cmp byte [edi + 0x18], 0
je 0xb77b63
test eax, eax
je 0xb77b63
cmp dword [edi + 0x40], 0
je 0xb77b63
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0xb77b63
mov eax, dword [ebp - 0x20]
sub eax, ecx
push 0
mov dword [ebp - 0x18], eax
call dword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov edx, dword [edi + 0x40]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0xb77b43
sub ecx, esi
lea eax, [ebp - 0x14]
push eax
sar ecx, 1
push ecx
push ecx
push edx
call fcn.00b55f90
mov esi, dword [ebp - 0x14]
mov ebx, eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
jmp 0xb77a79
test esi, esi
je 0xb77a92
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x58]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, dword [edi + 0x7c]
call fcn.00b83036
mov esi, dword [ebp - 0x14]
mov ebx, eax
jmp 0xb77a92
xor al, al
mov byte [ebp - 0xd], al
jmp 0xb779f3
test al, al
jne 0xbf133e
cmp dword [edi + 0x24], 0
je 0xb77c04
cmp dword [edi + 0x40], 0
je 0xb77c04
cmp dword [edi + 0x20], 0
je 0xb77c04
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, dword [edi + 0x20]
lea ecx, [ebp - 0x34]
push 0xffffffffffffffff
push dword [edi + 0x40]
mov dword [ebp - 0x14], eax
call fcn.00b7ace0
mov esi, dword [ebp - 0x34]
mov dword [edi + 0x20], 0
mov al, byte [ebp - 0xd]
mov byte [edi + 0x18], al
test al, al
mov eax, dword [edi + 0x1c]
jne 0xb77c11
lea eax, [eax + eax*4]
push eax
push 0x12c
push dword [edi + 0x10]
push 0
call dword [sym.imp.api_ms_win_core_threadpool_legacy_l1_1_0.dll_ChangeTimerQueueTimer]
jmp 0xb77a1e
test esi, esi
je 0xb77a30
push eax
push esi
mov edx, 2
mov ecx, 0xb2ba98
call fcn.00b80eb2
jmp 0xb77a30
push esi
call dword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
jmp 0xb77a3f
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, dword [edi + 0x20]
cmp eax, 0x3e8
jbe 0xb77ac8
mov ecx, dword [edi + 0x40]
call fcn.00b51d03
test al, al
je 0xb77ac8
mov bl, 1
jmp 0xb77aca
mov al, 1
jmp 0xb77bbc
cmp dword [edi + 0x40], 0
je 0xb77c04
cmp dword [edi + 0x24], 0
je 0xb77c04
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
mov dword [edi + 0x20], eax
jmp 0xb77c01
mov ebx, 0x8000ffff
jmp 0xb77a99
push dword [edi + 0x24]
mov ecx, edi
jmp 0xb77af0