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

Disassembly:
sub esp, 0x158
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x154], eax
cmp dword [0x4de8ec], 0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x16c]
push edi
mov edi, dword [esp + 0x160]
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
jne 0x42daee
mov eax, 0x17
pop edi
mov ecx, dword [esp + 0x154]
xor ecx, esp
call fcn.004810ab
add esp, 0x158
ret
mov edx, dword [0x4de480]
push 0x2710
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x42db1f
mov eax, 0x15
pop edi
mov ecx, dword [esp + 0x154]
xor ecx, esp
call fcn.004810ab
add esp, 0x158
ret
cmp byte [edi], 0x40
push esi
jne 0x42db4a
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
push str.__d:_d:_d
push edi
call fcn.0048108c
add esp, 0x14
or esi, 0xffffffff
jmp 0x42dbf8
xor esi, esi
cmp byte [0x4de580], 0
je 0x42dba2
mov ecx, 0x4de580
lea ebx, [ebx]
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x42db82
test dl, dl
je 0x42db7e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x42db82
add eax, 2
add ecx, 2
test dl, dl
jne 0x42db62
xor eax, eax
jmp 0x42db87
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42dba2
add esi, 1
lea eax, [esi + esi*8]
cmp byte [eax*4 + 0x4de580], 0
lea ecx, [eax*4 + 0x4de580]
jne 0x42db60
lea eax, [esi + esi*8]
add eax, eax
add eax, eax
cmp byte [eax + 0x4de580], 0
jne 0x42dbda
mov eax, dword [0x4de480]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop esi
mov eax, 0x18
pop edi
mov ecx, dword [esp + 0x154]
xor ecx, esp
call fcn.004810ab
add esp, 0x158
ret
mov ecx, dword [eax + 0x4de588]
mov edx, dword [eax + 0x4de58c]
mov eax, dword [eax + 0x4de590]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
push ebx
push ebp
call fcn.0042ca30
mov ebx, esi
imul ebx, ebx, 0xcbc
cmp dword [ebx + 0x4cb2ac], 0
mov dword [esp + 0x14], ebx
jne 0x42dc1d
cmp dword [ebx + 0x4cb2a4], 0
je 0x42dc28
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0x4de8ec]
mov edi, dword [esp + 0x184]
mov ebp, dword [esp + 0x178]
add eax, 0xffffffff
cmp eax, 0xa
ja case.0x42dc4e.4
movzx edx, byte [eax + 0x42e8dc]
jmp dword [edx*4 + 0x42e8c4]
cmp esi, 0xffffffff
je 0x42de82
lea esi, [esi + esi*8]
add esi, esi
add esi, esi
cmp dword [esi + 0x4de59c], 0
je 0x42de82
cmp ebp, 3
je 0x42dcd2
mov eax, dword [esi + 0x4de598]
add eax, dword [esp + 0x180]
push eax
call fcn.0042b950
add esp, 4
test eax, eax
jne 0x42dca8
mov ecx, dword [0x4de480]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov esi, 0x15
jmp 0x42e65b
mov ecx, dword [esi + 0x4de598]
lea edi, [ecx + eax]
not ecx
and edi, ecx
cmp ebp, 2
jne 0x42dcd6
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x18]
push edx
push eax
push edi
call fcn.00481900
add esp, 0xc
jmp 0x42dcd6
mov edi, dword [esp + 0x30]
push 0x50
lea ecx, [esp + 0xb8]
push 0
push ecx
call fcn.00481440
mov al, byte [esp + 0x2c]
mov dl, byte [esp + 0x34]
mov cl, byte [esp + 0x30]
mov esi, dword [esi + 0x4de59c]
mov byte [esp + 0xc4], al
mov eax, dword [esp + 0x180]
add esp, 0xc
cmp ebp, 1
mov word [esp + 0xb4], 0x2c
mov byte [esp + 0xb7], dl
mov byte [esp + 0xb9], cl
mov byte [esp + 0xba], al
mov byte [esp + 0xbb], 0x18
jne 0x42dd40
mov byte [esp + 0xbc], 1
jmp 0x42dd53
cmp ebp, 2
sete dl
sub dl, 1
and edx, 2
mov byte [esp + 0xbc], dl
cmp ebp, 3
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
je 0x42dd7b
mov dword [esp + 0xc8], edi
push eax
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0xd8]
push ecx
mov dword [esp + 0xd8], 0x30
call fcn.00481900
add esp, 0xc
push 0
lea edx, [esp + 0x64]
push edx
push 0x50
lea eax, [esp + 0xc0]
push eax
push 0x50
mov ecx, eax
push ecx
push 0x4d014
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edx, dword [0x4de480]
push edx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test esi, esi
jne 0x42ddf1
cmp ebp, 3
je 0x42dddf
push edi
call fcn.00481373
add esp, 4
mov eax, dword [esp + 0x10]
movzx esi, byte [eax]
or esi, 0x8d000000
jmp 0x42e65b
cmp ebp, 1
jne 0x42de0e
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x18]
push ecx
push edi
push edx
call fcn.00481900
add esp, 0xc
jmp 0x42de13
cmp ebp, 3
je 0x42de1c
push edi
call fcn.00481373
add esp, 4
cmp byte [esp + 0xb6], 0
je 0x42de7b
movzx eax, byte [esp + 0xe6]
movzx ecx, byte [esp + 0xf0]
movzx edx, byte [esp + 0xf1]
and eax, 0xf
or eax, 0xffffff80
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x10]
shl eax, 8
or eax, edx
movzx edx, byte [ecx]
shl eax, 8
or eax, edx
mov esi, eax
push 0xe
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0x15c]
push ecx
call fcn.00481900
add esp, 0xc
jmp 0x42e65b
xor esi, esi
jmp 0x42e65b
mov edx, dword [0x4de480]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov esi, 0x15
jmp 0x42e65b
mov eax, dword [0x4de480]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 0x50
lea ecx, [esp + 0x108]
push 0
push ecx
call fcn.00481440
add esp, 0xc
cmp ebp, 1
mov byte [esp + 0x104], 2
jne 0x42decd
mov eax, 8
jmp 0x42dedb
xor eax, eax
cmp ebp, 2
setne al
sub eax, 1
and eax, 0x10
mov dl, byte [esp + 0x28]
mov cl, byte [esp + 0x24]
or al, 0x40
mov byte [esp + 0x107], al
mov al, byte [esp + 0x20]
mov byte [esp + 0x10c], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x106], dl
mov edx, dword [esp + 0x180]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x174]
mov byte [esp + 0x10d], cl
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x114], edx
push ecx
lea edx, [esp + 0x13c]
push edx
mov byte [esp + 0x124], 0x18
mov byte [esp + 0x125], al
call fcn.00481900
add esp, 0xc
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, eax
lea eax, [esp + 0x104]
push eax
mov dword [esp + 0x120], esi
call dword [0x4de4c8]
imul edi, edi, 0x3e8
add esp, 4
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
push esi
jne 0x42dff3
call dword [sym.imp.KERNEL32.dll_ResetEvent]
cmp byte [esp + 0x105], 0
jne 0x42dfda
mov cl, byte [esp + 0x106]
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x54]
lea edx, [esp + 0x104]
push eax
mov byte [esp + 0x58], 3
mov byte [esp + 0x5a], cl
mov dword [esp + 0x60], edx
call dword [0x4de4c8]
add esp, 4
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x10]
movzx esi, byte [ecx]
or esi, 0x8d000000
jmp 0x42e65b
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x105], 1
je 0x42de7b
movzx edx, byte [esp + 0x146]
movzx eax, byte [esp + 0x150]
movzx ecx, byte [esp + 0x151]
and edx, 0xf
or edx, 0xffffff80
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x10]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax]
shl edx, 8
or edx, ecx
mov esi, edx
push 0xe
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x15c]
push eax
call fcn.00481900
add esp, 0xc
jmp 0x42e65b
mov ecx, dword [0x4de480]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebx, edi
mov edi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
imul ebx, ebx, 0x3e8
lea ecx, [ecx]
push 0x45
lea edx, [esp + 0x70]
push 0
push edx
call fcn.00481440
mov eax, dword [esp + 0x180]
push eax
mov byte [esp + 0x83], al
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x87], ebx
call fcn.00481900
mov eax, dword [esp + 0x190]
add esp, 0x18
cmp eax, 1
jne 0x42e0ce
mov byte [esp + 0x84], al
jmp 0x42e0e1
cmp eax, 2
setne dl
sub dl, 1
and edx, 2
mov byte [esp + 0x84], dl
cmp dword [esp + 0x180], 0
jne 0x42e0f3
mov byte [esp + 0x84], 0
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x28]
mov dword [esp + 0x85], eax
mov al, byte [esp + 0x20]
mov byte [esp + 0x6d], al
xor eax, eax
push eax
push eax
mov dword [esp + 0x91], ecx
mov cl, byte [esp + 0x2c]
push 1
push eax
mov byte [esp + 0x7c], dl
mov byte [esp + 0x7e], cl
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
call ebp
mov dword [esp + 0x44], eax
mov esi, eax
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x54]
push eax
mov eax, dword [0x4de4c4]
push 4
lea ecx, [esp + 0x38]
push ecx
push 0x45
lea edx, [esp + 0x80]
push edx
push 0x22200b
push eax
call edi
test eax, eax
jne 0x42e17d
cmp dword [esp + 0x2c], 0x103
jne 0x42e1d3
mov ecx, dword [esp + 0x184]
add ecx, 5
imul ecx, ecx, 0x3e8
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
push esi
je 0x42e1f7
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x8d]
test eax, eax
je 0x42e28f
cmp eax, 0xe
je 0x42e21a
mov al, byte [esp + 0x93]
test al, al
jne 0x42e237
cmp dword [esp + 0x1c], 0
je 0x42e1da
sub dword [esp + 0x1c], 1
jmp 0x42e080
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x10]
movzx esi, byte [edx]
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
or esi, 0x8c000000
jmp 0x42e65b
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
movzx esi, byte [eax]
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
or esi, 0x8d000000
jmp 0x42e65b
mov ecx, dword [esp + 0x10]
movzx esi, byte [ecx]
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
or esi, 0x8d000000
jmp 0x42e65b
movzx ecx, byte [esp + 0x9d]
movzx edx, byte [esp + 0x9e]
and eax, 0xf
or eax, 0xffffff80
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x10]
shl eax, 8
or eax, edx
movzx edx, byte [ecx]
shl eax, 8
or eax, edx
mov esi, eax
push 0xe
lea eax, [esp + 0x95]
push eax
lea ecx, [esp + 0x15c]
push ecx
call fcn.00481900
mov ebp, dword [esp + 0x184]
mov ebx, dword [esp + 0x20]
add esp, 0xc
jmp 0x42e65b
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
xor esi, esi
jmp 0x42e65b
mov eax, dword [esp + 0x174]
imul edi, edi, 0x3e8
mov dword [esp + 0x6f], edi
mov edi, dword [esp + 0x10]
push eax
lea edx, [esp + 0x78]
push edi
push edx
mov byte [esp + 0x7f], al
call fcn.00482d20
add esp, 0xc
cmp ebp, 1
jne 0x42e2d8
mov byte [esp + 0x84], 1
jmp 0x42e2ea
cmp ebp, 2
setne al
sub al, 1
and eax, 2
mov byte [esp + 0x84], al
mov eax, dword [esp + 0x180]
test eax, eax
jne 0x42e2fc
mov byte [esp + 0x84], al
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x85], eax
lea eax, [esi + esi*8]
add eax, eax
movzx edx, byte [eax + eax + 0x4de588]
add eax, eax
mov dword [esp + 0x89], ecx
mov cl, byte [eax + 0x4de58c]
mov byte [esp + 0x6c], dl
movzx edx, byte [eax + 0x4de590]
mov eax, dword [0x4de480]
push eax
mov byte [esp + 0x71], cl
mov byte [esp + 0x72], dl
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor eax, eax
push eax
push eax
push 1
push eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x54]
push edx
mov edx, dword [0x4de440]
push 4
mov dword [esp + 0x50], eax
mov esi, eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [0x4de4c4]
push 0x45
lea ecx, [esp + 0x80]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42e3b6
cmp dword [esp + 0x2c], 0x103
je 0x42e3b6
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x15
jmp 0x42e65b
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x8d]
test eax, eax
je 0x42de7b
cmp eax, 0xe
jne 0x42e3e8
movzx esi, byte [edi]
or esi, 0x8d000000
jmp 0x42e65b
mov al, byte [esp + 0x93]
test al, al
jne 0x42e401
movzx esi, byte [edi]
or esi, 0x8c000000
jmp 0x42e65b
movzx ecx, byte [esp + 0x9d]
movzx edx, byte [esp + 0x9e]
and eax, 0xf
or eax, 0xffffff80
shl eax, 8
or eax, ecx
movzx ecx, byte [edi]
shl eax, 8
or eax, edx
mov edx, dword [esp + 0x91]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x99]
mov esi, eax
mov eax, dword [esp + 0x95]
mov dword [esp + 0x154], edx
mov dx, word [esp + 0x9d]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
mov word [esp + 0x160], dx
jmp 0x42e65b
mov eax, dword [0x4de480]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebx, dword [esp + 0x10]
mov eax, edi
mov edi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
imul eax, eax, 0x3e8
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x178]
mov dword [esp + 0x6f], eax
mov eax, dword [esp + 0x174]
push eax
lea ecx, [esp + 0x78]
push ebx
push ecx
jmp 0x42e4b0
mov byte [esp + 0x7f], al
call fcn.00481900
add esp, 0xc
cmp esi, 1
jne 0x42e4cb
mov byte [esp + 0x84], 1
jmp 0x42e4de
cmp esi, 2
setne dl
sub dl, 1
and edx, 2
mov byte [esp + 0x84], dl
cmp dword [esp + 0x180], 0
jne 0x42e4f0
mov byte [esp + 0x84], 0
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x28]
mov dword [esp + 0x85], eax
mov al, byte [esp + 0x20]
mov byte [esp + 0x6d], al
xor eax, eax
push eax
push eax
mov dword [esp + 0x91], ecx
mov cl, byte [esp + 0x2c]
push 1
push eax
mov byte [esp + 0x7c], dl
mov byte [esp + 0x7e], cl
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
call ebp
mov dword [esp + 0x44], eax
mov esi, eax
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x54]
push eax
mov eax, dword [0x4de4c4]
push 4
lea ecx, [esp + 0x38]
push ecx
push 0x45
lea edx, [esp + 0x80]
push edx
push 0x802
push eax
call edi
test eax, eax
jne 0x42e57a
cmp dword [esp + 0x2c], 0x103
jne 0x42e5be
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x8d]
test eax, eax
je 0x42e28f
cmp eax, 0xe
je 0x42e5da
mov al, byte [esp + 0x93]
test al, al
jne 0x42e606
cmp dword [esp + 0x1c], 0
je 0x42e5f0
sub dword [esp + 0x1c], 1
mov eax, dword [esp + 0x30]
jmp 0x42e492
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
mov esi, 0x15
jmp 0x42e65b
movzx esi, byte [ebx]
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
or esi, 0x8d000000
jmp 0x42e65b
movzx esi, byte [ebx]
mov ebp, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
or esi, 0x8c000000
jmp 0x42e65b
movzx ecx, byte [esp + 0x9d]
movzx edx, byte [esp + 0x9e]
and eax, 0xf
or eax, 0xffffff80
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
push 0xe
lea edx, [esp + 0x95]
mov esi, eax
push edx
lea eax, [esp + 0x15c]
push eax
call fcn.00481900
mov ebp, dword [esp + 0x184]
mov ebx, dword [esp + 0x20]
add esp, 0xc
jmp 0x42e65b
mov esi, dword [esp + 0x60]
cmp dword [ebx + 0x4cb2ac], 0
je 0x42e7da
cmp dword [ebx + 0x4cbf50], 0
jne 0x42e7da
mov ecx, dword [0x4de9e0]
push 0x3e8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x42e7da
mov eax, dword [ebx + 0x4cbf38]
add dword [ebx + 0x4cb2f4], 1
mov ecx, dword [ebx + 0x4cb2f4]
mov edx, eax
imul edx, edx, 0x62
lea edi, [edx + ebx]
cmp dword [edi + 0x4cb2f8], 0
je 0x42e6d7
mov edx, dword [ebx + 0x4cbf3c]
cmp eax, edx
jne 0x42e6d7
lea eax, [edx + 1]
cmp eax, 0x20
mov dword [ebx + 0x4cbf3c], eax
jne 0x42e6d5
mov dword [ebx + 0x4cbf3c], 0
neg ecx
mov eax, dword [esp + 0x48]
mov dword [edi + 0x4cb2f8], ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x48]
push edx
mov dword [edi + 0x4cb2fc], eax
mov dword [edi + 0x4cb300], ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x174]
mov dword [edi + 0x4cb304], eax
mov eax, dword [esp + 0x10]
push edx
mov dword [edi + 0x4cb308], ecx
push eax
lea ecx, [edi + 0x4cb30c]
push ecx
call fcn.00481900
mov edx, dword [esp + 0x180]
add esp, 0xc
cmp ebp, 3
mov dword [edi + 0x4cb318], edx
mov dword [edi + 0x4cb31c], ebp
je 0x42e76a
mov eax, dword [esp + 0x180]
cmp eax, 0x20
jl 0x42e755
mov eax, 0x20
push eax
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [edi + 0x4cb320]
push ecx
call fcn.00481900
add esp, 0xc
test esi, esi
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x184]
mov dword [edi + 0x4cb340], edx
mov dword [edi + 0x4cb344], eax
mov dword [edi + 0x4cb348], esi
je 0x42e7a7
push 0xe
lea ecx, [esp + 0x158]
push ecx
lea edx, [edi + 0x4cb34c]
push edx
call fcn.00481900
add esp, 0xc
add dword [ebx + 0x4cbf38], 1
cmp dword [ebx + 0x4cbf38], 0x20
jne 0x42e7c1
mov dword [ebx + 0x4cbf38], 0
mov eax, dword [0x4de9e0]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebx + 0x4cbf40]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp dword [ebx + 0x4cb2a4], 0
je 0x42e8a6
mov edx, dword [0x4de9e0]
push 0x3e8
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x42e8a6
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild dword [esp + 0x64]
mov eax, dword [ebx + 0x4cb2f4]
lea ecx, [eax + 1]
mov dword [ebx + 0x4cb2f4], ecx
mov edx, esi
neg edx
sbb edx, edx
lea ecx, [esp + 0x154]
and edx, ecx
mov ecx, dword [esp + 0x180]
push edx
mov edx, dword [esp + 0x188]
push esi
push edx
mov edx, ebp
sub edx, 3
neg edx
push ecx
mov ecx, dword [esp + 0x184]
sbb edx, edx
and edx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x24]
push ebp
push ecx
mov ecx, dword [esp + 0x80]
test ecx, ecx
push edx
jge 0x42e86d
fadd dword [0x49f698]
mov edx, dword [esp + 0x68]
sub esp, 8
test edx, edx
fstp dword [esp + 4]
fild dword [esp + 0x70]
jge 0x42e886
fadd dword [0x49f698]
mov ecx, dword [ebx + 0x4cb2a4]
fstp dword [esp]
push eax
mov eax, dword [ebx + 0x4cb2a0]
push eax
call ecx
mov edx, dword [0x4de9e0]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [esp + 0x164]
pop ebp
pop ebx
mov eax, esi
pop esi
pop edi
xor ecx, esp
call fcn.004810ab
add esp, 0x158
ret