Function at 0x1008e8a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x200
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x10146014]
xor eax, ebp
mov dword [esp + 0x1f8], eax
mov edx, dword [ebp + 0xc]
movdqu xmm0, xmmword [ecx]
movdqu xmmword [edx + 0x20], xmm0
mov eax, dword [edx + 0x4c]
mov dword [esp + 0xc], edx
mov ebx, dword [edx + 0x50]
sub ebx, eax
jne 0x1008f519
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x20]
mov dword [esp + 0x40], ecx
pxor xmm0, xmm0
movdqa xmmword [esp + 0x90], xmm0
mov esi, dword [esp + 0x10]
lea ecx, [esi + 0x18]
mov dword [esp + 0x28], ecx
lea edi, [esp + 0x1b0]
add eax, 0x10
mov dword [esp + 0x84], eax
movdqa xmmword [esp + 0xf0], xmm0
lea ebx, [esp + 0x150]
mov dword [esp + 0x3c], 0
movdqa xmmword [esp + 0xe0], xmm0
mov dword [esp + 0x150], 0xffffffff
mov dword [esp + 0x154], 0xffffffff
mov dword [esp + 0x158], 0xffffffff
mov ecx, ebx
push dword [ebp + 8]
call fcn.10094680
mov eax, dword [esp + 0x150]
mov eax, dword [eax + 0x10]
movdqu xmm0, xmmword [eax + 8]
movdqa xmmword [esp + 0xe0], xmm0
mov ecx, ebx
call fcn.100946f0
mov eax, dword [esp + 0xe4]
xor eax, dword [esi + 4]
mov ecx, dword [esp + 0xe0]
xor ecx, dword [esi]
or ecx, eax
jne 0x1008e9b4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
xor eax, dword [esp + 0xe8]
mov ecx, dword [ecx + 0xc]
xor ecx, dword [esp + 0xec]
or ecx, eax
je 0x1008e9c5
mov ecx, dword [esp + 0xc]
call fcn.10087630
test al, al
je 0x1008fe4a
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1008f98c
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x1b0], xmm0
movdqa xmmword [esp + 0x1c0], xmm0
movdqa xmmword [esp + 0x1a0], xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x150], xmm0
lea eax, [esp + 0x150]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1c8], eax
mov byte [esp + 0x1b0], 1
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], edi
movdqa xmmword [esp + 0x120], xmm0
mov dword [esp + 0x134], 0xffffffff
mov dword [esp + 0x130], 0xffffffff
lea eax, [esp + 0x120]
mov dword [esp + 0x138], eax
mov dword [esp + 0x148], eax
mov byte [esp + 0x134], 1
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
lea eax, [esp + 0x134]
mov dword [esp + 0x144], eax
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x50]
mov ecx, dword [edx + 0x4c]
mov ebx, eax
sub ebx, ecx
sub eax, ecx
jne 0x1008ed7f
mov esi, dword [edx + 0x50]
sub esi, dword [edx + 0x4c]
sar esi, 4
lea ebx, [esi + 1]
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0x140]
mov edi, eax
mov dword [esp + 4], ecx
sub edi, ecx
sar edi, 2
mov ecx, ebx
mov dword [esp], ebx
sub ebx, edi
jbe 0x1008fe21
mov ecx, dword [esp + 0x144]
mov edx, ecx
sub edx, eax
sar edx, 2
cmp edx, ebx
jb 0x1008fa04
lea ecx, [eax + ebx*4]
shl esi, 2
shl edi, 2
sub esi, edi
add esi, 4
test eax, eax
je 0x1008fe06
mov dword [eax], 0
add eax, 4
add esi, 0xfffffffc
jne 0x1008eb19
mov dword [esp + 0x140], ecx
mov eax, dword [esp + 0x13c]
cmp dword [esp + 0x140], eax
je 0x1008fde8
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
cmp dword [ecx + 0x50], eax
jne 0x1008f24a
mov dword [esp + 0xb8], 0xffffffff
mov dword [esp + 0xbc], 0xffffffff
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + 0x140]
sub edx, eax
sar edx, 2
lea ecx, [esp + 0xb8]
push edx
push eax
call fcn.100945c0
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x10]
mov esi, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
xor ecx, eax
mov edx, dword [esp + 0xe0]
mov eax, esi
mov dword [esp + 0x30], edx
xor eax, edx
mov edx, dword [edi + 0x14]
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], ebx
xor edx, ebx
mov dword [esp], edi
mov edi, dword [edi + 0x10]
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0x20], edi
xor edi, ebx
or edi, edx
setne dl
or eax, ecx
jne 0x1008fd4a
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 4], edi
test dl, dl
jne 0x1008fd51
mov edi, dword [eax + 8]
mov edx, dword [eax + 0xc]
xor edi, dword [esp + 0x20]
xor edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 4]
or eax, edx
xor esi, ecx
or esi, edi
or esi, eax
setne al
mov dword [esp + 0x3c], eax
mov ebx, 1
mov eax, dword [esp]
cmp dword [eax + 4], 1
jne 0x1008fe3d
cmp byte [eax + 0xc1], 0
jne 0x1008f90d
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x38]
or eax, dword [edi + 0x3c]
jne 0x1008ec7a
mov ebx, dword [esp]
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x64]
mov edx, eax
add edx, 1
mov esi, ecx
adc esi, 0
mov dword [ebx + 0x60], edx
mov dword [ebx + 0x64], esi
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
mov ecx, dword [edi + 0x4c]
mov eax, dword [edi + 0x50]
mov dword [esp + 4], ecx
sub eax, ecx
jne 0x1008edc8
movaps xmm0, xmmword [esp + 0xe0]
movaps xmmword [esp + 0x90], xmm0
mov esi, dword [esp]
movups xmm0, xmmword [esi + 0x18]
mov eax, dword [esp + 0x84]
movups xmmword [eax], xmm0
mov eax, dword [ebp + 8]
movdqu xmm0, xmmword [eax]
mov eax, dword [esp + 0x40]
movdqu xmmword [eax], xmm0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, eax
add edx, 1
mov dword [esi + 0x50], edx
mov edx, ecx
adc edx, 0
mov dword [esi + 0x54], edx
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
mov ebx, 2
lea ecx, [esp + 0xb8]
call fcn.10094640
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x1008ed16
mov dword [esp + 0x140], eax
mov ecx, dword [esp + 0x148]
test ecx, ecx
je 0x1008fbb4
cmp ecx, eax
jne 0x1008fbb4
mov byte [eax + 0x14], 0
mov edi, dword [esp + 0x1bc]
test edi, edi
je 0x1008ed50
mov esi, dword [esp + 0x1c0]
mov eax, edi
cmp esi, edi
jne 0x1008ed68
mov dword [esp + 0x1c0], edi
mov ecx, dword [esp + 0x1c8]
test ecx, ecx
je 0x1008fbc2
cmp ecx, eax
jne 0x1008fbc2
mov byte [eax + 0x60], 0
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp ebx, 2
je 0x1008f423
jmp 0x1008f8e9
add esi, 0xffffffe8
mov ecx, esi
call fcn.10094ce0
cmp esi, edi
jne 0x1008ed68
mov eax, dword [esp + 0x1bc]
jmp 0x1008ed2e
sar ebx, 4
cmp eax, 0x40
ja 0x1008fafe
shl ebx, 3
lea ebx, [ebx + ebx*2]
lea edi, [esp + ebx]
add edi, 0x150
lea esi, [esp + 0x150]
test esi, esi
je 0x1008fe06
mov ecx, esi
call fcn.10094d10
add esi, 0x18
add ebx, 0xffffffe8
jne 0x1008eda1
mov dword [esp + 0x1c0], edi
mov edx, dword [esp + 0xc]
jmp 0x1008eac3
sar eax, 4
mov ecx, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1c0]
sub edx, ecx
sar edx, 3
imul edx, edx, 0xaaaaaaab
mov dword [esp + 0x18], edx
cmp eax, 2
mov esi, 1
cmovb eax, esi
add ecx, 0x10
xor esi, esi
cmp dword [esp + 0x18], esi
je 0x1008fde8
mov edi, dword [ecx]
cmp dword [edi + 4], 1
jne 0x1008fe9e
mov edi, dword [ecx - 0xc]
mov edx, dword [esp]
xor edi, dword [edx + 0x1c]
mov ebx, dword [ecx - 0x10]
xor ebx, dword [edx + 0x18]
or ebx, edi
jne 0x1008ee38
mov edx, dword [esp]
mov edi, dword [edx + 0x20]
xor edi, dword [ecx - 8]
mov ebx, dword [edx + 0x24]
xor ebx, dword [ecx - 4]
or ebx, edi
je 0x1008ff6c
inc esi
add ecx, 0x18
cmp eax, esi
jne 0x1008edf8
cmp byte [esp + 0x3c], 0
mov edi, dword [esp + 0xc]
je 0x1008ec8c
mov eax, dword [edi + 0x40]
mov dword [esp + 0x44], eax
mov ebx, 0x10
xor edx, edx
xor esi, esi
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
sub ecx, eax
sar ecx, 3
imul ecx, ecx, 0xaaaaaaab
mov dword [esp + 0x24], esi
cmp ecx, esi
jbe 0x1008fde8
mov edi, dword [eax + ebx]
movups xmm0, xmmword [eax + ebx - 0x10]
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x18], edx
mov eax, dword [esp + 4]
movups xmm0, xmmword [eax + edx]
movaps xmmword [esp + 0x110], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x100], xmm0
mov esi, dword [0x10156ff0]
cmp esi, 1
mov dword [esp + 0x20], ebx
jbe 0x1008fbf0
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1008fc5c
mov eax, dword [esi + 0x1008]
cmp eax, 0x100
je 0x1008fbd8
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x1008], ecx
shl eax, 4
movups xmm0, xmmword [esi + eax + 8]
movaps xmmword [esp + 0xc0], xmm0
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x100], xmm0
mov eax, dword [edi + 8]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x50]
mov dword [esp + 0x34], eax
add eax, 1
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x48], ecx
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x58], ecx
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x54]
mov dword [esp + 0x60], eax
adc eax, 0
mov dword [edi + 0x54], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x64], eax
mov dword [edi + 4], 2
cmp byte [edi + 0xc1], 0
lea eax, [edi + 8]
lea ecx, [edi + 0x18]
jne 0x1008f9ea
movaps xmm0, xmmword [esp + 0x100]
mov edx, dword [esp + 4]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x44]
lea eax, [eax + ebx*4 - 0x40]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x10], xmm0
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x110]
movups xmmword [eax + 0x30], xmm0
movsd xmm0, qword [edi + 0x60]
movsd qword [eax + 0x40], xmm0
movsd xmm0, qword [edi + 0x98]
movsd qword [eax + 0x48], xmm0
movsd xmm0, qword [edi + 0x78]
movsd qword [eax + 0x50], xmm0
mov dl, byte [edi + 0xc1]
mov byte [eax + 0x58], dl
xor edx, edx
mov dword [eax + 0x59], edx
mov dword [eax + 0x5c], edx
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0xe4]
push eax
push edi
lea eax, [esp + 0x11c]
push eax
call fcn.1008b590
mov esi, dword [esp + 0xf8]
mov ebx, dword [esp + 0xfc]
mov eax, ebx
sub eax, esi
jb 0x1008fecc
mov edi, dword [esp + 0xf4]
inc eax
mov ecx, edi
sub ecx, 1
mov edx, 0
cmovb ecx, edx
cmp ecx, eax
jae 0x1008f12f
mov dword [esp + 0x1c], edi
mov edi, ecx
shr edi, 2
add edi, ecx
cmp eax, edi
cmova edi, eax
cmp edi, 4
mov eax, 3
cmovb edi, eax
inc edi
mov eax, edi
mov ecx, 0x58
mul ecx
jo 0x1008fee5
push eax
call fcn.10084470
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0xf8], 0
mov eax, ebx
sub eax, esi
ja 0x1008f91a
xor eax, eax
cmp ebx, esi
jb 0x1008ff06
mov dword [esp + 0xfc], eax
push dword [esp + 0xf0]
call fcn.100844c0
add esp, 4
mov eax, dword [esp + 4]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edi
mov ebx, dword [esp + 0xfc]
cmp edi, ebx
jb 0x1008fe74
imul eax, ebx, 0x58
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x80]
mov dword [ecx + eax + 4], edx
mov edx, dword [esp + 0x38]
mov dword [ecx + eax], edx
mov edx, dword [esp + 0x30]
mov dword [ecx + eax + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + eax + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + eax + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + eax + 0x10], edx
mov edx, dword [esp + 0x54]
mov dword [ecx + eax + 0x1c], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0x18], edx
movdqa xmm0, xmmword [esp + 0xa0]
movdqu xmmword [ecx + eax + 0x20], xmm0
mov edx, dword [esp + 0x60]
mov dword [ecx + eax + 0x34], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + eax + 0x30], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + eax + 0x3c], edx
mov edx, dword [esp + 0x70]
mov dword [ecx + eax + 0x38], edx
mov edx, dword [esp + 0x6c]
mov dword [ecx + eax + 0x44], edx
mov edx, dword [esp + 0x74]
mov dword [ecx + eax + 0x40], edx
mov edx, dword [esp + 0x68]
mov dword [ecx + eax + 0x4c], edx
mov edx, dword [esp + 0x7c]
mov dword [ecx + eax + 0x48], edx
mov edx, dword [esp + 0x64]
mov dword [ecx + eax + 0x54], edx
mov edx, dword [esp + 0x78]
mov dword [ecx + eax + 0x50], edx
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xfc]
lea edx, [eax - 1]
lea esi, [ecx + 1]
cmp ecx, edx
mov edi, 0
cmove esi, edi
mov dword [esp + 0xfc], esi
test esi, esi
je 0x1008fede
cmp eax, ecx
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
jb 0x1008fe71
inc esi
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x4c]
mov eax, dword [edi + 0x50]
mov dword [esp + 4], ecx
sub eax, ecx
sar eax, 4
add ebx, 0x18
add edx, 0x10
cmp esi, eax
jb 0x1008ee5f
jmp 0x1008ec8c
xor edi, edi
mov ecx, edi
shl ecx, 4
lea edx, [eax + ecx]
mov dword [esp + 4], edx
movdqu xmm0, xmmword [eax + ecx]
sub esp, 0x10
movdqu xmmword [esp], xmm0
call fcn.1007bf40
add esp, 0x10
mov dword [esp], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x20]
mov eax, 0
test esi, esi
je 0x1008f373
mov ecx, esi
shr ecx, 1
and ecx, 0x55555555
mov eax, esi
sub eax, ecx
mov ecx, eax
mov edx, 0x33333333
and ecx, edx
shr eax, 2
and eax, edx
add eax, ecx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul eax, ecx, 0x1010101
shr eax, 0x18
mov dword [esp + 0x38], eax
cmp eax, 1
jbe 0x1008ff5a
mov eax, dword [esp]
cmp eax, esi
jb 0x1008ff65
xor edx, edx
div esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x24], edx
mov edx, dword [eax + edx*4]
mov eax, 0
test edx, edx
je 0x1008f373
mov ebx, dword [edx]
mov eax, 0
test ebx, ebx
je 0x1008f373
lea eax, [esi - 1]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], edx
mov eax, dword [ebx + 4]
cmp eax, dword [esp]
jne 0x1008f34d
mov eax, dword [ebx + 8]
xor eax, edx
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x18]
or edx, eax
jne 0x1008f8a6
mov eax, dword [ebx + 0x10]
xor eax, dword [esp + 0x20]
mov edx, dword [ebx + 0x14]
xor edx, ecx
or edx, eax
je 0x1008f371
jmp 0x1008f8a6
cmp dword [esp + 0x38], 1
jbe 0x1009005c
cmp eax, esi
jb 0x1008f362
xor edx, edx
div esi
mov eax, edx
cmp eax, dword [esp + 0x24]
je 0x1008f8a6
jmp 0x1008f8b4
mov eax, ebx
mov eax, dword [eax + 0x18]
test eax, eax
je 0x1008f37d
lock inc dword [eax]
lea ebx, [esp + 0xc0]
mov ecx, ebx
push eax
push dword [esp + 8]
call fcn.10094d30
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
sub ecx, eax
sar ecx, 3
imul ecx, ecx, 0xaaaaaaab
cmp ecx, edi
jbe 0x1008fde8
lea esi, [edi + edi*2]
lea ecx, [eax + esi*8]
push ebx
call fcn.10094d90
mov ecx, ebx
call fcn.10094ce0
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
sub ecx, eax
sar ecx, 3
imul ecx, ecx, 0xaaaaaaab
cmp ecx, edi
jbe 0x1008fde8
inc edi
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x140]
sub edx, ecx
sar edx, 2
cmp edx, edi
jbe 0x1008fde8
lea eax, [eax + esi*8]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
mov ecx, dword [ecx + 0x50]
sub ecx, eax
sar ecx, 4
cmp edi, ecx
jae 0x1008eb5f
jmp 0x1008f24c
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xfc]
cmp edx, eax
jne 0x1008f56b
mov dword [esp + 0x14], 0
test byte [esp + 0x3c], 1
je 0x1008f45a
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
mov ecx, dword [ecx + 0x50]
cmp ecx, eax
jne 0x1008f676
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
cmp ecx, eax
jne 0x1008fe7d
push dword [esp + 0xf0]
call fcn.100844c0
add esp, 4
cmp dword [esp + 0x14], 0
lea esi, [ebp + 0xc]
jne 0x1008fc73
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x10]
xor eax, dword [ecx + 4]
mov edx, dword [esp + 0x90]
xor edx, dword [ecx]
or edx, eax
jne 0x1008f4c4
mov eax, dword [ecx + 8]
xor eax, dword [esp + 0x98]
mov edx, dword [ecx + 0xc]
xor edx, dword [esp + 0x9c]
or edx, eax
je 0x1008f884
mov ecx, dword [ecx + 0x14]
mov eax, dword [esi]
mov dword [esi], 0
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x90]
push eax
push edx
call fcn.1006e160
mov esi, dword [esi]
mov dword [esp + 0x14], 0
test esi, esi
jne 0x1008f8db
mov ecx, dword [esp + 0x1f8]
xor ecx, ebp
call fcn.100c2603
mov eax, dword [esp + 0x14]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
sar ebx, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov dword [esp], edi
xor edi, edi
inc edi
cmp ebx, 2
cmovae edi, ebx
mov esi, dword [esi + 8]
mov dword [esp + 0x14], esi
add eax, 8
mov esi, dword [eax - 8]
xor esi, ecx
mov ebx, dword [eax - 4]
xor ebx, edx
or ebx, esi
jne 0x1008f55f
mov esi, dword [eax]
xor esi, dword [esp + 0x14]
mov ebx, dword [eax + 4]
xor ebx, dword [esp]
or ebx, esi
je 0x1008fc68
add eax, 0x10
dec edi
je 0x1008e8e2
jmp 0x1008f53d
lea edi, [esp + 0x150]
xor ecx, ecx
dec ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a0], ecx
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x150], xmm0
mov ebx, dword [esp + 0xf4]
cmp ebx, edx
jb 0x1009001c
imul esi, edx, 0x58
add esi, dword [esp + 0xf0]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
inc edx
cmp ebx, edx
jb 0x10090019
mov ecx, 0
cmove edx, ecx
mov dword [esp + 0xf8], edx
cmp ebx, 5
jae 0x1008f9a3
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x14]
push 0x58
call fcn.100c1c01
add esp, 4
mov edi, eax
mov ecx, eax
lea eax, [esp + 0x198]
push eax
lea eax, [esp + 0x18c]
push eax
push dword [esp + 0x18c]
push dword [esp + 0x18c]
lea eax, [esp + 0x180]
push eax
lea eax, [esp + 0x174]
push eax
call fcn.100878e0
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0xc0]
mov ecx, esi
push eax
lea edi, [esp + 0x154]
push edi
call fcn.1006e160
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xfc]
cmp edx, eax
je 0x1008f439
jmp 0x1008f572
xor esi, esi
mov dword [esp], eax
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x14], esi
lea edi, [esi + esi*2]
shl edi, 5
mov edx, dword [eax + edi + 4]
mov esi, dword [esp + 0x10]
xor edx, dword [esi + 4]
mov ebx, dword [eax + edi]
xor ebx, dword [esi]
or ebx, edx
jne 0x1008fbd0
mov edx, dword [esi + 8]
xor edx, dword [eax + edi + 8]
mov ebx, dword [esi + 0xc]
xor ebx, dword [eax + edi + 0xc]
or ebx, edx
mov esi, eax
mov eax, dword [esp]
jne 0x1008f863
xor eax, eax
dec eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x130], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x120], xmm0
lea ecx, [esp + 0x120]
call fcn.10094d10
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1008f9f6
add edi, esi
add edi, 0x10
movdqu xmm0, xmmword [edi]
sub esp, 0x10
movdqu xmmword [esp], xmm0
call fcn.1007bf40
add esp, 0x10
mov dword [esp], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x20]
test esi, esi
je 0x1008f8c5
mov ecx, esi
shr ecx, 1
and ecx, 0x55555555
mov eax, esi
sub eax, ecx
mov ecx, eax
mov edx, 0x33333333
and ecx, edx
shr eax, 2
and eax, edx
add eax, ecx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
jbe 0x1008ff79
mov eax, dword [esp]
cmp eax, esi
jb 0x1008ff84
xor edx, edx
div esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x24], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1008f8c5
mov ebx, dword [eax]
test ebx, ebx
je 0x1008f8c5
lea eax, [esi - 1]
mov dword [esp + 0x40], eax
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esp]
jne 0x1008f7e9
mov eax, dword [ebx + 8]
xor eax, dword [esp + 4]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x3c]
or edx, eax
jne 0x1008f8bb
mov eax, dword [ebx + 0x10]
xor eax, dword [esp + 0x20]
mov edx, dword [ebx + 0x14]
xor edx, dword [esp + 0x18]
or edx, eax
je 0x1008f80b
jmp 0x1008f8bb
cmp ecx, 1
jbe 0x10090065
cmp eax, esi
jb 0x1008f7fc
xor edx, edx
div esi
mov eax, edx
cmp eax, dword [esp + 0x24]
je 0x1008f8bb
jmp 0x1008f8c5
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1008f815
lock inc dword [eax]
lea ebx, [esp + 0x150]
mov ecx, ebx
push eax
push edi
call fcn.10094d30
lea esi, [esp + 0x120]
mov ecx, esi
push ebx
call fcn.10094d90
mov ecx, ebx
call fcn.10094ce0
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x14]
push esi
call fcn.1006eaf0
mov ecx, esi
call fcn.10094ce0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x4c]
mov ecx, dword [ecx + 0x50]
mov esi, dword [esp + 0x14]
inc esi
mov edx, ecx
sub edx, eax
sar edx, 4
mov dword [esp + 0x14], 0
cmp esi, edx
jae 0x1008f45a
jmp 0x1008f678
mov eax, dword [esi]
mov dword [esi], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
push eax
push ecx
call fcn.10091180
jmp 0x1008f4eb
mov ebx, dword [ebx]
test ebx, ebx
mov edx, dword [esp + 0x34]
jne 0x1008f31c
xor eax, eax
jmp 0x1008f373
mov ebx, dword [ebx]
test ebx, ebx
jne 0x1008f7b4
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea esi, [esp + 0x120]
jmp 0x1008f852
mov ecx, esi
push 1
call fcn.10087960
jmp 0x1008f4fd
cmp ebx, 3
mov esi, dword [esp + 0x10]
pxor xmm0, xmm0
lea edi, [esp + 0x1b0]
lea ebx, [esp + 0x150]
jne 0x1008f45a
jmp 0x1008e92e
mov dword [esp + 0x14], 0xfffffff2
jmp 0x1008ecdd
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
jb 0x1008fe7a
mov dword [esp + 0x2c], eax
cmp ecx, esi
jb 0x1008fe77
mov edx, dword [esp + 0xf0]
imul ecx, ebx, 0x58
add ecx, edx
imul eax, esi, 0x58
add eax, edx
mov ebx, dword [esp + 4]
cmp ebx, ecx
jae 0x1008f99a
mov esi, ecx
sub esi, eax
mov edx, ebx
add edx, esi
setb byte [esp + 0x1c]
sub ecx, eax
setb byte [esp + 0xb]
jb 0x1009006e
cmp byte [esp + 0x1c], 0
jne 0x1009006e
cmp edx, eax
ja 0x1008fe6e
push ecx
push eax
push ebx
call fcn.100c4df0
add esp, 0xc
mov eax, dword [esp + 0x2c]
jmp 0x1008f100
mov ecx, dword [esp + 0x28]
call fcn.10084100
jmp 0x1008e9d7
sub ecx, eax
jae 0x1008f978
jmp 0x1009007a
cmp eax, edx
mov ecx, 0
cmovb ecx, ebx
sub ecx, edx
add ecx, eax
dec ebx
mov eax, ebx
sub eax, ecx
cmp eax, ecx
jb 0x1008f5f5
mov eax, ecx
shr eax, 2
add eax, ecx
cmp eax, 4
mov ecx, 3
cmovb eax, ecx
cmp eax, ebx
jae 0x1008f5f5
lea ecx, [esp + 0xf0]
push eax
call fcn.100414d0
jmp 0x1008f5f5
mov byte [edi + 0xc0], 1
jmp 0x1008efe9
mov ecx, dword [esp + 0x28]
call fcn.10084100
jmp 0x1008f6fb
mov ebx, dword [esp]
cmp ebx, 0x40000000
jae 0x1008fe99
sub ecx, dword [esp + 4]
mov edx, ecx
sar edx, 1
cmp edx, ebx
cmovbe edx, ebx
cmp ecx, 0x7ffffffc
mov ecx, 0x3fffffff
cmovb ecx, edx
test ecx, ecx
je 0x10090090
mov eax, dword [esp + 0x148]
test eax, eax
je 0x1008fdc0
cmp ecx, 5
ja 0x1008fdc0
cmp byte [eax + 0x14], 0
jne 0x1008fdc0
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x148]
lea ecx, [eax + edx*4]
mov dword [esp], ecx
lea ecx, [eax + ebx*4]
mov dword [esp + 4], ecx
lea ebx, [eax + edi*4]
shl esi, 2
shl edi, 2
sub esi, edi
add esi, 4
mov eax, ebx
test eax, eax
je 0x1008fe06
mov dword [eax], 0
add eax, 4
add esi, 0xfffffffc
jne 0x1008fa80
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x140]
sub ecx, eax
sub ebx, ecx
push ecx
push eax
push ebx
call fcn.100c4df0
add esp, 0xc
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x13c], ebx
mov ecx, dword [esp + 4]
mov dword [esp + 0x140], ecx
mov ecx, dword [esp]
mov dword [esp + 0x144], ecx
test eax, eax
je 0x1008eb36
mov ecx, dword [esp + 0x148]
test ecx, ecx
je 0x10090082
cmp ecx, eax
jne 0x10090082
mov byte [eax + 0x14], 0
jmp 0x1008eb36
test eax, eax
js 0x1008fe99
cmp ebx, 9
mov eax, 8
cmovae eax, ebx
cmp eax, 0xaaaaaab
jae 0x1008fe69
shl eax, 3
lea edi, [eax + eax*2]
push edi
call fcn.100c1c01
add esp, 4
mov esi, eax
add edi, eax
mov dword [esp], edi
shl ebx, 3
lea ebx, [ebx + ebx*2]
add eax, ebx
mov dword [esp + 4], eax
xor edi, edi
mov ecx, esi
add ecx, edi
je 0x1008fe06
call fcn.10094d10
add edi, 0x18
cmp ebx, edi
jne 0x1008fb40
mov edi, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x1c0]
cmp ebx, edi
jne 0x10090099
mov dword [esp + 0x1bc], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp]
mov dword [esp + 0x1c4], eax
test edi, edi
mov edx, dword [esp + 0xc]
je 0x1008eac3
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x1009011c
cmp eax, edi
jne 0x1009011c
mov byte [edi + 0x60], 0
jmp 0x1008edbf
push eax
call fcn.100c1c31
add esp, 4
jmp 0x1008ed16
push eax
call fcn.100c1c31
add esp, 4
jmp 0x1008ed50
mov eax, dword [esp]
jmp 0x1008f863
lea eax, [esi + 8]
push 0x1000
push eax
call fcn.10041a70
add esp, 8
xor eax, eax
jmp 0x1008eee6
push 0x10156ff0
call fcn.100344a0
add esp, 4
test al, al
je 0x100900e9
xor ebx, ebx
mov esi, 0x10156ff8
push 0x1010
push ebx
push esi
call fcn.100c5370
add esp, 0xc
mov ecx, 0x10156ff8
call fcn.1006ae90
push 0x1000
push ebx
push 0x10157000
call fcn.100c5370
add esp, 0xc
mov dword [0x10158000], 0x100
mov eax, 0x10156ff0
push eax
push ebx
push esi
push eax
call fcn.10034570
add esp, 0x10
mov ebx, dword [esp + 0x20]
jmp 0x1008eec6
mov ecx, esi
call fcn.10084100
jmp 0x1008eed5
mov dword [esp + 0x14], 0xfffffff3
lea esi, [ebp + 0xc]
mov esi, dword [esi]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x50]
cmp ecx, eax
je 0x1008f4f5
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov ebx, dword [esp + 0xc]
mov edx, dword [eax + ebx + 4]
mov edi, dword [ebp + 8]
xor edx, dword [edi + 4]
mov edi, dword [eax + ebx]
mov ebx, dword [ebp + 8]
xor edi, dword [ebx]
or edi, edx
jne 0x1008fcc5
mov edi, dword [ebp + 8]
mov edx, dword [edi + 8]
mov ebx, dword [esp + 0xc]
xor edx, dword [eax + ebx + 8]
mov edi, dword [edi + 0xc]
xor edi, dword [eax + ebx + 0xc]
or edi, edx
je 0x1008fd2a
xor eax, eax
dec eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x160], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x150], xmm0
lea edi, [esp + 0x150]
mov ecx, edi
call fcn.10094d10
mov eax, dword [esi + 0x4c]
add eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
push edi
push eax
call fcn.100879e0
test eax, eax
jne 0x1008fd18
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x150]
push eax
call fcn.1008cb40
lea ecx, [esp + 0x150]
call fcn.10094ce0
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x50]
mov edi, dword [esp]
inc edi
mov edx, ecx
sub edx, eax
sar edx, 4
add dword [esp + 0xc], 0x10
mov dword [esp], edi
cmp edi, edx
jae 0x1008f4f5
jmp 0x1008fc92
mov dl, 1
jmp 0x1008ebf6
mov edi, dword [esp + 0x30]
xor edi, ecx
mov edx, dword [esp + 0x34]
xor edx, dword [esp + 4]
or edx, edi
mov edi, dword [eax + 8]
mov edx, dword [eax + 0xc]
jne 0x1008fd80
mov esi, ebx
mov ebx, 3
xor esi, edi
mov eax, dword [esp + 0x38]
xor eax, edx
or eax, esi
je 0x1008ecdd
mov eax, dword [esp]
add eax, 8
movdqu xmm0, xmmword [eax]
movdqa xmmword [esp + 0xe0], xmm0
mov esi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x20], eax
jmp 0x1008ec11
cmp ecx, 0x40000000
jae 0x1008fe69
mov ebx, ecx
lea eax, [ecx*4]
push eax
call fcn.100c1c01
add esp, 4
mov edx, ebx
mov ebx, dword [esp]
jmp 0x1008fa63
push str.vector___index_out_of_bounds
push str.__n___size__
push 0x587
push str....._buildtools_third_partylibc_trunkinclude_vector
push str._s:_d:_assertion__s_failed:__s
call fcn.100f2480
push str.null_pointer_given_to_construct_at
push str.__location___nullptr
push 0x23
push str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
push str._s:_d:_assertion__s_failed:__s
call fcn.100f2480
jae 0x1008eb36
mov eax, dword [esp]
mov ecx, dword [esp + 4]
lea eax, [ecx + eax*4]
mov dword [esp + 0x140], eax
jmp 0x1008eb36
mov dword [esp + 0x14], 0xfffffff4
jmp 0x1008ecdd
push 2
call fcn.1007c030
add esp, 4
test al, al
jne 0x1009001f
mov dword [esp + 0x14], 0xfffffff4
jmp 0x1008f45a
call fcn.100ebe10
int3
int3
int3
int3
int3
mov edx, dword [esp + 0xf4]
jbe 0x1008feb9
cmp edx, ecx
jb 0x1009012a
cmp edx, eax
jae 0x1008f470
int3
call fcn.100d5450
mov dword [esp + 0x14], 0xfffffff4
mov eax, dword [esp]
add dword [eax + 0x60], 0xffffffff
adc dword [eax + 0x64], 0xffffffff
xor ebx, ebx
inc ebx
jmp 0x1008ecdd
cmp edx, eax
jb 0x1009012d
cmp edx, ecx
jae 0x1008f470
int3
mov edi, dword [esp + 0xf4]
mov eax, ebx
sub eax, esi
add eax, edi
jmp 0x1008f093
mov ecx, edx
jmp 0x1008f20f
int3
mov eax, dword [esp + 0x1c]
sub eax, esi
mov dword [esp + 0x2c], eax
jb 0x1008ff57
mov edx, dword [esp + 0xf0]
imul ecx, dword [esp + 0x1c], 0x58
add ecx, edx
imul eax, esi, 0x58
add eax, edx
cmp dword [esp + 4], ecx
jae 0x1008ff8b
mov edx, ecx
sub edx, eax
add edx, dword [esp + 4]
setb byte [esp + 0x1c]
sub ecx, eax
setb byte [esp + 0xb]
jb 0x100900f4
cmp byte [esp + 0x1c], 0
jne 0x100900f4
cmp edx, eax
jbe 0x1008ff93
int3
int3
lea edx, [esi - 1]
and edx, dword [esp]
jmp 0x1008f2d4
mov edx, eax
jmp 0x1008f2d4
mov dword [esp + 0x14], 0xfffffff1
jmp 0x1008fea6
lea edx, [esi - 1]
and edx, dword [esp]
jmp 0x1008f772
mov edx, eax
jmp 0x1008f772
sub ecx, eax
jb 0x10090100
push ecx
push eax
push dword [esp + 0xc]
call fcn.100c4df0
add esp, 0xc
cmp edi, dword [esp + 0x2c]
jb 0x1008fff8
cmp dword [esp + 0xf4], ebx
jb 0x1008fff5
imul ecx, dword [esp + 0x2c], 0x58
mov eax, dword [esp + 4]
add eax, ecx
mov ecx, dword [esp + 0xf0]
imul edx, ebx, 0x58
add edx, ecx
cmp eax, edx
jae 0x1008fffb
mov esi, edx
sub esi, ecx
add esi, eax
setb byte [esp + 0x1c]
sub edx, ecx
setb byte [esp + 0xb]
jb 0x10090108
cmp byte [esp + 0x1c], 0
jne 0x10090108
cmp esi, ecx
jbe 0x10090003
int3
int3
int3
sub edx, ecx
jb 0x10090114
push edx
push ecx
push eax
call fcn.100c4df0
add esp, 0xc
mov eax, dword [esp + 0x2c]
add eax, ebx
jmp 0x1008f100
int3
int3
lea esi, [esp + 0x150]
mov ecx, esi
push 2
push 0x600
push str.....mojocoreports_node.cc
call fcn.10034a50
lea eax, [esp + 0x158]
push 0x31
push str.NotifyWillBeRoutedExternally_failed_unexpectedly.
push eax
call fcn.100ec330
add esp, 0xc
mov ecx, esi
call fcn.10034e90
jmp 0x1008fe5c
and eax, dword [esp + 0x30]
jmp 0x1008f362
and eax, dword [esp + 0x40]
jmp 0x1008f7fc
int3
int3
push eax
call fcn.100c1c31
add esp, 4
jmp 0x1008eb36
xor eax, eax
xor edx, edx
jmp 0x1008fa63
add esi, 0xffffffe8
add ebx, 0xffffffe8
mov ecx, esi
push ebx
call fcn.10094d70
cmp ebx, edi
jne 0x10090099
mov edi, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x1c0]
mov dword [esp + 0x1bc], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp]
mov dword [esp + 0x1c4], eax
cmp ebx, edi
je 0x1008fb88
add ebx, 0xffffffe8
mov ecx, ebx
call fcn.10094ce0
jmp 0x100900d5
mov esi, dword [0x10156ff0]
jmp 0x1008fc53
int3
int3
int3
int3
push edi
call fcn.100c1c31
add esp, 4
jmp 0x1008edbf
int3
int3