Function at 0x42c710
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
sub esp, 0x154
mov eax, dword [0x4d4214]
push ebx
push ebp
push esi
test eax, eax
push edi
mov dword [esp + 0x14], 1
jne 0x42c73b
pop edi
pop esi
pop ebp
mov eax, 0x17
pop ebx
add esp, 0x154
ret
mov eax, dword [0x4d4218]
push 0x2710
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x42c760
pop edi
pop esi
pop ebp
mov eax, 0x15
pop ebx
add esp, 0x154
ret
mov edx, dword [esp + 0x168]
cmp byte [edx], 0x40
jne 0x42c791
lea ecx, [esp + 0x1c]
lea eax, [esp + 0x20]
push ecx
lea ecx, [esp + 0x1c]
push eax
push ecx
push str.__d:_d:_d
push edx
call fcn.0047e1c0
add esp, 0x14
or ebp, 0xffffffff
jmp 0x42c82b
mov al, byte [0x4d3d40]
xor ebp, ebp
test al, al
je 0x42c7df
mov esi, 0x4d3d40
mov edi, esi
mov eax, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x42c7c9
test cl, cl
je 0x42c7c5
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x42c7c9
add eax, 2
add esi, 2
test cl, cl
jne 0x42c7a5
xor eax, eax
jmp 0x42c7ce
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42c7df
mov al, byte [edi + 0x24]
add edi, 0x24
inc ebp
mov esi, edi
test al, al
jne 0x42c7a3
lea eax, [ebp + ebp*8]
shl eax, 2
mov cl, byte [eax + 0x4d3d40]
test cl, cl
jne 0x42c80d
mov edx, dword [0x4d4218]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
mov eax, 0x18
pop ebx
add esp, 0x154
ret
mov ecx, dword [eax + 0x4d3d48]
mov edx, dword [eax + 0x4d3d4c]
mov eax, dword [eax + 0x4d3d50]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
call fcn.00430b10
lea eax, [ebp + ebp*8]
lea ecx, [eax + eax*8]
lea eax, [ebp + ecx*2]
lea ebx, [eax + eax*4]
shl ebx, 2
mov dword [esp + 0x10], ebx
mov eax, dword [ebx + 0x4c0b8c]
test eax, eax
jne 0x42c859
mov eax, dword [ebx + 0x4c0b84]
test eax, eax
je 0x42c864
lea edx, [esp + 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0x4d4214]
mov esi, dword [esp + 0x180]
mov edi, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec eax
cmp eax, 0xa
ja case.0x42c888.6
xor ecx, ecx
mov cl, byte [eax + 0x42d570]
jmp dword [ecx*4 + 0x42d558]
cmp ebp, 0xffffffff
je 0x42cad1
lea esi, [ebp + ebp*8]
shl esi, 2
mov eax, dword [esi + 0x4d3d5c]
test eax, eax
je 0x42cad1
cmp dword [esp + 0x174], 3
je 0x42c919
mov edx, dword [esi + 0x4d3d58]
mov eax, dword [esp + 0x17c]
add edx, eax
push edx
call fcn.0042f9c0
add esp, 4
test eax, eax
jne 0x42c8e5
mov eax, dword [0x4d4218]
push eax
call edi
mov esi, 0x15
jmp 0x42d2d3
mov ecx, dword [esi + 0x4d3d58]
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x174]
not ecx
and ebp, ecx
cmp eax, 2
jne 0x42c91d
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x178]
push ecx
push edx
push ebp
call fcn.0047e960
add esp, 0xc
jmp 0x42c91d
mov ebp, dword [esp + 0x44]
mov dl, byte [esp + 0x1c]
mov ecx, 0x14
xor eax, eax
lea edi, [esp + 0xb8]
mov esi, dword [esi + 0x4d3d5c]
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x18]
mov edi, dword [esp + 0x174]
mov cl, byte [esp + 0x20]
mov byte [esp + 0xbb], al
mov eax, dword [esp + 0x170]
cmp edi, 1
mov word [esp + 0xb8], 0x2c
mov byte [esp + 0xbc], cl
mov byte [esp + 0xbd], dl
mov byte [esp + 0xbe], al
mov byte [esp + 0xbf], 0x18
jne 0x42c98a
mov byte [esp + 0xc0], 1
jmp 0x42c99d
mov ecx, edi
sub ecx, 2
neg ecx
sbb cl, cl
and ecx, 2
mov byte [esp + 0xc0], cl
mov edx, dword [esp + 0x17c]
mov ecx, dword [esp + 0x180]
cmp edi, 3
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], ecx
je 0x42c9c5
mov dword [esp + 0xcc], ebp
mov edi, dword [esp + 0x16c]
push eax
lea edx, [esp + 0xd8]
push edi
push edx
mov dword [esp + 0xdc], 0x30
call fcn.0047e960
add esp, 0xc
lea eax, [esp + 0xb4]
lea ecx, [esp + 0xb8]
lea edx, [esp + 0xb8]
push 0
push eax
push 0x50
push ecx
push 0x50
push edx
push 0x4d014
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov esi, eax
mov eax, dword [0x4d4218]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esp + 0x174]
test esi, esi
jne 0x42ca4b
cmp eax, 3
je 0x42ca3a
push ebp
call fcn.0047e3be
add esp, 4
xor ecx, ecx
mov cl, byte [edi]
mov esi, ecx
or esi, 0x8d000000
jmp 0x42d2d3
cmp eax, 1
jne 0x42ca6b
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x178]
push edx
push ebp
push eax
call fcn.0047e960
add esp, 0xc
jmp 0x42ca70
cmp eax, 3
je 0x42ca79
push ebp
call fcn.0047e3be
add esp, 4
mov al, byte [esp + 0xba]
test al, al
je 0x42d2c8
mov cl, byte [esp + 0xea]
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf5]
and ecx, 0xf
or ecx, 0xffffff80
and edx, 0xff
shl ecx, 8
or ecx, edx
and eax, 0xff
shl ecx, 8
or ecx, eax
xor edx, edx
mov dl, byte [edi]
push 0xe
shl ecx, 8
or ecx, edx
lea eax, [esp + 0xec]
mov esi, ecx
jmp 0x42d2b5
mov edx, dword [0x4d4218]
push edx
call edi
mov esi, 0x15
jmp 0x42d2d3
mov eax, dword [0x4d4218]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, 0x14
xor eax, eax
lea edi, [esp + 0x108]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x174]
mov byte [esp + 0x108], 2
cmp ecx, 1
jne 0x42cb1b
mov eax, 8
jmp 0x42cb27
xor eax, eax
cmp ecx, 2
setne al
dec eax
and eax, 0x10
mov cl, byte [esp + 0x18]
mov dl, byte [esp + 0x20]
or al, 0x40
mov edi, dword [esp + 0x16c]
mov byte [esp + 0x10b], al
mov al, byte [esp + 0x1c]
mov byte [esp + 0x111], al
mov eax, dword [esp + 0x170]
mov byte [esp + 0x11d], al
push eax
mov byte [esp + 0x10e], cl
mov ecx, dword [esp + 0x180]
mov byte [esp + 0x114], dl
mov edx, dword [esp + 0x17c]
lea eax, [esp + 0x13c]
push edi
push eax
mov dword [esp + 0x120], ecx
mov byte [esp + 0x128], 0x18
mov dword [esp + 0x124], edx
call fcn.0047e960
add esp, 0xc
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
lea ecx, [esp + 0x108]
mov esi, eax
push ecx
mov dword [esp + 0x124], esi
call dword [0x4c0b64]
mov eax, dword [esp + 0x184]
add esp, 4
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
push edx
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
push esi
jne 0x42cc6b
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov al, byte [esp + 0x109]
test al, al
jne 0x42cc53
xor eax, eax
mov cl, byte [esp + 0x10a]
mov dword [esp + 0xa8], eax
lea edx, [esp + 0x108]
mov dword [esp + 0xac], eax
mov byte [esp + 0xa8], 3
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0xae], cl
mov dword [esp + 0xb4], edx
call dword [0x4c0b64]
add esp, 4
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
mov cl, byte [edi]
mov esi, ecx
or esi, 0x8d000000
jmp 0x42d2d3
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x109], 1
je 0x42d2c8
mov dl, byte [esp + 0x14a]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x155]
and edx, 0xf
or edx, 0xffffff80
and eax, 0xff
shl edx, 8
or edx, eax
and ecx, 0xff
shl edx, 8
or edx, ecx
xor eax, eax
mov al, byte [edi]
lea ecx, [esp + 0x148]
shl edx, 8
or edx, eax
push 0xe
mov esi, edx
lea edx, [esp + 0x9c]
push ecx
push edx
call fcn.0047e960
add esp, 0xc
jmp 0x42d2d3
mov eax, dword [0x4d4218]
push eax
call edi
lea eax, [esi + esi*4]
mov ebp, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventA]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [esp + 0x28], eax
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x50]
mov edx, dword [esp + 0x16c]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x28]
stosb byte es:[edi], al
mov eax, dword [esp + 0x170]
mov dword [esp + 0x53], ecx
mov byte [esp + 0x57], al
push eax
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.0047e960
mov eax, dword [esp + 0x180]
add esp, 0xc
cmp eax, 1
jne 0x42cd46
mov byte [esp + 0x68], al
jmp 0x42cd54
cmp eax, 2
setne cl
dec ecx
and ecx, 2
mov byte [esp + 0x68], cl
mov eax, dword [esp + 0x17c]
test eax, eax
jne 0x42cd64
mov byte [esp + 0x68], 0
mov cl, byte [esp + 0x18]
mov edx, dword [esp + 0x17c]
mov byte [esp + 0x50], cl
xor ecx, ecx
mov eax, dword [esp + 0x178]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x69], edx
mov dl, byte [esp + 0x20]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x6d], eax
mov al, byte [esp + 0x1c]
push ecx
push ecx
push 1
push ecx
mov byte [esp + 0x61], dl
mov byte [esp + 0x62], al
mov dword [esp + 0x50], ecx
call ebx
mov dword [esp + 0x40], eax
mov esi, eax
lea edx, [esp + 0x30]
lea eax, [esp + 0x44]
push edx
push eax
mov eax, dword [0x4d3d28]
lea ecx, [esp + 0x2c]
push 4
push ecx
lea edx, [esp + 0x60]
push 0x45
push edx
push 0x22200b
push eax
call ebp
test eax, eax
jne 0x42cde8
cmp dword [esp + 0x24], 0x103
jne 0x42ce41
mov eax, dword [esp + 0x180]
lea eax, [eax + eax*4 + 0x19]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
shl ecx, 3
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
push esi
je 0x42ce56
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x71]
test eax, eax
je 0x42cf0c
cmp eax, 0xe
je 0x42ce78
mov al, byte [esp + 0x77]
test al, al
jne 0x42ceb0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42ce94
dec eax
mov dword [esp + 0x14], eax
jmp 0x42ccfd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [esp + 0x10]
mov esi, 0x15
jmp 0x42d2d3
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x16c]
mov ebx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [eax]
mov esi, edx
or esi, 0x8d000000
jmp 0x42d2d3
mov edx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [edx]
mov esi, ecx
or esi, 0x8d000000
jmp 0x42d2d3
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x10]
xor eax, eax
mov al, byte [ecx]
mov esi, eax
or esi, 0x8c000000
jmp 0x42d2d3
mov edx, dword [esp + 0x81]
mov ecx, dword [esp + 0x82]
and eax, 0xf
and edx, 0xff
or eax, 0xffffff80
and ecx, 0xff
shl eax, 8
or eax, edx
xor edx, edx
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x16c]
shl eax, 8
mov dl, byte [ecx]
push 0xe
or eax, edx
lea edx, [esp + 0x79]
mov esi, eax
lea eax, [esp + 0x9c]
push edx
push eax
call fcn.0047e960
mov ebx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x42d2d3
mov ebx, dword [esp + 0x10]
xor esi, esi
jmp 0x42d2d3
mov eax, dword [esp + 0x180]
mov esi, dword [esp + 0x16c]
lea edi, [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x174]
shl ecx, 3
mov dword [esp + 0x53], ecx
mov ecx, dword [esp + 0x170]
mov byte [esp + 0x57], cl
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, 1
rep movsb byte es:[edi], byte [esi]
jne 0x42cf64
mov byte [esp + 0x68], al
jmp 0x42cf72
cmp eax, 2
setne al
dec eax
and eax, 2
mov byte [esp + 0x68], al
mov eax, dword [esp + 0x17c]
test eax, eax
jne 0x42cf82
mov byte [esp + 0x68], 0
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x178]
lea eax, [ebp + ebp*8]
mov dword [esp + 0x69], ecx
shl eax, 2
mov dword [esp + 0x6d], edx
mov cl, byte [eax + 0x4d3d48]
mov dl, byte [eax + 0x4d3d4c]
mov al, byte [eax + 0x4d3d50]
mov byte [esp + 0x50], cl
mov ecx, dword [0x4d4218]
mov byte [esp + 0x51], dl
push ecx
mov byte [esp + 0x56], al
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
push edx
push edx
push 1
push edx
mov dword [esp + 0x50], edx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esp + 0x40], eax
mov esi, eax
lea eax, [esp + 0x30]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, dword [0x4d4208]
lea edx, [esp + 0x2c]
push 4
push edx
mov edx, dword [0x4d3d28]
lea eax, [esp + 0x60]
push 0x45
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42d03c
cmp dword [esp + 0x24], 0x103
je 0x42d03c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x15
jmp 0x42d2d3
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x71]
test eax, eax
je 0x42d2c8
cmp eax, 0xe
jne 0x42d075
mov ecx, dword [esp + 0x16c]
xor eax, eax
mov al, byte [ecx]
mov esi, eax
or esi, 0x8d000000
jmp 0x42d2d3
mov al, byte [esp + 0x77]
test al, al
jne 0x42d095
mov eax, dword [esp + 0x16c]
xor edx, edx
mov dl, byte [eax]
mov esi, edx
or esi, 0x8c000000
jmp 0x42d2d3
mov ecx, dword [esp + 0x81]
mov edx, dword [esp + 0x82]
and eax, 0xf
and ecx, 0xff
or eax, 0xffffff80
and edx, 0xff
shl eax, 8
or eax, ecx
xor ecx, ecx
shl eax, 8
or eax, edx
mov edx, dword [esp + 0x16c]
shl eax, 8
mov cl, byte [edx]
mov edx, dword [esp + 0x7d]
or eax, ecx
mov ecx, dword [esp + 0x79]
mov esi, eax
mov eax, dword [esp + 0x75]
mov dword [esp + 0x98], eax
mov ax, word [esp + 0x81]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
mov word [esp + 0xa4], ax
jmp 0x42d2d3
mov ecx, dword [0x4d4218]
push ecx
call edi
lea eax, [esi + esi*4]
mov edi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateEventA]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x28]
mov byte [esp + 0x57], al
push eax
mov eax, dword [esp + 0x170]
lea ecx, [esp + 0x5c]
push eax
push ecx
mov dword [esp + 0x5f], edx
call fcn.0047e960
mov eax, dword [esp + 0x180]
add esp, 0xc
cmp eax, 1
jne 0x42d167
mov byte [esp + 0x68], al
jmp 0x42d175
cmp eax, 2
setne dl
dec edx
and edx, 2
mov byte [esp + 0x68], dl
mov eax, dword [esp + 0x17c]
test eax, eax
jne 0x42d185
mov byte [esp + 0x68], 0
mov dl, byte [esp + 0x18]
mov eax, dword [esp + 0x17c]
mov byte [esp + 0x50], dl
xor edx, edx
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x69], eax
mov al, byte [esp + 0x20]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x6d], ecx
mov cl, byte [esp + 0x1c]
push edx
push edx
push 1
push edx
mov byte [esp + 0x61], al
mov byte [esp + 0x62], cl
mov dword [esp + 0x50], edx
call ebp
mov dword [esp + 0x40], eax
mov esi, eax
lea eax, [esp + 0x30]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, dword [0x4d3d28]
lea edx, [esp + 0x2c]
push 4
push edx
lea eax, [esp + 0x60]
push 0x45
push eax
push 0x802
push ecx
call edi
test eax, eax
jne 0x42d20e
cmp dword [esp + 0x24], 0x103
jne 0x42d02b
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x71]
test eax, eax
je 0x42d2c8
cmp eax, 0xe
je 0x42d249
mov al, byte [esp + 0x77]
test al, al
jne 0x42d273
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42d25e
dec eax
mov dword [esp + 0x14], eax
jmp 0x42d12c
mov eax, dword [esp + 0x16c]
xor edx, edx
mov dl, byte [eax]
mov esi, edx
or esi, 0x8d000000
jmp 0x42d2d3
mov edx, dword [esp + 0x16c]
xor ecx, ecx
mov cl, byte [edx]
mov esi, ecx
or esi, 0x8c000000
jmp 0x42d2d3
mov ecx, dword [esp + 0x81]
mov edx, dword [esp + 0x82]
and eax, 0xf
and ecx, 0xff
or eax, 0xffffff80
and edx, 0xff
shl eax, 8
or eax, ecx
xor ecx, ecx
shl eax, 8
or eax, edx
mov edx, dword [esp + 0x16c]
shl eax, 8
mov cl, byte [edx]
push 0xe
or eax, ecx
mov esi, eax
lea eax, [esp + 0x79]
lea ecx, [esp + 0x9c]
push eax
push ecx
call fcn.0047e960
add esp, 0xc
jmp 0x42d2d3
xor esi, esi
jmp 0x42d2d3
mov esi, dword [esp + 0xb4]
mov eax, dword [ebx + 0x4c0b8c]
test eax, eax
je 0x42d46d
mov eax, dword [ebx + 0x4c1830]
test eax, eax
jne 0x42d46d
mov edx, dword [0x4d3d20]
push 0x3e8
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x42d46d
mov eax, dword [ebx + 0x4c0bd4]
inc eax
mov dword [ebx + 0x4c0bd4], eax
mov edx, eax
mov eax, dword [ebx + 0x4c1818]
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, eax
lea edi, [ebx + ecx*2]
mov ecx, dword [edi + 0x4c0bd8]
test ecx, ecx
je 0x42d35d
mov ecx, dword [ebx + 0x4c181c]
cmp eax, ecx
jne 0x42d35d
lea eax, [ecx + 1]
cmp eax, 0x20
mov dword [ebx + 0x4c181c], eax
jne 0x42d355
mov dword [ebx + 0x4c181c], 0
mov edx, dword [ebx + 0x4c0bd4]
neg edx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [edi + 0x4c0bd8], edx
lea edx, [esp + 0x48]
mov dword [edi + 0x4c0bdc], eax
push edx
mov dword [edi + 0x4c0be0], ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x170]
mov dword [edi + 0x4c0be4], eax
mov eax, dword [esp + 0x16c]
mov dword [edi + 0x4c0be8], ecx
push edx
lea ecx, [edi + 0x4c0bec]
push eax
push ecx
call fcn.0047e960
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x180]
mov ebp, dword [esp + 0x188]
add esp, 0xc
mov dword [edi + 0x4c0bf8], edx
cmp eax, 3
mov dword [edi + 0x4c0bfc], eax
je 0x42d3ff
cmp ebp, 0x20
mov eax, ebp
jl 0x42d3e7
mov eax, 0x20
push eax
mov eax, dword [esp + 0x17c]
lea ecx, [edi + 0x4c0c00]
push eax
push ecx
call fcn.0047e960
add esp, 0xc
mov edx, dword [esp + 0x180]
mov dword [edi + 0x4c0c20], ebp
mov dword [edi + 0x4c0c24], edx
mov dword [edi + 0x4c0c28], esi
test esi, esi
je 0x42d435
lea eax, [esp + 0x98]
push 0xe
lea ecx, [edi + 0x4c0c2c]
push eax
push ecx
call fcn.0047e960
add esp, 0xc
mov ecx, dword [ebx + 0x4c1818]
inc ecx
mov eax, ecx
mov dword [ebx + 0x4c1818], ecx
cmp eax, 0x20
jne 0x42d453
mov dword [ebx + 0x4c1818], 0
mov edx, dword [0x4d3d20]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebx + 0x4c1820]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [ebx + 0x4c0b84]
test eax, eax
je 0x42d549
mov ecx, dword [0x4d3d20]
push 0x3e8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x42d549
lea edx, [esp + 0x15c]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [ebx + 0x4c0bd4]
mov edx, esi
neg edx
lea ecx, [eax + 1]
mov ebp, dword [esp + 0x178]
mov dword [ebx + 0x4c0bd4], ecx
lea ecx, [esp + 0x98]
sbb edx, edx
and edx, ecx
mov ecx, dword [esp + 0x17c]
push edx
mov edx, dword [esp + 0x184]
push esi
push edx
push ecx
mov ecx, dword [esp + 0x184]
mov edx, ecx
sub edx, 3
neg edx
sbb edx, edx
and edx, ebp
push edx
push ecx
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x184]
push ecx
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
push edx
fild qword [esp + 0x48]
mov edx, dword [esp + 0x68]
push ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
fstp dword [esp]
fild qword [esp + 0x4c]
push ecx
fstp dword [esp]
push eax
mov eax, dword [ebx + 0x4c0b80]
push eax
call dword [ebx + 0x4c0b84]
mov ecx, dword [0x4d3d20]
add esp, 0x30
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x154
ret