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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov eax, dword [0x646040]
xor eax, ebp
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 0x94]
mov ebx, dword [ecx + 0x98]
cmp eax, ebx
je 0x4f6eb3
mov edi, ecx
mov esi, dword [ebp + 8]
cmp dword [ecx + 0x6c], 0
je 0x4f6e9e
mov ecx, dword [edi + 0x58]
or ecx, dword [edi + 0x5c]
je 0x4f6e9e
mov ecx, dword [edi + 0x8c]
test ecx, ecx
je 0x4f745a
mov edx, dword [ecx + 0x98]
sub edx, dword [ecx + 0x94]
cmp edx, 0x70
jne 0x4f6e9e
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
movzx eax, byte [esi + 8]
test al, al
jne 0x4f6d9a
mov ecx, dword [fcn.005608f0]
cmp ecx, 0x5531a0
jne 0x4f6f04
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x4f7581
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov esi, dword [ebp + 8]
movzx eax, byte [esi + 8]
cmp al, 1
je 0x4f74e2
test esi, esi
je 0x4f74d3
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
mov al, 1
test al, al
je 0x4f7460
lea edx, [edi + 0x58]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x1c], ecx
sub ecx, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
sbb eax, dword [edx + 4]
seto bl
mov edx, eax
sar edx, 0x1f
test bl, bl
cmovne ecx, edx
add edx, 0x80000000
test bl, bl
cmove edx, eax
xor esi, esi
mov eax, 0x1c9c37f
cmp eax, ecx
mov eax, 0
sbb eax, edx
mov dword [esp + 4], edi
jl 0x4f6e69
mov ebx, ecx
add ebx, 1
mov eax, edx
adc eax, 0x80000000
mov edi, 1
cmp edi, ebx
mov edi, dword [esp + 4]
sbb esi, eax
mov esi, dword [edi + 0x40]
mov ebx, dword [edi + 0x44]
jae 0x4f74f4
add esi, ecx
adc ebx, edx
seto cl
mov eax, ebx
sar eax, 0x1f
test cl, cl
cmovne esi, eax
add eax, 0x80000000
test cl, cl
cmove eax, ebx
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], eax
cmp esi, 0x186a0
mov ecx, eax
sbb ecx, 0
jge 0x4f73b7
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x60], eax
mov eax, dword [esp + 8]
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], 0
je 0x4f745d
movzx eax, byte [0x64b534]
test al, al
setne bl
jne 0x4f746f
mov byte [edi + 0x88], bl
movsd xmm0, qword [esp + 0x90]
movsd qword [edi + 0x58], xmm0
mov eax, dword [edi + 0x94]
mov ebx, dword [edi + 0x98]
mov esi, dword [ebp + 8]
cmp eax, ebx
je 0x4f744b
cmp dword [ebx - 0x28], 0
mov dword [ebx - 0x28], 0
jne 0x4f6ecb
mov ecx, dword [esp + 0xa0]
xor ecx, ebp
call fcn.00567335
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
lea ecx, [ebx - 0x18]
call fcn.00401120
mov eax, dword [ebx - 0x68]
or eax, dword [ebx - 0x64]
jne 0x4f6f31
mov dword [esp + 0x88], 0xa
movzx eax, byte [0x64b456]
test al, al
jne 0x4f754a
mov ecx, dword [0x647d64]
test ecx, ecx
je 0x4f6eb3
jmp 0x4f74c9
call dword [0x6401dc]
lea eax, [esp + 0x98]
push eax
call ecx
add esp, 4
jmp 0x4f6d6d
call dword [0x6401dc]
lea eax, [esp + 0x98]
push eax
call ecx
add esp, 4
jmp 0x4f6fa9
mov al, byte [esi + 8]
test al, al
jne 0x4f6fd8
mov ecx, dword [fcn.005608f0]
cmp ecx, 0x5531a0
jne 0x4f6f1c
xor eax, eax
lea esi, [esp + 0x98]
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 0x4f7d50
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov esi, dword [ebp + 8]
mov al, byte [esi + 8]
cmp al, 1
je 0x4f7665
test esi, esi
je 0x4f74d3
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
mov al, 1
test al, al
je 0x4f7460
lea eax, [ebx - 0x70]
mov dword [esp + 0x1c], eax
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx - 0x68]
mov dword [esp + 0x20], eax
mov eax, dword [ebx - 0x64]
mov dword [esp + 0x18], eax
lea esi, [esp + 0x98]
push esi
call fcn.00406820
add esp, 4
mov edx, dword [esi]
sub edx, dword [ebx - 0x60]
mov esi, dword [esi + 4]
sbb esi, dword [ebx - 0x5c]
seto al
mov byte [esp + 4], al
mov ecx, esi
sar ecx, 0x1f
test al, al
cmovne edx, ecx
xor ecx, 0x80000000
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
sbb eax, dword [esp + 0x18]
seto byte [esp + 8]
cmp byte [esp + 4], 0
cmove ecx, esi
mov esi, eax
sar esi, 0x1f
cmp byte [esp + 8], 0
cmovne edi, esi
xor esi, 0x80000000
cmp byte [esp + 8], 0
cmove esi, eax
cmp edi, edx
mov eax, esi
sbb eax, ecx
mov dword [esp + 0x28], ecx
cmovl ecx, esi
mov dword [esp + 8], ecx
mov dword [esp + 0x2c], edx
cmovl edx, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], esi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], esi
sub esp, 0x10
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x98]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x2c]
mov edx, str.Scheduling.ThreadController.ActiveIntervalDuration
call fcn.00401230
mov edx, dword [esp + 0x24]
add esp, 0x10
mov eax, edx
add eax, 1
mov ecx, dword [esp + 8]
adc ecx, 0x80000000
mov dword [esp + 0x30], eax
cmp eax, 2
mov dword [esp + 0x34], ecx
mov eax, ecx
sbb eax, 0
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], edi
mov dword [esp + 4], edi
mov dword [esp + 0xc], esi
jb 0x4f7689
mov eax, edi
sub eax, edx
mov ecx, esi
sbb ecx, dword [esp + 8]
seto dl
mov edi, ecx
sar edi, 0x1f
test dl, dl
cmovne eax, edi
add edi, 0x80000000
test dl, dl
cmove edi, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edi
sub esp, 0x10
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x88]
movsd qword [esp], xmm0
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov edx, str.Scheduling.ThreadController.ActiveIntervalOffCpuDuration
call fcn.00401230
add esp, 0x10
mov dword [esp + 0x74], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x70], eax
mov esi, dword [esp + 8]
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], eax
sub esp, 0x10
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [esp], xmm0
mov ecx, edi
mov edx, str.Scheduling.ThreadController.ActiveIntervalOnCpuDuration
call fcn.00401230
add esp, 0x10
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x18]
or ecx, eax
je 0x4f7612
mov ecx, esi
sar ecx, 0x1f
mov edi, esi
xor edi, ecx
mov eax, dword [esp + 0x14]
xor eax, ecx
sub eax, ecx
mov dword [esp + 0x10], eax
sbb edi, ecx
mov dword [esp + 0x18], edi
mov ecx, 0x64
mul ecx
mov dword [esp + 0x20], eax
imul ecx, edi, 0x64
add edx, ecx
mov dword [esp + 0x24], 0
neg eax
mov ecx, 0
sbb ecx, edx
xor edi, edi
inc edi
add edi, 0xffffffff
mov esi, 0x80000000
adc esi, 0xffffffff
cmp dword [esp + 8], 0
cmovns ecx, edx
cmovns eax, dword [esp + 0x20]
mov edx, 1
lea edx, [edx - 2]
cmovns edi, edx
mov edx, 0x80000000
lea edx, [edx - 1]
cmovns esi, edx
mov edx, 0x7ae147ae
cmp edx, dword [esp + 0x10]
mov edx, 0x147ae14
sbb edx, dword [esp + 0x18]
cmovae edi, eax
cmovae esi, ecx
mov eax, edi
xor ecx, ecx
inc ecx
add eax, ecx
mov ecx, esi
mov edx, 0x80000000
adc ecx, edx
cmp eax, 2
sbb ecx, 0
jb 0x4f771c
push dword [esp + 0xc]
push dword [esp + 8]
push esi
push edi
call fcn.005877d0
mov edi, dword [esp + 4]
mov dword [esp + 0x60], edi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x64], esi
sub esp, 8
movsd xmm0, qword [esp + 0x68]
movsd qword [esp], xmm0
mov edx, eax
mov ecx, dword [esp + 0x24]
call fcn.00401760
add esp, 8
mov eax, dword [ebx - 0x20]
test eax, eax
je 0x4f761c
cmp byte [eax + 0xc], 1
je 0x4f77c2
add ebx, 0xffffff98
xorpd xmm0, xmm0
movupd xmmword [ebx], xmm0
mov esi, dword [ebp + 8]
mov al, byte [esi + 8]
test al, al
jne 0x4f7389
mov ecx, dword [fcn.005608f0]
cmp ecx, 0x5531a0
jne 0x4f73a2
xor eax, eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x4f7de1
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov esi, dword [ebp + 8]
mov al, byte [esi + 8]
cmp al, 1
je 0x4f7677
test esi, esi
je 0x4f74d3
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
mov al, 1
test al, al
je 0x4f7460
movsd xmm0, qword [esi]
mov eax, dword [esp + 0x1c]
movsd qword [eax], xmm0
jmp 0x4f6edb
call dword [0x6401dc]
lea eax, [esp + 0x98]
push eax
call ecx
add esp, 4
jmp 0x4f735a
movd xmm0, esi
movd xmm1, eax
punpckldq xmm0, xmm1
movq qword [esp + 0x40], xmm0
fild qword [esp + 0x40]
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
divsd xmm0, qword [0x638410]
cvttsd2si esi, xmm0
mov eax, dword [edi + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
mov ecx, ebx
call dword [0x6401dc]
mov ecx, dword [esp + 0xc]
push esi
push 6
call ebx
mov eax, esi
neg eax
cmovs eax, esi
mov ecx, 0x3e8
mul ecx
xor ecx, ecx
mov ebx, eax
neg ebx
sbb ecx, edx
test esi, esi
cmovns ecx, edx
cmovns ebx, eax
mov esi, dword [edi + 0x40]
sub esi, ebx
mov edx, dword [edi + 0x44]
sbb edx, ecx
seto al
mov ecx, edx
sar ecx, 0x1f
test al, al
cmovne esi, ecx
add ecx, 0x80000000
test al, al
cmove ecx, edx
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], ecx
jmp 0x4f6e4e
push str....._third_partylibc_srcinclude_vector:622:_assertion__empty___failed:_back___called_on_an_empty_vector_n
push 0x624e92
call fcn.005912b0
int3
int3
push str....._third_partylibc_srcincludeoptional:800:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x624e92
call fcn.005912b0
cmp byte [edi + 0x88], 0
jne 0x4f7490
mov dword [esp + 0x80], 0xe8
mov al, byte [0x64b534]
test al, al
jne 0x4f774c
mov dword [esp + 0x88], 0xe8
mov al, byte [0x64b534]
test al, al
jne 0x4f76d6
mov dword [esp + 0x88], 0xe8
mov al, byte [0x64b534]
test al, al
jne 0x4f761f
mov edi, dword [esp + 4]
jmp 0x4f6e7b
call fcn.005c4100
jmp 0x4f6eb3
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x624e92
call fcn.005912b0
movsd xmm0, qword [esp + 0x98]
movsd qword [esi], xmm0
jmp 0x4f6d9a
mov dword [esp + 0xc], esi
mov eax, 1
add dword [esp + 0xc], eax
mov eax, ebx
adc eax, 0x80000000
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 0
xor eax, eax
inc eax
cmp eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
sbb eax, dword [esp + 0x10]
setb al
xor ecx, esi
mov esi, 1
xor edx, ebx
or edx, ecx
mov ecx, 0x80000000
sete dl
add esi, 0xffffffff
adc ecx, 0xffffffff
or dl, al
jne 0x4f7440
int3
movzx edi, al
mov ecx, esi
lea esi, [esp + 0x98]
push esi
call fcn.004fde40
lea eax, [esp + 0x90]
mov dword [eax], 0
lea edx, [esp + 0x88]
mov ecx, edi
push esi
push eax
call fcn.005ce930
add esp, 8
jmp 0x4f6ef5
mov eax, dword [0x64b6c8]
mov dword [esp + 0x1c], eax
mov ecx, dword [0x64b6cc]
mov dword [esp + 8], ecx
push ecx
push eax
push esi
push ebx
call fcn.005877d0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mul dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 8]
add edx, ecx
mov eax, dword [esp + 0x18]
imul ecx, eax, 0xf4240
mov dword [esp + 0xc], ecx
imul eax, dword [esp + 0x1c]
add eax, edx
sub ebx, dword [esp + 0x10]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0x14]
mul ecx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 8]
push dword [esp + 0x20]
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0xc]
jmp 0x4f6d5c
mov eax, 0x64
jmp 0x4f727d
int3
mov ecx, dword [esp + 4]
cmp byte [ecx + 0x80], 0
je 0x4f7460
movzx ecx, al
mov eax, dword [esp + 4]
add eax, 0x70
lea esi, [esp + 0x98]
mov dword [esi], 0
lea edi, [esp + 0x90]
lea edx, [esp + 0x88]
push edi
push eax
push esi
call fcn.005ce990
add esp, 0xc
jmp 0x4f74c0
movsd xmm0, qword [esp + 0x98]
movsd qword [esi], xmm0
jmp 0x4f6fd8
movsd xmm0, qword [esp + 0x98]
movsd qword [esi], xmm0
jmp 0x4f7389
mov ecx, dword [esp + 8]
cmp dword [esp + 0x2c], edi
mov eax, dword [esp + 0x28]
sbb eax, esi
jge 0x4f7e74
test ecx, ecx
js 0x4f76c0
xor eax, eax
inc eax
add eax, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov esi, dword [esp + 0xc]
jmp 0x4f713a
mov eax, 0x80000000
dec eax
xor ecx, ecx
inc ecx
add ecx, 0xfffffffe
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
jmp 0x4f76b7
mov ecx, dword [esp + 4]
cmp byte [ecx + 0x80], 0
je 0x4f7460
movzx eax, al
mov ecx, dword [esp + 4]
add ecx, 0x70
lea edx, [esp + 0x98]
mov dword [edx], str.IdleWork
lea esi, [esp + 0x88]
push dword [esp + 0x14]
push ecx
push 1
push edx
push esi
push eax
call fcn.0059df60
add esp, 0x18
jmp 0x4f74a8
mov eax, dword [esp + 4]
xor edx, edx
inc edx
add eax, edx
mov ecx, dword [esp + 0xc]
mov edi, 0x80000000
adc ecx, edi
cmp edx, eax
sbb dword [esp + 0x24], ecx
jae 0x4f7e77
xor eax, eax
xor esi, dword [esp + 0xc]
setns al
neg eax
jmp 0x4f727d
mov edx, 0xfff0bdc0
mov edi, dword [esp + 4]
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 + 0x98], edx
mov dword [esp + 0x9c], ecx
cmp byte [edi + 0x80], 0
je 0x4f7460
movzx eax, al
mov ecx, dword [esp + 4]
add ecx, 0x70
lea edx, [esp + 0x88]
mov dword [edx], str.MessagePumpPhases
lea esi, [esp + 0x98]
push esi
push ecx
push 3
push edx
lea ecx, [esp + 0x90]
push ecx
push eax
call fcn.0059df60
add esp, 0x18
jmp 0x4f7490
mov eax, edi
xor ecx, ecx
inc ecx
add eax, ecx
mov ecx, esi
mov edx, 0x80000000
adc ecx, edx
cmp eax, 2
sbb ecx, 0
mov edx, dword [ebx - 0x50]
mov eax, dword [ebx - 0x4c]
jae 0x4f7826
mov ecx, edx
xor esi, esi
inc esi
add ecx, esi
mov esi, eax
mov edi, 0x80000000
adc esi, edi
mov dword [esp + 0x10], 0
xor edi, edi
inc edi
cmp edi, ecx
sbb dword [esp + 0x10], esi
setb cl
mov esi, dword [esp + 4]
xor edx, esi
mov edi, dword [esp + 0xc]
xor eax, edi
or eax, edx
sete al
or al, cl
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
jne 0x4f784e
jmp 0x4f7e6b
add edx, dword [esp + 4]
adc eax, dword [esp + 0xc]
seto cl
mov esi, eax
sar esi, 0x1f
lea edi, [esi - 0x80000000]
test cl, cl
cmove esi, edx
mov dword [esp + 0x10], esi
test cl, cl
cmove edi, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], 0
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x30]
mov ecx, 0
sbb ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov dword [ebx - 0x50], eax
mov eax, dword [esp + 0x18]
mov dword [ebx - 0x4c], eax
mov edx, dword [ebx - 0x48]
mov esi, dword [ebx - 0x44]
jae 0x4f78dd
mov edi, dword [esp + 4]
sub edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 8]
seto byte [esp + 0xc]
mov eax, ecx
sar eax, 0x1f
add edx, dword [esp + 0x14]
adc esi, dword [esp + 8]
seto byte [esp + 8]
cmp byte [esp + 0xc], 0
cmovne edi, eax
mov dword [esp + 4], edi
xor eax, 0x80000000
cmp byte [esp + 0xc], 0
cmove eax, ecx
mov edi, esi
sar edi, 0x1f
mov cl, byte [esp + 8]
test cl, cl
cmovne edx, edi
xor edi, 0x80000000
test cl, cl
cmove edi, esi
mov dword [ebx - 0x48], edx
mov dword [ebx - 0x44], edi
jmp 0x4f794c
mov ecx, edx
xor edi, edi
inc edi
add ecx, edi
mov edi, esi
mov eax, 0x80000000
adc edi, eax
xor eax, eax
inc eax
cmp eax, ecx
sbb dword [esp + 0x20], edi
setb al
xor edx, dword [esp + 0x14]
xor esi, dword [esp + 8]
or esi, edx
sete cl
or cl, al
je 0x4f7e7a
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 4]
mov eax, dword [esp + 0x28]
sbb eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov dword [ebx - 0x48], eax
mov eax, dword [esp + 8]
mov dword [ebx - 0x44], eax
jge 0x4f7e7d
mov ecx, dword [esp + 8]
shr ecx, 0x1f
not ecx
xor eax, eax
inc eax
add ecx, eax
mov eax, 0x80000000
adc eax, 0xffffffff
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
xor edx, edx
inc edx
add ecx, edx
mov edx, eax
mov esi, 0x80000000
adc edx, esi
cmp ecx, 2
sbb edx, 0
mov esi, dword [ebx - 0x40]
mov edx, dword [ebx - 0x3c]
jae 0x4f79aa
mov ecx, esi
xor edi, edi
inc edi
add ecx, edi
mov dword [esp + 8], ecx
mov edi, edx
mov ecx, 0x80000000
adc edi, ecx
mov dword [esp + 0x14], 0
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 8]
sbb dword [esp + 0x14], edi
setb cl
xor esi, dword [esp + 4]
xor edx, eax
or edx, esi
sete dl
or dl, cl
jne 0x4f79cc
jmp 0x4f7e6e
add esi, dword [esp + 4]
adc edx, eax
seto cl
mov edi, edx
sar edi, 0x1f
lea eax, [edi - 0x80000000]
test cl, cl
cmove edi, esi
mov dword [esp + 4], edi
test cl, cl
cmove eax, edx
mov ecx, dword [esp + 4]
mov dword [ebx - 0x40], ecx
mov dword [ebx - 0x3c], eax
mov eax, dword [ebx - 0x58]
mov esi, dword [ebx - 0x54]
mov dword [esp + 8], eax
xor ecx, ecx
inc ecx
add eax, ecx
mov ecx, esi
mov edx, 0x80000000
adc ecx, edx
cmp eax, 2
sbb ecx, 0
jae 0x4f7a24
mov eax, dword [esp + 0x10]
xor edi, edi
inc edi
add eax, edi
mov ecx, dword [esp + 0x18]
adc ecx, edx
xor edx, edx
cmp edi, eax
sbb edx, ecx
jb 0x4f7a4c
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
xor ecx, esi
or ecx, eax
je 0x4f7a4c
jmp 0x4f7e71
mov edx, dword [esp + 8]
add edx, dword [esp + 0x10]
adc esi, dword [esp + 0x18]
seto al
mov ecx, esi
sar ecx, 0x1f
test al, al
cmovne edx, ecx
mov dword [esp + 8], edx
test al, al
lea eax, [ecx - 0x80000000]
cmovne esi, eax
cmp dword [esp + 8], 0xf4241
mov eax, esi
sbb eax, 0
jl 0x4f72be
mov edi, dword [esp + 0x18]
mov ecx, edi
sar ecx, 0x1f
xor edi, ecx
mov eax, dword [esp + 0x10]
xor eax, ecx
sub eax, ecx
mov dword [esp + 0x10], eax
sbb edi, ecx
mov dword [esp + 0x24], edi
mov ecx, 0x64
mul ecx
mov dword [esp + 0x14], eax
imul eax, edi, 0x64
add edx, eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x14]
neg ecx
mov eax, 0
sbb eax, edx
mov dword [esp + 4], eax
xor edx, edx
inc edx
add edx, 0xffffffff
mov eax, 0x80000000
adc eax, 0xffffffff
cmp dword [esp + 0x18], 0
mov edi, dword [esp + 4]
cmovns edi, dword [esp + 0xc]
mov dword [esp + 4], edi
cmovns ecx, dword [esp + 0x14]
mov edi, 1
lea edi, [edi - 2]
mov dword [esp + 0x14], edi
cmovns edx, edi
mov edi, 0x80000000
lea edi, [edi - 1]
mov dword [esp + 0xc], edi
cmovns eax, edi
mov edi, 0x7ae147ae
cmp edi, dword [esp + 0x10]
mov edi, 0x147ae14
sbb edi, dword [esp + 0x24]
cmovae edx, ecx
cmovae eax, dword [esp + 4]
lea ecx, [esp + 0x98]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x18], 0x147ae14
sub esp, 8
movsd xmm0, qword [esp + 0x60]
movsd qword [esp], xmm0
call fcn.00562300
add esp, 8
mov ecx, eax
sar ecx, 0x1f
xor ecx, edx
jne 0x4f7d4a
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
mov edx, str.Scheduling.ThreadController.ActiveVsWallTimePercentage
push dword [esp + 0x20]
call fcn.005ce450
add esp, 4
mov edi, dword [ebx - 0x44]
mov dword [esp + 0x10], edi
mov ecx, edi
sar ecx, 0x1f
xor edi, ecx
mov eax, dword [ebx - 0x48]
xor eax, ecx
sub eax, ecx
mov dword [esp + 0x20], eax
sbb edi, ecx
mov dword [esp + 0x24], edi
mov ecx, 0x64
mul ecx
mov dword [esp + 0x2c], eax
imul ecx, edi, 0x64
mov edi, edx
add edi, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 4], 0
mov edx, eax
neg edx
mov eax, 0
sbb eax, edi
mov edi, eax
xor ecx, ecx
inc ecx
add ecx, 0xffffffff
mov eax, 0x80000000
adc eax, 0xffffffff
cmp dword [esp + 0x10], 0
cmovns edi, dword [esp + 0x28]
mov dword [esp + 0x10], edi
cmovns edx, dword [esp + 0x2c]
cmovns ecx, dword [esp + 0x14]
cmovns eax, dword [esp + 0xc]
mov edi, 0x7ae147ae
cmp edi, dword [esp + 0x20]
mov edi, 0x147ae14
sbb edi, dword [esp + 0x24]
cmovae ecx, edx
cmovae eax, dword [esp + 0x10]
lea edx, [esp + 0x98]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [esp + 0x54], esi
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
sub esp, 8
movsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
mov ecx, edx
call fcn.00562300
add esp, 8
mov ecx, eax
sar ecx, 0x1f
xor ecx, edx
jne 0x4f7d44
mov dword [esp + 4], eax
lea eax, [ebx - 0x58]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
mov edx, str.Scheduling.ThreadController.ActiveOnCpuVsWallTimePercentage
push dword [esp + 4]
call fcn.005ce450
add esp, 4
mov edi, dword [ebx - 0x3c]
mov dword [esp + 0x24], edi
mov ecx, edi
sar ecx, 0x1f
xor edi, ecx
mov eax, dword [ebx - 0x40]
xor eax, ecx
sub eax, ecx
mov dword [esp + 0x2c], eax
sbb edi, ecx
mov dword [esp + 0x28], edi
mov ecx, 0x64
mul ecx
mov dword [esp + 0x30], eax
imul ecx, edi, 0x64
add edx, ecx
mov dword [esp + 4], 0
neg eax
mov ecx, 0
sbb ecx, edx
xor edi, edi
inc edi
add edi, 0xffffffff
mov dword [esp + 0x10], 0x80000000
adc dword [esp + 0x10], 0xffffffff
cmp dword [esp + 0x24], 0
cmovns ecx, edx
mov dword [esp + 0x24], ecx
cmovns eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
cmovs edx, edi
mov edi, dword [esp + 0xc]
cmovs edi, dword [esp + 0x10]
mov ecx, 0x7ae147ae
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
sbb dword [esp + 0x18], ecx
cmovae edx, eax
cmovae edi, dword [esp + 0x24]
lea ecx, [esp + 0x98]
mov dword [ecx], edx
mov dword [ecx + 4], edi
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
sub esp, 8
movsd xmm0, qword [esp + 0x50]
movsd qword [esp], xmm0
call fcn.00562300
add esp, 8
mov ecx, eax
sar ecx, 0x1f
xor ecx, edx
jne 0x4f7d41
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x1c]
mov edx, str.Scheduling.ThreadController.ActiveOffCpuVsWallTimePercentage
push dword [esp + 4]
call fcn.005ce450
add esp, 4
xorpd xmm0, xmm0
mov eax, dword [esp + 0x20]
movupd xmmword [eax + 0x10], xmm0
movupd xmmword [eax], xmm0
jmp 0x4f72be
int3
int3
int3
mov eax, dword [0x64b6c8]
mov dword [esp + 0x1c], eax
mov ecx, dword [0x64b6cc]
mov dword [esp + 8], ecx
push ecx
push eax
push esi
push edi
call fcn.005877d0
mov dword [esp + 4], eax
mov dword [esp + 0x10], edx
mul dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 4]
imul ecx, dword [esp + 8]
add edx, ecx
mov eax, dword [esp + 0x10]
imul ecx, eax, 0xf4240
mov dword [esp + 0x14], ecx
imul eax, dword [esp + 0x1c]
add eax, edx
sub edi, dword [esp + 0xc]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 4]
mul ecx
mov dword [esp + 4], eax
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 8]
push dword [esp + 0x20]
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 4]
adc edx, dword [esp + 0x14]
jmp 0x4f6f9b
mov edi, dword [0x64b6c8]
mov dword [esp + 0x10], edi
mov eax, dword [0x64b6cc]
mov dword [esp + 8], eax
push eax
push edi
push esi
push ebx
call fcn.005877d0
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 + 8]
add edx, edi
imul edi, ecx, 0xf4240
mov dword [esp + 0x14], 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 + 0x14]
mov dword [esp + 0x14], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 8]
push edi
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 4]
adc edx, dword [esp + 0x14]
jmp 0x4f734c
int3
int3
int3
int3
int3
int3
int3