Function at 0x511ac0
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 [0x644040]
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 [0x649570]
test al, al
jne 0x51470f
lock and dword [esi + 0x44], 0xfffffffc
mov dword [esp + 0x20], esi
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x511b2e
xor esi, esi
xchg dword [ebx], esi
test esi, esi
jne 0x512f90
mov ebx, dword [ebx + 0x8c]
test ebx, ebx
jne 0x511b18
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514735
mov eax, dword [esp + 0x20]
lea ecx, [eax - 4]
mov dword [esp + 0x30], 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 + 0x20]
lock cmpxchg8b qword [esi + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, eax
mov esi, edx
jne 0x511b60
mov ecx, dword [ebx + 0x17c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x512ea2
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
test al, al
mov dword [esp + 0x2c], ecx
jne 0x511c63
mov ecx, dword [fcn.0055f760]
cmp ecx, 0x552d10
jne 0x5133c2
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 0x514e57
mov edx, 0xf4240
mov eax, ebx
mul edx
imul ecx, ecx, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.00586340
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x51467e
test edx, edx
je 0x51448f
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 + 0x2c]
test al, al
je 0x51449e
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5144d7
mov ecx, dword [edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp dword [eax + 0x14], 1
je 0x514a49
mov ebx, dword [eax]
mov edx, dword [eax + 4]
cmp dword [esp + 0xc], ebx
sbb ecx, edx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
jge 0x51371e
mov ecx, dword [ebx + 0x180]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x511dc0
movzx eax, byte [edx + 8]
test al, al
mov dword [esp + 0x2c], ecx
jne 0x511d81
mov ecx, dword [fcn.0055f760]
cmp ecx, 0x552d10
jne 0x5133da
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 0x514ef7
mov edx, 0xf4240
mov eax, ebx
mul edx
imul ecx, ecx, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.00586340
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x514690
test edx, edx
je 0x51448f
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 + 0x2c]
test al, al
je 0x51449e
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5144d7
mov ecx, dword [edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp dword [eax + 0x14], 1
je 0x514af3
mov ebx, dword [eax]
mov edx, dword [eax + 4]
cmp dword [esp + 0xc], ebx
sbb ecx, edx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
jge 0x513760
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x5147b7
cmp byte [edx + 8], 1
jne 0x511df4
mov eax, dword [edx]
cmp eax, dword [ebx + 0x18c]
mov eax, dword [edx + 4]
sbb eax, dword [ebx + 0x190]
jge 0x5139bf
mov eax, dword [ebx + 0xf8]
mov edi, 0
test eax, eax
je 0x511ef9
tzcnt ecx, eax
mov byte [esp + 0xc], cl
cmp dword [ebp + 0x10], 1
mov dword [esp + 0x2c], ecx
je 0x514514
mov edx, dword [ebx + 0x114]
mov eax, dword [ebx + 0x118]
sub eax, edx
sar eax, 4
cmp dword [ebx + 0x124], 3
jge 0x513bfd
cmp eax, ecx
jbe 0x5144f5
mov edi, ecx
shl ecx, 4
mov eax, dword [edx + ecx + 4]
cmp eax, dword [edx + ecx + 8]
je 0x511ebd
mov esi, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
sub edx, esi
sar edx, 4
cmp edx, edi
jbe 0x5144f5
mov edi, dword [eax + 0x18]
mov edx, dword [esi + ecx + 4]
cmp edx, dword [esi + ecx + 8]
je 0x511ee5
mov dword [esp + 0xc], edi
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov esi, dword [edx]
mov dword [esp + 0x18], esi
mov ebx, dword [edx + 4]
mov esi, edi
mov dword [esp + 0x14], ebx
xor esi, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
xor ecx, ebx
or ecx, esi
mov ecx, dword [edx + 0x18]
je 0x514d22
cmp dword [esp + 0x10], ebx
sbb edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jb 0x511ee5
mov edi, ecx
jmp 0x511ee5
mov eax, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
sub edx, eax
sar edx, 4
cmp edx, edi
jbe 0x5144f5
mov edx, dword [eax + ecx + 4]
xor edi, edi
cmp edx, dword [eax + ecx + 8]
je 0x511ee5
mov edi, dword [edx + 0x18]
cmp dword [edi + 0x50], 1
je 0x5137a2
mov dword [ebx + 0x124], 0
mov dword [esp + 0x98], 0x125
movzx eax, byte [0x649571]
test al, al
mov dword [esp + 0xc], edi
jne 0x51480d
test edi, edi
je 0x5129cb
cmp dword [edi + 0x18], 0
je 0x511fd7
push 0x388
push 0xff
lea eax, [esp + 0xd8]
push eax
call fcn.00567640
add esp, 0xc
mov dword [esp + 0xd0], 0
cmp dword [edi + 8], 0
je 0x5142db
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 0x5144c8
mov edi, dword [ecx + 0xc]
imul ebx, esi, 0x70
mov esi, dword [edi + ebx + 0x50]
test esi, esi
je 0x513422
mov ecx, dword [esi + 0xc]
cmp ecx, 0x560580
je 0x511fab
call dword [0x63e1cc]
push 0
push esi
call ecx
add esp, 8
test al, al
jne 0x513416
add edi, ebx
cmp dword [edi + 0x6c], 0
jne 0x513404
mov esi, dword [esp + 0xd0]
cmp esi, 2
jae 0x5137fc
test esi, esi
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jne 0x513704
cmp dword [edi + 8], 0
je 0x514507
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 0x5144cb
imul ecx, ecx, 0x70
add ecx, dword [eax + 0xc]
cmp byte [ecx + 0x58], 0
je 0x513ffe
mov edi, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51465c
cmp dword [edi + 0xe8], 0
jne 0x513628
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5146bd
cmp dword [edi + 0xec], 0
jne 0x513628
cmp dword [ebx + 0x6c], 0
jne 0x513968
mov dword [esp + 0x2c], 0
cmp dword [ebx + 0x16c], 0
mov eax, 0
jne 0x513628
mov dword [esp + 0x14], 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 + 0x10], 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 0x51450e
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 + 0x24], esi
mov esi, dword [ecx + edx + 0x60]
mov dword [esp + 0x18], esi
mov dword [ecx + edx + 0x5c], 0
mov esi, dword [ecx + edx + 0x64]
mov dword [esp + 0x38], 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 + 0x40], 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 0x514511
mov eax, dword [ecx + 0xc]
imul ecx, edx, 0x70
lea ebx, [eax + ecx]
mov eax, dword [eax + ecx + 0x68]
test eax, eax
jne 0x512eb9
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x5133a0
mov esi, dword [ebx + 0x50]
test esi, esi
jne 0x513383
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax]
jne 0x5121e7
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x513993
mov edi, dword [esp + 0xc]
dec dword [edi + 8]
jne 0x512386
cmp dword [edi + 0x50], 0
jne 0x512203
mov ecx, dword [edi + 0x1c]
push edi
call fcn.00516be0
cmp dword [edi + 4], 0
je 0x5122db
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov ecx, dword [0x646080]
cmp ecx, 0x552d10
jne 0x513229
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 0x514f97
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.00586340
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 0x5122db
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 0x5122db
lea edx, [eax + 0x10]
xor esi, esi
add esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x5122c9
cmp edx, esi
jb 0x5142a2
mov eax, dword [edi + 0x18]
mov ebx, dword [edi + 0x20]
cmp dword [edi + 8], 0
jne 0x51238c
mov dword [esp + 0x30], eax
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 4
cmp eax, ebx
jbe 0x514480
mov esi, ebx
mov dword [esp + 0xc], ebx
shl esi, 4
add ecx, esi
push 0
call fcn.00516750
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 0x514480
mov ecx, dword [eax + esi + 4]
cmp ecx, dword [eax + esi + 8]
mov esi, dword [esp + 0xc]
jne 0x512435
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 0x514480
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 0x514480
cmp dword [ecx + esi*4], 0
jne 0x512435
mov ecx, esi
mov edx, 0xfffffffe
rol edx, cl
and dword [eax + 0x14], edx
jmp 0x512435
mov eax, dword [edi + 0x18]
mov ebx, dword [edi + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [edi]
mov ecx, dword [eax]
cmp byte [edi + 0x48], 0
jne 0x513b1a
mov esi, dword [eax + 0x10]
inc ecx
xor edx, edx
cmp ecx, esi
cmove ecx, edx
cmp esi, ecx
jbe 0x514618
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 0x513910
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 0x514480
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 + 0x70]
lea edx, [esp + 0xa0]
push eax
push edx
call fcn.00516700
mov esi, dword [edi + 0x1c]
movzx eax, byte [0x649570]
test al, al
jne 0x514b9d
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x1b4]
mov ebx, dword [eax + 0x1b8]
mov eax, ebx
sub eax, edi
mov esi, ebx
sub esi, edi
je 0x513c35
sar eax, 2
lea eax, [eax + eax*2]
lea ecx, [eax*8 - 1]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x1c0]
mov edx, dword [edx + 0x1c4]
add edx, eax
cmp ecx, edx
je 0x513edb
cmp ebx, edi
mov ebx, dword [esp + 0x20]
je 0x51448f
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 0x51448f
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 + 0x24]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x60], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x6c], eax
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x70], ecx
mov eax, dword [ecx + 4]
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], 0
mov eax, dword [esp + 0x2c]
mov byte [esi + 0x7c], al
mov eax, dword [esp + 0x14]
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 0x5146e6
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 0x5139cb
lea edi, [edx*8]
lea edi, [edi + edi*2]
sub ecx, edi
imul ecx, ecx, 0xa8
add ecx, eax
cmp eax, ecx
je 0x5145b5
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
mov dword [esp + 0xc], ecx
jne 0x5148fe
mov esi, dword [ecx - 0x38]
cmp byte [esi + 0x14c], 1
mov edx, dword [ebp + 0xc]
je 0x512eaa
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514786
cmp dword [esi + 0xe8], 0
jne 0x513267
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5147e0
cmp dword [esi + 0xec], 0
jne 0x513267
cmp dword [ebx + 0x6c], 0
jne 0x512677
cmp dword [ebx + 0x16c], 0
jne 0x513267
mov dword [esp + 0x1c], 0
lea eax, [ecx - 0xa8]
mov dword [esp + 0x2c], eax
mov esi, dword [ecx - 0x38]
cmp byte [esi + 0x14d], 1
jne 0x512905
mov eax, dword [ecx - 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [ecx - 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x51466d
mov eax, dword [esi + 0xe0]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xe4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x51487d
mov eax, dword [ebx + 0x12c]
cmp eax, dword [ebx + 0x130]
je 0x51288a
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 0x5146fb
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 0x512787
mov edi, dword [esi]
mov ebx, dword [esi + 4]
sub ebx, edi
sar ebx, 2
cmp ebx, eax
jbe 0x514480
cmp dword [edi + eax*4], 0
mov ebx, dword [esp + 0x20]
je 0x5146a2
test esi, esi
je 0x51288a
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 0x51283b
cmp edi, eax
jbe 0x514480
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
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 [0x63e1cc]
movzx eax, bl
mov ecx, esi
push eax
push dword [esp + 0x30]
call edi
mov esi, dword [esp + 0xd8]
test esi, esi
mov ebx, dword [esp + 0x20]
je 0x51288a
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 0x51278f
mov edi, dword [esi]
mov ebx, dword [esi + 4]
sub ebx, edi
sar ebx, 2
cmp ebx, eax
jbe 0x514480
cmp dword [edi + eax*4], 0
jne 0x51278f
jmp 0x514645
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jne 0x51285e
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
cmp ebx, ecx
je 0x51285e
lea edi, [ebx + 4]
cmp dword [ebx], 0
je 0x5139dd
mov ebx, edi
cmp edi, ecx
jne 0x51284c
cmp dword [esp + 0xd8], 0
mov ebx, dword [esp + 0x20]
je 0x51288a
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 [0x649570]
test al, al
jne 0x5148a8
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
mov ecx, dword [esp + 0xc]
jne 0x51492d
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
sbb dword [esp + 0x30], eax
setb al
mov ecx, dword [ecx - 0x38]
movzx eax, al
push eax
push dword [esp + 0x30]
call fcn.005168c0
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x5148d3
cmp byte [esp + 0x1c], 0
mov ecx, dword [esp + 0xc]
jne 0x512a80
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x51495c
cmp dword [ecx - 0x3c], 0
jne 0x513587
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x51293c
movzx eax, byte [eax + 4]
test al, al
je 0x5135a6
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 0x51479e
mov edi, dword [edi + 0xf0]
test edi, edi
jne 0x5129d7
movzx eax, bl
mov ecx, dword [ebp + 8]
mov esi, edx
mov edx, dword [esp + 0x2c]
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 + 0x20]
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x51475b
mov eax, dword [ebp + 8]
cmp byte [eax + 0x10], 1
jne 0x5129b0
mov eax, dword [ebx + 0x44]
test al, 2
jne 0x5145a9
mov ecx, dword [esp + 0x458]
xor ecx, ebp
call fcn.00565ea5
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 0x512985
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x5147f8
cmp eax, 0x7fffffff
je 0x5147fb
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x5147fe
cmp eax, 0x7fffffff
je 0x514801
lock dec dword [edi]
jne 0x512a27
mov ecx, dword [edi + 8]
mov esi, edx
call dword [0x63e1cc]
push edi
call ecx
mov edx, esi
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x514804
cmp eax, 0x7fffffff
je 0x514807
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 + 0x20]
jne 0x512985
mov ecx, dword [edi + 8]
call dword [0x63e1cc]
push edi
call ecx
add esp, 4
jmp 0x512985
cmp dword [ebx + 0x6c], 0
jne 0x512ad8
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514d82
mov eax, dword [ebx + 0x150]
cmp eax, dword [ebx + 0x154]
jne 0x512b80
mov dword [esp + 0xd8], 0
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514dad
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514e0d
mov esi, dword [ecx - 0x38]
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514cc1
mov edi, dword [esi + 0xe8]
test edi, edi
je 0x512b61
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514cff
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x514cae
cmp eax, 0x7fffffff
je 0x514cb1
lea ebx, [ecx - 0x30]
mov eax, dword [esi + 0xe8]
mov ecx, dword [eax + 4]
call dword [0x63e1cc]
push ebx
push dword [esp + 0x30]
push edi
call ecx
mov ecx, dword [esp + 0x18]
add esp, 0xc
lock dec dword [edi]
je 0x514e3f
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
je 0x512905
jmp 0x514ddb
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 0x514ceb
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 0x512c55
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 0x514480
cmp dword [edx + ecx*8 + 4], 0
je 0x512c2c
mov esi, dword [edx + ecx*8]
test esi, esi
je 0x51480a
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x51480a
mov esi, dword [edx + ecx*8]
test esi, esi
je 0x513977
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x513977
cmp dword [edx + ecx*8 + 4], 0
je 0x513977
mov edi, dword [esp + 0xd8]
test edi, edi
je 0x512aba
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 0x512d72
cmp ecx, eax
jbe 0x514480
mov ecx, dword [ebx + eax*8]
xor esi, esi
test ecx, ecx
je 0x512ca1
movzx ecx, byte [ecx + 4]
test cl, cl
je 0x5145ac
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 [0x63e1cc]
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 0x512aba
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 0x512c55
mov esi, dword [esp + 0xd8]
mov edx, dword [esi]
mov esi, dword [esi + 4]
sub esi, edx
sar esi, 3
cmp esi, eax
jbe 0x514480
cmp dword [edx + eax*8 + 4], 0
je 0x512d40
mov esi, dword [edx + eax*8]
test esi, esi
je 0x5144b3
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x5144b3
mov esi, dword [edx + eax*8]
test esi, esi
je 0x512d5a
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x512d5a
cmp dword [edx + eax*8 + 4], 0
jne 0x512c4e
mov eax, dword [esp + 0xdc]
inc eax
mov dword [esp + 0xdc], eax
cmp eax, ecx
jb 0x512d09
jmp 0x512c4e
mov eax, dword [edi + 0x10]
cmp eax, dword [edi + 0xc]
jne 0x512dbb
nop word [eax + eax]
cmp ebx, esi
je 0x512dbb
cmp dword [ebx + 4], 0
je 0x512da0
mov eax, dword [ebx]
test eax, eax
je 0x514504
movzx eax, byte [eax + 4]
test al, al
jne 0x514504
mov eax, dword [ebx]
test eax, eax
je 0x512dec
movzx eax, byte [eax + 4]
test al, al
jne 0x512dec
cmp dword [ebx + 4], 0
je 0x512dec
add ebx, 8
cmp ebx, esi
jne 0x512d84
cmp dword [esp + 0xd8], 0
je 0x512aba
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 0x512aba
lea edx, [ebx + 8]
jmp 0x512e3f
cmp dword [edx + 4], 0
je 0x512e0c
mov eax, dword [edx]
test eax, eax
je 0x514cb4
mov al, byte [eax + 4]
test al, al
jne 0x514cb4
mov eax, dword [edx]
test eax, eax
je 0x512e3c
mov al, byte [eax + 4]
test al, al
jne 0x512e3c
cmp dword [edx + 4], 0
je 0x512e3c
mov ecx, dword [edx]
mov dword [edx], 0
mov eax, dword [ebx]
mov dword [ebx], ecx
test eax, eax
jne 0x513c49
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
add ebx, 8
add edx, 8
cmp edx, esi
jne 0x512df1
sub esi, ebx
jb 0x515021
je 0x512dbb
mov ecx, dword [edi + 4]
add esi, ebx
cmp esi, ecx
jne 0x51505e
mov edx, ebx
sub edx, ebx
add edx, ebx
cmp ecx, edx
je 0x512e82
add ecx, 0xfffffff8
test ecx, ecx
je 0x514d73
mov eax, dword [ecx]
test eax, eax
jne 0x512e8a
lea eax, [ecx - 8]
cmp ecx, edx
mov ecx, eax
jne 0x512e6b
mov dword [edi + 4], edx
jmp 0x512dbb
lock dec dword [eax]
jne 0x512e79
push eax
mov ebx, edx
mov esi, ecx
call fcn.00562bc0
mov ecx, esi
mov edx, ebx
add esp, 4
jmp 0x512e79
mov edx, dword [ebp + 0xc]
jmp 0x511ca2
mov byte [ebx + 0x1ac], 1
mov esi, dword [ecx - 0x38]
jmp 0x51262e
lock dec dword [eax]
jne 0x5121b9
push eax
call fcn.00562bc0
add esp, 4
jmp 0x5121b9
cmp dword [eax + 0x28], 0
jne 0x513c3c
mov edi, dword [eax + 0x20]
mov dword [esp + 0x18], edi
mov edi, dword [eax + 0x24]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x18]
add edi, 1
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x1c]
adc edi, 0x80000000
cmp dword [esp + 0x34], 2
sbb edi, 0
jb 0x5149a0
add edx, dword [esp + 0x18]
adc ecx, dword [esp + 0x1c]
seto byte [esp + 0x34]
mov edi, ecx
sar edi, 0x1f
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x18]
add edi, 0x80000000
mov dword [esp + 0x1c], edi
cmp byte [esp + 0x34], 0
mov edi, dword [esp + 0x18]
cmove edi, edx
mov dword [esp + 0x18], edi
cmp byte [esp + 0x34], 0
mov edx, dword [esp + 0x1c]
cmove edx, ecx
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x10]
jmp 0x51308a
mov ecx, edi
call dword [0x63e1cc]
mov ecx, dword [esp + 0x30]
call edi
mov edi, dword [esp + 0x2c]
jmp 0x512f78
call dword [0x63e1cc]
push edi
call ecx
add esp, 4
lock dec dword [edi]
mov eax, dword [esp + 0xc]
je 0x513c68
btc esi, eax
test esi, esi
je 0x511b24
tzcnt ecx, esi
mov edi, dword [ebx + ecx*4 + 8]
test edi, edi
je 0x5144b6
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x5144b9
cmp eax, 0x7fffffff
je 0x5144bc
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + ecx*4 + 8]
mov ecx, dword [eax + 4]
cmp ecx, 0x5c3800
jne 0x512f6c
mov eax, edi
mov edi, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [eax + 0x14]
cmp edi, 0x55d820
mov dword [esp + 0x30], ecx
jne 0x512f58
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x51461b
mov edi, dword [ecx + 0x64]
mov ecx, dword [edi + 0x1c]
push edi
call fcn.00516be0
cmp dword [edi + 8], 0
je 0x5131c3
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], eax
test eax, eax
je 0x5131c3
movzx edx, byte [edi + 0x48]
cmp dl, 1
mov dword [esp + 0x10], edi
je 0x513e0f
mov eax, dword [edi]
mov ecx, dword [eax]
test dl, dl
jne 0x513cbe
mov edx, dword [eax + 0x10]
inc ecx
cmp ecx, edx
mov edi, edx
mov edx, 0
cmove ecx, edx
cmp edi, ecx
jbe 0x5144bf
mov edi, dword [eax + 0xc]
imul ecx, ecx, 0x70
lea eax, [edi + ecx]
mov edx, dword [edi + ecx + 0x44]
mov dword [esp + 0x24], edx
mov edx, dword [edi + ecx + 0x18]
mov ecx, dword [edi + ecx + 0x1c]
mov dword [esp + 0x18], 0
mov edi, edx
or edi, ecx
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
jne 0x512ed0
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov eax, edx
shr eax, 8
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
shld edx, ecx, 0x18
mov dword [esp + 0x40], edx
mov al, 1
mov dword [esp + 0x28], 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 0x514480
cmp byte [esp + 0x28], 0
je 0x51449e
mov edi, edx
shl edi, 4
lea ecx, [eax + edi]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + edi + 4]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + edi + 8]
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
shld edi, eax, 8
shl eax, 8
movzx ecx, byte [esp + 0x38]
or ecx, eax
mov dword [esp + 0xd4], edi
mov edi, edx
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe8], eax
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0050c530
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], eax
jne 0x5131c3
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 0x514480
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 0x514480
cmp dword [ecx + edi*4], 1
jne 0x5131c3
mov ecx, dword [eax + 0x14]
mov edx, ecx
bts edx, edi
mov dword [eax + 0x14], edx
test ecx, ecx
jne 0x5131c3
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x5131c3
mov eax, dword [ecx + 0x40]
add ecx, 0x40
mov edx, eax
and edx, 0xfffffffd
lock cmpxchg dword [ecx], edx
jne 0x5131b0
test al, 4
jne 0x514cb7
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514630
cmp dword [ecx + 0x5c], 0
mov edi, dword [esp + 0x2c]
je 0x512f78
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5145c3
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xa4], 1
mov edi, dword [esp + 0x2c]
jne 0x512f78
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5145d4
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov edi, dword [eax + 4]
jmp 0x512f58
call dword [0x63e1cc]
lea eax, [esp + 0xa0]
push eax
call ecx
add esp, 4
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
jmp 0x5122a1
call dword [0x63e1cc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x513307
mov dword [ecx - 0x30], 1
cmp byte [ecx - 0x2c], 1
jne 0x51334c
movzx eax, byte [edx + 8]
test al, al
jne 0x51333b
mov ecx, dword [fcn.0055f760]
cmp ecx, 0x552d10
jne 0x51324f
xor eax, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], eax
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 0x515b7c
mov ecx, 0xf4240
mov eax, esi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.00586340
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x514cd6
test edx, edx
je 0x51448f
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 0x51449e
movq xmm0, qword [edx]
movq qword [ecx - 0x28], xmm0
mov al, 1
mov dword [esp + 0x1c], eax
cmp byte [ecx - 0x2b], 1
jne 0x51267f
lea eax, [esp + 0xd0]
push eax
call fcn.00406780
mov ecx, dword [esp + 0x10]
add esp, 4
movq xmm0, qword [esp + 0xd0]
movq qword [ecx - 0x18], xmm0
jmp 0x51267f
lock dec dword [esi]
jne 0x5121cf
mov ecx, dword [esi + 8]
call dword [0x63e1cc]
push esi
call ecx
add esp, 4
jmp 0x5121cf
lock dec dword [edi + 4]
jne 0x5121c4
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x63e1cc]
mov ecx, edi
push 1
call esi
jmp 0x5121c4
call dword [0x63e1cc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x511c2f
call dword [0x63e1cc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x511d4d
lea ecx, [esp + 0xd0]
push eax
call fcn.004fbee0
jmp 0x5134f2
mov eax, dword [edi + 0x68]
test eax, eax
je 0x513416
mov al, byte [eax + 4]
test al, al
je 0x511fb7
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 0x5144ce
mov edx, dword [esp + 0xd0]
mov esi, 8
test dl, 1
je 0x51344c
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 0x5133f2
lea esi, [esp + 0xd8]
test dl, 1
je 0x513471
mov esi, dword [esp + 0xd8]
imul ecx, ecx, 0x70
add ecx, esi
je 0x51448f
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 0x5144d1
mov ebx, dword [eax + 0xc]
imul esi, ecx, 0x70
mov eax, dword [ebx + esi + 0x68]
test eax, eax
jne 0x513561
add ebx, esi
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x513556
mov esi, dword [ebx + 0x50]
test esi, esi
jne 0x513571
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax]
jne 0x513544
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x513c80
mov eax, dword [esp + 0xc]
dec dword [eax + 8]
jne 0x511f58
jmp 0x511fb7
lock dec dword [edi + 4]
jne 0x513525
jmp 0x5142e8
lock dec dword [eax]
jne 0x51351c
push eax
call fcn.00562bc0
add esp, 4
jmp 0x51351c
lock dec dword [esi]
jne 0x51352c
mov ecx, dword [esi + 8]
call dword [0x63e1cc]
push esi
call ecx
add esp, 4
jmp 0x51352c
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x513599
mov al, byte [eax + 4]
test al, al
je 0x512929
add ecx, 0xffffffa8
call fcn.0058ff60
jmp 0x51293c
mov eax, dword [esp + 0xc]
cmp dword [eax - 0x3c], 0
je 0x51293c
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x51499d
mov al, byte [eax + 4]
test al, al
jne 0x51499d
mov esi, dword [ecx - 0x3c]
mov eax, dword [esi + 0xc]
mov byte [eax + 4], 1
push 8
call fcn.00562bc5
add esp, 4
mov dword [eax], 0
mov byte [eax + 4], 0
test eax, eax
je 0x513603
xor ecx, ecx
inc ecx
lock xadd dword [eax], ecx
cmp ecx, 0x7fffffff
je 0x514ce8
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
test ecx, ecx
je 0x51293c
lock dec dword [ecx]
jne 0x51293c
push ecx
call fcn.00562bc0
add esp, 4
jmp 0x51293c
movsd xmm0, qword [ebx + 0x3c]
mov al, 1
mov dword [esp + 0x2c], eax
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x513970
cmp byte [ebx + 0xdc], 0
je 0x51498e
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 + 0x20]
mov edi, dword [ecx + 0xd4]
xor eax, edx
mov ecx, eax
shld ecx, ebx, 0xf
mov dword [esp + 0x30], 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 + 0x20]
xor edx, dword [esp + 0x30]
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 [0x6260a0]
ucomisd xmm0, xmm1
seta al
jmp 0x512068
lea ecx, [esp + 0xd0]
call fcn.004fb720
cmp esi, 1
je 0x511fd7
jmp 0x511df4
mov ebx, dword [eax + 0x18]
mov ecx, ebx
push esi
push edi
push edx
call fcn.00528960
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
test eax, eax
jne 0x515030
mov eax, dword [ebx + 0x5c]
test eax, eax
mov ecx, dword [esp + 0x2c]
jne 0x514383
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
jne 0x515767
mov ebx, dword [esp + 0x20]
jmp 0x511ca2
mov ebx, dword [eax + 0x18]
mov ecx, ebx
push esi
push edi
push edx
call fcn.00528960
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
test eax, eax
jne 0x515047
mov eax, dword [ebx + 0x5c]
test eax, eax
mov ecx, dword [esp + 0x2c]
jne 0x5143b9
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
jne 0x515271
mov ebx, dword [esp + 0x20]
jmp 0x511dc0
mov eax, dword [ebx + 0x114]
mov ecx, dword [ebx + 0x118]
sub ecx, eax
sar ecx, 4
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jbe 0x5144f5
mov ecx, edx
shl ecx, 4
mov edx, ecx
mov ecx, dword [eax + ecx + 4]
cmp ecx, dword [eax + edx + 8]
je 0x511eef
inc dword [ebx + 0x124]
jmp 0x511ef9
call dword [0x63e1cc]
lea esi, [esp + 0xa0]
push esi
call ecx
add esp, 4
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x5138a2
mov edi, dword [esp + 0xc]
cmp dword [edi + 8], 0
jne 0x5138dc
cmp dword [edi + 0x50], 0
jne 0x513819
mov ecx, dword [edi + 0x1c]
push edi
call fcn.00516be0
cmp dword [edi + 4], 0
je 0x5138dc
xor eax, eax
dec eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov ecx, dword [0x646080]
cmp ecx, 0x552d10
jne 0x5137df
xor eax, eax
lea esi, [esp + 0x70]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
cmp edi, 0x7bd05af7
mov eax, ebx
sbb eax, 0x863
jge 0x515c4d
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x6496cc]
push dword [0x6496c8]
push ecx
push eax
call fcn.00586340
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 0x5138dc
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 0x5138dc
lea edx, [eax + 0x10]
xor esi, esi
add esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x5138ca
cmp edx, esi
jb 0x514300
cmp dword [edi + 0x24], 0xffffffff
je 0x5138eb
mov ecx, dword [edi + 0x18]
push edi
call fcn.004fb860
mov edi, dword [edi + 0x1c]
mov al, byte [0x649570]
test al, al
jne 0x51508b
mov esi, dword [esp + 0xd0]
jmp 0x511fc7
mov esi, edi
mov edx, ecx
jmp 0x5123d9
cmp dword [eax + 0x28], 0
jne 0x513907
mov esi, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x3c], esi
add esi, 1
mov dword [esp + 0x44], esi
mov esi, edx
adc esi, 0x80000000
cmp dword [esp + 0x44], 2
sbb esi, 0
jb 0x515bfb
add edi, dword [esp + 0x3c]
adc ecx, edx
seto byte [esp + 0x3c]
mov esi, ecx
sar esi, 0x1f
lea edx, [esi - 0x80000000]
cmp byte [esp + 0x3c], 0
cmove esi, edi
cmp byte [esp + 0x3c], 0
cmove edx, ecx
jmp 0x5123d9
mov dword [esp + 0x2c], 0
xor eax, eax
jmp 0x512068
mov ecx, dword [esp + 0xdc]
inc ecx
mov dword [esp + 0xdc], ecx
cmp ecx, eax
jb 0x512bf5
jmp 0x512c4e
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax]
mov dword [eax], ecx
test edi, edi
je 0x5121e7
mov ecx, edi
call fcn.00406710
push edi
call fcn.00562bc0
add esp, 4
jmp 0x5121e7
mov byte [ebx + 0x184], 1
jmp 0x511df4
xor ecx, ecx
jmp 0x5125f8
push eax
call fcn.004ff8c0
add esp, 4
jmp 0x513a24
cmp edi, ecx
jne 0x514368
sub ecx, ebx
jb 0x515021
je 0x51285e
mov edi, dword [esi + 4]
add ecx, ebx
mov edx, ebx
cmp ecx, edi
je 0x513a45
mov dword [esp + 0x34], edi
cmp edx, ecx
je 0x513a34
mov dword [esp + 0x24], 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 + 0x64c810]
bt edx, ecx
jb 0x5139d2
mov ecx, dword [esp + 0x24]
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 + 0x34]
cmp ecx, edi
jne 0x513a02
mov edi, dword [esi + 4]
sub edx, ebx
add edx, ebx
cmp edi, edx
je 0x513a83
add edi, 0xfffffffc
test edi, edi
je 0x514d73
mov ebx, edx
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c810]
bt edx, ecx
jb 0x513a8b
mov dword [edi], 0
lea eax, [edi - 4]
mov edx, ebx
cmp edi, ebx
mov edi, eax
jne 0x513a50
mov dword [esi + 4], edx
jmp 0x51285e
push eax
call fcn.004ff8c0
add esp, 4
jmp 0x513a72
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x50], esi
jmp 0x513b67
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], esi
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0x28], 0
jne 0x513a96
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 0x515e8c
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 0x513b67
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 0x515088
mov esi, dword [eax + 0xc]
imul edx, edx, 0x70
lea edi, [esi + edx]
mov dword [esp + 0x3c], 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 0x513aa7
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x3c]
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 + 0x3c], 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 + 0x3c]
mov esi, dword [esp + 0x28]
xor esi, edi
or esi, edx
je 0x513bc4
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 0x5123a2
mov eax, dword [esp + 0x30]
jmp 0x5122eb
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 0x515ee1
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x5c]
cmp edx, dword [edi + 0x40]
mov esi, dword [esp + 0x44]
jl 0x5123a2
jmp 0x513bbb
cmp eax, ecx
jbe 0x5144f5
shl ecx, 4
mov eax, dword [edx + ecx + 4]
cmp eax, dword [edx + ecx + 8]
je 0x513c1d
mov edi, dword [eax + 0x18]
test edi, edi
jne 0x511ee5
lea ecx, [ebx + 0xe4]
movzx eax, byte [esp + 0xc]
push eax
call fcn.004220d0
mov edi, eax
jmp 0x511ee5
xor ecx, ecx
jmp 0x512472
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
jmp 0x51308a
lock dec dword [eax]
jne 0x512e33
push eax
mov dword [esp + 0x34], edx
call fcn.00562bc0
mov edx, dword [esp + 0x34]
add esp, 4
jmp 0x512e33
mov ecx, dword [edi + 8]
call dword [0x63e1cc]
push edi
call ecx
mov eax, dword [esp + 0x10]
add esp, 4
jmp 0x512f85
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax]
mov dword [eax], ecx
test edi, edi
je 0x513544
mov ecx, edi
call fcn.00406710
push edi
call fcn.00562bc0
add esp, 4
jmp 0x513544
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], edx
jmp 0x513d2a
inc ecx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x1c], edx
cmp ecx, edx
mov edi, ecx
mov dword [esp + 0x40], 0
mov edx, 0
cmove edi, edx
mov edx, dword [esp + 0x1c]
cmp edx, edi
jbe 0x5144c5
mov edx, dword [eax + 0xc]
mov dword [esp + 0x18], edx
imul edi, edi, 0x70
mov edx, dword [esp + 0x18]
add edx, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + edi + 0x44]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + edi + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + edi + 0x1c]
mov edi, dword [esp + 0x24]
or edi, edx
mov dword [esp + 0x28], 0
jne 0x513d87
mov edx, dword [esp + 0x34]
mov edi, dword [edx + 0x60]
mov dword [esp + 0x24], edi
mov edx, dword [edx + 0x64]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 0x30]
mov dword [esp + 0x34], edi
mov edi, dword [edx + 0x34]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edi
xor edx, edi
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x34]
or edi, edx
je 0x5143ef
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x24], edx
mov edx, dword [esp + 0x38]
sbb dword [esp + 0x18], edx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jb 0x51303f
jmp 0x513eab
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x34]
cmp dword [edx + 0x28], 0
jne 0x513cac
mov edi, dword [esp + 0x34]
mov edx, dword [edi + 0x20]
mov edi, dword [edi + 0x24]
mov dword [esp + 0x28], edx
add edx, 1
mov dword [esp + 0x40], edi
adc edi, 0x80000000
cmp edx, 2
sbb edi, 0
jb 0x5149f2
mov edx, dword [esp + 0x24]
add edx, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov edi, dword [esp + 0x18]
adc edi, dword [esp + 0x40]
mov dword [esp + 0x18], edi
seto byte [esp + 0x38]
sar edi, 0x1f
lea edx, [edi - 0x80000000]
mov dword [esp + 0x40], edx
cmp byte [esp + 0x38], 0
cmove edi, dword [esp + 0x24]
mov dword [esp + 0x28], edi
cmp byte [esp + 0x38], 0
mov edi, dword [esp + 0x40]
cmove edi, dword [esp + 0x18]
mov dword [esp + 0x40], edi
jmp 0x513d2a
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 0x5144c2
imul ecx, ecx, 0x70
add ecx, dword [eax + 0xc]
lea eax, [esp + 0xd0]
push eax
call fcn.0053f3d0
mov dl, byte [edi + 0x48]
test dl, dl
je 0x5144e6
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x18], eax
mov edi, dword [edi + 0x34]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], edi
xor eax, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
xor ecx, edi
or ecx, eax
je 0x514431
cmp dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
sbb eax, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
jae 0x5131c3
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], eax
cmp dword [edi + 8], 0
jne 0x51302f
xor eax, eax
dec eax
mov dword [esp + 0x34], 0xffffff
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
jmp 0x5130ab
mov ecx, dword [esp + 0x20]
lea edx, [ecx + 0x1b0]
mov dword [esp + 0x28], edx
cmp eax, 0x18
jae 0x515ddc
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 0x515d74
mov ecx, dword [esp + 0xc]
sar ecx, 1
cmp edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
lea eax, [eax + 0x1c0]
mov dword [esp + 0x80], eax
mov eax, 1
cmove ecx, eax
cmp ecx, 0x40000000
jae 0x515c48
mov dword [esp + 0xc], ecx
lea eax, [ecx*4]
mov dword [esp + 0x3c], eax
push eax
call fcn.00562bc5
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.00562bc5
add esp, 4
cmp esi, dword [esp + 0x3c]
je 0x515e06
mov ebx, dword [esp + 0x28]
test ebx, ebx
mov esi, dword [esp + 0x20]
je 0x51448f
mov dword [ebx], eax
lea ecx, [ebx + 4]
mov dword [esp + 0x78], ecx
mov edi, dword [esi + 0x1b8]
cmp edi, dword [esi + 0x1b4]
jne 0x515ce5
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 0x515cd7
mov edi, dword [esi + 0x1b4]
mov ebx, dword [esi + 0x1b8]
jmp 0x51248c
cmp dword [ebx + 0x6c], 0
jle 0x51200b
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.00517860
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 0x5162a9
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 0x74]
inc eax
xor edx, edx
mov ecx, esi
sub ecx, 1
cmovb ecx, edx
cmp ecx, eax
jae 0x514154
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 + 0x20]
lea ecx, [eax + 0x78]
mov dword [esp + 0x2c], ecx
lea eax, [eax + 0x7c]
mov dword [esp + 0x10], eax
jo 0x516522
mov eax, dword [esp + 0x20]
add eax, 0x70
mov dword [esp + 0x18], eax
push 0
push dword [esp + 0x18]
push 0x635600
call fcn.00520a50
add esp, 0xc
mov edi, eax
test eax, eax
je 0x516270
lea eax, [esp + 0x70]
mov dword [eax], edi
mov dword [eax + 4], esi
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
push dword [esp + 0x10]
push dword [esp + 0x30]
push eax
push ebx
call fcn.00406a40
add esp, 0x10
push 0
mov ebx, dword [esp + 0x24]
push dword [ebx + 0x70]
push 0x635600
call fcn.0050f6b0
add esp, 0xc
mov dword [ebx + 0x70], edi
mov dword [ebx + 0x74], esi
mov ebx, dword [ebx + 0x7c]
cmp esi, ebx
jb 0x5144ad
mov edi, dword [esp + 0x20]
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 0x515ef6
cmp eax, ecx
jb 0x5144b0
mov eax, dword [esp + 0x138]
test eax, eax
jne 0x51427c
mov esi, dword [esp + 0x12c]
test esi, esi
jne 0x514271
mov esi, dword [esp + 0x120]
test esi, esi
jne 0x51428c
mov ebx, dword [esp + 0x20]
jmp 0x511df4
lock dec dword [esi + 4]
jne 0x51425d
jmp 0x5146ce
lock dec dword [eax]
jne 0x514252
push eax
call fcn.00562bc0
add esp, 4
jmp 0x514252
lock dec dword [esi]
jne 0x514268
mov ecx, dword [esi + 8]
call dword [0x63e1cc]
push esi
call ecx
add esp, 4
jmp 0x514268
mov ecx, edi
push eax
call fcn.00518710
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 0x5122db
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jmp 0x511fd7
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x63e1cc]
mov ecx, edi
push 1
call esi
jmp 0x513525
mov ecx, edi
push eax
call fcn.00518710
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 0x5138dc
cmp edi, ebx
je 0x514363
mov ecx, dword [ebx]
mov edx, ecx
shr edx, 0xe
mov dword [esp + 0x34], ecx
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x64c810]
bt ecx, edx
jb 0x516296
mov dword [ebx], eax
mov dword [edi], 0
add ebx, 4
jmp 0x514372
mov dword [esp + 0x24], ecx
mov eax, dword [edi]
test eax, eax
jne 0x514339
add edi, 4
mov ecx, dword [esp + 0x24]
cmp edi, ecx
je 0x5139e5
jmp 0x51436c
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x51602d
mov ebx, ecx
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
call dword [0x63e1cc]
mov ecx, ebx
push dword [ebp + 0xc]
call dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
jmp 0x513748
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x516040
mov ebx, ecx
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
call dword [0x63e1cc]
mov ecx, ebx
push dword [ebp + 0xc]
call dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
jmp 0x51378a
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 0x38]
mov dword [esp + 0x18], edi
mov edi, dword [edx + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x24], edi
xor edx, edi
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x18]
or edi, edx
jne 0x5162bd
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
cmp edx, dword [edi + 0x40]
mov edx, dword [esp + 0x1c]
jl 0x51303f
jmp 0x513eab
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
xor edi, eax
mov dword [esp + 0x24], ecx
xor ecx, dword [esp + 0x14]
or ecx, edi
jne 0x5163b3
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 0x40]
jl 0x513e9a
jmp 0x5131c3
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x622e92
call fcn.0058fdd0
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x622e92
call fcn.0058fdd0
push str....._third_partylibc_srcincludeoptional:800:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x622e92
call fcn.0058fdd0
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 0x622e92
call fcn.0058fdd0
push str....._third_partylibc_srcincludeoptional:785:_assertion_this__has_value___failed:_optional_operator___called_on_a_disengaged_value_n
push 0x622e92
call fcn.0058fdd0
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x622e92
call fcn.0058fdd0
int3
xor ecx, ecx
jmp 0x512001
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 + 0x2c]
cmp edx, dword [esp + 0x2c]
je 0x511ef9
lea edi, [ebx + 0x110]
jmp 0x514567
mov ecx, dword [esp + 0x20]
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 0x51459e
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0xf8]
bt edx, esi
jae 0x51454d
mov ecx, edi
push esi
call fcn.00562840
test al, al
jne 0x51453d
mov ebx, dword [esp + 0x20]
lea ecx, [ebx + 0xe4]
movzx eax, byte [esp + 0xc]
push eax
call fcn.005cda30
mov edi, eax
jmp 0x511ef9
xor edi, edi
mov ebx, dword [esp + 0x20]
jmp 0x511ef9
int3
mov esi, dword [ebx + eax*8 + 4]
jmp 0x512ca1
mov ecx, 0xfc0
add ecx, dword [esi + edx*4 - 4]
jmp 0x512600
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5131f1
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x513214
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515f26
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515f2e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515108
int3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x30]
cmp edi, eax
je 0x512ff9
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x30]
cmp edi, eax
je 0x5131d5
int3
inc eax
mov dword [esp + 0xdc], eax
cmp edx, eax
jne 0x51281a
mov eax, edx
jmp 0x51278f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51201c
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5126b5
int3
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x511c5f
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x511d7d
inc eax
mov dword [esp + 0xdc], eax
cmp edx, eax
jne 0x512767
mov eax, edx
mov ebx, dword [esp + 0x20]
jmp 0x512787
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x512037
int3
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x63e1cc]
mov ecx, esi
push 1
call edi
jmp 0x51425d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x10]
cmp edi, eax
je 0x512599
int3
mov ecx, dword [ebx + 0x130]
sub ecx, dword [ebx + 0x12c]
sar ecx, 2
jmp 0x512746
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.0058fbc0
add esp, 0x10
jmp 0x511b08
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.0058fbc0
add esp, 0x10
jmp 0x511b45
movzx eax, al
mov dword [esp + 0xd0], 0
lea ecx, [esp + 0x70]
push 2
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
add esp, 0x10
jmp 0x51299c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
cmp edi, eax
je 0x51263c
int3
mov dword [esp + 0xc], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [esp + 0xc]
cmp esi, eax
je 0x512958
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.0058fbc0
mov edx, dword [ebp + 0xc]
add esp, 0x10
jmp 0x511dd7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
cmp edi, eax
je 0x512657
int3
int3
int3
int3
int3
int3
int3
int3
movzx esi, al
mov eax, edi
lea edi, [esp + 0x70]
mov ebx, dword [esp + 0x30]
mov ecx, ebx
mov edx, edi
push eax
call fcn.005c2e40
add esp, 4
lea eax, [esp + 0xa0]
mov dword [eax], str.SequenceManager
mov dword [esp + 0xd0], str.snapshot
lea edx, [esp + 0x98]
mov ecx, esi
push edi
lea esi, [esp + 0xd4]
push esi
push ebx
push eax
call fcn.005c3e00
add esp, 0x10
mov ecx, dword [edi]
mov dword [edi], 0
test ecx, ecx
jne 0x514874
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jmp 0x511f17
push 1
call fcn.005c4e10
jmp 0x514867
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.WillProcessTaskObservers
lea ecx, [esp + 0x70]
push 1
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
add esp, 0x10
jmp 0x5126e0
movzx eax, al
mov dword [esp + 0xd0], 0
lea ecx, [esp + 0x70]
push 2
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
add esp, 0x10
jmp 0x5128a1
movzx eax, al
mov dword [esp + 0xd0], 0
lea ecx, [esp + 0x70]
push 2
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
add esp, 0x10
jmp 0x5128f6
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManagerImpl::NotifyWillProcessTaskObservers
lea ecx, [esp + 0x70]
push 1
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x51261b
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.QueueNotifyWillProcessTask
lea ecx, [esp + 0x70]
push 1
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x5128bc
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.0058fbc0
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x51291f
push str....._third_partylibc_srcincludeoptional:790:_assertion_this__has_value___failed:_optional_operator___called_on_a_disengaged_value_n
push 0x622e92
call fcn.0058fdd0
int3
mov dword [esp + 0x34], edx
xor edi, edi
inc edi
add dword [esp + 0x34], edi
mov dword [esp + 0x38], ecx
mov edi, 0x80000000
adc dword [esp + 0x38], edi
mov dword [esp + 0x40], 0
xor edi, edi
inc edi
cmp edi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
sbb edi, dword [esp + 0x38]
setb byte [esp + 0x34]
xor edx, dword [esp + 0x18]
xor ecx, dword [esp + 0x1c]
or ecx, edx
sete cl
or cl, byte [esp + 0x34]
mov edi, dword [esp + 0x10]
jne 0x51308a
int3
mov edi, dword [esp + 0x24]
xor edx, edx
inc edx
add edi, edx
mov dword [esp + 0x48], edi
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
adc dword [esp + 0x38], 0x80000000
mov dword [esp + 0x44], 0
xor edi, edi
inc edi
cmp edi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
sbb edi, dword [esp + 0x38]
setb byte [esp + 0x38]
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x28]
xor edx, dword [esp + 0x40]
or edx, edi
sete dl
or dl, byte [esp + 0x38]
jne 0x513d2a
int3
mov ebx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], 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 + 0x18], edx
jb 0x514ab6
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x10]
mov dword [esp + 0x18], 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 + 0x18]
jmp 0x511c8f
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x10]
or edx, ebx
je 0x515f0d
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 0x511c8f
mov ebx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], 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 + 0x18], edx
jb 0x514b60
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x10]
mov dword [esp + 0x18], 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 + 0x18]
jmp 0x511dad
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x10]
or edx, ebx
je 0x515f10
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 0x511dad
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 0x515f13
cmp edi, eax
jne 0x512447
lea edi, [esi + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x514bdb
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 0x516053
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x30], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516064
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x28], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516075
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x3c], eax
mov ebx, dword [esi + 0x70]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x90], 0x124
mov al, byte [0x649570]
test al, al
je 0x512447
mov edx, dword [esp + 0x30]
add edx, dword [esp + 0xc]
sub ebx, dword [esp + 0x3c]
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.005ceaf0
add esp, 4
lea ecx, [esp + 0x94]
mov dword [ecx], eax
lea eax, [esp + 0x70]
mov dword [eax], ebx
lea edx, [esp + 0xa0]
mov dword [edx], 0x625997
xor esi, esi
lea ebx, [esp + 0x90]
push eax
push edx
push esi
push 0x43
push 0x625718
push esi
push ecx
push ebx
push edi
call fcn.005ceb20
add esp, 0x24
jmp 0x512447
int3
int3
int3
call fcn.0058fcd0
jmp 0x5131c3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
cmp edi, eax
je 0x512b03
int3
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x513337
int3
mov ecx, dword [ebx + 0x154]
sub ecx, dword [ebx + 0x150]
sar ecx, 3
jmp 0x512bd4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
jne 0x515f3c
mov edi, dword [esi + 0xe8]
test edi, edi
mov ecx, dword [esp + 0xc]
jne 0x512b1b
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 + 0x18], edi
mov dword [esp + 0x1c], esi
xor edi, esi
mov esi, ecx
mov dword [esp + 0x14], ebx
xor esi, ebx
or esi, edi
je 0x514d56
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
sbb ecx, dword [esp + 0x14]
jmp 0x514d5c
mov ecx, dword [edx + 0x10]
cmp dword [eax + 0x10], ecx
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jl 0x511ee5
jmp 0x511eb9
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x622e92
call fcn.0058fdd0
movzx eax, al
mov dword [esp + 0xd0], str.SequenceManager.WillProcessTaskTimeObservers
lea ecx, [esp + 0x70]
push 1
lea edx, [esp + 0xd4]
push edx
push ecx
push eax
call fcn.0058fbc0
add esp, 0x10
jmp 0x512a9d
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.0058fbc0
add esp, 0x10
jmp 0x512ad4
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.0058fbc0
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x512905
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.0058fbc0
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x512af2
mov ecx, dword [edi + 8]
call dword [0x63e1cc]
push edi
call ecx
mov ecx, dword [esp + 0x10]
add esp, 4
jmp 0x512b61
mov eax, dword [0x6496c8]
mov dword [esp + 0xc], eax
mov edx, dword [0x6496cc]
mov dword [esp + 0x10], edx
push edx
push eax
mov dword [esp + 0x20], ecx
push ecx
push ebx
call fcn.00586340
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
mul dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x10]
add eax, ecx
mov edx, dword [esp + 0x34]
imul ecx, edx, 0xf4240
mov dword [esp + 0x1c], ecx
imul edx, dword [esp + 0xc]
add edx, eax
sub ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
sbb ecx, edx
mov edx, 0xf4240
mov eax, dword [esp + 0x14]
mul edx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 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.00586340
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x18]
jmp 0x511c21
mov eax, dword [0x6496c8]
mov dword [esp + 0xc], eax
mov edx, dword [0x6496cc]
mov dword [esp + 0x10], edx
push edx
push eax
mov dword [esp + 0x20], ecx
push ecx
push ebx
call fcn.00586340
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
mul dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x10]
add eax, ecx
mov edx, dword [esp + 0x34]
imul ecx, edx, 0xf4240
mov dword [esp + 0x1c], ecx
imul edx, dword [esp + 0xc]
add edx, eax
sub ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
sbb ecx, edx
mov edx, 0xf4240
mov eax, dword [esp + 0x14]
mul edx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 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.00586340
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x18]
jmp 0x511d3f
mov esi, dword [0x6496c8]
mov dword [esp + 0x48], esi
mov eax, dword [0x6496cc]
mov dword [esp + 0x30], eax
push eax
push esi
push ebx
push edi
call fcn.00586340
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 + 0x3c], 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 + 0x3c]
mov dword [esp + 0x3c], 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.00586340
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x3c]
jmp 0x51228f
push str....._third_partylibc_srcinclude_vector:1557:_assertion___first_____last_failed:_vector::erase_first__last__called_with_invalid_range_n
push 0x622e92
call fcn.0058fdd0
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x513739
int3
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x51377b
int3
mov dword [esp + 0x30], ecx
mov edx, ebx
mov ecx, edx
mov dword [esp + 0x10], edx
push esi
call fcn.00559cd0
add esi, 8
mov edx, dword [esp + 0x10]
add edx, 8
cmp esi, dword [esp + 0x30]
jne 0x515064
mov ecx, dword [edi + 4]
jmp 0x512e60
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 0x5144d4
cmp esi, eax
jne 0x5138fb
lea ebx, [edi + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x5150c9
push ebx
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x2c], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x5145e5
mov ecx, dword [edi + 0x64]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x10], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x5145f6
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x14], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x514607
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x18], eax
mov esi, dword [edi + 0x70]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x94], 0x124
mov al, byte [0x649570]
test al, al
je 0x5138fb
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x2c]
sub esi, dword [esp + 0x18]
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.005ceaf0
add esp, 4
lea ecx, [esp + 0x98]
mov dword [ecx], eax
lea eax, [esp + 0x70]
mov dword [eax], esi
lea edx, [esp + 0xa0]
mov dword [edx], 0x625997
xor esi, esi
lea edi, [esp + 0x94]
push eax
push edx
push esi
push 0x43
push 0x625718
push esi
push ecx
push edi
push ebx
call fcn.005ceb20
add esp, 0x24
jmp 0x5138fb
test esi, esi
je 0x5151e4
jmp 0x515fc7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5161fc
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x5152d6
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3f10
mov esi, dword [ecx + 8]
jne 0x51519c
test esi, esi
jne 0x51620d
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xa4], 0
je 0x5152d6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51621e
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
je 0x5144d7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51622f
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
jne 0x5165e1
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 0x24], 0x5610d0
mov esi, dword [ecx + 8]
jne 0x515264
test esi, esi
je 0x5153ed
jmp 0x515f50
test esi, esi
je 0x5153ed
jmp 0x515fd8
lea ebx, [esp + 0x70]
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.004fa990
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5144d7
cmp dword [eax + 0x14], 1
je 0x516679
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 0x51530d
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0055de20
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x515275
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
jmp 0x511dc0
mov byte [esp + 0x70], 0
xor esi, esi
dec esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], esi
jmp 0x515444
test esi, esi
je 0x5153ed
jmp 0x515f94
test esi, esi
je 0x51536e
jmp 0x515f83
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], 0x4f3cb0
jne 0x5151a5
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51611f
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x5152d6
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3f10
mov esi, dword [ecx + 8]
jne 0x515304
test esi, esi
jne 0x516130
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xa4], 0
je 0x5152d6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x516141
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
je 0x5144d7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x516152
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
jne 0x5165a3
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 0x24], 0x5610d0
mov esi, dword [ecx + 8]
jne 0x5152f7
test esi, esi
jne 0x516163
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 + 0x1c], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x24], 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 0x516174
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x5c], 0
jne 0x5162df
lea ecx, [esp + 0x89]
mov edx, dword [ecx - 0x19]
mov dword [esp + 0x18], 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 0x516185
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x110]
test byte [esp + 0x10], 1
je 0x515651
test al, al
je 0x515651
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xf8]
xor eax, dword [esp + 0x18]
mov ecx, dword [ecx + 0xfc]
xor ecx, ebx
or ecx, eax
jne 0x515511
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x100]
xor eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x104]
xor ecx, dword [esp + 0x24]
or ecx, eax
jne 0x515511
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
cmp dword [eax + 0x108], ecx
jne 0x515511
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x10c], esi
je 0x515622
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x516196
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [edi + 0xf8], ecx
mov dword [edi + 0xfc], ebx
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x100], ecx
mov ecx, dword [esp + 0x24]
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 0x5161a7
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x58]
mov dword [esp + 0xd4], ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x1c]
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.0051c450
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
je 0x511dc0
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
cmp ecx, eax
je 0x511dc0
jmp 0x516562
mov ecx, dword [esp + 0x10]
and cl, 1
cmp cl, al
je 0x515622
jmp 0x515511
test ebx, ebx
je 0x5156a9
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x5161b8
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x515742
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3f10
mov ebx, dword [ecx + 8]
jne 0x515661
test ebx, ebx
jne 0x5161c9
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 + 0x24], eax
mov dword [esp + 0x38], eax
jmp 0x515945
lea ebx, [esp + 0x70]
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.004fa990
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5144d7
cmp dword [eax + 0x14], 1
je 0x516600
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 0x5157e2
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0055de20
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x51576b
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
jmp 0x511ca2
test ebx, ebx
je 0x515847
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], 0x4f3cb0
jne 0x51566a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516086
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x515742
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3f10
mov ebx, dword [ecx + 8]
jne 0x5157d9
test ebx, ebx
jne 0x516097
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 0x5160db
mov eax, dword [0x6496c8]
mov dword [esp + 0x2c], eax
mov ecx, dword [0x6496cc]
mov dword [esp + 0x30], ecx
push ecx
push eax
push ebx
push esi
call fcn.00586340
mov edi, edx
mov ecx, eax
mul dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, ecx
imul ecx, dword [esp + 0x30]
add edx, ecx
imul ecx, edi, 0xf4240
mov dword [esp + 0x14], ecx
imul edi, dword [esp + 0x2c]
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 + 0x30]
push dword [esp + 0x30]
push edx
push eax
call fcn.00586340
add eax, dword [esp + 0x10]
adc edx, edi
jmp 0x5132f5
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 + 0x3c]
xor edi, esi
xor ecx, edx
or ecx, edi
sete cl
or cl, byte [esp + 0x44]
jne 0x5123d9
int3
call fcn.00593680
mov esi, dword [0x6496c8]
mov dword [esp + 0x1c], esi
mov eax, dword [0x6496cc]
mov dword [esp + 0x2c], eax
push eax
push esi
push ebx
push edi
call fcn.00586340
mov dword [esp + 0x10], eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mul esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov esi, eax
imul esi, dword [esp + 0x2c]
add edx, esi
imul esi, ecx, 0xf4240
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1c]
imul ecx, esi
add ecx, edx
sub edi, dword [esp + 0x18]
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 + 0x2c]
push esi
push edx
push eax
call fcn.00586340
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
jmp 0x513890
push eax
call fcn.00562bc0
add esp, 4
jmp 0x513fed
lea esi, [esp + 0x70]
add edi, 0xfffffffc
mov ecx, esi
mov edx, edi
call fcn.005c4c60
mov eax, dword [esp + 0x20]
cmp edi, dword [eax + 0x1b4]
jne 0x515ce9
mov ecx, dword [esp + 0x20]
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 0x515d6b
add edi, 4
add edx, 4
cmp edx, 8
je 0x514d73
add edx, 0xfffffffc
cmp edi, edx
jne 0x515d5b
mov esi, dword [esp + 0x20]
jmp 0x513fe5
mov esi, dword [esp + 0x28]
cmp edx, ebx
je 0x515d9f
push 0xfc0
call fcn.00562bc5
add esp, 4
lea edx, [esp + 0x70]
mov dword [edx], eax
mov ecx, esi
call fcn.005c4b10
mov esi, dword [esp + 0x20]
jmp 0x513fed
push 0xfc0
call fcn.00562bc5
add esp, 4
lea edi, [esp + 0x70]
mov dword [edi], eax
mov ebx, esi
mov ecx, esi
mov edx, edi
call fcn.005c4c60
mov esi, dword [esp + 0x20]
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 0x515dfc
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.005c4b10
jmp 0x513fed
mov dword [esp + 0x3c], eax
test esi, esi
jle 0x515e2d
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 + 0x3c]
jmp 0x513f94
sar esi, 1
cmp ebx, edi
mov eax, 1
cmove esi, eax
cmp esi, 0x40000000
jae 0x515c48
lea eax, [esi*4]
push eax
call fcn.00562bc5
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 0x515e86
push dword [esp + 0x30]
call fcn.00562bc0
add esp, 4
mov dword [esp + 0x30], edi
jmp 0x515e24
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 0x513b67
int3
cmp dword [esp + 0x54], esi
mov edx, dword [esp + 0x28]
sbb dword [esp + 0x50], edx
mov edi, dword [esp + 0xc]
jmp 0x513bf1
mov ecx, esi
jmp 0x51423f
mov ecx, dword [ebx + 0x5c]
jmp 0x514397
mov ecx, dword [ebx + 0x5c]
jmp 0x5143cd
int3
int3
int3
mov eax, dword [esi + 0xc]
jmp 0x514bf0
mov eax, dword [esi + 0xc]
jmp 0x514c05
mov eax, dword [edi + 0xc]
jmp 0x5150de
mov eax, dword [edi + 0xc]
jmp 0x5150f3
int3
int3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5153ed
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51536e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5153ed
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5151e4
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5153ed
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5162d6
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x516306
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x515efd
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x515f05
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x515f16
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x515f1e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x514c1a
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x51581a
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515345
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51536e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515391
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5153b3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5153ed
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x516258
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x51549e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x516264
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x51558a
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x51567c
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5151b7
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5151e4
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515207
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515229
int3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x515461
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x515523
cmp byte [0x655014], 1
jne 0x514112
push dword [esp + 0x14]
call fcn.005c92f0
add esp, 4
test al, al
jne 0x5140f5
jmp 0x514112
push dword [esp + 0x34]
call fcn.004ff8c0
add esp, 4
mov eax, dword [edi]
jmp 0x51435b
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0x74]
mov eax, ebx
sub eax, dword [esp + 0xc]
add eax, esi
jmp 0x51409a
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
sbb dword [esp + 0x40], edx
mov edi, dword [esp + 0x10]
jmp 0x514422
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x5162ea
mov edi, dword [eax + 8]
test edi, edi
jne 0x51600b
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0xa4], 1
jne 0x51546f
mov esi, dword [eax + 8]
test esi, esi
jne 0x51601c
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0x5c]
mov dword [esp + 0x10], esi
mov ecx, ebx
call fcn.00441d20
mov byte [esp + 0x14], al
mov eax, dword [esi]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x63e1cc]
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 + 0x1c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], 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 0x51546f
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sbb eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jl 0x513e9a
jmp 0x5131c3
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 0x515f36
shr ecx, 0x1f
not ecx
xor edx, edx
inc edx
add ecx, edx
mov edx, 0x80000000
adc edx, 0xffffffff
jmp 0x515793
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 0x515f39
shr ecx, 0x1f
not ecx
xor edx, edx
inc edx
add ecx, edx
mov edx, 0x80000000
adc edx, 0xffffffff
jmp 0x51529d
int3
mov ecx, dword [esp + 0xc]
push edx
call fcn.0052b3a0
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x515639
jmp 0x511dc0
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.005610d0
mov ecx, dword [esi + 8]
xor edx, edx
cmp al, byte [ecx + 0x35]
setbe dl
mov dword [esp + 0x14], edx
jmp 0x5153c9
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.005610d0
mov ecx, dword [esi + 8]
xor edx, edx
cmp al, byte [ecx + 0x35]
setbe dl
mov dword [esp + 0x14], edx
jmp 0x51523f
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 0x5164bc
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 0x515793
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 0x5164ef
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 0x51529d