Function at 0x5104f0
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, 0xfffffff0
sub esp, 0x460
mov esi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x646040]
xor eax, ebp
mov dword [esp + 0x458], eax
pcmpeqd xmm0, xmm0
movdqu xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0xffffffff
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x513115
lock and dword [esi + 0x44], 0xfffffffc
mov dword [esp + 0x24], esi
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x51055e
xor esi, esi
xchg dword [ebx], esi
test esi, esi
jne 0x5119b0
mov ebx, dword [ebx + 0x8c]
test ebx, ebx
jne 0x510548
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x51313b
mov eax, dword [esp + 0x24]
lea ecx, [eax - 4]
mov dword [esp + 0x40], ecx
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
nop word cs:[eax + eax]
mov ebx, edi
add ebx, 1
mov ecx, esi
adc ecx, 0
mov eax, edi
mov edx, esi
mov esi, dword [esp + 0x24]
lock cmpxchg8b qword [esi + 0x14]
mov ebx, dword [esp + 0x24]
mov edi, eax
mov esi, edx
jne 0x510590
mov ecx, dword [ebx + 0x17c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5118d2
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
test al, al
mov dword [esp + 0x20], ecx
jne 0x510693
mov ecx, dword [fcn.005608f0]
cmp ecx, 0x5531a0
jne 0x511fc0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
lea eax, [esp + 0xd0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
cmp ebx, 0x7bd05af7
mov ecx, eax
sbb eax, 0x863
jge 0x513852
mov edx, 0xf4240
mov eax, ebx
mul edx
imul ecx, ecx, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x513084
test edx, edx
je 0x512e95
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
mov al, 1
mov ecx, dword [esp + 0x20]
test al, al
je 0x512ea4
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x512edd
mov ecx, dword [edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp dword [eax + 0x14], 1
je 0x513442
mov ebx, dword [eax]
mov edx, dword [eax + 4]
cmp dword [esp + 0xc], ebx
sbb ecx, edx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
jge 0x512168
mov ecx, dword [ebx + 0x180]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5107f0
movzx eax, byte [edx + 8]
test al, al
mov dword [esp + 0x20], ecx
jne 0x5107b1
mov ecx, dword [fcn.005608f0]
cmp ecx, 0x5531a0
jne 0x511fd8
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
lea eax, [esp + 0xd0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
cmp ebx, 0x7bd05af7
mov ecx, eax
sbb eax, 0x863
jge 0x5138f2
mov edx, 0xf4240
mov eax, ebx
mul edx
imul ecx, ecx, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x513096
test edx, edx
je 0x512e95
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
mov al, 1
mov ecx, dword [esp + 0x20]
test al, al
je 0x512ea4
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x512edd
mov ecx, dword [edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp dword [eax + 0x14], 1
je 0x5134ec
mov ebx, dword [eax]
mov edx, dword [eax + 4]
cmp dword [esp + 0xc], ebx
sbb ecx, edx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
jge 0x5121aa
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x5131bd
cmp byte [edx + 8], 1
jne 0x510824
mov eax, dword [edx]
cmp eax, dword [ebx + 0x18c]
mov eax, dword [edx + 4]
sbb eax, dword [ebx + 0x190]
jge 0x5123c7
mov eax, dword [ebx + 0xf8]
mov edi, 0
test eax, eax
je 0x510929
tzcnt ecx, eax
mov byte [esp + 0xc], cl
cmp dword [ebp + 0x10], 1
mov dword [esp + 0x20], ecx
je 0x512f1a
mov edx, dword [ebx + 0x114]
mov eax, dword [ebx + 0x118]
sub eax, edx
sar eax, 4
cmp dword [ebx + 0x124], 3
jge 0x51264d
cmp eax, ecx
jbe 0x512efb
mov edi, ecx
shl ecx, 4
mov eax, dword [edx + ecx + 4]
cmp eax, dword [edx + ecx + 8]
je 0x5108ed
mov esi, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
sub edx, esi
sar edx, 4
cmp edx, edi
jbe 0x512efb
mov edi, dword [eax + 0x18]
mov edx, dword [esi + ecx + 4]
cmp edx, dword [esi + ecx + 8]
je 0x510915
mov dword [esp + 0xc], edi
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov esi, dword [edx]
mov dword [esp + 0x1c], esi
mov ebx, dword [edx + 4]
mov esi, edi
mov dword [esp + 0x14], ebx
xor esi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
xor ecx, ebx
or ecx, esi
mov ecx, dword [edx + 0x18]
je 0x51371d
cmp dword [esp + 0x10], ebx
sbb edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
jb 0x510915
mov edi, ecx
jmp 0x510915
mov eax, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
sub edx, eax
sar edx, 4
cmp edx, edi
jbe 0x512efb
mov edx, dword [eax + ecx + 4]
xor edi, edi
cmp edx, dword [eax + ecx + 8]
je 0x510915
mov edi, dword [edx + 0x18]
cmp dword [edi + 0x50], 1
je 0x5121ec
mov dword [ebx + 0x124], 0
mov dword [esp + 0x98], 0x125
movzx eax, byte [0x64b571]
test al, al
mov dword [esp + 0xc], edi
jne 0x513213
test edi, edi
je 0x5113fb
cmp dword [edi + 0x18], 0
je 0x510a07
push 0x388
push 0xff
lea eax, [esp + 0xd8]
push eax
call fcn.00568ad0
add esp, 0xc
mov dword [esp + 0xd0], 0
cmp dword [edi + 8], 0
je 0x512d77
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [ecx + 0x10]
inc eax
cmp eax, edx
mov esi, eax
mov edi, 0
cmove esi, edi
cmp edx, esi
jbe 0x512ecb
mov edi, dword [ecx + 0xc]
imul ebx, esi, 0x70
mov esi, dword [edi + ebx + 0x50]
test esi, esi
je 0x511e3c
mov ecx, dword [esi + 0xc]
cmp ecx, 0x561850
je 0x5109db
call dword [0x6401dc]
push 0
push esi
call ecx
add esp, 8
test al, al
jne 0x511e30
add edi, ebx
cmp dword [edi + 0x6c], 0
jne 0x511e1e
mov esi, dword [esp + 0xd0]
cmp esi, 2
jae 0x512246
test esi, esi
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
jne 0x51214e
cmp dword [edi + 8], 0
je 0x512f0a
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [eax + 0x10]
inc ecx
cmp ecx, edx
mov esi, 0
cmove ecx, esi
cmp edx, ecx
jbe 0x512ece
imul ecx, ecx, 0x70
add ecx, dword [eax + 0xc]
cmp byte [ecx + 0x58], 0
je 0x512a97
mov edi, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x513062
cmp dword [edi + 0xe8], 0
jne 0x512072
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5130c3
cmp dword [edi + 0xec], 0
jne 0x512072
cmp dword [ebx + 0x6c], 0
jne 0x5123b8
mov dword [esp + 0x20], 0
cmp dword [ebx + 0x16c], 0
mov eax, 0
jne 0x512072
mov dword [esp + 0x10], eax
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc0], xmm0
movdqu xmmword [esp + 0xb0], xmm0
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x40], eax
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0xe0], xmm0
movdqu xmmword [esp + 0xf0], xmm0
movdqu xmmword [esp + 0x100], xmm0
movdqu xmmword [esp + 0x110], xmm0
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x9b], 0xffffffff
mov ecx, dword [edi]
mov edx, dword [ecx]
mov esi, dword [ecx + 0x10]
inc edx
xor eax, eax
cmp edx, esi
cmove edx, eax
cmp esi, edx
jbe 0x512f11
mov ecx, dword [ecx + 0xc]
imul edx, edx, 0x70
movups xmm0, xmmword [ecx + edx]
movaps xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [ecx + edx + 0x10]
movupd xmm1, xmmword [ecx + edx + 0x20]
movaps xmmword [esp + 0xe0], xmm0
movapd xmmword [esp + 0xf0], xmm1
movups xmm0, xmmword [ecx + edx + 0x30]
movaps xmmword [esp + 0x100], xmm0
movdqu xmm0, xmmword [ecx + edx + 0x39]
movdqu xmmword [esp + 0x109], xmm0
mov esi, dword [ecx + edx + 0x50]
mov dword [esp + 0x1c], esi
mov dword [ecx + edx + 0x50], 0
movzx ebx, byte [ecx + edx + 0x5a]
mov byte [esp + 0x9e], bl
movzx esi, word [ecx + edx + 0x58]
mov word [esp + 0x9c], si
mov esi, dword [ecx + edx + 0x5c]
mov dword [esp + 0x18], esi
mov esi, dword [ecx + edx + 0x60]
mov dword [esp + 0x14], esi
mov dword [ecx + edx + 0x5c], 0
mov esi, dword [ecx + edx + 0x64]
mov dword [esp + 0x3c], esi
mov esi, dword [ecx + edx + 0x68]
mov dword [esp + 0x34], esi
mov dword [ecx + edx + 0x68], 0
mov ecx, dword [ecx + edx + 0x6c]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi]
mov edx, dword [ecx]
inc edx
mov esi, dword [ecx + 0x10]
cmp edx, esi
cmove edx, eax
mov dword [ecx], edx
cmp esi, edx
jbe 0x512f14
mov eax, dword [ecx + 0xc]
imul ecx, edx, 0x70
lea ebx, [eax + ecx]
mov eax, dword [eax + ecx + 0x68]
test eax, eax
jne 0x5118e9
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x511dea
mov esi, dword [ebx + 0x50]
test esi, esi
jne 0x511da7
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax]
jne 0x510c17
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x5123ef
mov edi, dword [esp + 0xc]
dec dword [edi + 8]
jne 0x510db6
cmp dword [edi + 0x50], 0
jne 0x510c33
mov ecx, dword [edi + 0x1c]
push edi
call fcn.005155d0
cmp dword [edi + 4], 0
je 0x510d0b
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov ecx, dword [0x648080]
cmp ecx, 0x5531a0
jne 0x511dc4
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
cmp edi, 0x7bd05af7
mov eax, ebx
sbb eax, 0x863
jge 0x513992
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edi, dword [esp + 0xc]
cmp eax, dword [edi + 0x10]
sbb edx, dword [edi + 0x14]
jl 0x510d0b
mov ecx, dword [edi + 0xc]
inc ecx
cmp ecx, 5
mov eax, 4
cmovae eax, ecx
mov ecx, dword [edi]
mov edx, dword [edi + 8]
mov dword [edi + 0xc], edx
test ecx, ecx
je 0x510d0b
lea edx, [eax + 0x10]
xor esi, esi
add esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x510cf9
cmp edx, esi
jb 0x512d3e
mov edx, dword [edi + 0x18]
mov ebx, dword [edi + 0x20]
cmp dword [edi + 8], 0
jne 0x510dbc
mov dword [esp + 0x30], edx
mov ecx, dword [edx + 4]
mov eax, dword [edx + 8]
sub eax, ecx
sar eax, 4
cmp eax, ebx
jbe 0x512e86
mov esi, ebx
mov dword [esp + 0xc], ebx
shl esi, 4
add ecx, esi
push 0
call fcn.00515140
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
sub ecx, eax
sar ecx, 4
cmp ecx, dword [esp + 0xc]
jbe 0x512e86
mov ecx, dword [eax + esi + 4]
cmp ecx, dword [eax + esi + 8]
mov esi, dword [esp + 0xc]
jne 0x510e65
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
sar edx, 2
cmp edx, esi
jbe 0x512e86
dec dword [ecx + esi*4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
sar edx, 2
cmp edx, esi
jbe 0x512e86
cmp dword [ecx + esi*4], 0
jne 0x510e65
mov ecx, esi
mov edx, 0xfffffffe
rol edx, cl
and dword [eax + 0x14], edx
jmp 0x510e65
mov edx, dword [edi + 0x18]
mov ebx, dword [edi + 0x20]
mov eax, dword [edi]
mov ecx, dword [eax]
cmp byte [edi + 0x48], 0
mov dword [esp + 0x30], edx
jne 0x51256a
mov esi, dword [eax + 0x10]
inc ecx
xor edx, edx
cmp ecx, esi
cmove ecx, edx
cmp esi, ecx
jbe 0x51301e
mov esi, dword [eax + 0xc]
imul ecx, ecx, 0x70
lea eax, [esi + ecx]
mov edi, dword [esi + ecx + 0x44]
mov dword [esp + 0x28], edi
mov edi, dword [esi + ecx + 0x18]
mov ecx, dword [esi + ecx + 0x1c]
mov esi, edi
or esi, ecx
mov esi, 0
jne 0x512360
mov edi, esi
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 4]
mov esi, dword [esi + 8]
sub esi, ecx
sar esi, 4
cmp esi, ebx
jbe 0x512e86
shl ebx, 4
add ecx, ebx
mov esi, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0xc]
mov dword [esp + 0x88], edi
lea eax, [esp + 0xa0]
lea edx, [esp + 0x70]
push edx
push eax
call fcn.005150f0
mov esi, dword [edi + 0x1c]
movzx eax, byte [0x64b570]
test al, al
jne 0x513596
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 0x1b4]
mov ebx, dword [eax + 0x1b8]
mov eax, ebx
sub eax, edi
mov esi, ebx
sub esi, edi
je 0x512685
sar eax, 2
lea eax, [eax + eax*2]
lea ecx, [eax*8 - 1]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x1c0]
mov edx, dword [edx + 0x1c4]
add edx, eax
cmp ecx, edx
je 0x512813
cmp ebx, edi
mov ebx, dword [esp + 0x24]
je 0x512e95
mov ecx, dword [ebx + 0x1c0]
add ecx, dword [ebx + 0x1c4]
mov edx, 0xaaaaaaab
mov eax, ecx
mul edx
shr edx, 4
lea eax, [edx*8]
lea eax, [eax + eax*2]
sub ecx, eax
imul esi, ecx, 0xa8
add esi, dword [edi + edx*4]
je 0x512e95
movaps xmm0, xmmword [esp + 0xd0]
movups xmmword [esi], xmm0
lea eax, [esp + 0xe0]
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmmword [esi + 0x20], xmm1
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esi + 0x30], xmm0
movups xmm0, xmmword [eax + 0x29]
movups xmmword [esi + 0x39], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x50], eax
lea eax, [esp + 0x9c]
movzx ecx, word [eax]
mov word [esi + 0x58], cx
movzx eax, byte [eax + 2]
mov byte [esi + 0x5a], al
mov eax, dword [esp + 0x18]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x60], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x6c], eax
mov ecx, dword [esp + 0x40]
mov dword [esi + 0x70], ecx
mov eax, dword [ecx + 4]
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], 0
mov eax, dword [esp + 0x20]
mov byte [esi + 0x7c], al
mov eax, dword [esp + 0x10]
mov byte [esi + 0x7d], al
movdqu xmm0, xmmword [esp + 0xae]
movupd xmm1, xmmword [esp + 0xbe]
movdqu xmmword [esi + 0x7e], xmm0
movupd xmmword [esi + 0x8e], xmm1
movzx eax, word [esp + 0xce]
mov word [esi + 0x9e], ax
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5130d4
mov eax, dword [ecx + 0x64]
movzx eax, byte [eax + 0x20]
mov byte [esi + 0xa0], al
movzx eax, byte [esi + 0x5a]
mov dword [esi + 0xa4], eax
mov ecx, dword [ebx + 0x1c4]
inc ecx
mov dword [ebx + 0x1c4], ecx
add ecx, dword [ebx + 0x1c0]
mov esi, dword [ebx + 0x1b4]
mov edx, 0xaaaaaaab
mov eax, ecx
mul edx
shr edx, 4
mov eax, dword [esi + edx*4]
cmp dword [ebx + 0x1b8], esi
je 0x51241b
lea edi, [edx*8]
lea edi, [edi + edi*2]
sub ecx, edi
imul ecx, ecx, 0xa8
add ecx, eax
cmp eax, ecx
je 0x512fbb
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
mov dword [esp + 0xc], ecx
jne 0x51330c
mov esi, dword [ecx - 0x38]
cmp byte [esi + 0x14c], 1
mov edx, dword [ebp + 0xc]
je 0x5118da
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x51318c
cmp dword [esi + 0xe8], 0
jne 0x511c85
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5131e6
cmp dword [esi + 0xec], 0
jne 0x511c85
cmp dword [ebx + 0x6c], 0
jne 0x5110a7
cmp dword [ebx + 0x16c], 0
jne 0x511c85
mov dword [esp + 0x18], 0
lea eax, [ecx - 0xa8]
mov dword [esp + 0x20], eax
mov esi, dword [ecx - 0x38]
cmp byte [esi + 0x14d], 1
jne 0x511335
mov eax, dword [ecx - 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [ecx - 0x44]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x513073
mov eax, dword [esi + 0xe0]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xe4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x51328b
mov eax, dword [ebx + 0x12c]
cmp eax, dword [ebx + 0x130]
je 0x5112ba
lea eax, [ebx + 0x12c]
mov dword [esp + 0xd8], eax
lea eax, [ebx + 0x138]
mov dword [esp + 0xd4], eax
mov eax, dword [ebx + 0x138]
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0xd0]
mov dword [eax + 4], ecx
mov dword [ebx + 0x138], ecx
mov dword [esp + 0xdc], 0
mov ecx, 0xffffffff
cmp dword [ebx + 0x14c], 0
jne 0x5130e9
mov dword [esp + 0xe0], ecx
mov esi, dword [esp + 0xd8]
mov edx, dword [esi + 4]
sub edx, dword [esi]
sar edx, 2
cmp edx, ecx
cmovae edx, ecx
xor eax, eax
test edx, edx
je 0x5111b7
mov edi, dword [esi]
mov ebx, dword [esi + 4]
sub ebx, edi
sar ebx, 2
cmp ebx, eax
jbe 0x512e86
cmp dword [edi + eax*4], 0
mov ebx, dword [esp + 0x24]
je 0x5130a8
test esi, esi
je 0x5112ba
mov edx, dword [esi]
mov edi, dword [esi + 4]
sub edi, edx
sar edi, 2
cmp edi, ecx
cmovb ecx, edi
cmp eax, ecx
je 0x51126b
cmp edi, eax
jbe 0x512e86
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
sbb ecx, dword [esp + 0x14]
setb bl
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [0x6401dc]
movzx eax, bl
mov ecx, esi
push eax
push dword [esp + 0x24]
call edi
mov esi, dword [esp + 0xd8]
test esi, esi
mov ebx, dword [esp + 0x24]
je 0x5112ba
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
inc eax
mov dword [esp + 0xdc], eax
mov edx, dword [esi + 4]
sub edx, dword [esi]
sar edx, 2
cmp edx, ecx
cmovae edx, ecx
cmp eax, edx
jae 0x5111bf
mov edi, dword [esi]
mov ebx, dword [esi + 4]
sub ebx, edi
sar ebx, 2
cmp ebx, eax
jbe 0x512e86
cmp dword [edi + eax*4], 0
jne 0x5111bf
jmp 0x51304b
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jne 0x51128e
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
cmp ebx, ecx
je 0x51128e
lea edi, [ebx + 4]
cmp dword [ebx], 0
je 0x51242d
mov ebx, edi
cmp edi, ecx
jne 0x51127c
cmp dword [esp + 0xd8], 0
mov ebx, dword [esp + 0x24]
je 0x5112ba
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], ecx
mov dword [ecx], eax
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x5132b6
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
mov ecx, dword [esp + 0xc]
jne 0x51336d
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
sbb dword [esp + 0x40], eax
setb al
mov ecx, dword [ecx - 0x38]
movzx eax, al
push eax
push dword [esp + 0x24]
call fcn.005152b0
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x5132e1
cmp byte [esp + 0x18], 0
mov ecx, dword [esp + 0xc]
jne 0x5114b0
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x51333b
cmp dword [ecx - 0x3c], 0
jne 0x511fa1
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x51136c
movzx eax, byte [eax + 4]
test al, al
je 0x511ff0
mov eax, dword [esp + 0xc]
mov edi, dword [eax - 0x38]
mov edx, dword [eax - 0x34]
movzx ebx, byte [eax - 8]
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5131a4
mov edi, dword [edi + 0xf0]
test edi, edi
jne 0x511407
movzx eax, bl
mov ecx, dword [ebp + 8]
mov esi, edx
mov edx, dword [esp + 0x20]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], esi
mov dword [ecx + 8], eax
mov byte [ecx + 0x10], 1
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x513161
mov eax, dword [ebp + 8]
cmp byte [eax + 0x10], 1
jne 0x5113e0
mov eax, dword [ebx + 0x44]
test al, 2
jne 0x512faf
mov ecx, dword [esp + 0x458]
xor ecx, ebp
call fcn.00567335
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov byte [eax + 0x10], 0
jmp 0x5113b5
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x5131fe
cmp eax, 0x7fffffff
je 0x513201
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x513204
cmp eax, 0x7fffffff
je 0x513207
lock dec dword [edi]
jne 0x511457
mov ecx, dword [edi + 8]
mov esi, edx
call dword [0x6401dc]
push edi
call ecx
mov edx, esi
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x51320a
cmp eax, 0x7fffffff
je 0x51320d
movzx eax, bl
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x10], 1
lock dec dword [edi]
mov ebx, dword [esp + 0x24]
jne 0x5113b5
mov ecx, dword [edi + 8]
call dword [0x6401dc]
push edi
call ecx
add esp, 4
jmp 0x5113b5
cmp dword [ebx + 0x6c], 0
jne 0x511508
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x51377d
mov eax, dword [ebx + 0x150]
cmp eax, dword [ebx + 0x154]
jne 0x5115b0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x5137a8
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x64b570]
test al, al
jne 0x513808
mov esi, dword [ecx - 0x38]
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5136bc
mov edi, dword [esi + 0xe8]
test edi, edi
je 0x511591
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x5136fa
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x5136a9
cmp eax, 0x7fffffff
je 0x5136ac
lea ebx, [ecx - 0x30]
mov eax, dword [esi + 0xe8]
mov ecx, dword [eax + 4]
call dword [0x6401dc]
push ebx
push dword [esp + 0x24]
push edi
call ecx
mov ecx, dword [esp + 0x18]
add esp, 0xc
lock dec dword [edi]
je 0x51383a
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x64b570]
test al, al
je 0x511335
jmp 0x5137d6
lea eax, [ebx + 0x150]
mov dword [esp + 0xd8], eax
lea eax, [ebx + 0x15c]
mov dword [esp + 0xd4], eax
mov eax, dword [ebx + 0x15c]
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0xd0]
mov dword [eax + 4], ecx
mov dword [ebx + 0x15c], ecx
mov dword [esp + 0xdc], 0
mov ecx, 0xffffffff
cmp dword [ebx + 0x170], 0
jne 0x5136e6
mov dword [esp + 0xe0], ecx
mov edi, dword [esp + 0xd8]
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
cmp eax, ecx
cmovae eax, ecx
test eax, eax
je 0x511685
xor ecx, ecx
mov esi, dword [esp + 0xd8]
mov edx, dword [esi]
mov esi, dword [esi + 4]
sub esi, edx
sar esi, 3
cmp esi, ecx
jbe 0x512e86
cmp dword [edx + ecx*8 + 4], 0
je 0x51165c
mov esi, dword [edx + ecx*8]
test esi, esi
je 0x513210
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x513210
mov esi, dword [edx + ecx*8]
test esi, esi
je 0x5123d3
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x5123d3
cmp dword [edx + ecx*8 + 4], 0
je 0x5123d3
mov edi, dword [esp + 0xd8]
test edi, edi
je 0x5114ea
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
mov ebx, dword [edi]
mov esi, dword [edi + 4]
mov ecx, esi
sub ecx, ebx
sar ecx, 3
cmp ecx, edx
cmovb edx, ecx
cmp eax, edx
je 0x5117a2
cmp ecx, eax
jbe 0x512e86
mov ecx, dword [ebx + eax*8]
xor esi, esi
test ecx, ecx
je 0x5116d1
movzx ecx, byte [ecx + 4]
test cl, cl
je 0x512fb2
mov eax, dword [esp + 0xc]
movsd xmm0, qword [eax - 0x28]
movsd qword [esp + 0x70], xmm0
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x6401dc]
sub esp, 8
movq xmm0, qword [esp + 0x78]
movq qword [esp], xmm0
mov ecx, esi
call edi
mov edi, dword [esp + 0xd8]
test edi, edi
je 0x5114ea
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
inc eax
mov dword [esp + 0xdc], eax
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
sar ecx, 3
cmp ecx, edx
cmovae ecx, edx
cmp eax, ecx
jae 0x511685
mov esi, dword [esp + 0xd8]
mov edx, dword [esi]
mov esi, dword [esi + 4]
sub esi, edx
sar esi, 3
cmp esi, eax
jbe 0x512e86
cmp dword [edx + eax*8 + 4], 0
je 0x511770
mov esi, dword [edx + eax*8]
test esi, esi
je 0x512eda
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x512eda
mov esi, dword [edx + eax*8]
test esi, esi
je 0x51178a
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x51178a
cmp dword [edx + eax*8 + 4], 0
jne 0x51167e
mov eax, dword [esp + 0xdc]
inc eax
mov dword [esp + 0xdc], eax
cmp eax, ecx
jb 0x511739
jmp 0x51167e
mov eax, dword [edi + 0x10]
cmp eax, dword [edi + 0xc]
jne 0x5117eb
nop word [eax + eax]
cmp ebx, esi
je 0x5117eb
cmp dword [ebx + 4], 0
je 0x5117d0
mov eax, dword [ebx]
test eax, eax
je 0x512f17
movzx eax, byte [eax + 4]
test al, al
jne 0x512f17
mov eax, dword [ebx]
test eax, eax
je 0x51181c
movzx eax, byte [eax + 4]
test al, al
jne 0x51181c
cmp dword [ebx + 4], 0
je 0x51181c
add ebx, 8
cmp ebx, esi
jne 0x5117b4
cmp dword [esp + 0xd8], 0
je 0x5114ea
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], ecx
mov dword [ecx], eax
jmp 0x5114ea
lea edx, [ebx + 8]
jmp 0x51186f
cmp dword [edx + 4], 0
je 0x51183c
mov eax, dword [edx]
test eax, eax
je 0x5136af
mov al, byte [eax + 4]
test al, al
jne 0x5136af
mov eax, dword [edx]
test eax, eax
je 0x51186c
mov al, byte [eax + 4]
test al, al
jne 0x51186c
cmp dword [edx + 4], 0
je 0x51186c
mov ecx, dword [edx]
mov dword [edx], 0
mov eax, dword [ebx]
mov dword [ebx], ecx
test eax, eax
jne 0x512699
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
add ebx, 8
add edx, 8
cmp edx, esi
jne 0x511821
sub esi, ebx
jb 0x513a1c
je 0x5117eb
mov ecx, dword [edi + 4]
add esi, ebx
cmp esi, ecx
jne 0x513a59
mov edx, ebx
sub edx, ebx
add edx, ebx
cmp ecx, edx
je 0x5118b2
add ecx, 0xfffffff8
test ecx, ecx
je 0x51376e
mov eax, dword [ecx]
test eax, eax
jne 0x5118ba
lea eax, [ecx - 8]
cmp ecx, edx
mov ecx, eax
jne 0x51189b
mov dword [edi + 4], edx
jmp 0x5117eb
lock dec dword [eax]
jne 0x5118a9
push eax
mov ebx, edx
mov esi, ecx
call fcn.00564050
mov ecx, esi
mov edx, ebx
add esp, 4
jmp 0x5118a9
mov edx, dword [ebp + 0xc]
jmp 0x5106d2
mov byte [ebx + 0x1ac], 1
mov esi, dword [ecx - 0x38]
jmp 0x51105e
lock dec dword [eax]
jne 0x510be9
push eax
call fcn.00564050
add esp, 4
jmp 0x510be9
cmp dword [eax + 0x28], 0
jne 0x51268c
mov edi, dword [eax + 0x20]
mov esi, dword [eax + 0x24]
mov dword [esp + 0x1c], edi
add edi, 1
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], esi
adc esi, 0x80000000
cmp dword [esp + 0x38], 2
sbb esi, 0
jb 0x5133f8
add edx, dword [esp + 0x1c]
adc ecx, dword [esp + 0x18]
seto byte [esp + 0x18]
mov edi, ecx
sar edi, 0x1f
lea esi, [edi - 0x80000000]
cmp byte [esp + 0x18], 0
cmove edi, edx
mov dword [esp + 0x1c], edi
cmp byte [esp + 0x18], 0
cmove esi, ecx
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x10]
jmp 0x511ab1
mov ecx, edi
call dword [0x6401dc]
mov ecx, dword [esp + 0x40]
call edi
mov edi, dword [esp + 0x20]
jmp 0x51198c
call dword [0x6401dc]
push edi
call ecx
add esp, 4
lock dec dword [edi]
mov eax, dword [esp + 0xc]
je 0x5126b8
btc esi, eax
test esi, esi
je 0x510554
nop word cs:[eax + eax]
tzcnt ecx, esi
mov edi, dword [ebx + ecx*4 + 8]
test edi, edi
je 0x512eb9
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x512ebc
cmp eax, 0x7fffffff
je 0x512ebf
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + ecx*4 + 8]
mov ecx, dword [eax + 4]
cmp ecx, 0x5c4f60
jne 0x511980
mov eax, edi
mov edi, dword [edi + 0x10]
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 0x14]
cmp edi, 0x55ed60
mov dword [esp + 0x40], ecx
jne 0x51196c
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x513021
mov edi, dword [ecx + 0x64]
mov ecx, dword [edi + 0x1c]
push edi
call fcn.005155d0
cmp dword [edi + 8], 0
mov dword [esp + 0x34], esi
je 0x511bf3
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], eax
test eax, eax
je 0x511bf3
movzx edx, byte [edi + 0x48]
cmp dl, 1
mov dword [esp + 0x10], edi
je 0x5126d0
mov edi, dword [edi]
mov ecx, dword [edi]
test dl, dl
mov dword [esp + 0x1c], edi
jne 0x512944
mov eax, dword [edi + 0x10]
inc ecx
xor edx, edx
cmp ecx, eax
cmove ecx, edx
cmp eax, ecx
jbe 0x512ec2
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0xc]
imul ecx, ecx, 0x70
lea eax, [edi + ecx]
mov edx, dword [edi + ecx + 0x44]
mov dword [esp + 0x3c], edx
mov edx, dword [edi + ecx + 0x18]
mov ecx, dword [edi + ecx + 0x1c]
mov dword [esp + 0x1c], 0
mov edi, edx
or edi, ecx
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x10]
jne 0x511900
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov eax, edx
shr eax, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], ecx
shld edx, ecx, 0x18
mov dword [esp + 0x28], edx
mov al, 1
mov dword [esp + 0x2c], eax
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
sar ecx, 4
cmp ecx, edx
jbe 0x512e86
cmp byte [esp + 0x2c], 0
je 0x512ea4
mov edi, edx
shl edi, 4
lea ecx, [eax + edi]
mov esi, dword [eax + edi + 4]
mov dword [esp + 0x2c], esi
mov eax, dword [eax + edi + 8]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [esp + 0x30]
or eax, esi
mov dword [esp + 0xd4], edi
mov edi, edx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0050ae90
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x2c], eax
mov esi, dword [esp + 0x34]
jne 0x511bf3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
sar edx, 2
cmp edx, edi
jbe 0x512e86
inc dword [ecx + edi*4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
sar edx, 2
cmp edx, edi
jbe 0x512e86
cmp dword [ecx + edi*4], 1
jne 0x511bf3
mov ecx, dword [eax + 0x14]
mov edx, ecx
bts edx, edi
mov dword [eax + 0x14], edx
test ecx, ecx
jne 0x511bf3
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x511bf3
mov eax, dword [ecx + 0x40]
add ecx, 0x40
nop word cs:[eax + eax]
mov edx, eax
and edx, 0xfffffffd
lock cmpxchg dword [ecx], edx
jne 0x511be0
test al, 4
jne 0x5136b2
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x513036
cmp dword [ecx + 0x5c], 0
mov edi, dword [esp + 0x20]
je 0x51198c
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x512fc9
mov eax, dword [esp + 0x40]
cmp byte [eax + 0xa4], 1
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
jne 0x51198c
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x512fda
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 0x5c]
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x6401dc]
mov ecx, esi
call edi
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
jmp 0x51198c
call dword [0x6401dc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x511d2b
mov dword [ecx - 0x30], 1
cmp byte [ecx - 0x2c], 1
jne 0x511d70
movzx eax, byte [edx + 8]
test al, al
jne 0x511d5f
mov ecx, dword [fcn.005608f0]
cmp ecx, 0x5531a0
jne 0x511c6d
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
lea eax, [esp + 0xd0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov esi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd4]
cmp esi, 0x7bd05af7
mov eax, ebx
sbb eax, 0x863
jge 0x514579
mov ecx, 0xf4240
mov eax, esi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x5136d1
test edx, edx
je 0x512e95
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
mov al, 1
mov ecx, dword [esp + 0xc]
test al, al
je 0x512ea4
movq xmm0, qword [edx]
movq qword [ecx - 0x28], xmm0
mov al, 1
mov dword [esp + 0x18], eax
cmp byte [ecx - 0x2b], 1
jne 0x5110af
lea eax, [esp + 0xd0]
push eax
call fcn.00406820
mov ecx, dword [esp + 0x10]
add esp, 4
movq xmm0, qword [esp + 0xd0]
movq qword [ecx - 0x18], xmm0
jmp 0x5110af
lock dec dword [esi]
jne 0x510bff
mov ecx, dword [esi + 8]
call dword [0x6401dc]
push esi
call ecx
add esp, 4
jmp 0x510bff
call dword [0x6401dc]
lea eax, [esp + 0xa0]
push eax
call ecx
add esp, 4
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
jmp 0x510cd1
lock dec dword [edi + 4]
jne 0x510bf4
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x6401dc]
mov ecx, edi
push 1
call esi
jmp 0x510bf4
lea ecx, [esp + 0xd0]
push eax
call fcn.004ff390
jmp 0x511f0c
mov eax, dword [edi + 0x68]
test eax, eax
je 0x511e30
mov al, byte [eax + 4]
test al, al
je 0x5109e7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [ecx + 0x10]
inc eax
cmp eax, edx
mov esi, 0
cmove eax, esi
cmp edx, eax
jbe 0x512ed1
mov edx, dword [esp + 0xd0]
mov esi, 8
test dl, 1
je 0x511e66
mov esi, dword [esp + 0xdc]
imul eax, eax, 0x70
add eax, dword [ecx + 0xc]
mov ecx, edx
shr ecx, 1
cmp ecx, esi
mov edi, dword [esp + 0xc]
je 0x511e0c
lea esi, [esp + 0xd8]
test dl, 1
je 0x511e8b
mov esi, dword [esp + 0xd8]
imul ecx, ecx, 0x70
add ecx, esi
je 0x512e95
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax + 0x10]
movupd xmm1, xmmword [eax + 0x20]
movups xmmword [ecx + 0x10], xmm0
movupd xmmword [ecx + 0x20], xmm1
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [eax + 0x39]
movups xmmword [ecx + 0x39], xmm0
mov edx, dword [eax + 0x50]
mov dword [ecx + 0x50], edx
mov dword [eax + 0x50], 0
movzx edx, byte [eax + 0x5a]
mov byte [ecx + 0x5a], dl
movzx edx, word [eax + 0x58]
mov word [ecx + 0x58], dx
mov edx, dword [eax + 0x5c]
mov dword [ecx + 0x5c], edx
mov dword [eax + 0x5c], 0
movq xmm0, qword [eax + 0x60]
movq qword [ecx + 0x60], xmm0
mov edx, dword [eax + 0x68]
mov dword [ecx + 0x68], edx
mov dword [eax + 0x68], 0
mov eax, dword [eax + 0x6c]
mov dword [ecx + 0x6c], eax
add dword [esp + 0xd0], 2
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [eax + 0x10]
inc ecx
cmp ecx, edx
mov esi, 0
cmove ecx, esi
mov dword [eax], ecx
cmp edx, ecx
jbe 0x512ed4
mov ebx, dword [eax + 0xc]
imul esi, ecx, 0x70
mov eax, dword [ebx + esi + 0x68]
test eax, eax
jne 0x511f7b
add ebx, esi
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x511f70
mov esi, dword [ebx + 0x50]
test esi, esi
jne 0x511f8b
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax]
jne 0x511f5e
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x5127e7
mov eax, dword [esp + 0xc]
dec dword [eax + 8]
jne 0x510988
jmp 0x5109e7
lock dec dword [edi + 4]
jne 0x511f3f
jmp 0x512df0
lock dec dword [eax]
jne 0x511f36
push eax
call fcn.00564050
add esp, 4
jmp 0x511f36
lock dec dword [esi]
jne 0x511f46
mov ecx, dword [esi + 8]
call dword [0x6401dc]
push esi
call ecx
add esp, 4
jmp 0x511f46
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x511fb3
mov al, byte [eax + 4]
test al, al
je 0x511359
add ecx, 0xffffffa8
call fcn.005914c0
jmp 0x51136c
call dword [0x6401dc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x51065f
call dword [0x6401dc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x51077d
mov eax, dword [esp + 0xc]
cmp dword [eax - 0x3c], 0
je 0x51136c
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x51343f
mov al, byte [eax + 4]
test al, al
jne 0x51343f
mov esi, dword [ecx - 0x3c]
mov eax, dword [esi + 0xc]
mov byte [eax + 4], 1
push 8
call fcn.00564055
add esp, 4
mov dword [eax], 0
mov byte [eax + 4], 0
test eax, eax
je 0x51204d
xor ecx, ecx
inc ecx
lock xadd dword [eax], ecx
cmp ecx, 0x7fffffff
je 0x5136e3
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
test ecx, ecx
je 0x51136c
lock dec dword [ecx]
jne 0x51136c
push ecx
call fcn.00564050
add esp, 4
jmp 0x51136c
movsd xmm0, qword [ebx + 0x3c]
xorpd xmm1, xmm1
mov al, 1
ucomisd xmm0, xmm1
jbe 0x5133de
mov dword [esp + 0x20], eax
cmp byte [ebx + 0xdc], 0
je 0x5133e9
mov esi, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xd0]
mov eax, dword [ebx + 0xd8]
mov dword [esp + 0x10], eax
mov eax, edx
shld eax, esi, 0x17
mov ebx, esi
shl ebx, 0x17
xor ebx, esi
mov ecx, dword [esp + 0x24]
mov edi, dword [ecx + 0xd4]
xor eax, edx
mov ecx, eax
shld ecx, ebx, 0xf
mov dword [esp + 0x40], ecx
mov esi, dword [esp + 0x10]
mov edx, esi
shld edx, edi, 6
mov ecx, esi
shr ecx, 0x1a
xor ecx, esi
xor ecx, eax
shr eax, 0x11
xor eax, ecx
xor edx, edi
xor edx, ebx
mov ecx, dword [esp + 0x24]
xor edx, dword [esp + 0x40]
mov dword [ecx + 0xcc], edi
mov dword [ecx + 0xd0], esi
mov dword [ecx + 0xd4], edx
add edx, edi
mov dword [ecx + 0xd8], eax
adc eax, esi
mov ecx, eax
shr ecx, 0xb
movd xmm1, ecx
shld eax, edx, 0x15
movd xmm2, eax
punpckldq xmm2, xmm1
movq qword [esp + 0x68], xmm2
fild qword [esp + 0x68]
fstp qword [esp + 0x60]
movsd xmm1, qword [esp + 0x60]
mulsd xmm1, qword [0x6280a0]
ucomisd xmm0, xmm1
seta al
jmp 0x510a98
lea ecx, [esp + 0xd0]
call fcn.004febd0
cmp esi, 1
je 0x510a07
jmp 0x510824
mov ebx, dword [eax + 0x18]
mov ecx, ebx
push esi
push edi
push edx
call fcn.00527e50
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
test eax, eax
jne 0x513a2b
mov eax, dword [ebx + 0x5c]
test eax, eax
mov ecx, dword [esp + 0x20]
jne 0x512d84
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
jne 0x514164
mov ebx, dword [esp + 0x24]
jmp 0x5106d2
mov ebx, dword [eax + 0x18]
mov ecx, ebx
push esi
push edi
push edx
call fcn.00527e50
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
test eax, eax
jne 0x513a42
mov eax, dword [ebx + 0x5c]
test eax, eax
mov ecx, dword [esp + 0x20]
jne 0x512dba
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
jne 0x513c6e
mov ebx, dword [esp + 0x24]
jmp 0x5107f0
mov eax, dword [ebx + 0x114]
mov ecx, dword [ebx + 0x118]
sub ecx, eax
sar ecx, 4
mov edx, dword [esp + 0x20]
cmp ecx, edx
jbe 0x512efb
mov ecx, edx
shl ecx, 4
mov edx, ecx
mov ecx, dword [eax + ecx + 4]
cmp ecx, dword [eax + edx + 8]
je 0x51091f
inc dword [ebx + 0x124]
jmp 0x510929
call dword [0x6401dc]
lea esi, [esp + 0xa0]
push esi
call ecx
add esp, 4
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x5122f2
mov edi, dword [esp + 0xc]
cmp dword [edi + 8], 0
jne 0x51232c
cmp dword [edi + 0x50], 0
jne 0x512263
mov ecx, dword [edi + 0x1c]
push edi
call fcn.005155d0
cmp dword [edi + 4], 0
je 0x51232c
xor eax, eax
dec eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov ecx, dword [0x648080]
cmp ecx, 0x5531a0
jne 0x512229
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 edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
cmp edi, 0x7bd05af7
mov eax, ebx
sbb eax, 0x863
jge 0x51464a
mov eax, edi
mov ecx, 0xf4240
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edi, dword [esp + 0xc]
cmp eax, dword [edi + 0x10]
sbb edx, dword [edi + 0x14]
jl 0x51232c
mov eax, dword [edi + 0xc]
inc eax
cmp eax, 5
mov ecx, 4
cmovb eax, ecx
mov ecx, dword [edi]
mov edx, dword [edi + 8]
mov dword [edi + 0xc], edx
test ecx, ecx
je 0x51232c
lea edx, [eax + 0x10]
xor esi, esi
add esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x51231a
cmp edx, esi
jb 0x512e08
cmp dword [edi + 0x24], 0xffffffff
je 0x51233b
mov ecx, dword [edi + 0x18]
push edi
call fcn.004fed10
mov edi, dword [edi + 0x1c]
mov al, byte [0x64b570]
test al, al
jne 0x513a86
mov esi, dword [esp + 0xd0]
jmp 0x5109f7
mov esi, edi
mov edx, ecx
jmp 0x510e09
cmp dword [eax + 0x28], 0
jne 0x512357
mov esi, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x2c], esi
add esi, 1
mov dword [esp + 0x44], esi
mov esi, edx
adc esi, 0x80000000
cmp dword [esp + 0x44], 2
sbb esi, 0
jb 0x5145f8
add edi, dword [esp + 0x2c]
adc ecx, edx
seto byte [esp + 0x2c]
mov esi, ecx
sar esi, 0x1f
lea edx, [esi - 0x80000000]
cmp byte [esp + 0x2c], 0
cmove esi, edi
cmp byte [esp + 0x2c], 0
cmove edx, ecx
jmp 0x510e09
mov dword [esp + 0x20], 0
xor eax, eax
jmp 0x510a98
mov byte [ebx + 0x184], 1
jmp 0x510824
mov ecx, dword [esp + 0xdc]
inc ecx
mov dword [esp + 0xdc], ecx
cmp ecx, eax
jb 0x511625
jmp 0x51167e
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax]
mov dword [eax], ecx
test edi, edi
je 0x510c17
mov ecx, edi
call fcn.00515f90
push edi
call fcn.00564050
add esp, 4
jmp 0x510c17
xor ecx, ecx
jmp 0x511028
push eax
call fcn.004f5270
add esp, 4
jmp 0x512474
cmp edi, ecx
jne 0x512e41
sub ecx, ebx
jb 0x513a1c
je 0x51128e
mov edi, dword [esi + 4]
add ecx, ebx
mov edx, ebx
cmp ecx, edi
je 0x512495
mov dword [esp + 0x3c], edi
cmp edx, ecx
je 0x512484
mov dword [esp + 0x34], ecx
mov eax, dword [edx]
mov ecx, eax
shr ecx, 0xe
mov edi, edx
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64e810]
bt edx, ecx
jb 0x512422
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
mov dword [edi], eax
mov dword [ecx], 0
mov edx, edi
add ecx, 4
add edx, 4
mov edi, dword [esp + 0x3c]
cmp ecx, edi
jne 0x512452
mov edi, dword [esi + 4]
sub edx, ebx
add edx, ebx
cmp edi, edx
je 0x5124d3
add edi, 0xfffffffc
test edi, edi
je 0x51376e
mov ebx, edx
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64e810]
bt edx, ecx
jb 0x5124db
mov dword [edi], 0
lea eax, [edi - 4]
mov edx, ebx
cmp edi, ebx
mov edi, eax
jne 0x5124a0
mov dword [esi + 4], edx
jmp 0x51128e
push eax
call fcn.004f5270
add esp, 4
jmp 0x5124c2
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x50], esi
jmp 0x5125b7
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], esi
mov edx, dword [esp + 0x2c]
cmp dword [edx + 0x28], 0
jne 0x5124e6
mov esi, dword [edx + 0x20]
mov edi, dword [edx + 0x24]
mov dword [esp + 0x54], esi
mov edx, esi
add edx, 1
mov dword [esp + 0x50], edi
adc edi, 0x80000000
cmp edx, 2
sbb edi, 0
jb 0x514889
mov edx, dword [esp + 0x28]
add edx, dword [esp + 0x54]
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x48]
adc esi, dword [esp + 0x50]
seto byte [esp + 0x48]
mov edx, esi
sar edx, 0x1f
lea edi, [edx - 0x80000000]
cmp byte [esp + 0x48], 0
cmove edx, dword [esp + 0x28]
cmp byte [esp + 0x48], 0
cmove edi, esi
mov dword [esp + 0x50], edi
jmp 0x5125b7
inc ecx
mov esi, dword [eax + 0x10]
xor edi, edi
cmp ecx, esi
mov edx, ecx
mov dword [esp + 0x50], 0
cmove edx, edi
mov dword [esp + 0x44], esi
cmp esi, edx
jbe 0x513a83
mov esi, dword [eax + 0xc]
imul edx, edx, 0x70
lea edi, [esi + edx]
mov dword [esp + 0x2c], edi
mov edi, dword [esi + edx + 0x44]
mov dword [esp + 0x5c], edi
mov edi, dword [esi + edx + 0x18]
mov esi, dword [esi + edx + 0x1c]
mov edx, edi
or edx, esi
mov edx, 0
jne 0x5124f7
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x2c]
mov esi, dword [edx + 0x60]
mov dword [esp + 0x28], esi
mov esi, dword [edx + 0x64]
mov edx, dword [esp + 0xc]
mov edi, dword [edx + 0x30]
mov dword [esp + 0x2c], edi
mov edi, dword [edx + 0x34]
mov dword [esp + 0x4c], esi
mov edx, esi
mov dword [esp + 0x48], edi
xor edx, edi
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
xor esi, edi
or esi, edx
je 0x51260d
cmp dword [esp + 0x28], edi
mov edx, dword [esp + 0x4c]
sbb edx, dword [esp + 0x48]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x44]
jb 0x510dd2
jmp 0x512644
mov edx, dword [esp + 0xc]
mov esi, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x28], edx
xor edi, edx
mov edx, dword [esp + 0x54]
xor edx, esi
or edx, edi
jne 0x5148de
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x5c]
cmp edx, dword [edi + 0x40]
mov esi, dword [esp + 0x44]
jl 0x510dd2
mov edx, dword [esp + 0x30]
jmp 0x510d1b
cmp eax, ecx
jbe 0x512efb
shl ecx, 4
mov eax, dword [edx + ecx + 4]
cmp eax, dword [edx + ecx + 8]
je 0x51266d
mov edi, dword [eax + 0x18]
test edi, edi
jne 0x510915
lea ecx, [ebx + 0xe4]
movzx eax, byte [esp + 0xc]
push eax
call fcn.004233d0
mov edi, eax
jmp 0x510915
xor ecx, ecx
jmp 0x510ea2
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
jmp 0x511ab1
lock dec dword [eax]
jne 0x511863
push eax
mov dword [esp + 0x44], edx
call fcn.00564050
mov edx, dword [esp + 0x44]
add esp, 4
jmp 0x511863
mov ecx, dword [edi + 8]
call dword [0x6401dc]
push edi
call ecx
mov eax, dword [esp + 0x10]
add esp, 4
jmp 0x511999
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
inc edx
xor ecx, ecx
cmp edx, dword [esp + 0x14]
cmovne ecx, edx
cmp dword [esp + 0x14], ecx
jbe 0x512ec5
imul ecx, ecx, 0x70
add ecx, dword [eax + 0xc]
lea eax, [esp + 0xd0]
push eax
call fcn.0053e980
mov dl, byte [edi + 0x48]
test dl, dl
je 0x512eec
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x1c], eax
mov edi, dword [edi + 0x34]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edi
xor eax, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
xor ecx, edi
or ecx, eax
je 0x512798
cmp dword [esp + 0x18], edi
mov eax, dword [esp + 0x14]
sbb eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
jae 0x511bf3
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], eax
cmp dword [edi + 8], 0
jne 0x511a53
xor eax, eax
dec eax
mov dword [esp + 0x38], 0xffffff
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], 0
jmp 0x511ad2
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
xor edi, eax
mov eax, ecx
mov dword [esp + 0x14], esi
xor eax, esi
or eax, edi
jne 0x514c8b
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 0x40]
mov esi, dword [esp + 0x34]
jl 0x512757
jmp 0x511bf3
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax]
mov dword [eax], ecx
test edi, edi
je 0x511f5e
mov ecx, edi
call fcn.00515f90
push edi
call fcn.00564050
add esp, 4
jmp 0x511f5e
mov ecx, dword [esp + 0x24]
lea edx, [ecx + 0x1b0]
mov dword [esp + 0x28], edx
cmp eax, 0x18
jae 0x5147d9
mov eax, ecx
mov ecx, dword [ecx + 0x1b0]
mov edx, dword [eax + 0x1bc]
mov eax, edx
mov dword [esp + 0x30], ecx
sub eax, ecx
mov dword [esp + 0xc], eax
cmp esi, eax
jb 0x514771
mov ecx, dword [esp + 0xc]
sar ecx, 1
cmp edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
lea eax, [eax + 0x1c0]
mov dword [esp + 0x80], eax
mov eax, 1
cmove ecx, eax
cmp ecx, 0x40000000
jae 0x514645
mov dword [esp + 0xc], ecx
lea eax, [ecx*4]
mov dword [esp + 0x2c], eax
push eax
call fcn.00564055
add esp, 4
mov dword [esp + 0x70], eax
lea ecx, [eax + esi]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx*4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x7c], eax
push 0xfc0
call fcn.00564055
add esp, 4
cmp esi, dword [esp + 0x2c]
je 0x514803
mov ebx, dword [esp + 0x28]
test ebx, ebx
mov esi, dword [esp + 0x24]
je 0x512e95
mov dword [ebx], eax
lea ecx, [ebx + 4]
mov dword [esp + 0x78], ecx
mov edi, dword [esi + 0x1b8]
cmp edi, dword [esi + 0x1b4]
jne 0x5146e2
mov eax, dword [esi + 0x1b0]
mov edx, dword [esp + 0x30]
mov dword [esi + 0x1b0], edx
mov dword [esi + 0x1b4], ebx
mov dword [esi + 0x1b8], ecx
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x1bc], ecx
test eax, eax
jne 0x5146d4
mov edi, dword [esi + 0x1b4]
mov ebx, dword [esi + 0x1b8]
jmp 0x510ebc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], esi
jmp 0x51298e
inc ecx
mov eax, dword [edi + 0x10]
xor esi, esi
cmp ecx, eax
mov edx, edi
mov edi, ecx
mov dword [esp + 0x28], 0
cmove edi, esi
cmp eax, edi
jbe 0x512ec8
mov dword [esp + 0x3c], eax
mov esi, dword [edx + 0xc]
imul edi, edi, 0x70
lea edx, [esi + edi]
mov eax, dword [esi + edi + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [esi + edi + 0x18]
mov esi, dword [esi + edi + 0x1c]
mov edi, eax
or edi, esi
mov dword [esp + 0x2c], 0
jne 0x5129e0
mov eax, dword [edx + 0x60]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x64]
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x30]
mov edi, dword [edx + 0x34]
mov edx, eax
mov dword [esp + 0x38], edi
xor edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], esi
xor edi, esi
or edi, edx
je 0x512a52
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x30]
sbb eax, dword [esp + 0x38]
mov edx, 0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
jb 0x511a69
jmp 0x512768
mov dword [esp + 0x18], eax
cmp dword [edx + 0x28], 0
jne 0x512936
mov eax, dword [edx + 0x20]
mov dword [esp + 0x38], edx
mov edi, dword [edx + 0x24]
mov dword [esp + 0x2c], eax
add eax, 1
mov dword [esp + 0x28], edi
adc edi, 0x80000000
cmp eax, 2
sbb edi, 0
jb 0x51339c
mov edi, dword [esp + 0x18]
add edi, dword [esp + 0x2c]
adc esi, dword [esp + 0x28]
seto byte [esp + 0x18]
mov edx, esi
sar edx, 0x1f
lea eax, [edx - 0x80000000]
cmp byte [esp + 0x18], 0
cmove edx, edi
mov dword [esp + 0x2c], edx
cmp byte [esp + 0x18], 0
cmove eax, esi
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x38]
jmp 0x51298e
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x38]
mov edi, dword [edx + 0x3c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], edi
xor edx, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x18], esi
xor edi, esi
or edi, edx
jne 0x514e8e
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 0x40]
mov edx, 0
mov eax, dword [esp + 0x3c]
jl 0x511a69
jmp 0x512768
cmp dword [ebx + 0x6c], 0
jle 0x510a3b
xor eax, eax
dec eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x130], xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
mov ecx, edi
lea eax, [esp + 0xd0]
push eax
call fcn.005162a0
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x140], eax
mov eax, dword [edi + 0x50]
mov dword [esp + 0x144], eax
mov ecx, dword [ebx + 0x78]
mov ebx, dword [ebx + 0x7c]
mov eax, ebx
mov dword [esp + 0xc], ecx
sub eax, ecx
jb 0x514e7a
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x74]
inc eax
xor edx, edx
mov ecx, esi
sub ecx, 1
cmovb ecx, edx
cmp ecx, eax
jae 0x512bf0
mov edx, ecx
shr edx, 2
add edx, ecx
cmp eax, edx
cmova edx, eax
cmp edx, 4
mov esi, 3
cmovae esi, edx
inc esi
mov ecx, pe_nt_image_headers32
mov eax, esi
mul ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + 0x78]
mov dword [esp + 0x20], ecx
lea eax, [eax + 0x7c]
mov dword [esp + 0x10], eax
jo 0x514f12
mov eax, dword [esp + 0x24]
add eax, 0x70
mov dword [esp + 0x1c], eax
push 0
push dword [esp + 0x18]
push 0x637600
call fcn.0051f430
add esp, 0xc
mov edi, eax
test eax, eax
je 0x514c65
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
push dword [esp + 0x10]
push dword [esp + 0x24]
lea eax, [esp + 0x78]
push eax
push ebx
call fcn.00406ae0
add esp, 0x10
push 0
mov ebx, dword [esp + 0x28]
push dword [ebx + 0x70]
push 0x637600
call fcn.0050e100
add esp, 0xc
mov dword [ebx + 0x70], edi
mov dword [ebx + 0x74], esi
mov ebx, dword [ebx + 0x7c]
cmp esi, ebx
jb 0x512eb3
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x70]
imul ecx, ebx, 0x78
movaps xmm0, xmmword [esp + 0xd0]
movups xmmword [eax + ecx], xmm0
movaps xmm0, xmmword [esp + 0xe0]
movapd xmm1, xmmword [esp + 0xf0]
movups xmmword [eax + ecx + 0x10], xmm0
movupd xmmword [eax + ecx + 0x20], xmm1
movaps xmm0, xmmword [esp + 0x100]
movups xmmword [eax + ecx + 0x30], xmm0
movups xmm0, xmmword [esp + 0x109]
movups xmmword [eax + ecx + 0x39], xmm0
mov edx, dword [esp + 0x120]
mov dword [eax + ecx + 0x50], edx
xor edx, edx
mov dword [esp + 0x120], edx
mov bl, byte [esp + 0x12a]
mov byte [eax + ecx + 0x5a], bl
movzx esi, word [esp + 0x128]
mov word [eax + ecx + 0x58], si
mov esi, dword [esp + 0x12c]
mov dword [eax + ecx + 0x5c], esi
mov dword [esp + 0x12c], edx
movsd xmm0, qword [esp + 0x130]
movsd qword [eax + ecx + 0x60], xmm0
mov esi, dword [esp + 0x138]
mov dword [eax + ecx + 0x68], esi
mov dword [esp + 0x138], edx
mov esi, dword [esp + 0x13c]
mov dword [eax + ecx + 0x6c], esi
movq xmm0, qword [esp + 0x140]
movq qword [eax + ecx + 0x70], xmm0
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x7c]
mov ebx, edi
lea esi, [eax - 1]
lea edi, [ecx + 1]
cmp ecx, esi
cmove edi, edx
mov dword [ebx + 0x7c], edi
test edi, edi
je 0x51491b
cmp eax, ecx
jb 0x512eb6
mov eax, dword [esp + 0x138]
test eax, eax
jne 0x512d18
mov esi, dword [esp + 0x12c]
test esi, esi
jne 0x512d0d
mov esi, dword [esp + 0x120]
test esi, esi
jne 0x512d28
mov ebx, dword [esp + 0x24]
jmp 0x510824
lock dec dword [esi + 4]
jne 0x512cf9
jmp 0x5130fd
lock dec dword [eax]
jne 0x512cee
push eax
call fcn.00564050
add esp, 4
jmp 0x512cee
lock dec dword [esi]
jne 0x512d04
mov ecx, dword [esi + 8]
call dword [0x6401dc]
push esi
call ecx
add esp, 4
jmp 0x512d04
mov ecx, edi
push eax
call fcn.00517150
mov eax, dword [esp + 0xa4]
mov ecx, 0x4c4b40
add ecx, dword [esp + 0xa0]
adc eax, 0
mov edx, 0x7fffffff
cmovno edx, eax
mov eax, 0xffffffff
cmovo ecx, eax
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], edx
jmp 0x510d0b
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
jmp 0x510a07
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x5148f3
mov ebx, ecx
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
call dword [0x6401dc]
mov ecx, ebx
push dword [ebp + 0xc]
call dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
jmp 0x512192
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x514907
mov ebx, ecx
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
call dword [0x6401dc]
mov ecx, ebx
push dword [ebp + 0xc]
call dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
jmp 0x5121d4
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x6401dc]
mov ecx, edi
push 1
call esi
jmp 0x511f3f
mov ecx, edi
push eax
call fcn.00517150
mov eax, dword [esp + 0xa4]
mov ecx, 0x4c4b40
add ecx, dword [esp + 0xa0]
adc eax, 0
mov edx, 0x7fffffff
cmovno edx, eax
mov eax, 0xffffffff
cmovo ecx, eax
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], edx
jmp 0x51232c
mov dword [esp + 0x34], ecx
mov eax, dword [edi]
test eax, eax
jne 0x512e57
add edi, 4
mov ecx, dword [esp + 0x34]
jmp 0x51242d
cmp edi, ebx
je 0x512e81
mov ecx, dword [ebx]
mov edx, ecx
shr edx, 0xe
mov dword [esp + 0x3c], ecx
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x64e810]
bt ecx, edx
jb 0x514ca0
mov dword [ebx], eax
mov dword [edi], 0
add ebx, 4
jmp 0x512e4b
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624e92
call fcn.005912b0
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
push str....._third_partylibc_srcincludeoptional:800:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x624e92
call fcn.005912b0
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
push str....._third_partylibc_srcinclude_vector:618:_assertion__empty___failed:_front___called_on_an_empty_vector_n
push 0x624e92
call fcn.005912b0
push str....._third_partylibc_srcincludeoptional:785:_assertion_this__has_value___failed:_optional_operator___called_on_a_disengaged_value_n
push 0x624e92
call fcn.005912b0
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624e92
call fcn.005912b0
xor ecx, ecx
jmp 0x510a31
int3
int3
int3
mov eax, dword [ebx + 0xec]
mov ecx, dword [ebx + 0xf0]
mov edx, ecx
sub edx, eax
sar edx, 2
mov esi, dword [esp + 0x20]
cmp edx, dword [esp + 0x20]
je 0x510929
lea edi, [ebx + 0x110]
jmp 0x512f6d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xec]
mov ecx, dword [ecx + 0xf0]
mov dl, byte [esp + 0xc]
inc dl
mov byte [esp + 0xc], dl
movzx ebx, dl
mov edx, ecx
sub edx, eax
sar edx, 2
mov esi, ebx
cmp edx, ebx
je 0x512fa4
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0xf8]
bt edx, esi
jae 0x512f53
mov ecx, edi
push esi
call fcn.00563be0
test al, al
jne 0x512f43
mov ebx, dword [esp + 0x24]
lea ecx, [ebx + 0xe4]
movzx eax, byte [esp + 0xc]
push eax
call fcn.005cf1e0
mov edi, eax
jmp 0x510929
xor edi, edi
mov ebx, dword [esp + 0x24]
jmp 0x510929
int3
mov esi, dword [ebx + eax*8 + 4]
jmp 0x5116d1
mov ecx, 0xfc0
add ecx, dword [esi + edx*4 - 4]
jmp 0x511030
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x511c21
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x511c48
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51493b
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x514943
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513b03
int3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x40]
cmp edi, eax
je 0x511a19
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x40]
cmp edi, eax
je 0x511c05
int3
inc eax
mov dword [esp + 0xdc], eax
cmp edx, eax
jne 0x51124a
mov eax, edx
jmp 0x5111bf
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x510a4c
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5110e5
int3
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x51068f
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x5107ad
inc eax
mov dword [esp + 0xdc], eax
cmp edx, eax
jne 0x511197
mov eax, edx
mov ebx, dword [esp + 0x24]
jmp 0x5111b7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x510a67
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x40]
cmp edi, eax
je 0x510fc9
int3
mov ecx, dword [ebx + 0x130]
sub ecx, dword [ebx + 0x12c]
sar ecx, 2
jmp 0x511176
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x6401dc]
mov ecx, esi
push 1
call edi
jmp 0x512cf9
movzx eax, al
lea ecx, [esp + 0xd0]
mov dword [ecx], str.SequenceManagerImpl::SelectNextTask
lea edx, [esp + 0x70]
push 1
push ecx
push edx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x510538
movzx eax, al
lea ecx, [esp + 0xd0]
mov dword [ecx], str.SequenceManagerImpl::MoveReadyDelayedTasksToWorkQueues
lea edx, [esp + 0x70]
push 1
push ecx
push edx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x510575
movzx eax, al
mov dword [esp + 0xd0], 0
push 2
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x5113cc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
cmp edi, eax
je 0x51106c
int3
mov dword [esp + 0xc], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [esp + 0xc]
cmp esi, eax
je 0x511388
int3
movzx eax, al
lea ecx, [esp + 0xd0]
mov dword [ecx], 0
lea edx, [esp + 0x70]
push 2
push ecx
push edx
push eax
call fcn.00591070
mov edx, dword [ebp + 0xc]
add esp, 0x10
jmp 0x510807
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
cmp edi, eax
je 0x511087
int3
int3
int3
int3
int3
int3
int3
int3
movzx eax, al
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x40]
mov ecx, ebx
lea esi, [esp + 0x70]
mov edx, esi
push edi
call fcn.005c45a0
add esp, 4
lea eax, [esp + 0xa0]
mov dword [eax], str.SequenceManager
mov dword [esp + 0xd0], str.snapshot
lea edx, [esp + 0x98]
mov ecx, dword [esp + 0x20]
push esi
lea esi, [esp + 0xd4]
push esi
push ebx
push eax
call fcn.005c5560
add esp, 0x10
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x70], 0
test ecx, ecx
jne 0x513282
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
jmp 0x510947
push 1
call fcn.005c6550
jmp 0x513275
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.WillProcessTaskObservers
push 1
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x511110
movzx eax, al
mov dword [esp + 0xd0], 0
push 2
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x5112d1
movzx eax, al
mov dword [esp + 0xd0], 0
push 2
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x511326
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManagerImpl::NotifyWillProcessTaskObservers
push 1
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x51104b
movzx eax, al
mov dword [esp + 0xd0], 0
lea ecx, [esp + 0xa0]
push 2
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.00591070
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x51134f
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.QueueNotifyWillProcessTask
push 1
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x5112ec
mov edi, dword [esp + 0x18]
xor edx, edx
inc edx
add edi, edx
mov eax, esi
adc esi, 0x80000000
mov dword [esp + 0x30], 0
cmp edx, edi
sbb dword [esp + 0x30], esi
setb dh
mov esi, dword [esp + 0x18]
xor esi, dword [esp + 0x2c]
xor eax, dword [esp + 0x28]
or eax, esi
sete dl
or dl, dh
mov edx, dword [esp + 0x38]
jne 0x51298e
int3
mov dword [esp + 0x20], eax
xor eax, eax
jmp 0x510a98
push str....._third_partylibc_srcincludeoptional:790:_assertion_this__has_value___failed:_optional_operator___called_on_a_disengaged_value_n
push 0x624e92
call fcn.005912b0
mov dword [esp + 0x38], edx
xor edi, edi
inc edi
add dword [esp + 0x38], edi
mov esi, edi
mov dword [esp + 0x30], ecx
mov edi, 0x80000000
adc dword [esp + 0x30], edi
xor edi, edi
cmp esi, dword [esp + 0x38]
sbb edi, dword [esp + 0x30]
setb byte [esp + 0x38]
xor edx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x18]
or ecx, edx
sete cl
or cl, byte [esp + 0x38]
mov edi, dword [esp + 0x10]
jne 0x511ab1
int3
int3
mov ebx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp + 0x18], edx
add edx, 1
mov dword [esp + 0x10], ebx
adc ebx, 0x80000000
cmp edx, 2
mov edx, dword [eax]
mov dword [esp + 0x14], edx
sbb ebx, 0
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
jb 0x5134af
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
sbb edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
seto byte [esp + 0x10]
mov ebx, edx
sar ebx, 0x1f
lea edx, [ebx - 0x80000000]
cmp byte [esp + 0x10], 0
cmove ebx, dword [esp + 0x14]
cmp byte [esp + 0x10], 0
cmove edx, dword [esp + 0x1c]
jmp 0x5106bf
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
xor edx, dword [esp + 0x10]
or edx, ebx
je 0x514922
mov edx, 0x80000000
mov ebx, dword [esp + 0x10]
shr ebx, 0x1f
not ebx
mov dword [esp + 0x10], ebx
xor ebx, ebx
inc ebx
add dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x10]
adc edx, 0xffffffff
jmp 0x5106bf
mov ebx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp + 0x18], edx
add edx, 1
mov dword [esp + 0x10], ebx
adc ebx, 0x80000000
cmp edx, 2
mov edx, dword [eax]
mov dword [esp + 0x14], edx
sbb ebx, 0
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
jb 0x513559
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
sbb edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
seto byte [esp + 0x10]
mov ebx, edx
sar ebx, 0x1f
lea edx, [ebx - 0x80000000]
cmp byte [esp + 0x10], 0
cmove ebx, dword [esp + 0x14]
cmp byte [esp + 0x10], 0
cmove edx, dword [esp + 0x1c]
jmp 0x5107dd
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
xor edx, dword [esp + 0x10]
or edx, ebx
je 0x514925
mov edx, 0x80000000
mov ebx, dword [esp + 0x10]
shr ebx, 0x1f
not ebx
mov dword [esp + 0x10], ebx
xor ebx, ebx
inc ebx
add dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x10]
adc edx, 0xffffffff
jmp 0x5107dd
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 4]
mov ebx, dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test ebx, ebx
sete cl
cmp eax, edi
setne dl
or dl, cl
je 0x514928
cmp edi, eax
jne 0x510e77
lea edi, [esi + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x5135d4
push edi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xc], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514a48
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x30], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514a59
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x28], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514a6a
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x2c], eax
mov ebx, dword [esi + 0x70]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x90], 0x124
mov al, byte [0x64b570]
test al, al
je 0x510e77
mov edx, dword [esp + 0x30]
add edx, dword [esp + 0xc]
sub ebx, dword [esp + 0x2c]
sar ebx, 4
imul ecx, ebx, 0xb6db6db7
mov ebx, dword [esp + 0x28]
add ebx, ecx
add ebx, edx
movzx edi, al
push dword [esi + 4]
call fcn.005d02a0
add esp, 4
lea ecx, [esp + 0x94]
mov dword [ecx], eax
mov dword [esp + 0x70], ebx
lea eax, [esp + 0xa0]
mov dword [eax], 0x6279a7
xor edx, edx
lea esi, [esp + 0x90]
lea ebx, [esp + 0x70]
push ebx
push eax
push edx
push 0x43
push 0x627728
push edx
push ecx
push esi
push edi
call fcn.005d02d0
add esp, 0x24
jmp 0x510e77
int3
int3
int3
call fcn.005911b0
jmp 0x511bf3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
cmp edi, eax
je 0x511533
int3
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x511d5b
int3
mov ecx, dword [ebx + 0x154]
sub ecx, dword [ebx + 0x150]
sar ecx, 3
jmp 0x511604
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
jne 0x514957
mov edi, dword [esi + 0xe8]
test edi, edi
mov ecx, dword [esp + 0xc]
jne 0x51154b
int3
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov ebx, dword [edx + 0xc]
mov esi, dword [edx + 8]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
xor edi, esi
mov esi, ecx
mov dword [esp + 0x14], ebx
xor esi, ebx
or esi, edi
je 0x513751
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x1c], eax
sbb ecx, dword [esp + 0x14]
jmp 0x513757
mov ecx, dword [edx + 0x10]
cmp dword [eax + 0x10], ecx
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jl 0x510915
jmp 0x5108e9
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x624e92
call fcn.005912b0
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.WillProcessTaskTimeObservers
push 1
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x5114cd
movzx eax, al
mov dword [esp + 0xd0], 0
lea ecx, [esp + 0xa0]
push 2
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.00591070
add esp, 0x10
jmp 0x511504
movzx eax, al
mov dword [esp + 0xd0], 0
lea ecx, [esp + 0xa0]
push 2
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.00591070
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x511335
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.QueueOnTaskStarted
lea ecx, [esp + 0xa0]
push 1
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.00591070
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x511522
mov ecx, dword [edi + 8]
call dword [0x6401dc]
push edi
call ecx
mov ecx, dword [esp + 0x10]
add esp, 4
jmp 0x511591
mov eax, dword [0x64b6c8]
mov dword [esp + 0xc], eax
mov edx, dword [0x64b6cc]
mov dword [esp + 0x10], edx
push edx
push eax
mov dword [esp + 0x24], ecx
push ecx
push ebx
call fcn.005877d0
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], edx
mul dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x10]
add eax, ecx
mov edx, dword [esp + 0x3c]
imul ecx, edx, 0xf4240
mov dword [esp + 0x18], ecx
imul edx, dword [esp + 0xc]
add edx, eax
sub ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
sbb ecx, edx
mov edx, 0xf4240
mov eax, dword [esp + 0x14]
mul edx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, ebx
mov edx, 0xf4240
mul edx
imul ecx, ecx, 0xf4240
add edx, ecx
push dword [esp + 0x10]
push dword [esp + 0x10]
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x1c]
jmp 0x510651
mov eax, dword [0x64b6c8]
mov dword [esp + 0xc], eax
mov edx, dword [0x64b6cc]
mov dword [esp + 0x10], edx
push edx
push eax
mov dword [esp + 0x24], ecx
push ecx
push ebx
call fcn.005877d0
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], edx
mul dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x10]
add eax, ecx
mov edx, dword [esp + 0x3c]
imul ecx, edx, 0xf4240
mov dword [esp + 0x18], ecx
imul edx, dword [esp + 0xc]
add edx, eax
sub ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
sbb ecx, edx
mov edx, 0xf4240
mov eax, dword [esp + 0x14]
mul edx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, ebx
mov edx, 0xf4240
mul edx
imul ecx, ecx, 0xf4240
add edx, ecx
push dword [esp + 0x10]
push dword [esp + 0x10]
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x1c]
jmp 0x51076f
mov esi, dword [0x64b6c8]
mov dword [esp + 0x48], esi
mov eax, dword [0x64b6cc]
mov dword [esp + 0x30], eax
push eax
push esi
push ebx
push edi
call fcn.005877d0
mov dword [esp + 0x28], eax
mov ecx, edx
mov eax, dword [esp + 0x28]
mul esi
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
mov esi, eax
imul esi, dword [esp + 0x30]
add edx, esi
imul esi, ecx, 0xf4240
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x48]
imul ecx, esi
add ecx, edx
sub edi, dword [esp + 0x44]
sbb ebx, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x28], eax
add edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add edx, ecx
push dword [esp + 0x30]
push esi
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
jmp 0x510cbf
push str....._third_partylibc_srcinclude_vector:1557:_assertion___first_____last_failed:_vector::erase_first__last__called_with_invalid_range_n
push 0x624e92
call fcn.005912b0
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x512183
int3
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x5121c5
int3
mov dword [esp + 0x40], ecx
mov edx, ebx
mov ecx, edx
mov dword [esp + 0x10], edx
push esi
call fcn.0055ae00
add esi, 8
mov edx, dword [esp + 0x10]
add edx, 8
cmp esi, dword [esp + 0x40]
jne 0x513a5f
mov ecx, dword [edi + 4]
jmp 0x511890
int3
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test ebx, ebx
sete cl
cmp eax, esi
setne dl
or dl, cl
je 0x512ed7
cmp esi, eax
jne 0x51234b
lea ebx, [edi + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x513ac4
push ebx
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x20], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x512feb
mov ecx, dword [edi + 0x64]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x10], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x512ffc
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x14], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x51300d
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x1c], eax
mov esi, dword [edi + 0x70]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x94], 0x124
mov al, byte [0x64b570]
test al, al
je 0x51234b
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x20]
sub esi, dword [esp + 0x1c]
sar esi, 4
imul ecx, esi, 0xb6db6db7
mov esi, dword [esp + 0x14]
add esi, ecx
add esi, edx
movzx ebx, al
push dword [edi + 4]
call fcn.005d02a0
add esp, 4
lea ecx, [esp + 0x98]
mov dword [ecx], eax
mov dword [esp + 0x70], esi
lea eax, [esp + 0xa0]
mov dword [eax], 0x6279a7
xor edx, edx
lea esi, [esp + 0x94]
lea edi, [esp + 0x70]
push edi
push eax
push edx
push 0x43
push 0x627728
push edx
push ecx
push esi
push ebx
call fcn.005d02d0
add esp, 0x24
jmp 0x51234b
test esi, esi
je 0x513be1
jmp 0x5149e2
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x514bf1
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x513cd3
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f2f30
mov esi, dword [ecx + 8]
jne 0x513b99
test esi, esi
jne 0x514c02
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xa4], 0
je 0x513cd3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x514c13
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
je 0x512edd
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x514c24
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
jne 0x514fd1
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 0x24], 0x562590
mov esi, dword [ecx + 8]
jne 0x513c61
test esi, esi
je 0x513dea
jmp 0x51496b
test esi, esi
je 0x513dea
jmp 0x5149f3
lea ebx, [esp + 0x70]
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.004fde40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x512edd
cmp dword [eax + 0x14], 1
je 0x515069
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x74]
sbb ecx, edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
jl 0x513d0a
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0055f360
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x513c72
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
jmp 0x5107f0
mov byte [esp + 0x70], 0
xor esi, esi
dec esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], esi
jmp 0x513e41
test esi, esi
je 0x513d6b
jmp 0x5149af
test esi, esi
je 0x513dea
jmp 0x51498d
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0x4f2cd0
jne 0x513ba2
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x514b14
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x513cd3
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f2f30
mov esi, dword [ecx + 8]
jne 0x513cf4
test esi, esi
jne 0x514b25
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xa4], 0
je 0x513cd3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x514b36
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
je 0x512edd
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x514b47
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
jne 0x514f93
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 0x24], 0x562590
mov esi, dword [ecx + 8]
jne 0x513cfd
test esi, esi
jne 0x514b58
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0x64]
mov al, byte [eax + 0x35]
xor esi, esi
cmp ebx, 2
cmovne esi, ebx
cmp al, byte [ecx + 0x20]
cmovae esi, ebx
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov ebx, dword [edi + 0x24]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], esi
mov al, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x88], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514b69
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x5c], 0
jne 0x514cbc
lea ecx, [esp + 0x89]
mov edx, dword [ecx - 0x19]
mov dword [esp + 0x1c], edx
mov ebx, dword [ecx - 0x15]
mov edx, dword [ecx]
mov ecx, dword [ecx + 3]
mov dword [esp + 0xa3], ecx
mov dword [esp + 0xa0], edx
mov edi, dword [eax + 8]
test edi, edi
jne 0x514b7a
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x110]
test byte [esp + 0x10], 1
je 0x51404e
test al, al
je 0x51404e
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xf8]
xor eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xfc]
xor ecx, ebx
or ecx, eax
jne 0x513f0e
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x100]
xor eax, dword [esp + 0x18]
mov ecx, dword [ecx + 0x104]
xor ecx, dword [esp + 0x34]
or ecx, eax
jne 0x513f0e
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
cmp dword [eax + 0x108], ecx
jne 0x513f0e
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x10c], esi
je 0x51401f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514b8b
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0xf8], ecx
mov dword [edi + 0xfc], ebx
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x100], ecx
mov ecx, dword [esp + 0x34]
mov dword [edi + 0x104], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x108], ecx
mov dword [edi + 0x10c], esi
mov ecx, dword [esp + 0x10]
mov byte [edi + 0x110], cl
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa3]
mov dword [edi + 0x111], ecx
mov dword [edi + 0x114], edx
mov edi, dword [eax + 8]
test edi, edi
jne 0x514b9c
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x58]
mov dword [esp + 0xd4], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], esi
mov eax, dword [esp + 0x10]
mov byte [esp + 0xe8], al
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xe9], eax
mov eax, dword [esp + 0xa3]
mov dword [esp + 0xec], eax
sub esp, 0x28
movdqu xmm0, xmmword [esp + 0xf8]
movupd xmm1, xmmword [esp + 0x108]
movupd xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.0051ae90
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
je 0x5107f0
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
cmp ecx, eax
je 0x5107f0
jmp 0x514f52
mov ecx, dword [esp + 0x10]
and cl, 1
cmp cl, al
je 0x51401f
jmp 0x513f0e
test ebx, ebx
je 0x5140a6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514bad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x51413f
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f2f30
mov ebx, dword [ecx + 8]
jne 0x51405e
test ebx, ebx
jne 0x514bbe
mov byte [esp + 0x70], 0
xor eax, eax
dec eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
jmp 0x514342
lea ebx, [esp + 0x70]
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.004fde40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x512edd
cmp dword [eax + 0x14], 1
je 0x514ff0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x74]
sbb ecx, edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
jl 0x5141df
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0055f360
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x514168
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
jmp 0x5106d2
test ebx, ebx
je 0x514244
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0x4f2cd0
jne 0x514067
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514a7b
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x51413f
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f2f30
mov ebx, dword [ecx + 8]
jne 0x5141c9
test ebx, ebx
jne 0x514a8c
mov eax, dword [esp + 0x10]
mov byte [esp + 0x88], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514ad0
mov eax, dword [0x64b6c8]
mov dword [esp + 0x20], eax
mov ecx, dword [0x64b6cc]
mov dword [esp + 0x40], ecx
push ecx
push eax
push ebx
push esi
call fcn.005877d0
mov edi, edx
mov ecx, eax
mul dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, ecx
imul ecx, dword [esp + 0x40]
add edx, ecx
imul ecx, edi, 0xf4240
mov dword [esp + 0x14], ecx
imul edi, dword [esp + 0x20]
add edi, edx
sub esi, dword [esp + 0x10]
sbb ebx, edi
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x10], eax
mov edi, edx
add edi, dword [esp + 0x14]
mov eax, esi
mul ecx
imul ecx, ebx, 0xf4240
add edx, ecx
push dword [esp + 0x40]
push dword [esp + 0x24]
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 0x10]
adc edx, edi
jmp 0x511d19
mov dword [esp + 0x44], edi
xor esi, esi
inc esi
add dword [esp + 0x44], esi
mov esi, ecx
adc esi, 0x80000000
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 0
xor esi, esi
inc esi
cmp esi, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
sbb esi, dword [esp + 0x48]
setb byte [esp + 0x44]
mov esi, dword [esp + 0x2c]
xor edi, esi
xor ecx, edx
or ecx, edi
sete cl
or cl, byte [esp + 0x44]
jne 0x510e09
int3
call fcn.00595030
mov esi, dword [0x64b6c8]
mov dword [esp + 0x18], esi
mov eax, dword [0x64b6cc]
mov dword [esp + 0x20], eax
push eax
push esi
push ebx
push edi
call fcn.005877d0
mov dword [esp + 0x10], eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mul esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov esi, eax
imul esi, dword [esp + 0x20]
add edx, esi
imul esi, ecx, 0xf4240
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x18]
imul ecx, esi
add ecx, edx
sub edi, dword [esp + 0x1c]
sbb ebx, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x10], eax
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add edx, ecx
push dword [esp + 0x20]
push esi
push edx
push eax
call fcn.005877d0
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
jmp 0x5122e0
push eax
call fcn.00564050
add esp, 4
jmp 0x512925
lea esi, [esp + 0x70]
add edi, 0xfffffffc
mov ecx, esi
mov edx, edi
call fcn.005c63a0
mov eax, dword [esp + 0x24]
cmp edi, dword [eax + 0x1b4]
jne 0x5146e6
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x1b0]
mov edx, dword [ecx + 0x1b8]
mov esi, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x30], esi
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xc]
mov dword [ecx + 0x1b0], esi
mov esi, dword [esp + 0x30]
mov dword [ecx + 0x1b4], esi
mov dword [ecx + 0x1b8], ebx
mov esi, dword [esp + 0x28]
mov dword [ecx + 0x1bc], esi
cmp edi, edx
je 0x514768
add edi, 4
add edx, 4
cmp edx, 8
je 0x51376e
add edx, 0xfffffffc
cmp edi, edx
jne 0x514758
mov esi, dword [esp + 0x24]
jmp 0x51291d
mov esi, dword [esp + 0x28]
cmp edx, ebx
je 0x51479c
push 0xfc0
call fcn.00564055
add esp, 4
lea edx, [esp + 0x70]
mov dword [edx], eax
mov ecx, esi
call fcn.005c6250
mov esi, dword [esp + 0x24]
jmp 0x512925
push 0xfc0
call fcn.00564055
add esp, 4
lea edi, [esp + 0x70]
mov dword [edi], eax
mov ebx, esi
mov ecx, esi
mov edx, edi
call fcn.005c63a0
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x1b4]
mov ecx, dword [eax]
mov dword [edi], ecx
add eax, 4
mov dword [esi + 0x1b4], eax
lea edx, [esp + 0x70]
mov ecx, ebx
jmp 0x5147f9
add eax, 0xffffffe8
mov dword [ecx + 0x1c0], eax
mov eax, dword [edi]
mov esi, ecx
lea edx, [esp + 0x70]
mov dword [edx], eax
add edi, 4
mov dword [ecx + 0x1b4], edi
mov ecx, dword [esp + 0x28]
call fcn.005c6250
jmp 0x512925
mov dword [esp + 0x2c], eax
test esi, esi
jle 0x51482a
shr esi, 1
add esi, 2
and esi, 0xfffffffc
mov eax, dword [esp + 0x28]
sub eax, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
jmp 0x5128cc
sar esi, 1
cmp ebx, edi
mov eax, 1
cmove esi, eax
cmp esi, 0x40000000
jae 0x514645
lea eax, [esi*4]
push eax
call fcn.00564055
add esp, 4
mov edi, eax
lea eax, [eax + esi*4]
and esi, 0xfffffffc
add esi, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x30], 0
je 0x514883
push dword [esp + 0x30]
call fcn.00564050
add esp, 4
mov dword [esp + 0x30], edi
jmp 0x514821
xor edx, edx
inc edx
mov esi, dword [esp + 0x28]
add esi, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
adc dword [esp + 0x4c], 0x80000000
mov dword [esp + 0x58], 0
xor edi, edi
inc edi
cmp edi, esi
mov esi, dword [esp + 0x58]
sbb esi, dword [esp + 0x4c]
setb byte [esp + 0x4c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x28]
xor edi, esi
xor edx, dword [esp + 0x50]
or edx, edi
sete dh
or dh, byte [esp + 0x4c]
mov edx, esi
jne 0x5125b7
int3
cmp dword [esp + 0x54], esi
mov edx, dword [esp + 0x28]
sbb dword [esp + 0x50], edx
mov edi, dword [esp + 0xc]
jmp 0x51263a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
jne 0x51494b
mov ecx, dword [ebx + 0x5c]
jmp 0x512d98
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
jne 0x51494e
mov ecx, dword [ebx + 0x5c]
jmp 0x512dce
mov ecx, esi
jmp 0x512cdb
int3
int3
int3
mov eax, dword [esi + 0xc]
jmp 0x5135e9
mov eax, dword [esi + 0xc]
jmp 0x5135fe
mov eax, dword [edi + 0xc]
jmp 0x513ad9
mov eax, dword [edi + 0xc]
jmp 0x513aee
int3
int3
int3
int3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513dea
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513dea
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513d6b
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513be1
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513dea
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x514cb3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x514ce3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x51492b
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x514933
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x513613
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x514217
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513d42
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513d6b
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513d8e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513db0
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513dea
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x514c4d
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x513e9b
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x514c59
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x513f87
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x514079
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513bb4
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513be1
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513c04
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x513c26
int3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x513e5e
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x513f20
cmp byte [0x657014], 1
jne 0x512bab
push dword [esp + 0x14]
call fcn.005caa40
add esp, 4
test al, al
jne 0x512b8e
jmp 0x512bab
cmp ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
sbb eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x5127d8
push dword [esp + 0x3c]
call fcn.004f5270
add esp, 4
mov eax, dword [edi]
jmp 0x512e79
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x514cc7
mov edi, dword [eax + 8]
test edi, edi
jne 0x514a26
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0xa4], 1
jne 0x513e6c
mov esi, dword [eax + 8]
test esi, esi
jne 0x514a37
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0x5c]
mov dword [esp + 0x10], esi
mov ecx, ebx
call fcn.00440ab0
mov byte [esp + 0x14], al
mov eax, dword [esi]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x6401dc]
sub esp, 0x2c
movaps xmm0, xmmword [esp + 0x9c]
movaps xmm1, xmmword [esp + 0xac]
movups xmmword [esp + 0x18], xmm1
movups xmmword [esp + 8], xmm0
movzx eax, byte [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
lea esi, [esp + 0xfc]
mov dword [esp], esi
mov ecx, dword [esp + 0x3c]
call edi
movdqu xmm0, xmmword [esi]
movupd xmm1, xmmword [esi + 0x10]
movapd xmmword [esp + 0x80], xmm1
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x84]
mov al, byte [esp + 0x88]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xc]
jmp 0x513e6c
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x74]
mov eax, ebx
sub eax, dword [esp + 0xc]
add eax, esi
jmp 0x512b33
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
sbb dword [esp + 0x28], eax
mov edx, 0
mov edi, dword [esp + 0x10]
jmp 0x512a88
mov edx, dword [esp + 0xc]
xor edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
xor edx, ecx
or edx, dword [esp + 0xc]
je 0x514951
shr ecx, 0x1f
not ecx
xor edx, edx
inc edx
add ecx, edx
mov edx, 0x80000000
adc edx, 0xffffffff
jmp 0x514190
mov edx, dword [esp + 0xc]
xor edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
xor edx, ecx
or edx, dword [esp + 0xc]
je 0x514954
shr ecx, 0x1f
not ecx
xor edx, edx
inc edx
add ecx, edx
mov edx, 0x80000000
adc edx, 0xffffffff
jmp 0x513c9a
int3
mov ecx, dword [esp + 0xc]
push edx
call fcn.0052a8b0
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x514036
jmp 0x5107f0
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.00562590
mov ecx, dword [esi + 8]
xor edx, edx
cmp al, byte [ecx + 0x35]
setbe dl
mov dword [esp + 0x14], edx
jmp 0x513dc6
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.00562590
mov ecx, dword [esi + 8]
xor edx, edx
cmp al, byte [ecx + 0x35]
setbe dl
mov dword [esp + 0x14], edx
jmp 0x513c3c
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp + 0x14], edx
add edx, 1
mov dword [esp + 0xc], edx
mov edx, ecx
adc edx, 0x80000000
mov dword [esp + 0x10], edx
cmp dword [esp + 0xc], 2
mov edx, dword [eax]
mov dword [esp + 0xc], edx
sbb dword [esp + 0x10], 0
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
jb 0x514eac
mov edx, dword [esp + 0xc]
sub edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
sbb edx, ecx
mov dword [esp + 0x10], edx
seto byte [esp + 0x14]
mov ecx, edx
sar ecx, 0x1f
lea edx, [ecx - 0x80000000]
cmp byte [esp + 0x14], 0
cmove ecx, dword [esp + 0xc]
cmp byte [esp + 0x14], 0
cmove edx, dword [esp + 0x10]
jmp 0x514190
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp + 0x14], edx
add edx, 1
mov dword [esp + 0xc], edx
mov edx, ecx
adc edx, 0x80000000
mov dword [esp + 0x10], edx
cmp dword [esp + 0xc], 2
mov edx, dword [eax]
mov dword [esp + 0xc], edx
sbb dword [esp + 0x10], 0
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
jb 0x514edf
mov edx, dword [esp + 0xc]
sub edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
sbb edx, ecx
mov dword [esp + 0x10], edx
seto byte [esp + 0x14]
mov ecx, edx
sar ecx, 0x1f
lea edx, [ecx - 0x80000000]
cmp byte [esp + 0x14], 0
cmove ecx, dword [esp + 0xc]
cmp byte [esp + 0x14], 0
cmove edx, dword [esp + 0x10]
jmp 0x513c9a