Function at 0x571116
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov esi, ecx
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esp + 0x58], eax
cmp byte [ecx + 0x247c], 0
je 0x570cd8
cmp dword [esi + 0x246c], 1
jg 0x570cd8
mov dword [esi + 0x246c], 1
mov ecx, dword [esi + 0x26a0]
test ecx, ecx
je 0x570cd8
mov edi, dword [esi + 0x269c]
call dword [section..00cfg]
push edi
push 1
push esi
call ecx
test al, al
jne 0x570cd8
mov ecx, dword [esp + 0x58]
xor ecx, ebp
call fcn.00512ee3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x26ac], eax
mov edx, dword [esi + 0x2468]
cmp edx, 0xa
mov ecx, 0xa
cmovl ecx, edx
mov dword [esi + 0x2468], ecx
mov dword [esp + 8], eax
mov dword [esi + 0x26cc], eax
lea eax, [esi + 0x62cb8]
push eax
call fcn.0052ee51
add esp, 4
mov ecx, esi
xor edx, edx
call fcn.005718b0
test al, al
je 0x570cc5
lea edi, [esp + 0x20]
cmp dword [esi + 0x5d0f8], 7
je 0x570d4f
cmp dword [esi + 0x26a8], 0
je 0x570d4f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x26ac]
cmp eax, dword [esi + 0x26a8]
ja 0x5710b8
xorpd xmm0, xmm0
movupd xmmword [esp + 0x3c], xmm0
movapd xmmword [esp + 0x30], xmm0
movapd xmmword [esp + 0x20], xmm0
mov ecx, esi
mov edx, edi
call fcn.00571820
cmp eax, 1
jbe 0x5711b0
mov ebx, 0x1f4
push ebx
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
sub edi, dword [esp + 8]
cmp edi, ebx
jb 0x570e94
mov ecx, eax
mov ebx, dword [esi + 0x26b8]
mov eax, dword [esi + 0x26c0]
mov dword [esp + 8], eax
cmp ebx, dword [esi + 0x26bc]
mov dword [esp + 0x14], ecx
je 0x570fe9
mov dword [ebx + 4], edi
mov eax, dword [esp + 8]
mov dword [ebx], eax
add ebx, 8
mov dword [esi + 0x26b8], ebx
mov eax, dword [esi + 0x26b4]
mov ecx, ebx
sub ecx, eax
cmp ecx, 0x31
jb 0x570e0d
cmp ebx, eax
je 0x571236
mov ecx, eax
add ecx, 8
mov edx, ebx
sub edx, ecx
push edx
push ecx
push eax
call fcn.00518c30
add esp, 0xc
add ebx, 0xfffffff8
mov dword [esi + 0x26b8], ebx
mov eax, dword [esi + 0x26b4]
sub ebx, eax
cmp ebx, 0x30
jne 0x570e82
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
add ecx, dword [eax + 4]
add edx, dword [eax]
add ecx, dword [eax + 0x14]
add edx, dword [eax + 0x10]
add ecx, dword [eax + 0x1c]
add edx, dword [eax + 0x18]
add ecx, dword [eax + 0x24]
add edx, dword [eax + 0x20]
add ecx, dword [eax + 0x2c]
add edx, dword [eax + 0x28]
movd xmm0, edx
movq xmm2, qword [0x5db288]
por xmm0, xmm2
subsd xmm0, xmm2
movd xmm1, ecx
por xmm1, xmm2
subsd xmm1, xmm2
divsd xmm0, xmm1
mulsd xmm0, qword [0x5de8d0]
cvttsd2si eax, xmm0
mov ecx, eax
subsd xmm0, qword [0x5c9510]
cvttsd2si edx, xmm0
sar ecx, 0x1f
and edx, ecx
or edx, eax
mov dword [esi + 0x26b0], edx
mov dword [esi + 0x26c0], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
xor eax, eax
dec eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
call fcn.0052ee51
add esp, 4
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0x62cb8]
mov ecx, dword [esp + 0x1c]
sbb ecx, dword [esi + 0x62cbc]
mov dword [esi + 0x62cc0], eax
mov dword [esi + 0x62cc4], ecx
mov eax, dword [esi + 0x26b0]
test eax, eax
je 0x570f03
mov ecx, dword [esi + 0x5d100]
mov edx, dword [esi + 0x5d104]
mov edi, ecx
and edi, edx
cmp edi, 0xffffffff
je 0x570f03
sub ecx, dword [esi + 0x5d110]
sbb edx, dword [esi + 0x5d114]
push 0
push eax
push edx
push ecx
call fcn.00539110
jmp 0x570f07
xor eax, eax
xor edx, edx
mov edi, dword [esp + 4]
mov dword [esi + 0x62cc8], eax
mov dword [esi + 0x62ccc], edx
cmp edi, 0x102
je 0x570f95
cmp edi, 0xffffffff
je 0x5711ea
test edi, edi
je 0x571201
mov dword [esp + 4], 8
lea ebx, [edi - 1]
mov eax, dword [esi + 0x26d8]
mov ecx, dword [esi + 0x26dc]
sub ecx, eax
sar ecx, 2
cmp ecx, ebx
jbe 0x571218
mov edi, dword [eax + edi*4 - 4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x26c4], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x570f82
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push dword [edi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x10], 0
mov eax, dword [edi + 0x28]
cmp eax, 0xa
ja case.default.0x570f8e
jmp dword [eax*4 + 0x5df290]
cmp dword [esi + 0x246c], 6
lea edi, [esp + 0x20]
jne 0x570d25
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [esi + 0x26a4]
cmp ecx, 0x3e9
jb 0x570d25
mov dword [esi + 0x26a4], eax
cmp byte [esi + 0x247c], 0
jne 0x5710c7
jmp 0x570d25
test al, al
lea edi, [esp + 0x20]
jne 0x570d25
jmp case.default.0x570f8e
sub ebx, dword [esi + 0x26b4]
mov eax, ebx
sar eax, 3
mov dword [esp + 0x10], eax
inc eax
cmp eax, 0x20000000
jae 0x571247
mov edx, ebx
sar edx, 2
cmp edx, eax
cmovbe edx, eax
cmp ebx, 0x7ffffff8
mov eax, 0x1fffffff
cmovae edx, eax
test edx, edx
je 0x57110f
cmp edx, 0x20000000
jae 0x57124c
mov ebx, edx
lea eax, [edx*8]
push eax
call fcn.00510d64
mov edx, ebx
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x10]
lea eax, [ebx + ecx*8]
mov dword [eax + 4], edi
lea edx, [ebx + edx*8]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 8]
mov dword [eax], edx
lea ebx, [ebx + ecx*8]
add ebx, 8
mov edx, dword [esi + 0x26b4]
mov ecx, dword [esi + 0x26b8]
sub ecx, edx
mov edi, eax
sub edi, ecx
push ecx
push edx
push edi
call fcn.00518c30
add esp, 0xc
mov eax, dword [esi + 0x26b4]
mov dword [esi + 0x26b4], edi
mov dword [esi + 0x26b8], ebx
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x26bc], ecx
test eax, eax
je 0x570dd3
push eax
call fcn.0050fc7c
add esp, 4
mov ebx, dword [esi + 0x26b8]
jmp 0x570dd3
mov dword [esi + 0x5d0f8], 9
jmp 0x570cc5
cmp dword [esi + 0x246c], 6
jg 0x570d25
mov dword [esi + 0x246c], 6
mov ecx, dword [esi + 0x26a0]
test ecx, ecx
je 0x570d25
mov edi, dword [esi + 0x269c]
call dword [section..00cfg]
push edi
lea edi, [esp + 0x24]
push 6
push esi
call ecx
test al, al
jne 0x570d25
jmp 0x570cc5
xor ebx, ebx
jmp 0x571046
mov ecx, esi
mov edx, ebx
call fcn.00572410
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.005724c0
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.005725c0
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.00572700
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.00572df0
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.00572eb0
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.00572fb0
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.005730f0
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.00573410
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.00573570
jmp 0x570fd8
mov ecx, esi
mov edx, ebx
call fcn.005737a0
jmp 0x570fd8
cmp byte [esi + 0x26f0], 0
je 0x570cc5
mov eax, dword [esi + 0x5d110]
cmp eax, dword [esi + 0x5d100]
mov eax, dword [esi + 0x5d114]
sbb eax, dword [esi + 0x5d104]
jae 0x570cc5
mov dword [esi + 0x5d0f8], 8
jmp 0x570cc5
mov dword [esp + 4], 8
mov eax, dword [esp + 4]
mov dword [esi + 0x5d0f8], eax
jmp 0x570cc5
mov dword [esp + 4], 9
cmp dword [esi + 0x5d0f8], 7
je 0x570cc5
jmp case.default.0x570f8e
push str.vector___index_out_of_bounds
push str.__n___size__
push 0x587
push str....._buildtools_third_partylibc_trunkinclude_vector
push str._s:_d:_assertion__s_failed:__s
call fcn.005495a0
push str.vector::erase_iterator__called_with_a_non_dereferenceable_iterator
push str.__position___end__
push 0x630
jmp 0x571227
call fcn.0052ce30
call fcn.00549f00
int3