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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push 0
push 0x3e8
push ecx
push edx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov ebp, dword [0x6e13a4]
sub eax, dword [ebp + 8]
cmp eax, 0x21
jae 0x547ec2
mov edi, dword [0x6e13a0]
or edx, 0xffffffff
call fcn.004d3a30
mov esi, eax
cmp esi, 0xffffffff
je 0x5480ef
lea ebx, [ebx]
call fcn.00547ad0
lea ecx, [esi + 1]
or ebp, 0xffffffff
test cx, cx
jl 0x547eb3
mov si, word [edi + 0x2e]
cmp cx, si
jge 0x547eb3
movsx edx, word [edi + 0x22]
mov ebx, dword [edi + 0x34]
movsx eax, cx
imul eax, edx
add eax, ebx
cmp word [eax], 0
jne 0x547ea8
inc ecx
add eax, edx
cmp cx, si
jl 0x547e98
jmp 0x547eb3
movsx ebp, word [eax]
movsx edx, cx
shl ebp, 0x10
or ebp, edx
cmp ebp, 0xffffffff
mov esi, ebp
jne 0x547e70
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x13]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00542610
mov esi, dword [esp + 0x20]
mov ecx, 0x12
mov edi, 0x6c045c
add esp, 0xc
rep movsd dword es:[edi], dword [esi]
call fcn.005481c0
mov edx, dword [esp + 0x18]
cmp edx, 0xffffffff
mov eax, dword [ebp + 4]
jne 0x547f24
cmp eax, edx
mov ebx, dword [0x6e13a0]
je 0x547f7c
mov edx, dword [ebx + 0x34]
and eax, 0xffff
imul eax, eax, 0x34
mov ecx, dword [eax + edx + 4]
add eax, edx
or ecx, 2
mov dword [eax + 4], ecx
mov dword [ebp + 4], 0xffffffff
jmp 0x547f7c
cmp eax, 0xffffffff
je 0x547f5d
mov ebx, dword [0x6e13a0]
mov ecx, dword [ebx + 0x34]
and eax, 0xffff
imul eax, eax, 0x34
add eax, ecx
cmp dword [eax + 0xc], edx
je 0x547f7c
or dword [eax + 4], 2
push 0x3f800000
or eax, 0xffffffff
call fcn.00547a90
mov edx, dword [0x6e13a4]
mov dword [edx + 4], eax
jmp 0x547f73
push 0x3f800000
or eax, 0xffffffff
call fcn.00547a90
mov ecx, dword [0x6e13a4]
mov dword [ecx + 4], eax
mov ebx, dword [0x6e13a0]
add esp, 4
or edx, 0xffffffff
mov edi, ebx
call fcn.004d3a30
mov ebp, eax
cmp ebp, 0xffffffff
je 0x5480a6
mov ecx, dword [ebx + 0x34]
mov esi, ebp
and esi, 0xffff
imul esi, esi, 0x34
mov edi, dword [esi + ecx + 0x10]
add esi, ecx
cmp edi, 0xffffffff
jne 0x547fb1
push 0
jmp 0x548047
test byte [esi + 4], 1
je 0x547ff3
push 0xffffffffffffffff
mov ecx, edi
call fcn.004fa970
add esp, 4
test eax, eax
jne 0x547ff3
mov edx, dword [esi + 0xc]
mov eax, dword [0x816d04]
and edx, 0xffff
shl edx, 5
mov eax, dword [edx + eax + 0x14]
cmp dword [eax + 0x1c], ebp
jne 0x547fe8
mov dword [eax + 0x1c], 0xffffffff
mov edx, ebp
mov eax, ebx
call fcn.004d3910
jmp 0x548056
mov edx, dword [0x7fb2d0]
mov eax, edi
and eax, 0xffff
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4 + 8]
mov eax, dword [ecx + 0x10]
test ah, 8
je 0x548056
lea eax, [esp + 0x18]
mov ecx, edi
call fcn.004fa5c0
mov eax, dword [esp + 0x1c]
cmp ax, 0xffff
je 0x548056
movsx eax, ax
mov ecx, eax
and ecx, 0x1f
mov edx, 1
shl edx, cl
sar eax, 5
test dword [eax*4 + 0x6e1360], edx
je 0x548056
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.00547b70
mov ebx, dword [0x6e13a0]
add esp, 8
lea ecx, [ebp + 1]
or esi, 0xffffffff
test cx, cx
jl 0x54809b
mov di, word [ebx + 0x2e]
cmp cx, di
jge 0x54809b
movsx edx, word [ebx + 0x22]
mov ebp, dword [ebx + 0x34]
movsx eax, cx
imul eax, edx
add eax, ebp
lea esp, [esp]
cmp word [eax], 0
jne 0x548090
inc ecx
add eax, edx
cmp cx, di
jl 0x548080
jmp 0x54809b
movsx esi, word [eax]
movsx ecx, cx
shl esi, 0x10
or esi, ecx
cmp esi, 0xffffffff
mov ebp, esi
jne 0x547f91
mov eax, dword [0x6e13a4]
mov ebx, dword [eax]
lea edx, [esp + 0x18]
inc ebx
push edx
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push 0x3e8
push eax
push ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov edx, dword [0x6e13a4]
mov dword [edx + 8], eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret