Function at 0x511da0
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 0x5149ef
lock and dword [esi + 0x44], 0xfffffffc
mov dword [esp + 0x20], esi
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x511e0e
xor esi, esi
xchg dword [ebx], esi
test esi, esi
jne 0x513270
mov ebx, dword [ebx + 0x8c]
test ebx, ebx
jne 0x511df8
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514a15
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 0x511e40
mov ecx, dword [ebx + 0x17c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x513182
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
test al, al
mov dword [esp + 0x2c], ecx
jne 0x511f43
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x5136a2
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 0x515137
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.005866e0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x51495e
test edx, edx
je 0x51476f
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 0x51477e
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5147b7
mov ecx, dword [edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp dword [eax + 0x14], 1
je 0x514d29
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 0x5139fe
mov ecx, dword [ebx + 0x180]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5120a0
movzx eax, byte [edx + 8]
test al, al
mov dword [esp + 0x2c], ecx
jne 0x512061
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x5136ba
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 0x5151d7
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.005866e0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 8]
cmp al, 1
je 0x514970
test edx, edx
je 0x51476f
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 0x51477e
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5147b7
mov ecx, dword [edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp dword [eax + 0x14], 1
je 0x514dd3
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 0x513a40
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514a97
cmp byte [edx + 8], 1
jne 0x5120d4
mov eax, dword [edx]
cmp eax, dword [ebx + 0x18c]
mov eax, dword [edx + 4]
sbb eax, dword [ebx + 0x190]
jge 0x513c9f
mov eax, dword [ebx + 0xf8]
mov edi, 0
test eax, eax
je 0x5121d9
tzcnt ecx, eax
mov byte [esp + 0xc], cl
cmp dword [ebp + 0x10], 1
mov dword [esp + 0x2c], ecx
je 0x5147f4
mov edx, dword [ebx + 0x114]
mov eax, dword [ebx + 0x118]
sub eax, edx
sar eax, 4
cmp dword [ebx + 0x124], 3
jge 0x513edd
cmp eax, ecx
jbe 0x5147d5
mov edi, ecx
shl ecx, 4
mov eax, dword [edx + ecx + 4]
cmp eax, dword [edx + ecx + 8]
je 0x51219d
mov esi, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
sub edx, esi
sar edx, 4
cmp edx, edi
jbe 0x5147d5
mov edi, dword [eax + 0x18]
mov edx, dword [esi + ecx + 4]
cmp edx, dword [esi + ecx + 8]
je 0x5121c5
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 0x515002
cmp dword [esp + 0x10], ebx
sbb edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jb 0x5121c5
mov edi, ecx
jmp 0x5121c5
mov eax, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
sub edx, eax
sar edx, 4
cmp edx, edi
jbe 0x5147d5
mov edx, dword [eax + ecx + 4]
xor edi, edi
cmp edx, dword [eax + ecx + 8]
je 0x5121c5
mov edi, dword [edx + 0x18]
cmp dword [edi + 0x50], 1
je 0x513a82
mov dword [ebx + 0x124], 0
mov dword [esp + 0x98], 0x125
movzx eax, byte [0x649571]
test al, al
mov dword [esp + 0xc], edi
jne 0x514aed
test edi, edi
je 0x512cab
cmp dword [edi + 0x18], 0
je 0x5122b7
push 0x388
push 0xff
lea eax, [esp + 0xd8]
push eax
call fcn.005679e0
add esp, 0xc
mov dword [esp + 0xd0], 0
cmp dword [edi + 8], 0
je 0x5145bb
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 0x5147a8
mov edi, dword [ecx + 0xc]
imul ebx, esi, 0x70
mov esi, dword [edi + ebx + 0x50]
test esi, esi
je 0x513702
mov ecx, dword [esi + 0xc]
cmp ecx, 0x560920
je 0x51228b
call dword [0x63e19c]
push 0
push esi
call ecx
add esp, 8
test al, al
jne 0x5136f6
add edi, ebx
cmp dword [edi + 0x6c], 0
jne 0x5136e4
mov esi, dword [esp + 0xd0]
cmp esi, 2
jae 0x513adc
test esi, esi
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jne 0x5139e4
cmp dword [edi + 8], 0
je 0x5147e7
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 0x5147ab
imul ecx, ecx, 0x70
add ecx, dword [eax + 0xc]
cmp byte [ecx + 0x58], 0
je 0x5142de
mov edi, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51493c
cmp dword [edi + 0xe8], 0
jne 0x513908
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51499d
cmp dword [edi + 0xec], 0
jne 0x513908
cmp dword [ebx + 0x6c], 0
jne 0x513c48
mov dword [esp + 0x2c], 0
cmp dword [ebx + 0x16c], 0
mov eax, 0
jne 0x513908
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 0x5147ee
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 0x5147f1
mov eax, dword [ecx + 0xc]
imul ecx, edx, 0x70
lea ebx, [eax + ecx]
mov eax, dword [eax + ecx + 0x68]
test eax, eax
jne 0x513199
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x513680
mov esi, dword [ebx + 0x50]
test esi, esi
jne 0x513663
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax]
jne 0x5124c7
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x513c73
mov edi, dword [esp + 0xc]
dec dword [edi + 8]
jne 0x512666
cmp dword [edi + 0x50], 0
jne 0x5124e3
mov ecx, dword [edi + 0x1c]
push edi
call fcn.00516ec0
cmp dword [edi + 4], 0
je 0x5125bb
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov ecx, dword [0x646080]
cmp ecx, 0x5536d0
jne 0x513509
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 0x515277
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.005866e0
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 0x5125bb
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 0x5125bb
lea edx, [eax + 0x10]
xor esi, esi
add esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x5125a9
cmp edx, esi
jb 0x514582
mov eax, dword [edi + 0x18]
mov ebx, dword [edi + 0x20]
cmp dword [edi + 8], 0
jne 0x51266c
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 0x514760
mov esi, ebx
mov dword [esp + 0xc], ebx
shl esi, 4
add ecx, esi
push 0
call fcn.00516a30
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 0x514760
mov ecx, dword [eax + esi + 4]
cmp ecx, dword [eax + esi + 8]
mov esi, dword [esp + 0xc]
jne 0x512715
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 0x514760
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 0x514760
cmp dword [ecx + esi*4], 0
jne 0x512715
mov ecx, esi
mov edx, 0xfffffffe
rol edx, cl
and dword [eax + 0x14], edx
jmp 0x512715
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 0x513dfa
mov esi, dword [eax + 0x10]
inc ecx
xor edx, edx
cmp ecx, esi
cmove ecx, edx
cmp esi, ecx
jbe 0x5148f8
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 0x513bf0
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 0x514760
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.005169e0
mov esi, dword [edi + 0x1c]
movzx eax, byte [0x649570]
test al, al
jne 0x514e7d
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 0x513f15
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 0x5141bb
cmp ebx, edi
mov ebx, dword [esp + 0x20]
je 0x51476f
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 0x51476f
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 0x5149c6
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 0x513cab
lea edi, [edx*8]
lea edi, [edi + edi*2]
sub ecx, edi
imul ecx, ecx, 0xa8
add ecx, eax
cmp eax, ecx
je 0x514895
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
mov dword [esp + 0xc], ecx
jne 0x514bde
mov esi, dword [ecx - 0x38]
cmp byte [esi + 0x14c], 1
mov edx, dword [ebp + 0xc]
je 0x51318a
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514a66
cmp dword [esi + 0xe8], 0
jne 0x513547
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514ac0
cmp dword [esi + 0xec], 0
jne 0x513547
cmp dword [ebx + 0x6c], 0
jne 0x512957
cmp dword [ebx + 0x16c], 0
jne 0x513547
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 0x512be5
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 0x51494d
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 0x514b5d
mov eax, dword [ebx + 0x12c]
cmp eax, dword [ebx + 0x130]
je 0x512b6a
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 0x5149db
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 0x512a67
mov edi, dword [esi]
mov ebx, dword [esi + 4]
sub ebx, edi
sar ebx, 2
cmp ebx, eax
jbe 0x514760
cmp dword [edi + eax*4], 0
mov ebx, dword [esp + 0x20]
je 0x514982
test esi, esi
je 0x512b6a
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 0x512b1b
cmp edi, eax
jbe 0x514760
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 [0x63e19c]
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 0x512b6a
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 0x512a6f
mov edi, dword [esi]
mov ebx, dword [esi + 4]
sub ebx, edi
sar ebx, 2
cmp ebx, eax
jbe 0x514760
cmp dword [edi + eax*4], 0
jne 0x512a6f
jmp 0x514925
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jne 0x512b3e
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
cmp ebx, ecx
je 0x512b3e
lea edi, [ebx + 4]
cmp dword [ebx], 0
je 0x513cbd
mov ebx, edi
cmp edi, ecx
jne 0x512b2c
cmp dword [esp + 0xd8], 0
mov ebx, dword [esp + 0x20]
je 0x512b6a
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 0x514b88
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
mov ecx, dword [esp + 0xc]
jne 0x514c0d
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.00516ba0
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514bb3
cmp byte [esp + 0x1c], 0
mov ecx, dword [esp + 0xc]
jne 0x512d60
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x514c3c
cmp dword [ecx - 0x3c], 0
jne 0x513867
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x512c1c
movzx eax, byte [eax + 4]
test al, al
je 0x513886
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 0x514a7e
mov edi, dword [edi + 0xf0]
test edi, edi
jne 0x512cb7
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 0x514a3b
mov eax, dword [ebp + 8]
cmp byte [eax + 0x10], 1
jne 0x512c90
mov eax, dword [ebx + 0x44]
test al, 2
jne 0x514889
mov ecx, dword [esp + 0x458]
xor ecx, ebp
call fcn.00566245
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 0x512c65
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x514ad8
cmp eax, 0x7fffffff
je 0x514adb
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x514ade
cmp eax, 0x7fffffff
je 0x514ae1
lock dec dword [edi]
jne 0x512d07
mov ecx, dword [edi + 8]
mov esi, edx
call dword [0x63e19c]
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 0x514ae4
cmp eax, 0x7fffffff
je 0x514ae7
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 0x512c65
mov ecx, dword [edi + 8]
call dword [0x63e19c]
push edi
call ecx
add esp, 4
jmp 0x512c65
cmp dword [ebx + 0x6c], 0
jne 0x512db8
mov dword [esp + 0x70], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x515062
mov eax, dword [ebx + 0x150]
cmp eax, dword [ebx + 0x154]
jne 0x512e60
mov dword [esp + 0xd8], 0
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x51508d
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
jne 0x5150ed
mov esi, dword [ecx - 0x38]
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514fa1
mov edi, dword [esi + 0xe8]
test edi, edi
je 0x512e41
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x514fdf
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x514f8e
cmp eax, 0x7fffffff
je 0x514f91
lea ebx, [ecx - 0x30]
mov eax, dword [esi + 0xe8]
mov ecx, dword [eax + 4]
call dword [0x63e19c]
push ebx
push dword [esp + 0x30]
push edi
call ecx
mov ecx, dword [esp + 0x18]
add esp, 0xc
lock dec dword [edi]
je 0x51511f
mov dword [esp + 0xa0], 0x124
movzx eax, byte [0x649570]
test al, al
je 0x512be5
jmp 0x5150bb
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 0x514fcb
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 0x512f35
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 0x514760
cmp dword [edx + ecx*8 + 4], 0
je 0x512f0c
mov esi, dword [edx + ecx*8]
test esi, esi
je 0x514aea
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x514aea
mov esi, dword [edx + ecx*8]
test esi, esi
je 0x513c57
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x513c57
cmp dword [edx + ecx*8 + 4], 0
je 0x513c57
mov edi, dword [esp + 0xd8]
test edi, edi
je 0x512d9a
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 0x513052
cmp ecx, eax
jbe 0x514760
mov ecx, dword [ebx + eax*8]
xor esi, esi
test ecx, ecx
je 0x512f81
movzx ecx, byte [ecx + 4]
test cl, cl
je 0x51488c
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 [0x63e19c]
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 0x512d9a
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 0x512f35
mov esi, dword [esp + 0xd8]
mov edx, dword [esi]
mov esi, dword [esi + 4]
sub esi, edx
sar esi, 3
cmp esi, eax
jbe 0x514760
cmp dword [edx + eax*8 + 4], 0
je 0x513020
mov esi, dword [edx + eax*8]
test esi, esi
je 0x514793
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x514793
mov esi, dword [edx + eax*8]
test esi, esi
je 0x51303a
movzx ebx, byte [esi + 4]
test bl, bl
jne 0x51303a
cmp dword [edx + eax*8 + 4], 0
jne 0x512f2e
mov eax, dword [esp + 0xdc]
inc eax
mov dword [esp + 0xdc], eax
cmp eax, ecx
jb 0x512fe9
jmp 0x512f2e
mov eax, dword [edi + 0x10]
cmp eax, dword [edi + 0xc]
jne 0x51309b
nop word [eax + eax]
cmp ebx, esi
je 0x51309b
cmp dword [ebx + 4], 0
je 0x513080
mov eax, dword [ebx]
test eax, eax
je 0x5147e4
movzx eax, byte [eax + 4]
test al, al
jne 0x5147e4
mov eax, dword [ebx]
test eax, eax
je 0x5130cc
movzx eax, byte [eax + 4]
test al, al
jne 0x5130cc
cmp dword [ebx + 4], 0
je 0x5130cc
add ebx, 8
cmp ebx, esi
jne 0x513064
cmp dword [esp + 0xd8], 0
je 0x512d9a
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 0x512d9a
lea edx, [ebx + 8]
jmp 0x51311f
cmp dword [edx + 4], 0
je 0x5130ec
mov eax, dword [edx]
test eax, eax
je 0x514f94
mov al, byte [eax + 4]
test al, al
jne 0x514f94
mov eax, dword [edx]
test eax, eax
je 0x51311c
mov al, byte [eax + 4]
test al, al
jne 0x51311c
cmp dword [edx + 4], 0
je 0x51311c
mov ecx, dword [edx]
mov dword [edx], 0
mov eax, dword [ebx]
mov dword [ebx], ecx
test eax, eax
jne 0x513f29
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
add ebx, 8
add edx, 8
cmp edx, esi
jne 0x5130d1
sub esi, ebx
jb 0x515301
je 0x51309b
mov ecx, dword [edi + 4]
add esi, ebx
cmp esi, ecx
jne 0x51533e
mov edx, ebx
sub edx, ebx
add edx, ebx
cmp ecx, edx
je 0x513162
add ecx, 0xfffffff8
test ecx, ecx
je 0x515053
mov eax, dword [ecx]
test eax, eax
jne 0x51316a
lea eax, [ecx - 8]
cmp ecx, edx
mov ecx, eax
jne 0x51314b
mov dword [edi + 4], edx
jmp 0x51309b
lock dec dword [eax]
jne 0x513159
push eax
mov ebx, edx
mov esi, ecx
call fcn.00562f60
mov ecx, esi
mov edx, ebx
add esp, 4
jmp 0x513159
mov edx, dword [ebp + 0xc]
jmp 0x511f82
mov byte [ebx + 0x1ac], 1
mov esi, dword [ecx - 0x38]
jmp 0x51290e
lock dec dword [eax]
jne 0x512499
push eax
call fcn.00562f60
add esp, 4
jmp 0x512499
cmp dword [eax + 0x28], 0
jne 0x513f1c
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 0x514c80
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 0x51336a
mov ecx, edi
call dword [0x63e19c]
mov ecx, dword [esp + 0x30]
call edi
mov edi, dword [esp + 0x2c]
jmp 0x513258
call dword [0x63e19c]
push edi
call ecx
add esp, 4
lock dec dword [edi]
mov eax, dword [esp + 0xc]
je 0x513f48
btc esi, eax
test esi, esi
je 0x511e04
tzcnt ecx, esi
mov edi, dword [ebx + ecx*4 + 8]
test edi, edi
je 0x514796
mov eax, 1
lock xadd dword [edi], eax
test eax, eax
jle 0x514799
cmp eax, 0x7fffffff
je 0x51479c
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + ecx*4 + 8]
mov ecx, dword [eax + 4]
cmp ecx, 0x5c3b80
jne 0x51324c
mov eax, edi
mov edi, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [eax + 0x14]
cmp edi, 0x55dbc0
mov dword [esp + 0x30], ecx
jne 0x513238
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5148fb
mov edi, dword [ecx + 0x64]
mov ecx, dword [edi + 0x1c]
push edi
call fcn.00516ec0
cmp dword [edi + 8], 0
je 0x5134a3
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], eax
test eax, eax
je 0x5134a3
movzx edx, byte [edi + 0x48]
cmp dl, 1
mov dword [esp + 0x10], edi
je 0x5140ef
mov eax, dword [edi]
mov ecx, dword [eax]
test dl, dl
jne 0x513f9e
mov edx, dword [eax + 0x10]
inc ecx
cmp ecx, edx
mov edi, edx
mov edx, 0
cmove ecx, edx
cmp edi, ecx
jbe 0x51479f
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 0x5131b0
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 0x514760
cmp byte [esp + 0x28], 0
je 0x51477e
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.0050c810
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], eax
jne 0x5134a3
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 0x514760
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 0x514760
cmp dword [ecx + edi*4], 1
jne 0x5134a3
mov ecx, dword [eax + 0x14]
mov edx, ecx
bts edx, edi
mov dword [eax + 0x14], edx
test ecx, ecx
jne 0x5134a3
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x5134a3
mov eax, dword [ecx + 0x40]
add ecx, 0x40
mov edx, eax
and edx, 0xfffffffd
lock cmpxchg dword [ecx], edx
jne 0x513490
test al, 4
jne 0x514f97
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x514910
cmp dword [ecx + 0x5c], 0
mov edi, dword [esp + 0x2c]
je 0x513258
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5148a3
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xa4], 1
mov edi, dword [esp + 0x2c]
jne 0x513258
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x5148b4
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 0x513238
call dword [0x63e19c]
lea eax, [esp + 0xa0]
push eax
call ecx
add esp, 4
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
jmp 0x512581
call dword [0x63e19c]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x5135e7
mov dword [ecx - 0x30], 1
cmp byte [ecx - 0x2c], 1
jne 0x51362c
movzx eax, byte [edx + 8]
test al, al
jne 0x51361b
mov ecx, dword [fcn.0055fb00]
cmp ecx, 0x5536d0
jne 0x51352f
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 0x515e5c
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.005866e0
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 0x514fb6
test edx, edx
je 0x51476f
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 0x51477e
movq xmm0, qword [edx]
movq qword [ecx - 0x28], xmm0
mov al, 1
mov dword [esp + 0x1c], eax
cmp byte [ecx - 0x2b], 1
jne 0x51295f
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 0x51295f
lock dec dword [esi]
jne 0x5124af
mov ecx, dword [esi + 8]
call dword [0x63e19c]
push esi
call ecx
add esp, 4
jmp 0x5124af
lock dec dword [edi + 4]
jne 0x5124a4
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x63e19c]
mov ecx, edi
push 1
call esi
jmp 0x5124a4
call dword [0x63e19c]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x511f0f
call dword [0x63e19c]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x51202d
lea ecx, [esp + 0xd0]
push eax
call fcn.004fc280
jmp 0x5137d2
mov eax, dword [edi + 0x68]
test eax, eax
je 0x5136f6
mov al, byte [eax + 4]
test al, al
je 0x512297
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 0x5147ae
mov edx, dword [esp + 0xd0]
mov esi, 8
test dl, 1
je 0x51372c
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 0x5136d2
lea esi, [esp + 0xd8]
test dl, 1
je 0x513751
mov esi, dword [esp + 0xd8]
imul ecx, ecx, 0x70
add ecx, esi
je 0x51476f
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 0x5147b1
mov ebx, dword [eax + 0xc]
imul esi, ecx, 0x70
mov eax, dword [ebx + esi + 0x68]
test eax, eax
jne 0x513841
add ebx, esi
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x513836
mov esi, dword [ebx + 0x50]
test esi, esi
jne 0x513851
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax]
jne 0x513824
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x513f60
mov eax, dword [esp + 0xc]
dec dword [eax + 8]
jne 0x512238
jmp 0x512297
lock dec dword [edi + 4]
jne 0x513805
jmp 0x5145c8
lock dec dword [eax]
jne 0x5137fc
push eax
call fcn.00562f60
add esp, 4
jmp 0x5137fc
lock dec dword [esi]
jne 0x51380c
mov ecx, dword [esi + 8]
call dword [0x63e19c]
push esi
call ecx
add esp, 4
jmp 0x51380c
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x513879
mov al, byte [eax + 4]
test al, al
je 0x512c09
add ecx, 0xffffffa8
call fcn.00590300
jmp 0x512c1c
mov eax, dword [esp + 0xc]
cmp dword [eax - 0x3c], 0
je 0x512c1c
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x514c7d
mov al, byte [eax + 4]
test al, al
jne 0x514c7d
mov esi, dword [ecx - 0x3c]
mov eax, dword [esi + 0xc]
mov byte [eax + 4], 1
push 8
call fcn.00562f65
add esp, 4
mov dword [eax], 0
mov byte [eax + 4], 0
test eax, eax
je 0x5138e3
xor ecx, ecx
inc ecx
lock xadd dword [eax], ecx
cmp ecx, 0x7fffffff
je 0x514fc8
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
test ecx, ecx
je 0x512c1c
lock dec dword [ecx]
jne 0x512c1c
push ecx
call fcn.00562f60
add esp, 4
jmp 0x512c1c
movsd xmm0, qword [ebx + 0x3c]
mov al, 1
mov dword [esp + 0x2c], eax
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x513c50
cmp byte [ebx + 0xdc], 0
je 0x514c6e
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 0x512348
lea ecx, [esp + 0xd0]
call fcn.004fbac0
cmp esi, 1
je 0x5122b7
jmp 0x5120d4
mov ebx, dword [eax + 0x18]
mov ecx, ebx
push esi
push edi
push edx
call fcn.00528c40
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
test eax, eax
jne 0x515310
mov eax, dword [ebx + 0x5c]
test eax, eax
mov ecx, dword [esp + 0x2c]
jne 0x514663
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
jne 0x515a47
mov ebx, dword [esp + 0x20]
jmp 0x511f82
mov ebx, dword [eax + 0x18]
mov ecx, ebx
push esi
push edi
push edx
call fcn.00528c40
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
test eax, eax
jne 0x515327
mov eax, dword [ebx + 0x5c]
test eax, eax
mov ecx, dword [esp + 0x2c]
jne 0x514699
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
jne 0x515551
mov ebx, dword [esp + 0x20]
jmp 0x5120a0
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 0x5147d5
mov ecx, edx
shl ecx, 4
mov edx, ecx
mov ecx, dword [eax + ecx + 4]
cmp ecx, dword [eax + edx + 8]
je 0x5121cf
inc dword [ebx + 0x124]
jmp 0x5121d9
call dword [0x63e19c]
lea esi, [esp + 0xa0]
push esi
call ecx
add esp, 4
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x513b82
mov edi, dword [esp + 0xc]
cmp dword [edi + 8], 0
jne 0x513bbc
cmp dword [edi + 0x50], 0
jne 0x513af9
mov ecx, dword [edi + 0x1c]
push edi
call fcn.00516ec0
cmp dword [edi + 4], 0
je 0x513bbc
xor eax, eax
dec eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov ecx, dword [0x646080]
cmp ecx, 0x5536d0
jne 0x513abf
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 0x515f2d
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.005866e0
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 0x513bbc
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 0x513bbc
lea edx, [eax + 0x10]
xor esi, esi
add esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x513baa
cmp edx, esi
jb 0x5145e0
cmp dword [edi + 0x24], 0xffffffff
je 0x513bcb
mov ecx, dword [edi + 0x18]
push edi
call fcn.004fbc00
mov edi, dword [edi + 0x1c]
mov al, byte [0x649570]
test al, al
jne 0x51536b
mov esi, dword [esp + 0xd0]
jmp 0x5122a7
mov esi, edi
mov edx, ecx
jmp 0x5126b9
cmp dword [eax + 0x28], 0
jne 0x513be7
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 0x515edb
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 0x5126b9
mov dword [esp + 0x2c], 0
xor eax, eax
jmp 0x512348
mov ecx, dword [esp + 0xdc]
inc ecx
mov dword [esp + 0xdc], ecx
cmp ecx, eax
jb 0x512ed5
jmp 0x512f2e
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax]
mov dword [eax], ecx
test edi, edi
je 0x5124c7
mov ecx, edi
call fcn.00406710
push edi
call fcn.00562f60
add esp, 4
jmp 0x5124c7
mov byte [ebx + 0x184], 1
jmp 0x5120d4
xor ecx, ecx
jmp 0x5128d8
push eax
call fcn.004ffc60
add esp, 4
jmp 0x513d04
cmp edi, ecx
jne 0x514648
sub ecx, ebx
jb 0x515301
je 0x512b3e
mov edi, dword [esi + 4]
add ecx, ebx
mov edx, ebx
cmp ecx, edi
je 0x513d25
mov dword [esp + 0x34], edi
cmp edx, ecx
je 0x513d14
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 0x513cb2
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 0x513ce2
mov edi, dword [esi + 4]
sub edx, ebx
add edx, ebx
cmp edi, edx
je 0x513d63
add edi, 0xfffffffc
test edi, edi
je 0x515053
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 0x513d6b
mov dword [edi], 0
lea eax, [edi - 4]
mov edx, ebx
cmp edi, ebx
mov edi, eax
jne 0x513d30
mov dword [esi + 4], edx
jmp 0x512b3e
push eax
call fcn.004ffc60
add esp, 4
jmp 0x513d52
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x50], esi
jmp 0x513e47
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], esi
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0x28], 0
jne 0x513d76
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 0x51616c
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 0x513e47
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 0x515368
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 0x513d87
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 0x513ea4
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 0x512682
mov eax, dword [esp + 0x30]
jmp 0x5125cb
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 0x5161c1
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x5c]
cmp edx, dword [edi + 0x40]
mov esi, dword [esp + 0x44]
jl 0x512682
jmp 0x513e9b
cmp eax, ecx
jbe 0x5147d5
shl ecx, 4
mov eax, dword [edx + ecx + 4]
cmp eax, dword [edx + ecx + 8]
je 0x513efd
mov edi, dword [eax + 0x18]
test edi, edi
jne 0x5121c5
lea ecx, [ebx + 0xe4]
movzx eax, byte [esp + 0xc]
push eax
call fcn.00422eb0
mov edi, eax
jmp 0x5121c5
xor ecx, ecx
jmp 0x512752
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
jmp 0x51336a
lock dec dword [eax]
jne 0x513113
push eax
mov dword [esp + 0x34], edx
call fcn.00562f60
mov edx, dword [esp + 0x34]
add esp, 4
jmp 0x513113
mov ecx, dword [edi + 8]
call dword [0x63e19c]
push edi
call ecx
mov eax, dword [esp + 0x10]
add esp, 4
jmp 0x513265
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax]
mov dword [eax], ecx
test edi, edi
je 0x513824
mov ecx, edi
call fcn.00406710
push edi
call fcn.00562f60
add esp, 4
jmp 0x513824
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], edx
jmp 0x51400a
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 0x5147a5
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 0x514067
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 0x5146cf
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 0x51331f
jmp 0x51418b
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x34]
cmp dword [edx + 0x28], 0
jne 0x513f8c
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 0x514cd2
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 0x51400a
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 0x5147a2
imul ecx, ecx, 0x70
add ecx, dword [eax + 0xc]
lea eax, [esp + 0xd0]
push eax
call fcn.0053ec10
mov dl, byte [edi + 0x48]
test dl, dl
je 0x5147c6
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 0x514711
cmp dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
sbb eax, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
jae 0x5134a3
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], eax
cmp dword [edi + 8], 0
jne 0x51330f
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 0x51338b
mov ecx, dword [esp + 0x20]
lea edx, [ecx + 0x1b0]
mov dword [esp + 0x28], edx
cmp eax, 0x18
jae 0x5160bc
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 0x516054
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 0x515f28
mov dword [esp + 0xc], ecx
lea eax, [ecx*4]
mov dword [esp + 0x3c], eax
push eax
call fcn.00562f65
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.00562f65
add esp, 4
cmp esi, dword [esp + 0x3c]
je 0x5160e6
mov ebx, dword [esp + 0x28]
test ebx, ebx
mov esi, dword [esp + 0x20]
je 0x51476f
mov dword [ebx], eax
lea ecx, [ebx + 4]
mov dword [esp + 0x78], ecx
mov edi, dword [esi + 0x1b8]
cmp edi, dword [esi + 0x1b4]
jne 0x515fc5
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 0x515fb7
mov edi, dword [esi + 0x1b4]
mov ebx, dword [esi + 0x1b8]
jmp 0x51276c
cmp dword [ebx + 0x6c], 0
jle 0x5122eb
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.00517b40
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 0x516589
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 0x514434
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 0x516802
mov eax, dword [esp + 0x20]
add eax, 0x70
mov dword [esp + 0x18], eax
push 0
push dword [esp + 0x18]
push 0x635600
call fcn.00520d30
add esp, 0xc
mov edi, eax
test eax, eax
je 0x516550
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.0050f990
add esp, 0xc
mov dword [ebx + 0x70], edi
mov dword [ebx + 0x74], esi
mov ebx, dword [ebx + 0x7c]
cmp esi, ebx
jb 0x51478d
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 0x5161d6
cmp eax, ecx
jb 0x514790
mov eax, dword [esp + 0x138]
test eax, eax
jne 0x51455c
mov esi, dword [esp + 0x12c]
test esi, esi
jne 0x514551
mov esi, dword [esp + 0x120]
test esi, esi
jne 0x51456c
mov ebx, dword [esp + 0x20]
jmp 0x5120d4
lock dec dword [esi + 4]
jne 0x51453d
jmp 0x5149ae
lock dec dword [eax]
jne 0x514532
push eax
call fcn.00562f60
add esp, 4
jmp 0x514532
lock dec dword [esi]
jne 0x514548
mov ecx, dword [esi + 8]
call dword [0x63e19c]
push esi
call ecx
add esp, 4
jmp 0x514548
mov ecx, edi
push eax
call fcn.005189f0
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 0x5125bb
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jmp 0x5122b7
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x63e19c]
mov ecx, edi
push 1
call esi
jmp 0x513805
mov ecx, edi
push eax
call fcn.005189f0
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 0x513bbc
cmp edi, ebx
je 0x514643
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 0x516576
mov dword [ebx], eax
mov dword [edi], 0
add ebx, 4
jmp 0x514652
mov dword [esp + 0x24], ecx
mov eax, dword [edi]
test eax, eax
jne 0x514619
add edi, 4
mov ecx, dword [esp + 0x24]
cmp edi, ecx
je 0x513cc5
jmp 0x51464c
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x51630d
mov ebx, ecx
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
call dword [0x63e19c]
mov ecx, ebx
push dword [ebp + 0xc]
call dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
jmp 0x513a28
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x516320
mov ebx, ecx
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
call dword [0x63e19c]
mov ecx, ebx
push dword [ebp + 0xc]
call dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
jmp 0x513a6a
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 0x51659d
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
cmp edx, dword [edi + 0x40]
mov edx, dword [esp + 0x1c]
jl 0x51331f
jmp 0x51418b
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 0x516693
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 0x40]
jl 0x51417a
jmp 0x5134a3
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x622e92
call fcn.00590170
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x622e92
call fcn.00590170
push str....._third_partylibc_srcincludeoptional:800:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x622e92
call fcn.00590170
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.00590170
push str....._third_partylibc_srcincludeoptional:785:_assertion_this__has_value___failed:_optional_operator___called_on_a_disengaged_value_n
push 0x622e92
call fcn.00590170
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x622e92
call fcn.00590170
int3
xor ecx, ecx
jmp 0x5122e1
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 0x5121d9
lea edi, [ebx + 0x110]
jmp 0x514847
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 0x51487e
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0xf8]
bt edx, esi
jae 0x51482d
mov ecx, edi
push esi
call fcn.00562be0
test al, al
jne 0x51481d
mov ebx, dword [esp + 0x20]
lea ecx, [ebx + 0xe4]
movzx eax, byte [esp + 0xc]
push eax
call fcn.005cddb0
mov edi, eax
jmp 0x5121d9
xor edi, edi
mov ebx, dword [esp + 0x20]
jmp 0x5121d9
int3
mov esi, dword [ebx + eax*8 + 4]
jmp 0x512f81
mov ecx, 0xfc0
add ecx, dword [esi + edx*4 - 4]
jmp 0x5128e0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5134d1
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5134f4
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x516206
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51620e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5153e8
int3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x30]
cmp edi, eax
je 0x5132d9
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x30]
cmp edi, eax
je 0x5134b5
int3
inc eax
mov dword [esp + 0xdc], eax
cmp edx, eax
jne 0x512afa
mov eax, edx
jmp 0x512a6f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5122fc
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x512995
int3
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x511f3f
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x51205d
inc eax
mov dword [esp + 0xdc], eax
cmp edx, eax
jne 0x512a47
mov eax, edx
mov ebx, dword [esp + 0x20]
jmp 0x512a67
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x512317
int3
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x63e19c]
mov ecx, esi
push 1
call edi
jmp 0x51453d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x10]
cmp edi, eax
je 0x512879
int3
mov ecx, dword [ebx + 0x130]
sub ecx, dword [ebx + 0x12c]
sar ecx, 2
jmp 0x512a26
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.0058ff60
add esp, 0x10
jmp 0x511de8
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.0058ff60
add esp, 0x10
jmp 0x511e25
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.0058ff60
add esp, 0x10
jmp 0x512c7c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
cmp edi, eax
je 0x51291c
int3
mov dword [esp + 0xc], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [esp + 0xc]
cmp esi, eax
je 0x512c38
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.0058ff60
mov edx, dword [ebp + 0xc]
add esp, 0x10
jmp 0x5120b7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
cmp edi, eax
je 0x512937
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.005c31c0
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.005c4180
add esp, 0x10
mov ecx, dword [edi]
mov dword [edi], 0
test ecx, ecx
jne 0x514b54
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jmp 0x5121f7
push 1
call fcn.005c5190
jmp 0x514b47
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.0058ff60
add esp, 0x10
jmp 0x5129c0
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.0058ff60
add esp, 0x10
jmp 0x512b81
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.0058ff60
add esp, 0x10
jmp 0x512bd6
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.0058ff60
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x5128fb
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.0058ff60
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x512b9c
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.0058ff60
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x512bff
push str....._third_partylibc_srcincludeoptional:790:_assertion_this__has_value___failed:_optional_operator___called_on_a_disengaged_value_n
push 0x622e92
call fcn.00590170
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 0x51336a
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 0x51400a
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 0x514d96
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 0x511f6f
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x10]
or edx, ebx
je 0x5161ed
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 0x511f6f
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 0x514e40
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 0x51208d
mov ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x10]
or edx, ebx
je 0x5161f0
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 0x51208d
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 0x5161f3
cmp edi, eax
jne 0x512727
lea edi, [esi + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x514ebb
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 0x516333
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x30], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516344
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x28], ecx
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516355
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 0x512727
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.005cee70
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.005ceea0
add esp, 0x24
jmp 0x512727
int3
int3
int3
call fcn.00590070
jmp 0x5134a3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0xc]
cmp edi, eax
je 0x512de3
int3
movq xmm0, qword [esp + 0xd0]
movq qword [edx], xmm0
jmp 0x513617
int3
mov ecx, dword [ebx + 0x154]
sub ecx, dword [ebx + 0x150]
sar ecx, 3
jmp 0x512eb4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
jne 0x51621c
mov edi, dword [esi + 0xe8]
test edi, edi
mov ecx, dword [esp + 0xc]
jne 0x512dfb
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 0x515036
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
sbb ecx, dword [esp + 0x14]
jmp 0x51503c
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 0x5121c5
jmp 0x512199
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x622e92
call fcn.00590170
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.0058ff60
add esp, 0x10
jmp 0x512d7d
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.0058ff60
add esp, 0x10
jmp 0x512db4
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.0058ff60
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x512be5
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.0058ff60
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x512dd2
mov ecx, dword [edi + 8]
call dword [0x63e19c]
push edi
call ecx
mov ecx, dword [esp + 0x10]
add esp, 4
jmp 0x512e41
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.005866e0
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.005866e0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x18]
jmp 0x511f01
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.005866e0
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.005866e0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x18]
jmp 0x51201f
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.005866e0
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.005866e0
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x3c]
jmp 0x51256f
push str....._third_partylibc_srcinclude_vector:1557:_assertion___first_____last_failed:_vector::erase_first__last__called_with_invalid_range_n
push 0x622e92
call fcn.00590170
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x513a19
int3
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x513a5b
int3
mov dword [esp + 0x30], ecx
mov edx, ebx
mov ecx, edx
mov dword [esp + 0x10], edx
push esi
call fcn.0055a070
add esi, 8
mov edx, dword [esp + 0x10]
add edx, 8
cmp esi, dword [esp + 0x30]
jne 0x515344
mov ecx, dword [edi + 4]
jmp 0x513140
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 0x5147b4
cmp esi, eax
jne 0x513bdb
lea ebx, [edi + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x5153a9
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 0x5148c5
mov ecx, dword [edi + 0x64]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x10], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x5148d6
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x14], ecx
mov esi, dword [eax + 8]
test esi, esi
jne 0x5148e7
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 0x513bdb
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.005cee70
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.005ceea0
add esp, 0x24
jmp 0x513bdb
test esi, esi
je 0x5154c4
jmp 0x5162a7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5164dc
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x5155b6
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3ec0
mov esi, dword [ecx + 8]
jne 0x51547c
test esi, esi
jne 0x5164ed
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xa4], 0
je 0x5155b6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5164fe
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
je 0x5147b7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x51650f
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
jne 0x5168c1
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 0x24], 0x561470
mov esi, dword [ecx + 8]
jne 0x515544
test esi, esi
je 0x5156cd
jmp 0x516230
test esi, esi
je 0x5156cd
jmp 0x5162b8
lea ebx, [esp + 0x70]
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.004fad30
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5147b7
cmp dword [eax + 0x14], 1
je 0x516959
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 0x5155ed
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0055e1c0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x515555
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
jmp 0x5120a0
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 0x515724
test esi, esi
je 0x5156cd
jmp 0x516274
test esi, esi
je 0x51564e
jmp 0x516263
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], 0x4f3c60
jne 0x515485
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x5163ff
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x5155b6
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3ec0
mov esi, dword [ecx + 8]
jne 0x5155e4
test esi, esi
jne 0x516410
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xa4], 0
je 0x5155b6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x516421
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
je 0x5147b7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
test esi, esi
jne 0x516432
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
jne 0x516883
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 0x24], 0x561470
mov esi, dword [ecx + 8]
jne 0x5155d7
test esi, esi
jne 0x516443
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 0x516454
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x5c], 0
jne 0x5165bf
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 0x516465
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x110]
test byte [esp + 0x10], 1
je 0x515931
test al, al
je 0x515931
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 0x5157f1
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 0x5157f1
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
cmp dword [eax + 0x108], ecx
jne 0x5157f1
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x10c], esi
je 0x515902
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
jne 0x516476
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 0x516487
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.0051c730
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 0x5120a0
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
cmp ecx, eax
je 0x5120a0
jmp 0x516842
mov ecx, dword [esp + 0x10]
and cl, 1
cmp cl, al
je 0x515902
jmp 0x5157f1
test ebx, ebx
je 0x515989
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516498
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x515a22
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3ec0
mov ebx, dword [ecx + 8]
jne 0x515941
test ebx, ebx
jne 0x5164a9
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 0x515c25
lea ebx, [esp + 0x70]
mov ecx, dword [ebp + 0xc]
push ebx
call fcn.004fad30
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x5147b7
cmp dword [eax + 0x14], 1
je 0x5168e0
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 0x515ac2
mov ecx, dword [esp + 0xc]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0055e1c0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x515a4b
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
jmp 0x511f82
test ebx, ebx
je 0x515b27
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], 0x4f3c60
jne 0x51594a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x516366
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x70]
je 0x515a22
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
cmp dword [eax + 8], 0x4f3ec0
mov ebx, dword [ecx + 8]
jne 0x515ab9
test ebx, ebx
jne 0x516377
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 0x5163bb
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.005866e0
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.005866e0
add eax, dword [esp + 0x10]
adc edx, edi
jmp 0x5135d5
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 0x5126b9
int3
call fcn.00593a20
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.005866e0
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.005866e0
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
jmp 0x513b70
push eax
call fcn.00562f60
add esp, 4
jmp 0x5142cd
lea esi, [esp + 0x70]
add edi, 0xfffffffc
mov ecx, esi
mov edx, edi
call fcn.005c4fe0
mov eax, dword [esp + 0x20]
cmp edi, dword [eax + 0x1b4]
jne 0x515fc9
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 0x51604b
add edi, 4
add edx, 4
cmp edx, 8
je 0x515053
add edx, 0xfffffffc
cmp edi, edx
jne 0x51603b
mov esi, dword [esp + 0x20]
jmp 0x5142c5
mov esi, dword [esp + 0x28]
cmp edx, ebx
je 0x51607f
push 0xfc0
call fcn.00562f65
add esp, 4
lea edx, [esp + 0x70]
mov dword [edx], eax
mov ecx, esi
call fcn.005c4e90
mov esi, dword [esp + 0x20]
jmp 0x5142cd
push 0xfc0
call fcn.00562f65
add esp, 4
lea edi, [esp + 0x70]
mov dword [edi], eax
mov ebx, esi
mov ecx, esi
mov edx, edi
call fcn.005c4fe0
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 0x5160dc
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.005c4e90
jmp 0x5142cd
mov dword [esp + 0x3c], eax
test esi, esi
jle 0x51610d
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 0x514274
sar esi, 1
cmp ebx, edi
mov eax, 1
cmove esi, eax
cmp esi, 0x40000000
jae 0x515f28
lea eax, [esi*4]
push eax
call fcn.00562f65
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 0x516166
push dword [esp + 0x30]
call fcn.00562f60
add esp, 4
mov dword [esp + 0x30], edi
jmp 0x516104
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 0x513e47
int3
cmp dword [esp + 0x54], esi
mov edx, dword [esp + 0x28]
sbb dword [esp + 0x50], edx
mov edi, dword [esp + 0xc]
jmp 0x513ed1
mov ecx, esi
jmp 0x51451f
mov ecx, dword [ebx + 0x5c]
jmp 0x514677
mov ecx, dword [ebx + 0x5c]
jmp 0x5146ad
int3
int3
int3
mov eax, dword [esi + 0xc]
jmp 0x514ed0
mov eax, dword [esi + 0xc]
jmp 0x514ee5
mov eax, dword [edi + 0xc]
jmp 0x5153be
mov eax, dword [edi + 0xc]
jmp 0x5153d3
int3
int3
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5156cd
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51564e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5156cd
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5154c4
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5156cd
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x5165b6
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5165e6
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x5161dd
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esp + 0xc], eax
je 0x5161e5
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x5161f6
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x5161fe
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x514efa
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x515afa
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515625
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x51564e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515671
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515693
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5156cd
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x516538
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x51577e
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x516544
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x51586a
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x51595c
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515497
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5154c4
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x5154e7
int3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x515509
int3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x515741
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x515803
cmp byte [0x655014], 1
jne 0x5143f2
push dword [esp + 0x14]
call fcn.005c9670
add esp, 4
test al, al
jne 0x5143d5
jmp 0x5143f2
push dword [esp + 0x34]
call fcn.004ffc60
add esp, 4
mov eax, dword [edi]
jmp 0x51463b
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0x74]
mov eax, ebx
sub eax, dword [esp + 0xc]
add eax, esi
jmp 0x51437a
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 0x514702
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x5165ca
mov edi, dword [eax + 8]
test edi, edi
jne 0x5162eb
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0xa4], 1
jne 0x51574f
mov esi, dword [eax + 8]
test esi, esi
jne 0x5162fc
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0x5c]
mov dword [esp + 0x10], esi
mov ecx, ebx
call fcn.00442520
mov byte [esp + 0x14], al
mov eax, dword [esi]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x63e19c]
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 0x51574f
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 0x51417a
jmp 0x5134a3
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 0x516216
shr ecx, 0x1f
not ecx
xor edx, edx
inc edx
add ecx, edx
mov edx, 0x80000000
adc edx, 0xffffffff
jmp 0x515a73
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 0x516219
shr ecx, 0x1f
not ecx
xor edx, edx
inc edx
add ecx, edx
mov edx, 0x80000000
adc edx, 0xffffffff
jmp 0x51557d
int3
mov ecx, dword [esp + 0xc]
push edx
call fcn.0052b680
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jne 0x515919
jmp 0x5120a0
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.00561470
mov ecx, dword [esi + 8]
xor edx, edx
cmp al, byte [ecx + 0x35]
setbe dl
mov dword [esp + 0x14], edx
jmp 0x5156a9
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.00561470
mov ecx, dword [esi + 8]
xor edx, edx
cmp al, byte [ecx + 0x35]
setbe dl
mov dword [esp + 0x14], edx
jmp 0x51551f
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 0x51679c
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 0x515a73
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 0x5167cf
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 0x51557d