Function at 0x5075f0
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x78], eax
mov edi, dword [ecx + 0xa0]
mov esi, dword [ecx + 0xa4]
cmp edi, esi
je 0x507853
mov ebx, dword [ebp + 8]
cmp dword [ecx + 0x6c], 0
je 0x50783e
mov dword [esp + 4], esi
mov eax, dword [ecx + 0x58]
mov edx, dword [ecx + 0x5c]
mov esi, eax
or esi, edx
je 0x507d75
mov dword [esp], ecx
mov esi, dword [ecx + 0x8c]
test esi, esi
je 0x507d7e
mov ebx, dword [esi + 0xa4]
sub ebx, dword [esi + 0xa0]
cmp ebx, 0x58
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 4]
jne 0x50783e
mov ecx, dword [esp]
add ecx, 0x58
mov dword [esp + 8], ecx
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x68], 0xffffffff
cmp byte [ebx + 8], 0
jne 0x507749
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x507737
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x507ea0
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov ebx, dword [ebp + 8]
cmp byte [ebx + 8], 0
jne 0x507e5e
test ebx, ebx
je 0x507d84
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [ebx], esi
mov edi, eax
mov dword [ebx + 4], eax
mov byte [ebx + 8], 1
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x50774e
call dword [0x6445dc]
lea eax, [esp + 0x70]
push eax
call ecx
add esp, 4
jmp 0x507707
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov ecx, esi
sub ecx, eax
mov eax, edi
sbb eax, edx
seto bl
mov edx, eax
sar edx, 0x1f
test bl, bl
cmovne ecx, edx
add edx, 0x80000000
test bl, bl
cmove edx, eax
mov ebx, esi
xor esi, esi
mov eax, 0x1c9c37f
cmp eax, ecx
mov eax, 0
sbb eax, edx
mov dword [esp + 4], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x6c], edi
jl 0x507809
mov edi, 1
mov ebx, ecx
add ebx, 1
mov eax, edx
adc eax, 0x80000000
cmp edi, ebx
sbb esi, eax
mov eax, dword [esp]
mov ebx, dword [eax + 0x40]
mov esi, dword [eax + 0x44]
jae 0x507e19
add ebx, ecx
adc esi, edx
seto cl
mov eax, esi
sar eax, 0x1f
test cl, cl
cmovne ebx, eax
add eax, 0x80000000
test cl, cl
cmove eax, esi
mov ecx, dword [esp]
mov dword [ecx + 0x40], ebx
mov dword [ecx + 0x44], eax
cmp ebx, 0x186a0
mov ecx, eax
sbb ecx, 0
jge 0x507ccd
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov dword [ecx + 0x60], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], 0
je 0x507d81
movzx eax, byte [0x64f50d]
test al, al
setne bl
jne 0x507d93
mov eax, dword [esp]
mov byte [eax + 0x88], bl
movsd xmm0, qword [esp + 0x68]
movsd qword [eax + 0x58], xmm0
mov edi, dword [eax + 0xa0]
mov esi, dword [eax + 0xa4]
mov ebx, dword [ebp + 8]
cmp edi, esi
je 0x507d66
cmp dword [esi - 0x30], 0
mov dword [esi - 0x30], 0
jne 0x507868
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
lea ecx, [esi - 0x20]
call fcn.00401210
mov ecx, esi
mov esi, dword [esi - 0x50]
mov edi, dword [ecx - 0x4c]
mov eax, esi
or eax, edi
jne 0x507959
mov dword [esp + 0x60], 0xa
movzx eax, byte [0x64f42e]
test al, al
jne 0x507e72
mov ecx, dword [0x64bd64]
test ecx, ecx
je 0x507853
call fcn.005e6260
jmp 0x507853
call dword [0x6445dc]
lea eax, [esp + 0x70]
push eax
call ecx
add esp, 4
jmp 0x507920
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x5078aa
xor eax, eax
lea esi, [esp + 0x70]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esi]
mov esi, dword [esi + 4]
cmp edi, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x50807a
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [ebp + 8]
cmp byte [eax + 8], 0
jne 0x507ffb
test eax, eax
je 0x507d84
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
mov dword [eax], ecx
mov dword [esp + 0x18], edx
mov dword [eax + 4], edx
mov byte [eax + 8], 1
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov edi, dword [eax + 4]
jmp 0x50797b
mov dword [esp + 4], ecx
lea eax, [ecx - 0x50]
mov dword [esp + 0x20], eax
cmp byte [ebx + 8], 0
je 0x5078bc
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 4]
lea eax, [ebx - 0x58]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
push eax
call fcn.004055a0
add esp, 4
lea edx, [esp + 0x70]
mov eax, dword [edx]
sub eax, dword [ebx - 0x48]
mov ecx, ebx
mov ebx, dword [edx + 4]
sbb ebx, dword [ecx - 0x44]
seto dl
mov byte [esp + 4], dl
mov ecx, ebx
sar ecx, 0x1f
test dl, dl
cmovne eax, ecx
mov dword [esp + 0x1c], eax
xor ecx, 0x80000000
mov edx, dword [esp + 0x10]
sub edx, esi
mov eax, dword [esp + 0x18]
sbb eax, edi
seto byte [esp]
cmp byte [esp + 4], 0
cmove ecx, ebx
mov ebx, eax
sar ebx, 0x1f
cmp byte [esp], 0
cmovne edx, ebx
xor ebx, 0x80000000
cmp byte [esp], 0
cmove ebx, eax
cmp edx, dword [esp + 0x1c]
mov eax, ebx
sbb eax, ecx
mov dword [esp + 0x24], ecx
cmovl ecx, ebx
mov dword [esp], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], edx
cmovl eax, edx
mov dword [esp + 8], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebx
sub esp, 0x10
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x24]
mov edx, str.Scheduling.ThreadController.ActiveIntervalDuration
call fcn.004020f0
mov edx, dword [esp + 0x18]
add esp, 0x10
mov eax, edx
add eax, 1
mov ecx, dword [esp]
adc ecx, 0x80000000
cmp eax, 2
mov eax, dword [esp + 4]
sbb ecx, 0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0xc], ebx
jb 0x507f63
sub eax, edx
mov ecx, ebx
sbb ecx, dword [esp]
seto dl
mov ebx, ecx
sar ebx, 0x1f
test dl, dl
cmovne eax, ebx
add ebx, 0x80000000
test dl, dl
cmove ebx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
sub esp, 0x10
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp], xmm0
mov ebx, dword [esp + 0x24]
mov ecx, ebx
mov edx, str.Scheduling.ThreadController.ActiveIntervalOffCpuDuration
call fcn.004020f0
add esp, 0x10
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov eax, dword [esp]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
sub esp, 0x10
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x50]
movsd qword [esp], xmm0
mov ecx, ebx
mov edx, str.Scheduling.ThreadController.ActiveIntervalOnCpuDuration
call fcn.004020f0
add esp, 0x10
mov eax, dword [esp + 0x10]
xor eax, esi
mov ecx, dword [esp + 0x18]
xor ecx, edi
or ecx, eax
je 0x507f25
mov esi, dword [esp]
mov eax, esi
sar eax, 0x1f
xor esi, eax
mov edi, dword [esp + 8]
xor edi, eax
sub edi, eax
sbb esi, eax
mov dword [esp + 8], esi
mov ecx, 0x64
mov eax, edi
mul ecx
mov dword [esp + 0x10], eax
imul ecx, esi, 0x64
add edx, ecx
mov dword [esp + 0x18], 0
neg eax
mov esi, 0
sbb esi, edx
xor ebx, ebx
inc ebx
add ebx, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
cmp dword [esp], 0
cmovns esi, edx
cmovns eax, dword [esp + 0x10]
mov edx, 1
lea edx, [edx - 2]
cmovns ebx, edx
mov edx, 0x80000000
lea edx, [edx - 1]
cmovns ecx, edx
mov edx, 0x7ae147ae
cmp edx, edi
mov edx, 0x147ae14
sbb edx, dword [esp + 8]
mov edi, 0x80000000
cmovae ebx, eax
cmovae ecx, esi
xor esi, esi
inc esi
mov eax, ebx
add eax, esi
mov edx, ecx
adc edx, edi
cmp eax, 2
sbb edx, 0
jb 0x507f37
mov edi, dword [esp + 0xc]
push edi
mov esi, dword [esp + 8]
push esi
push ecx
push ebx
call fcn.005a13d0
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
sub esp, 8
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.00402c90
add esp, 8
xorps xmm0, xmm0
mov eax, dword [esp + 0x20]
movups xmmword [eax], xmm0
mov ebx, dword [ebp + 8]
cmp byte [ebx + 8], 0
je 0x507c22
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x14]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x507882
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x507cbb
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x508101
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov ebx, dword [ebp + 8]
cmp byte [ebx + 8], 0
jne 0x507fe9
test ebx, ebx
je 0x507d84
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov byte [ebx + 8], 1
jmp 0x507c14
call dword [0x6445dc]
lea eax, [esp + 0x70]
push eax
call ecx
add esp, 4
jmp 0x507c90
movd xmm0, ebx
movd xmm1, eax
punpckldq xmm0, xmm1
movq qword [esp + 0x30], xmm0
fild qword [esp + 0x30]
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
divsd xmm0, qword [0x63ca60]
cvttsd2si ebx, xmm0
mov eax, dword [esp]
mov edi, dword [eax + 0x6c]
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x6445dc]
mov ecx, edi
push ebx
push 6
call esi
mov eax, ebx
neg eax
cmovs eax, ebx
mov ecx, 0x3e8
mul ecx
xor ecx, ecx
mov esi, eax
neg esi
sbb ecx, edx
test ebx, ebx
cmovns ecx, edx
cmovns esi, eax
mov edx, dword [esp]
mov eax, dword [edx + 0x40]
sub eax, esi
mov edx, dword [edx + 0x44]
mov esi, eax
sbb edx, ecx
seto al
mov ebx, edx
sar ebx, 0x1f
test al, al
cmovne esi, ebx
add ebx, 0x80000000
test al, al
cmove ebx, edx
mov eax, dword [esp]
mov dword [eax + 0x40], esi
mov dword [eax + 0x44], ebx
jmp 0x5077eb
push str....._third_partylibc_srcinclude_vector:622:_assertion__empty___failed:_back___called_on_an_empty_vector_n
push 0x62a183
call fcn.005aacb0
mov esi, dword [esp + 4]
jmp 0x50783e
int3
int3
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x62a183
call fcn.005aacb0
mov eax, dword [esp]
cmp byte [eax + 0x88], 0
jne 0x507db4
mov dword [esp + 0x58], 0xe9
mov al, byte [0x64f50d]
test al, al
jne 0x508015
mov dword [esp + 0x60], 0xe9
mov al, byte [0x64f50d]
test al, al
jne 0x507fab
mov dword [esp + 0x60], 0xe9
mov al, byte [0x64f50d]
test al, al
je 0x50781b
mov ecx, dword [esp]
cmp byte [ecx + 0x80], 0
je 0x508188
movzx ecx, al
mov eax, dword [esp]
add eax, 0x70
lea esi, [esp + 0x70]
mov dword [esi], 0
lea edi, [esp + 0x68]
lea edx, [esp + 0x60]
push edi
push eax
push esi
call fcn.005f2ff0
add esp, 0xc
jmp 0x50781b
mov eax, ebx
add eax, edi
mov dword [esp + 0xc], eax
mov eax, esi
adc eax, 0x80000000
mov dword [esp + 0x10], eax
xor ecx, ebx
xor edx, esi
mov ebx, 0x80000000
add edi, 0xffffffff
adc ebx, 0xffffffff
or edx, ecx
jne 0x507e46
mov esi, edi
jmp 0x507d58
xor eax, eax
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 0xc]
sbb eax, dword [esp + 0x10]
mov esi, edi
jb 0x507d58
int3
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [ebx], esi
mov edi, eax
mov dword [ebx + 4], eax
jmp 0x50772c
movzx edi, al
lea esi, [esp + 0x70]
mov ecx, ebx
push esi
call fcn.0050a290
lea eax, [esp + 0x68]
mov dword [eax], 0
lea edx, [esp + 0x60]
mov ecx, edi
push esi
push eax
call fcn.005f2f20
add esp, 8
jmp 0x507899
mov ecx, dword [0x64f6a0]
mov eax, dword [0x64f6a4]
mov dword [esp + 4], eax
push eax
push ecx
mov dword [esp + 0x1c], ecx
mov edi, ecx
push esi
push ebx
call fcn.005a13d0
mov dword [esp + 0x18], edx
mov ecx, eax
mul edi
mov dword [esp + 0xc], eax
mov eax, ecx
imul ecx, dword [esp + 4]
add edx, ecx
mov ecx, dword [esp + 0x18]
imul edi, ecx, 0xf4240
mov dword [esp + 0x10], edi
imul ecx, dword [esp + 0x14]
add ecx, edx
sub ebx, dword [esp + 0xc]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0xc], eax
mov edi, edx
add edi, dword [esp + 0x10]
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 4]
push dword [esp + 0x18]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0xc]
adc edx, edi
jmp 0x5076fc
mov eax, 0x64
mov esi, dword [esp + 4]
mov edi, dword [esp + 0xc]
jmp 0x507bd8
mov eax, dword [esp + 4]
add eax, esi
adc edi, dword [esp + 0xc]
cmp esi, eax
sbb dword [esp + 0x18], edi
jae 0x50819a
xor eax, eax
mov edi, dword [esp + 0xc]
xor ecx, edi
setns al
neg eax
mov esi, dword [esp + 4]
jmp 0x507bd8
cmp dword [esp + 0x1c], eax
sbb dword [esp + 0x24], ebx
jge 0x508197
cmp dword [esp], 0
js 0x507f92
xor eax, eax
inc eax
add eax, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
jmp 0x507aa1
mov eax, 0x80000000
dec eax
xor ecx, ecx
inc ecx
add ecx, 0xfffffffe
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
jmp 0x507aa1
mov ecx, dword [esp]
cmp byte [ecx + 0x80], 0
je 0x508188
movzx eax, al
mov ecx, dword [esp]
add ecx, 0x70
lea edx, [esp + 0x70]
mov dword [edx], str.IdleWork
lea esi, [esp + 0x60]
push dword [esp + 8]
push ecx
push 1
push edx
push esi
push eax
call fcn.005c00a0
add esp, 0x18
jmp 0x507dc9
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x507c14
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
mov dword [eax], ecx
mov dword [esp + 0x18], edx
mov dword [eax + 4], edx
jmp 0x50794e
mov edx, 0xfff0bdc0
mov edi, dword [esp]
add edx, dword [edi + 0x58]
mov esi, dword [edi + 0x5c]
adc esi, 0xffffffff
mov ecx, 0x80000000
cmovno ecx, esi
mov esi, 0
cmovo edx, esi
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
cmp byte [edi + 0x80], 0
je 0x508188
movzx eax, al
mov ecx, dword [esp]
add ecx, 0x70
lea edx, [esp + 0x60]
mov dword [edx], str.MessagePumpPhases
lea esi, [esp + 0x70]
lea edi, [esp + 0x58]
push esi
push ecx
push 3
push edx
push edi
push eax
call fcn.005c00a0
add esp, 0x18
jmp 0x507db4
mov ebx, dword [0x64f6a0]
mov dword [esp + 0x10], ebx
mov eax, dword [0x64f6a4]
mov dword [esp], eax
push eax
push ebx
push esi
push edi
call fcn.005a13d0
mov dword [esp + 0x14], eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mul ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov ebx, eax
imul ebx, dword [esp]
add edx, ebx
imul ebx, ecx, 0xf4240
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
imul ecx, ebx
add ecx, edx
sub edi, dword [esp + 0xc]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x14], eax
add edx, dword [esp + 8]
mov dword [esp + 8], edx
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp]
push ebx
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 8]
jmp 0x507918
mov edi, dword [0x64f6a0]
mov dword [esp + 0x10], edi
mov eax, dword [0x64f6a4]
mov dword [esp], eax
push eax
push edi
push esi
push ebx
call fcn.005a13d0
mov dword [esp + 4], eax
mov ecx, edx
mov eax, dword [esp + 4]
mul edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov edi, eax
imul edi, dword [esp]
add edx, edi
imul edi, ecx, 0xf4240
mov dword [esp + 8], edi
mov edi, dword [esp + 0x10]
imul ecx, edi
add ecx, edx
sub ebx, dword [esp + 0xc]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 4], eax
add edx, dword [esp + 8]
mov dword [esp + 8], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp]
push edi
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 4]
adc edx, dword [esp + 8]
jmp 0x507c88
push str....._third_partylibc_srcincludeoptional:806:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x62a183
call fcn.005aacb0
int3
int3