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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x95c
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov edx, dword [0x11d0c5b8]
mov dword [ebp - 0x924], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x92c], eax
mov eax, dword fs:[0x2c]
push ebx
push esi
push edi
mov eax, dword [eax + edx*4]
mov edi, ecx
mov dword [ebp - 0x920], eax
mov eax, dword [eax + 0x10]
add eax, 0x7a80
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
xor esi, esi
push 0x100
push eax
mov dword [ebp - 0x930], eax
lea eax, [ebp - 0x608]
push eax
mov dword [ebp - 0x91c], esi
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x308]
push 0x100
push esi
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x808]
push 0x100
push esi
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x108]
push 0x100
push esi
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x508]
push 0x100
push esi
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x208]
push 0x100
push esi
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x908]
push 0x100
push esi
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x708]
push 0x100
push esi
push eax
call fcn.10425c00
xor ebx, ebx
add esp, 0xc
mov dword [ebp - 0x928], ebx
cmp dword [ebp + 0xc], ebx
jbe 0x10053ef9
mov ecx, dword [ebp - 0x924]
xor eax, eax
mov edx, dword [ebp - 0x92c]
mov eax, edx
sub ecx, edx
mov dword [ebp - 0x914], eax
mov dword [ebp - 0x924], ecx
nop dword [eax + eax]
mov esi, dword [ecx + eax]
mov ecx, dword [esi + 0xb18]
test ecx, ecx
je 0x1005336a
mov dword [ebp - 0x90c], ecx
mov eax, dword [ecx + 0xb38]
test al, al
jns 0x10053225
test al, 1
je 0x10053232
cmp dword [ecx + 0xaec], 0xffffffff
jne 0x10053232
xor bl, bl
jmp 0x10053234
mov bl, 1
mov eax, dword [esi + 0xb38]
mov edx, eax
and eax, 1
and edx, 0x80
je 0x1005324b
test eax, eax
je 0x1005325b
test bl, bl
je 0x100532fc
test edx, edx
je 0x10053279
test eax, eax
jne 0x10053279
add dword [ecx + 0xaf8], 0xffffffff
jne 0x1005326b
and dword [ecx + 0xafc], 0xfffffff0
and dword [esi + 0xb38], 0xffffff7f
test bl, bl
je 0x100532f6
push 1
lea eax, [ebp - 0x910]
mov ecx, edi
push eax
push 1
lea eax, [ebp - 0x90c]
push eax
call fcn.100530c0
test eax, eax
js 0x100534a4
cmp dword [ebp - 0x910], 0
je 0x100532cf
add dword [edi + 0x1c0], 1
mov eax, dword [ebp - 0x90c]
adc dword [edi + 0x1c4], 0
mov ecx, dword [edi + 0x1c0]
mov edx, dword [edi + 0x1c4]
mov dword [eax + 0xb08], ecx
mov dword [eax + 0xb0c], edx
mov ecx, dword [ebp - 0x90c]
test byte [ecx + 0xb00], 1
je 0x100532fc
push 0
push 0
push 0xc
call fcn.1004a860
mov eax, dword [ebp - 0x90c]
and byte [eax + 0xb00], 0xfe
mov ecx, dword [ebp - 0x90c]
cmp dword [ebp - 0x92c], 0
je 0x10053334
mov eax, dword [esi + 0xb0c]
cmp eax, dword [ecx + 0xb0c]
ja 0x1005332a
jb 0x10053323
mov eax, dword [esi + 0xb08]
cmp eax, dword [ecx + 0xb08]
jae 0x1005332a
mov eax, 1
jmp 0x1005332c
xor eax, eax
mov ecx, dword [ebp - 0x914]
mov dword [ecx], eax
mov ebx, dword [ebp - 0x928]
mov edx, dword [ebp - 0x91c]
mov eax, dword [ebp - 0x914]
inc ebx
add eax, 4
mov dword [ebp - 0x928], ebx
mov dword [ebp - 0x914], eax
cmp ebx, dword [ebp + 0xc]
jae 0x100534ae
mov ecx, dword [ebp - 0x924]
jmp 0x10053200
mov eax, dword [esi + 0xaec]
xor dl, dl
cmp eax, 0xffffffff
je 0x100533ff
dec dword [edi + eax*4 + 0x13c]
mov ecx, dword [esi + 0xae8]
cmp dword [edi + eax*4 + 0xbc], esi
jne 0x1005339a
mov dword [edi + eax*4 + 0xbc], ecx
jmp 0x100533a6
mov eax, dword [esi + 0xae4]
mov dword [eax + 0xae8], ecx
mov ecx, dword [esi + 0xae8]
test ecx, ecx
je 0x100533bc
mov eax, dword [esi + 0xae4]
mov dword [ecx + 0xae4], eax
and dword [esi + 0xaf0], 0xfffffff0
mov dl, 1
and byte [esi + 0xb9], 0xef
cmp dword [ebp - 0x92c], 0
mov dword [esi + 0xae8], 0
mov dword [esi + 0xae4], 0
mov dword [esi + 0xaec], 0xffffffff
je 0x100533ff
mov ecx, dword [ebp - 0x914]
mov dword [ecx], 0
mov eax, dword [esi + 0xb38]
mov ecx, eax
and ecx, 1
test al, al
jns 0x10053445
test ecx, ecx
jne 0x1005344d
mov edx, dword [ebp - 0x91c]
lea ecx, [esi + 8]
mov eax, dword [ecx]
mov dword [ebp + edx*4 - 0x308], eax
mov dword [ebp + edx*4 - 0x108], esi
mov dword [ebp + edx*4 - 0x208], ecx
mov dword [ebp + edx*4 - 0x708], ebx
inc edx
mov dword [ebp - 0x91c], edx
jmp 0x10053340
test ecx, ecx
je 0x1005333a
test dl, dl
jne 0x1005333a
mov eax, dword [esi]
test eax, eax
je 0x1005333a
mov eax, dword [eax + 0x28c]
mov edx, dword [ebp - 0x91c]
test eax, eax
je 0x10053340
mov ecx, dword [ebp - 0x930]
mov dword [ebp + ecx*4 - 0x608], eax
lea eax, [esi + 8]
mov dword [ebp + ecx*4 - 0x808], esi
mov dword [ebp + ecx*4 - 0x508], eax
mov dword [ebp + ecx*4 - 0x908], ebx
inc ecx
mov dword [ebp - 0x930], ecx
jmp 0x10053340
mov esi, 0x80004005
jmp 0x10053ef9
test edx, edx
je 0x10053957
push 0x100
lea eax, [ebp - 0x408]
push 0
push eax
call fcn.10425c00
mov edi, dword [ebp - 0x920]
add esp, 0xc
cmp byte [edi + 8], 0
jne 0x100534e0
call fcn.10450c0b
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xbe2c]
cmp dword [eax + 0x107c], 0
je 0x100538c8
cmp byte [edi + 8], 0
jne 0x10053507
call fcn.10450c0b
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0x107c]
cmp byte [eax + 0x21], 0
je 0x100538c8
cmp byte [edi + 8], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x940], xmm0
jne 0x1005353c
call fcn.10450c0b
mov eax, dword [edi + 0x10]
xor edx, edx
cmp dword [ebp - 0x92c], edx
mov ebx, dword [ebp - 0x91c]
mov ecx, dword [eax + 0xbe2c]
lea eax, [ebp - 0x940]
push eax
push ebx
lea eax, [ebp - 0x408]
cmove eax, edx
push eax
lea eax, [ebp - 0x308]
push eax
push edx
call fcn.101d5f60
mov esi, eax
cmp esi, 0x8000000a
jne 0x10053899
xor ecx, ecx
mov dword [ebp - 0x910], ecx
nop dword [eax + eax]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x938], 0
cmp dword [eax + 0xf944], 0
jbe 0x10053888
mov eax, dword [ebp + ecx*4 - 0x208]
xor ebx, ebx
mov ecx, 0xd8
mov dword [ebp - 0x934], ebx
mov dword [ebp - 0x914], ecx
lea esi, [eax + 0xc0]
lea edx, [eax + 0xd8]
mov dword [ebp - 0x928], esi
mov dword [ebp - 0x94c], esi
mov dword [ebp - 0x90c], edx
cmp byte [edi + 8], 0
jne 0x100535ff
call fcn.10450c0b
mov edx, dword [ebp - 0x90c]
mov ecx, dword [ebp - 0x914]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov edi, dword [eax + 0x1054]
mov eax, dword [esi]
add edi, 0x10
add edi, ebx
mov dword [ebp - 0x924], edi
test eax, eax
je 0x10053626
add eax, ecx
jmp 0x10053628
mov eax, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x948], ecx
mov dword [ebp - 0x944], eax
nop dword [eax]
mov ebx, dword [edi]
mov eax, ebx
mov esi, dword [edi + 4]
mov edx, esi
mov dword [ebp - 0x918], ebx
mov ecx, esi
lock cmpxchg8b qword [edi]
cmp eax, ebx
jne 0x10053640
cmp edx, esi
jne 0x10053640
mov ebx, dword [ebp - 0x940]
mov eax, dword [ebp - 0x918]
cmp ebx, 0x40000000
jae 0x10053686
cmp eax, 0xc0000000
jbe 0x10053686
xor ecx, ecx
add ebx, ecx
adc ecx, esi
add ebx, 0
adc ecx, 1
jmp 0x100536a9
cmp ebx, 0xc0000000
jbe 0x100536a3
cmp eax, 0x40000000
jae 0x100536a3
xor ecx, ecx
add ebx, ecx
adc ecx, esi
add ebx, 0
adc ecx, 0xffffffff
jmp 0x100536a9
xor ecx, ecx
add ebx, ecx
adc ecx, esi
mov eax, dword [ebp - 0x924]
mov edi, dword [edi]
mov esi, dword [eax + 4]
mov dword [ebp - 0x918], esi
cmp esi, ecx
ja 0x100536fb
jb 0x100536c4
cmp edi, ebx
jae 0x100536fb
mov edx, esi
mov eax, edi
mov esi, dword [ebp - 0x924]
lock cmpxchg8b qword [esi]
mov esi, dword [ebp - 0x918]
cmp eax, edi
jne 0x100536e0
cmp edx, esi
je 0x100536fb
mov eax, dword [ebp - 0x924]
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov dword [ebp - 0x918], esi
cmp esi, ecx
jb 0x100536c4
ja 0x100536fb
cmp edi, ebx
jb 0x100536c4
cmp ecx, dword [ebp - 0x944]
jb 0x100537f7
ja 0x10053715
cmp ebx, dword [ebp - 0x948]
jbe 0x100537f7
mov ebx, dword [ebp - 0x920]
cmp byte [ebx + 8], 0
jne 0x10053729
call fcn.10450c0b
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0x934]
add edi, 0x10
mov eax, dword [eax + 0xbe2c]
add edi, dword [eax + 0x1054]
mov ebx, dword [edi]
mov eax, ebx
mov esi, dword [edi + 4]
mov edx, esi
mov dword [ebp - 0x918], ebx
mov ecx, esi
lock cmpxchg8b qword [edi]
cmp eax, ebx
jne 0x10053744
cmp edx, esi
jne 0x10053744
mov ebx, dword [ebp - 0x940]
mov eax, dword [ebp - 0x918]
cmp ebx, 0x40000000
jae 0x1005378a
cmp eax, 0xc0000000
jbe 0x1005378a
xor ecx, ecx
add ebx, ecx
adc ecx, esi
add ebx, 0
adc ecx, 1
jmp 0x100537ad
cmp ebx, 0xc0000000
jbe 0x100537a7
cmp eax, 0x40000000
jae 0x100537a7
xor ecx, ecx
add ebx, ecx
adc ecx, esi
add ebx, 0
adc ecx, 0xffffffff
jmp 0x100537ad
xor ecx, ecx
add ebx, ecx
adc ecx, esi
mov eax, dword [edi]
mov esi, dword [edi + 4]
mov dword [ebp - 0x918], eax
cmp esi, ecx
ja 0x100537e9
jb 0x100537c2
cmp eax, ebx
jae 0x100537e9
mov edx, esi
lock cmpxchg8b qword [edi]
cmp eax, dword [ebp - 0x918]
jne 0x100537d4
cmp edx, esi
je 0x100537e9
mov eax, dword [edi]
mov esi, dword [edi + 4]
mov dword [ebp - 0x918], eax
cmp esi, ecx
jb 0x100537c2
ja 0x100537e9
cmp eax, ebx
jb 0x100537c2
mov edx, dword [ebp - 0x90c]
mov esi, dword [ebp - 0x928]
jmp 0x10053825
mov edi, dword [ebp - 0x94c]
mov esi, edi
mov edx, dword [ebp - 0x90c]
mov dword [ebp - 0x928], esi
mov ecx, dword [edi]
test ecx, ecx
je 0x10053820
mov eax, dword [ebp - 0x914]
mov ebx, dword [ecx + eax]
mov ecx, dword [ecx + eax + 4]
jmp 0x10053825
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
mov eax, dword [ebp - 0x920]
mov edi, dword [ebp - 0x938]
mov dword [edx], ebx
inc edi
mov ebx, dword [ebp - 0x934]
mov dword [edx + 4], ecx
add ebx, 0x20
mov eax, dword [eax + 0x10]
add edx, 8
mov ecx, dword [ebp - 0x914]
add ecx, 8
mov dword [ebp - 0x938], edi
mov dword [ebp - 0x914], ecx
cmp edi, dword [eax + 0xf944]
mov edi, dword [ebp - 0x920]
mov dword [ebp - 0x90c], edx
mov dword [ebp - 0x934], ebx
jb 0x100535e5
mov ecx, dword [ebp - 0x910]
mov ebx, dword [ebp - 0x91c]
inc ecx
mov dword [ebp - 0x910], ecx
cmp ecx, ebx
jb 0x10053590
xor esi, esi
cmp byte [edi + 8], 0
jne 0x100538a7
call fcn.10450c0b
push ebx
lea eax, [ebp - 0x208]
push eax
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0xbe2c]
mov ecx, dword [ecx + 0x107c]
call fcn.10289060
jmp 0x1005390a
cmp byte [edi + 8], 0
jne 0x100538d6
call fcn.10450c0b
mov eax, dword [edi + 0x10]
xor edx, edx
cmp dword [ebp - 0x92c], edx
mov ebx, dword [ebp - 0x91c]
push ebx
mov ecx, dword [eax + 0xbe2c]
lea eax, [ebp - 0x408]
cmove eax, edx
push eax
lea eax, [ebp - 0x308]
push eax
push edx
call fcn.101d5e80
mov esi, eax
mov edi, dword [ebp - 0x92c]
xor edx, edx
mov eax, dword [ebp + edx*4 - 0x108]
and dword [eax + 0xb38], 0xffffff7f
and dword [eax + 0xaf0], 0xfffffff0
mov dword [eax + 0xaec], 0xffffffff
and byte [eax + 0xb9], 0xef
test edi, edi
je 0x10053950
mov ecx, dword [ebp + edx*4 - 0x708]
mov eax, dword [ebp + edx*4 - 0x408]
mov dword [edi + ecx*4], eax
inc edx
cmp edx, ebx
jb 0x10053912
jmp 0x10053959
xor esi, esi
cmp dword [ebp - 0x930], 0
mov edi, dword [ebp - 0x920]
je 0x10053ef9
push 0x100
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.10425c00
add esp, 0xc
cmp byte [edi + 8], 0
jne 0x10053990
call fcn.10450c0b
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xbe2c]
cmp dword [eax + 0x107c], 0
je 0x10053d95
cmp byte [edi + 8], 0
jne 0x100539b7
call fcn.10450c0b
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0x107c]
cmp byte [eax + 0x21], 0
je 0x10053d95
cmp byte [edi + 8], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x940], xmm0
jne 0x100539ec
call fcn.10450c0b
mov eax, dword [edi + 0x10]
xor edx, edx
mov ebx, dword [ebp - 0x92c]
test ebx, ebx
mov esi, dword [ebp - 0x930]
mov ecx, dword [eax + 0xbe2c]
lea eax, [ebp - 0x940]
push eax
push esi
lea eax, [ebp - 0x108]
cmove eax, edx
push eax
push edx
lea eax, [ebp - 0x608]
push eax
call fcn.101d5f60
mov dword [ebp - 0x90c], eax
cmp eax, 0x8000000a
jne 0x10053d63
xor ecx, ecx
mov dword [ebp - 0x928], ecx
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x918], 0
cmp dword [eax + 0xf944], 0
jbe 0x10053d46
mov eax, dword [ebp + ecx*4 - 0x508]
xor ebx, ebx
mov ecx, 0xd8
mov dword [ebp - 0x924], ebx
mov dword [ebp - 0x914], ecx
lea edi, [eax + 0xc0]
lea edx, [eax + 0xd8]
mov dword [ebp - 0x934], edi
mov dword [ebp - 0x944], edi
mov dword [ebp - 0x90c], edx
nop word [eax + eax]
mov esi, dword [ebp - 0x920]
cmp byte [esi + 8], 0
jne 0x10053ac0
call fcn.10450c0b
mov edx, dword [ebp - 0x90c]
mov ecx, dword [ebp - 0x914]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov esi, dword [eax + 0x1054]
mov eax, dword [edi]
add esi, 0x10
add esi, ebx
mov dword [ebp - 0x938], esi
test eax, eax
je 0x10053ae7
add eax, ecx
jmp 0x10053ae9
mov eax, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x948], ecx
mov dword [ebp - 0x94c], eax
nop word [eax + eax]
mov ebx, dword [esi]
mov eax, ebx
mov edi, dword [esi + 4]
mov edx, edi
mov dword [ebp - 0x910], ebx
mov ecx, edi
lock cmpxchg8b qword [esi]
cmp eax, ebx
jne 0x10053b00
cmp edx, edi
jne 0x10053b00
mov ebx, dword [ebp - 0x940]
mov eax, dword [ebp - 0x910]
cmp ebx, 0x40000000
jae 0x10053b46
cmp eax, 0xc0000000
jbe 0x10053b46
xor ecx, ecx
add ebx, ecx
adc ecx, edi
add ebx, 0
adc ecx, 1
jmp 0x10053b69
cmp ebx, 0xc0000000
jbe 0x10053b63
cmp eax, 0x40000000
jae 0x10053b63
xor ecx, ecx
add ebx, ecx
adc ecx, edi
add ebx, 0
adc ecx, 0xffffffff
jmp 0x10053b69
xor ecx, ecx
add ebx, ecx
adc ecx, edi
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 0x910], esi
cmp esi, ecx
ja 0x10053bb7
jb 0x10053b80
cmp edi, ebx
jae 0x10053bb7
nop
mov edx, esi
mov eax, edi
mov esi, dword [ebp - 0x938]
lock cmpxchg8b qword [esi]
mov esi, dword [ebp - 0x910]
cmp eax, edi
jne 0x10053b9c
cmp edx, esi
je 0x10053bb7
mov eax, dword [ebp - 0x938]
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov dword [ebp - 0x910], esi
cmp esi, ecx
jb 0x10053b80
ja 0x10053bb7
cmp edi, ebx
jb 0x10053b80
cmp ecx, dword [ebp - 0x94c]
jb 0x10053cb5
ja 0x10053bd1
cmp ebx, dword [ebp - 0x948]
jbe 0x10053cb5
mov ebx, dword [ebp - 0x920]
cmp byte [ebx + 8], 0
jne 0x10053be5
call fcn.10450c0b
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0x924]
add esi, 0x10
mov eax, dword [eax + 0xbe2c]
add esi, dword [eax + 0x1054]
mov ebx, dword [esi]
mov eax, ebx
mov edi, dword [esi + 4]
mov edx, edi
mov dword [ebp - 0x910], ebx
mov ecx, edi
lock cmpxchg8b qword [esi]
cmp eax, ebx
jne 0x10053c00
cmp edx, edi
jne 0x10053c00
mov ebx, dword [ebp - 0x940]
mov eax, dword [ebp - 0x910]
cmp ebx, 0x40000000
jae 0x10053c46
cmp eax, 0xc0000000
jbe 0x10053c46
xor ecx, ecx
add ebx, ecx
adc ecx, edi
add ebx, 0
adc ecx, 1
jmp 0x10053c69
cmp ebx, 0xc0000000
jbe 0x10053c63
cmp eax, 0x40000000
jae 0x10053c63
xor ecx, ecx
add ebx, ecx
adc ecx, edi
add ebx, 0
adc ecx, 0xffffffff
jmp 0x10053c69
xor ecx, ecx
add ebx, ecx
adc ecx, edi
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov dword [ebp - 0x910], eax
cmp edi, ecx
ja 0x10053ca7
jb 0x10053c80
cmp eax, ebx
jae 0x10053ca7
nop
mov edx, edi
lock cmpxchg8b qword [esi]
cmp eax, dword [ebp - 0x910]
jne 0x10053c92
cmp edx, edi
je 0x10053ca7
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov dword [ebp - 0x910], eax
cmp edi, ecx
jb 0x10053c80
ja 0x10053ca7
cmp eax, ebx
jb 0x10053c80
mov edx, dword [ebp - 0x90c]
mov edi, dword [ebp - 0x934]
jmp 0x10053ce3
mov esi, dword [ebp - 0x944]
mov edi, esi
mov edx, dword [ebp - 0x90c]
mov dword [ebp - 0x934], edi
mov ecx, dword [esi]
test ecx, ecx
je 0x10053cde
mov eax, dword [ebp - 0x914]
mov ebx, dword [ecx + eax]
mov ecx, dword [ecx + eax + 4]
jmp 0x10053ce3
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
mov eax, dword [ebp - 0x920]
mov esi, dword [ebp - 0x918]
mov dword [edx], ebx
inc esi
mov ebx, dword [ebp - 0x924]
mov dword [edx + 4], ecx
add ebx, 0x20
mov eax, dword [eax + 0x10]
add edx, 8
mov ecx, dword [ebp - 0x914]
add ecx, 8
mov dword [ebp - 0x918], esi
mov dword [ebp - 0x914], ecx
mov dword [ebp - 0x90c], edx
mov dword [ebp - 0x924], ebx
cmp esi, dword [eax + 0xf944]
jb 0x10053aa0
mov ecx, dword [ebp - 0x928]
mov edi, dword [ebp - 0x920]
mov esi, dword [ebp - 0x930]
inc ecx
mov dword [ebp - 0x928], ecx
cmp ecx, esi
jb 0x10053a40
mov ebx, dword [ebp - 0x92c]
xor eax, eax
mov dword [ebp - 0x90c], eax
cmp byte [edi + 8], 0
jne 0x10053d71
call fcn.10450c0b
push esi
lea eax, [ebp - 0x508]
push eax
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0xbe2c]
mov ecx, dword [ecx + 0x107c]
call fcn.10289060
jmp 0x10053eac
cmp byte [edi + 8], 0
jne 0x10053da3
call fcn.10450c0b
mov eax, dword [edi + 0x10]
xor ecx, ecx
mov ebx, dword [ebp - 0x92c]
mov esi, dword [ebp - 0x930]
mov dword [ebp - 0x958], 0
mov edi, dword [eax + 0xbe2c]
xor eax, eax
mov dword [ebp - 0x90c], eax
test ebx, ebx
lea eax, [ebp - 0x608]
mov dword [ebp - 0x950], esi
mov dword [ebp - 0x95c], eax
lea eax, [ebp - 0x108]
cmove eax, ecx
cmp dword [edi + 0x1044], 0x3001
mov dword [ebp - 0x954], eax
jb 0x10053eac
mov ecx, dword [edi + 0x10ec]
test ecx, ecx
je 0x10053eac
mov eax, dword [edi]
cmp dword [eax + 0xd45c], 1
jne 0x10053e8e
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [edi + 0x1428]
push eax
call esi
mov eax, dword [edi + 0x10ec]
lea ecx, [ebp - 0x95c]
push ecx
push dword [edi + 0x11cc]
call eax
push eax
push ecx
mov ecx, edi
call fcn.101c9e10
mov dword [ebp - 0x90c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x940]
movlpd qword [ebp - 0x940], xmm0
push eax
call esi
mov ecx, dword [ebp - 0x940]
sub ecx, dword [edi + 0x1428]
mov eax, dword [ebp - 0x93c]
sbb eax, dword [edi + 0x142c]
add dword [edi + 0x1420], ecx
mov esi, dword [ebp - 0x930]
adc dword [edi + 0x1424], eax
jmp 0x10053eac
lea eax, [ebp - 0x95c]
push eax
push dword [edi + 0x11cc]
call ecx
push eax
push ecx
mov ecx, edi
call fcn.101c9e10
mov dword [ebp - 0x90c], eax
xor edx, edx
nop
mov eax, dword [ebp + edx*4 - 0x808]
and dword [eax + 0xb38], 0xffffff7f
and dword [eax + 0xaf0], 0xfffffff0
mov dword [eax + 0xaec], 0xffffffff
and byte [eax + 0xb9], 0xef
test ebx, ebx
je 0x10053eee
mov ecx, dword [ebp + edx*4 - 0x908]
mov eax, dword [ebp + edx*4 - 0x108]
mov dword [ebx + ecx*4], eax
inc edx
cmp edx, esi
jb 0x10053eb0
mov esi, dword [ebp - 0x90c]
mov eax, dword [ebp - 0x920]
mov eax, dword [eax + 0x10]
add eax, 0x7a80
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x10