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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov eax, dword [0x644040]
xor eax, ebp
mov dword [esp + 0xd8], eax
mov eax, dword [ecx + 0x98]
cmp dword [ecx + 0x94], eax
je 0x4f78c7
mov edi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [eax - 0x28]
test eax, eax
je 0x4f78f4
cmp eax, 2
je 0x4f7f8a
cmp dword [edi + 0x6c], 0
je 0x4f78a4
mov eax, dword [edi + 0x58]
or eax, dword [edi + 0x5c]
je 0x4f78a4
mov eax, dword [edi + 0x8c]
test eax, eax
je 0x4f7eff
mov ecx, dword [eax + 0x98]
sub ecx, dword [eax + 0x94]
cmp ecx, 0x70
jne 0x4f78a4
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
movzx eax, byte [ebx + 8]
test al, al
jne 0x4f77cb
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x4f78df
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x4f8096
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.005866e0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov ebx, dword [ebp + 8]
movzx eax, byte [ebx + 8]
cmp al, 1
je 0x4f7f7b
test ebx, ebx
je 0x4f7f6c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov byte [ebx + 8], 1
mov al, 1
test al, al
je 0x4f7fb4
lea edx, [edi + 0x58]
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
sub ecx, dword [edx]
mov dword [esp + 0x18], 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 + 8], edi
jl 0x4f787e
mov ebx, ecx
add ebx, 1
mov eax, edx
adc eax, 0x80000000
mov edi, 1
cmp edi, ebx
mov edi, dword [esp + 8]
sbb esi, eax
mov ebx, dword [edi + 0x20]
mov esi, dword [edi + 0x24]
jae 0x4f7ff9
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 dword [edi + 0x20], ebx
mov dword [edi + 0x24], eax
cmp ebx, 0x186a0
mov ecx, eax
sbb ecx, 0
jge 0x4f7e56
cmp dword [edi + 0x8c], 0
je 0x4f7f02
movzx eax, byte [0x649534]
test al, al
setne bl
jne 0x4f7f05
mov byte [edi + 0x88], bl
movsd xmm0, qword [esp + 0x58]
movsd qword [edi + 0x58], xmm0
mov ebx, dword [ebp + 8]
mov esi, dword [edi + 0x98]
cmp dword [edi + 0x94], esi
je 0x4f7ef0
cmp dword [esi - 0x28], 0
mov dword [esi - 0x28], 2
je 0x4f79fe
mov ecx, dword [esp + 0xd8]
xor ecx, ebp
call fcn.00566245
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
call dword [0x63e19c]
lea eax, [esp + 0x60]
push eax
call ecx
add esp, 4
jmp 0x4f77a1
cmp dword [edi + 0x6c], 0
je 0x4f78a4
mov eax, dword [edi + 0x8c]
test eax, eax
je 0x4f7fb1
mov ecx, dword [eax + 0x98]
sub ecx, dword [eax + 0x94]
cmp ecx, 0x70
jne 0x4f78a4
movzx eax, byte [ebx + 8]
test al, al
jne 0x4f79b7
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x4f79ec
xor eax, eax
lea esi, [esp + 0x60]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esi]
mov esi, dword [esi + 4]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x4f8127
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.005866e0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov ebx, dword [ebp + 8]
movzx eax, byte [ebx + 8]
cmp al, 1
je 0x4f8049
test ebx, ebx
je 0x4f7f6c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov byte [ebx + 8], 1
mov al, 1
test al, al
je 0x4f7fb4
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], ecx
mov dword [esp + 0x58], 0xe8
movzx eax, byte [0x649534]
test al, al
je 0x4f78a4
jmp 0x4f7fc3
call dword [0x63e19c]
lea eax, [esp + 0x60]
push eax
call ecx
add esp, 4
jmp 0x4f798d
mov eax, dword [esi - 0x68]
or eax, dword [esi - 0x64]
jne 0x4f7f56
mov eax, dword [esi - 0x60]
or eax, dword [esi - 0x5c]
jne 0x4f7f59
lea ecx, [esi - 0x70]
mov eax, dword [ecx]
mov dword [esp + 0x18], ecx
or eax, dword [ecx + 4]
mov dword [esp + 8], esi
jne 0x4f7c2e
mov eax, dword [0x657bf4]
mov ecx, dword [0x64784c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4f7d83
mov eax, dword [esi - 0x20]
test eax, eax
je 0x4f7f5c
cmp byte [0x657bf0], 1
jne 0x4f7b0d
cmp byte [eax + 0xc], 0
jne 0x4f7f5f
movsd xmm0, qword [0x6260a8]
mov eax, dword [esp + 8]
mov esi, dword [eax - 0x38]
mov eax, dword [esp + 8]
mov ecx, dword [eax - 0x34]
mov eax, ecx
shld eax, esi, 0x17
mov edx, dword [esp + 8]
mov edi, dword [edx - 0x2c]
mov edx, esi
shl edx, 0x17
xor edx, esi
xor eax, ecx
mov esi, eax
mov ecx, edi
shr ecx, 0x1a
xor ecx, edi
xor ecx, eax
shr eax, 0x11
xor eax, ecx
mov ecx, dword [esp + 8]
mov ebx, dword [ecx - 0x30]
shld esi, edx, 0xf
mov ecx, edi
shld ecx, ebx, 6
xor ecx, ebx
xor ecx, edx
xor ecx, esi
mov esi, dword [esp + 8]
mov dword [esi - 0x38], ebx
mov dword [esi - 0x34], edi
mov dword [esi - 0x30], ecx
add ecx, ebx
mov dword [esi - 0x2c], eax
adc eax, edi
mov edx, eax
shr edx, 0xb
movd xmm1, edx
shld eax, ecx, 0x15
movd xmm2, eax
punpckldq xmm2, xmm1
movq qword [esp + 0x30], xmm2
fild qword [esp + 0x30]
fstp qword [esp + 0x28]
movsd xmm1, qword [esp + 0x28]
mulsd xmm1, qword [0x6260a0]
ucomisd xmm0, xmm1
ja 0x4f7b4d
mov dword [esp + 0x4c], 0xa
movzx eax, byte [0x649456]
test al, al
jne 0x4f8058
lea ecx, [esi - 0x18]
mov eax, dword [esi - 8]
inc eax
mov dword [esi - 8], eax
push 0
push eax
call section..text
jmp 0x4f78c7
call dword [0x63e19c]
lea eax, [esp + 0x60]
push eax
call ecx
add esp, 4
jmp 0x4f7bbf
mov edx, dword [ebp + 8]
mov al, byte [edx + 8]
test al, al
jne 0x4f7bec
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x4f7b3b
xor eax, eax
lea esi, [esp + 0x60]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esi]
mov esi, dword [esi + 4]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x4f8389
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.005866e0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 8]
mov al, byte [edx + 8]
cmp al, 1
je 0x4f81c7
test edx, edx
je 0x4f7f6c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
mov al, 1
mov esi, dword [esp + 8]
test al, al
je 0x4f7fb4
movsd xmm0, qword [edx]
movsd qword [esi - 0x68], xmm0
lea esi, [esp + 0x60]
push esi
call fcn.00406780
add esp, 4
movsd xmm0, qword [esi]
mov esi, dword [esp + 8]
movsd qword [esi - 0x60], xmm0
jmp 0x4f7b0d
call dword [0x63e19c]
lea eax, [esp + 0x60]
push eax
call ecx
add esp, 4
jmp 0x4f7c9b
mov al, byte [ebx + 8]
test al, al
jne 0x4f7cc5
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x4f7c1c
xor eax, eax
lea esi, [esp + 0x60]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp eax, 0x7bd05af7
mov ecx, esi
sbb ecx, 0x863
jge 0x4f82f5
mov ecx, 0xf4240
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.005866e0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov al, byte [ebx + 8]
cmp al, 1
je 0x4f81b8
test ebx, ebx
je 0x4f7f6c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov byte [ebx + 8], 1
mov al, 1
mov esi, dword [esp + 8]
test al, al
je 0x4f7fb4
mov ecx, dword [ebx]
sub ecx, dword [esi - 0x70]
mov eax, dword [ebx + 4]
mov ebx, ecx
sbb eax, dword [esi - 0x6c]
seto cl
mov edi, esi
mov esi, eax
sar esi, 0x1f
test cl, cl
cmovne ebx, esi
add esi, 0x80000000
test cl, cl
cmove esi, eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
sub esp, 0x10
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x28]
mov edx, str.Scheduling.ThreadController.IdleDuration
call fcn.00402130
add esp, 0x10
xor edx, edx
mov dword [edi - 0x6c], edx
mov dword [edi - 0x70], edx
mov eax, ebx
add eax, 1
mov ecx, esi
adc ecx, 0x80000000
cmp eax, 2
sbb ecx, 0
mov ecx, dword [edi - 0x58]
mov eax, dword [edi - 0x54]
jb 0x4f8253
add ecx, ebx
adc eax, esi
seto dl
mov ebx, eax
sar ebx, 0x1f
lea esi, [ebx - 0x80000000]
test dl, dl
cmove ebx, ecx
test dl, dl
cmove esi, eax
mov eax, dword [esp + 8]
mov dword [eax - 0x58], ebx
mov dword [eax - 0x54], esi
mov esi, eax
jmp 0x4f7a2c
push 0x657bf4
call fcn.00562fa8
add esp, 4
cmp dword [0x657bf4], 0xffffffff
jne 0x4f7a4d
mov eax, dword [0x64967c]
mov ecx, dword [0x64784c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4f7dda
mov al, byte [0x649678]
mov byte [0x657bf0], al
push 0x657bf4
call fcn.00562ff7
add esp, 4
mov esi, dword [esp + 8]
jmp 0x4f7a4d
push 0x64967c
call fcn.00562fa8
add esp, 4
cmp dword [0x64967c], 0xffffffff
jne 0x4f7dba
xorpd xmm0, xmm0
lea esi, [esp + 0x60]
movupd xmmword [esi + 0x1f], xmm0
movapd xmmword [esi + 0x10], xmm0
movapd xmmword [esi], xmm0
movsd xmm1, qword [str.unknown]
movsd qword [esi + 0x2f], xmm1
movq xmm1, qword [0x62e70b]
movq qword [esi + 0x34], xmm1
movupd xmmword [esi + 0x3c], xmm0
movupd xmmword [esi + 0x4c], xmm0
movupd xmmword [esi + 0x5c], xmm0
mov byte [esi + 0x6c], 0
mov ecx, esi
push 0
call fcn.00438270
mov al, byte [esi + 0x2d]
mov byte [0x649678], al
push 0x64967c
call fcn.00562ff7
add esp, 4
jmp 0x4f7dba
movd xmm0, ebx
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 [0x636410]
cvttsd2si ebx, xmm0
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x63e19c]
mov ecx, dword [esp + 0x10]
push ebx
push 2
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 ebx, dword [edi + 0x20]
sub ebx, esi
mov edx, dword [edi + 0x24]
sbb edx, ecx
seto al
mov ecx, edx
sar ecx, 0x1f
test al, al
cmovne ebx, ecx
mov esi, ebx
add ecx, 0x80000000
test al, al
cmove ecx, edx
mov edi, dword [esp + 8]
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], ecx
jmp 0x4f7871
push str....._third_partylibc_srcinclude_vector:622:_assertion__empty___failed:_back___called_on_an_empty_vector_n
push 0x622e92
call fcn.00590170
int3
int3
cmp byte [edi + 0x88], 0
jne 0x4f7f23
mov dword [esp + 0x4c], 0xe8
mov al, byte [0x649534]
test al, al
jne 0x4f828e
mov dword [esp + 0x50], 0xe8
mov al, byte [0x649534]
test al, al
jne 0x4f8213
mov dword [esp + 0x50], 0xe8
mov al, byte [0x649534]
test al, al
jne 0x4f81d6
mov edi, dword [esp + 8]
jmp 0x4f7890
int3
int3
int3
movsd xmm0, qword [0x615a88]
jmp 0x4f7a77
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x622e92
call fcn.00590170
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx], xmm0
jmp 0x4f77cb
lea ecx, [edi + 0x94]
lea eax, [esp + 0x58]
mov byte [eax], 1
lea edx, [esp + 0x60]
mov dword [edx], 2
push ebx
push edi
push eax
call fcn.005ccff0
add esp, 0xc
jmp 0x4f78c7
int3
push str....._third_partylibc_srcincludeoptional:800:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x622e92
call fcn.00590170
cmp byte [edi + 0x80], 0
je 0x4f7fb4
mov ecx, edi
add ecx, 0x50
movzx eax, al
lea edx, [edi + 0x70]
lea esi, [esp + 0x60]
mov dword [esi], 0
push ecx
push edx
push 2
push esi
lea ecx, [esp + 0x68]
push ecx
push eax
call fcn.0059cad0
add esp, 0x18
jmp 0x4f78a4
mov dword [esp + 0x10], ebx
mov eax, 1
add dword [esp + 0x10], eax
mov eax, esi
adc eax, 0x80000000
mov edi, eax
mov dword [esp + 0xc], 0
xor eax, eax
inc eax
cmp eax, dword [esp + 0x10]
sbb dword [esp + 0xc], edi
setb al
xor ecx, ebx
xor edx, esi
or edx, ecx
mov ecx, 0x80000000
sete dl
mov esi, 1
add esi, 0xffffffff
adc ecx, 0xffffffff
or dl, al
jne 0x4f7ee1
int3
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx], xmm0
jmp 0x4f79b7
movzx ebx, al
lea esi, [esp + 0x58]
mov eax, dword [esp + 0x18]
mov dword [esi], eax
lea edi, [esp + 0x60]
mov ecx, dword [ebp + 8]
push edi
call fcn.004fad30
lea eax, [esp + 0x50]
mov dword [eax], str.ThreadController_active
lea edx, [esp + 0x4c]
mov ecx, ebx
push esi
mov esi, dword [esp + 0xc]
push edi
push eax
call fcn.005cd2c0
add esp, 0xc
jmp 0x4f7b24
mov eax, dword [0x6496c8]
mov dword [esp + 0x18], eax
mov ecx, dword [0x6496cc]
mov dword [esp + 0x10], ecx
push ecx
push eax
push esi
push ebx
call fcn.005866e0
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], edx
mul dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0x10]
add edx, ecx
mov eax, dword [esp + 0x20]
imul ecx, eax, 0xf4240
mov dword [esp + 0x14], ecx
imul eax, dword [esp + 0x18]
add eax, edx
sub ebx, dword [esp + 0x1c]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0xc]
mul ecx
mov dword [esp + 0xc], 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 + 0x10]
push dword [esp + 0x1c]
push edx
push eax
call fcn.005866e0
add eax, dword [esp + 0xc]
adc edx, dword [esp + 0x14]
jmp 0x4f7799
mov eax, dword [0x6496c8]
mov dword [esp + 0x18], eax
mov ecx, dword [0x6496cc]
mov dword [esp + 0x10], ecx
push ecx
push eax
push esi
push ebx
call fcn.005866e0
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], edx
mul dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0x10]
add edx, ecx
mov eax, dword [esp + 0x20]
imul ecx, eax, 0xf4240
mov dword [esp + 0x14], ecx
imul eax, dword [esp + 0x18]
add eax, edx
sub ebx, dword [esp + 0x1c]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0xc]
mul ecx
mov dword [esp + 0xc], 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 + 0x10]
push dword [esp + 0x1c]
push edx
push eax
call fcn.005866e0
add eax, dword [esp + 0xc]
adc edx, dword [esp + 0x14]
jmp 0x4f7985
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx], xmm0
jmp 0x4f7cc1
movsd xmm0, qword [esp + 0x60]
movsd qword [edx], xmm0
jmp 0x4f7be8
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x80], 0
je 0x4f7fb4
movzx ecx, al
mov eax, dword [esp + 8]
add eax, 0x70
lea esi, [esp + 0x60]
mov dword [esi], 0
lea edi, [esp + 0x58]
lea edx, [esp + 0x50]
push edi
push eax
push esi
call fcn.005cd560
add esp, 0xc
jmp 0x4f7f4d
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x80], 0
je 0x4f7fb4
movzx eax, al
mov ecx, dword [esp + 8]
add ecx, 0x70
lea edx, [esp + 0x60]
mov dword [edx], str.PumpOverhead
lea esi, [esp + 0x50]
push dword [esp + 0x18]
push ecx
push 1
push edx
push esi
push eax
call fcn.0059cad0
add esp, 0x18
jmp 0x4f7f38
xor edi, edi
inc edi
mov dword [esp + 0x10], ebx
mov ebx, ecx
add ebx, edi
mov edi, eax
adc edi, 0x80000000
mov dword [esp + 0xc], edi
xor edi, edi
inc edi
cmp edi, ebx
mov ebx, dword [esp + 0x10]
sbb edx, dword [esp + 0xc]
setb dl
xor ecx, ebx
xor eax, esi
or eax, ecx
sete al
or al, dl
jne 0x4f7d72
int3
mov edx, 0xfff0bdc0
mov edi, dword [esp + 8]
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 + 0x60], edx
mov dword [esp + 0x64], ecx
cmp byte [edi + 0x80], 0
je 0x4f7fb4
movzx eax, al
mov ecx, dword [esp + 8]
add ecx, 0x70
lea edx, [esp + 0x50]
mov dword [edx], str.MessagePumpPhases
lea esi, [esp + 0x60]
push esi
push ecx
push 3
push edx
lea ecx, [esp + 0x5c]
push ecx
push eax
call fcn.0059cad0
add esp, 0x18
jmp 0x4f7f23
mov edi, dword [0x6496c8]
mov dword [esp + 0xc], edi
mov ecx, dword [0x6496cc]
mov dword [esp + 0x10], ecx
push ecx
push edi
push esi
push eax
mov dword [esp + 0x2c], eax
call fcn.005866e0
mov dword [esp + 0x14], eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mul edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov edi, eax
imul edi, dword [esp + 0x10]
add edx, edi
imul edi, ecx, 0xf4240
mov dword [esp + 0x20], edi
imul ecx, dword [esp + 0xc]
add ecx, edx
mov edi, dword [esp + 0x1c]
sub edi, dword [esp + 0x24]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0x10]
push dword [esp + 0x10]
push edx
push eax
call fcn.005866e0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x1c]
jmp 0x4f7c93
mov edi, dword [0x6496c8]
mov eax, dword [0x6496cc]
mov dword [esp + 0x10], eax
push eax
push edi
push esi
push ebx
mov dword [esp + 0x24], ebx
call fcn.005866e0
mov dword [esp + 0x24], eax
mov ecx, edx
mul edi
mov ebx, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov edi, eax
imul edi, dword [esp + 0x10]
add edx, edi
imul edi, ecx, 0xf4240
mov dword [esp + 0x1c], edi
imul ecx, ebx
add ecx, edx
mov edi, dword [esp + 0x14]
sub edi, dword [esp + 0x20]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x14], eax
mov ebx, edx
add ebx, dword [esp + 0x1c]
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0x10]
push dword [esp + 0x10]
push edx
push eax
call fcn.005866e0
add eax, dword [esp + 0x14]
adc edx, ebx
jmp 0x4f7bb7