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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x198
mov esi, esp
mov dword [esi + 0x180], ebp
mov dword [esi + 0x184], esp
mov dword [esi + 0x190], 0xffffffff
mov dword [esi + 0x18c], 0x10012260
lea eax, [esi + 0x188]
mov ecx, dword fs:[0]
mov dword [esi + 0x188], ecx
mov dword fs:[0], eax
mov dword [esi + 0x80], 0x10262a90
mov eax, dword [0x10262ac0]
cmp eax, 3
je 0x1000fcdc
lea eax, [esi + 0x80]
mov dword [esi + 0x190], 0
lea ecx, [0x10262ac0]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b10c0
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov dword [esi + 0x190], 0
mov dword [esi + 0x7c], eax
add eax, 8
mov dword [esi + 0xbc], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x1001067c
call fcn.101ae480
xor al, 1
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x7c]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x10010692
mov dword [esi + 0x80], 0x10262ac8
mov eax, dword [0x10262b18]
cmp eax, 3
je 0x1000fd7c
lea eax, [esi + 0x80]
mov dword [esi + 0x190], 1
lea ecx, [0x10262b18]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b10fc
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov dword [esi + 0x190], 1
mov dword [esi + 0xc4], eax
add eax, 8
mov dword [esi + 0xb8], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x100106cd
call fcn.101ae480
xor al, 1
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0xc4]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x100106e6
mov dword [esi + 0x80], 0x10262b80
mov eax, dword [0x10262bb0]
cmp eax, 3
je 0x1000fe22
lea eax, [esi + 0x80]
mov dword [esi + 0x190], 2
lea ecx, [0x10262bb0]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b10d4
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov dword [esi + 0x190], 2
mov dword [esi + 0x78], eax
add eax, 8
mov dword [esi + 0xb4], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10010721
call fcn.101ae480
xor al, 1
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x78]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x10010737
mov dword [esi + 0x80], 0x10262a20
mov eax, dword [0x10262a50]
cmp eax, 3
je 0x1000fec2
lea eax, [esi + 0x80]
mov dword [esi + 0x190], 3
lea ecx, [0x10262a50]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b1110
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov dword [esi + 0x190], 3
mov dword [esi + 0xc0], eax
add eax, 8
mov dword [esi + 0xb0], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10010772
call fcn.101ae480
xor al, 1
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0xc0]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x1001078b
mov dword [esi + 0x80], 0x10262b48
mov eax, dword [0x10262b78]
cmp eax, 3
je 0x1000ff68
lea eax, [esi + 0x80]
mov dword [esi + 0x190], 4
lea ecx, [0x10262b78]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b10d4
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov dword [esi + 0x190], 4
mov dword [esi + 0x74], eax
add eax, 8
mov dword [esi + 0xac], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x100107c6
call fcn.101ae480
xor al, 1
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x74]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x100107dc
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x1c], 0
je 0x100110aa
mov edi, dword [esi + 0x7c]
lea ecx, [ebp + 8]
lea eax, [edi + 0x20]
push ecx
push eax
call fcn.10091e60
add esp, 8
mov edx, eax
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov ebx, eax
pcmpeqd xmm1, xmm1
mov dword [esi + 0x10], 0
shr edx, 0x19
movd xmm0, edx
mov edx, dword [ebp + 8]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea eax, [ecx - 0x10]
mov dword [esi + 0x24], ecx
mov dword [esi + 4], edi
pshufd xmm0, xmm0, 0
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], edx
and ebx, edi
movdqa xmm3, xmm0
movdqu xmm2, xmmword [ecx + ebx]
mov eax, ebx
pcmpeqb xmm3, xmm2
pmovmskb edi, xmm3
nop word [eax + eax]
test di, di
je 0x10010060
tzcnt ecx, edi
mov edx, dword [esi + 0xc]
add ecx, eax
and ecx, dword [esi + 4]
mov ebx, ecx
shl ebx, 4
sub edx, ebx
lea ebx, [edi - 1]
and ebx, edi
mov edi, dword [esi + 0x14]
cmp edi, dword [edx]
mov edi, ebx
jne 0x10010030
jmp 0x10010087
pcmpeqb xmm2, xmm1
pmovmskb edi, xmm2
test edi, edi
jne 0x100110aa
mov ebx, eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 4]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x10], eax
jmp 0x10010012
mov dword [esi + 0x58], ecx
mov dword [esi + 0x190], 5
push 0
call fcn.1016f860
add esp, 4
test eax, eax
je 0x10011308
mov dword [esi + 0x120], 0x101b4440
mov dword [esi + 0x124], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x74]
mov dword [esi + 0xfc], 4
mov dword [esi + 0x100], 0
movdqu xmmword [esi + 0x130], xmm0
mov dword [esi + 0x104], 0
cmp dword [ecx + 0x1c], 0
mov ecx, 0
je 0x10010201
mov edi, dword [esi + 0x74]
lea ecx, [ebp + 8]
lea eax, [edi + 0x20]
push ecx
push eax
call fcn.10091e60
add esp, 8
mov edx, dword [edi + 0x10]
mov ecx, eax
mov ebx, eax
mov edi, dword [edi + 0x14]
pcmpeqd xmm1, xmm1
mov dword [esi + 0x1c], 0
shr ecx, 0x19
movd xmm0, ecx
punpcklbw xmm0, xmm0
mov ecx, edx
lea eax, [edx - 0x10]
mov edx, dword [ebp + 8]
pshuflw xmm0, xmm0, 0
mov dword [esi + 0xc], edi
pshufd xmm0, xmm0, 0
mov dword [esi + 0x14], eax
mov dword [esi + 0x20], ecx
mov dword [esi + 0x10], edx
and ebx, edi
movdqa xmm3, xmm0
movdqu xmm2, xmmword [ecx + ebx]
mov dword [esi + 4], ebx
pcmpeqb xmm3, xmm2
pmovmskb edi, xmm3
nop dword [eax + eax]
mov edx, edi
test di, di
je 0x100101c0
tzcnt ecx, edx
mov ebx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
add ecx, dword [esi + 4]
and ecx, dword [esi + 0xc]
mov edi, ecx
shl edi, 4
sub ebx, edi
lea edi, [edx - 1]
and edi, edx
cmp eax, dword [ebx]
jne 0x10010190
jmp 0x100101e4
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
test ecx, ecx
jne 0x100101e4
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov edi, dword [esi + 0xc]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x1c], eax
jmp 0x10010175
mov eax, dword [esi + 0x20]
shl ecx, 4
sub eax, ecx
mov ecx, eax
xor eax, eax
test dx, dx
cmove ecx, eax
add ecx, 0xfffffff0
test dx, dx
cmove ecx, eax
xor edx, edx
lea eax, [ecx + 4]
mov dword [esi + 0x20], ecx
test ecx, ecx
lea ecx, [esi + 0xfc]
mov dword [esi + 0x114], 4
mov dword [esi + 0x118], 0
mov dword [esi + 0x11c], 0
cmovne ecx, eax
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x78]
cmp dword [ecx + 0x1c], 0
je 0x10010329
mov edi, dword [esi + 0x78]
lea ecx, [ebp + 8]
lea eax, [edi + 0x20]
push ecx
push eax
call fcn.10091e60
add esp, 8
mov ecx, eax
mov edx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov ebx, eax
pcmpeqd xmm1, xmm1
mov dword [esi + 0x54], 0
shr ecx, 0x19
movd xmm0, ecx
mov ecx, dword [ebp + 8]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea eax, [edx - 0x10]
mov dword [esi + 0x1c], edx
mov dword [esi + 0xc], edi
pshufd xmm0, xmm0, 0
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], ecx
and ebx, edi
movdqa xmm3, xmm0
movdqu xmm2, xmmword [edx + ebx]
mov dword [esi + 4], ebx
pcmpeqb xmm3, xmm2
pmovmskb edi, xmm3
nop dword [eax + eax]
mov edx, edi
test di, di
je 0x100102e0
tzcnt ecx, edx
mov ebx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
add ecx, dword [esi + 4]
and ecx, dword [esi + 0xc]
mov edi, ecx
shl edi, 4
sub ebx, edi
lea edi, [edx - 1]
and edi, edx
cmp eax, dword [ebx]
jne 0x100102b0
jmp 0x10010304
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
test ecx, ecx
jne 0x10010304
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0x54]
mov edx, dword [esi + 0x1c]
mov edi, dword [esi + 0xc]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x54], eax
jmp 0x10010292
mov edi, dword [esi + 0x1c]
shl ecx, 4
xor eax, eax
mov dword [esi + 0x190], 6
sub edi, ecx
test dx, dx
cmove edi, eax
add edi, 0xfffffff0
test dx, dx
mov edx, edi
cmove edx, eax
lea eax, [edx + 4]
test edx, edx
lea ecx, [esi + 0x114]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x190], 6
cmovne ecx, eax
mov dword [esi + 0xc], ecx
push 0
call fcn.1016f860
add esp, 4
test eax, eax
je 0x10011327
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [esi + 0x148], 0x101b4440
mov dword [esi + 0x14c], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x154], 0
movdqu xmmword [esi + 0x158], xmm0
push 4
push 4
call fcn.100985b0
add esp, 8
test eax, eax
je 0x1001134a
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x108], eax
mov dword [eax], 0
lea eax, [esi + 0x104]
mov dword [esi + 0x10c], 1
mov dword [esi + 0x110], 1
test ecx, ecx
lea ecx, [ecx + 0xc]
cmove ecx, eax
mov eax, dword [esi + 0xc4]
add eax, 0x10
mov dword [esi + 0x14], eax
mov eax, dword [ecx]
test eax, eax
je 0x10010451
mov ecx, dword [esi + 0xc8]
lea eax, [eax + eax*2]
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
mov dword [esi + 0x10], eax
nop
mov edx, dword [esi + 0x14]
mov byte [esi + 3], 1
mov dword [esi + 0x190], 8
mov dword [esi + 4], ecx
push 0
lea eax, [esi + 0x108]
push eax
lea eax, [esi + 0x120]
push eax
push dword [esi + 0xc]
lea eax, [esi + 0x148]
push eax
call fcn.1003d6f0
add esp, 0x14
mov ecx, dword [esi + 4]
add ecx, 0xc
cmp ecx, dword [esi + 0x10]
jne 0x10010410
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x24]
mov byte [esi + 3], 1
mov dword [esi + 0x190], 8
neg ecx
shl ecx, 4
lea eax, [eax + ecx - 0xc]
sub esp, 4
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x14]
lea edi, [esi + 0x148]
push 0
lea ebx, [esi + 0x120]
push ebx
lea ebx, [esi + 0x108]
push ebx
push edi
push eax
push dword [esi + 0xc]
call fcn.1003df00
add esp, 0x1c
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], 0x10262a58
mov dword [esi + 0xcc], eax
mov eax, dword [0x10262a88]
cmp eax, 3
je 0x100104ef
lea eax, [esi + 0x80]
mov byte [esi + 3], 1
lea ecx, [0x10262a88]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b1124
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov byte [esi + 3], 1
mov dword [esi + 0xa8], eax
add eax, 8
mov dword [esi + 0xa4], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10010817
mov byte [esi + 3], 1
call fcn.101ae480
xor al, 1
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0xa8]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x10010830
mov dword [esi + 0x80], 0x10262b20
mov eax, dword [0x10262b44]
cmp eax, 3
je 0x10010593
lea eax, [esi + 0x80]
mov dword [esi + 0x190], 9
lea ecx, [0x10262b44]
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push 0x101b1748
push 0x101b10e8
push eax
push 0
push ecx
call fcn.101ae6e0
add esp, 0x14
mov eax, dword [esi + 0x80]
mov dword [esi + 0x190], 9
mov dword [esi + 0xc], eax
add eax, 4
mov dword [esi + 4], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x1001086b
call fcn.101ae480
xor al, 1
mov ecx, dword [esi + 0xc]
movzx ecx, byte [ecx + 8]
test cl, cl
jne 0x1001087c
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 0xa8]
lea edi, [esi + 0x148]
mov dword [esi + 0xd0], ecx
mov byte [esi + 0xd4], al
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x1c]
movdqa xmm0, xmmword [eax]
mov dword [esi + 0x28], edi
lea edi, [esi + 0xcc]
lea ecx, [ecx + eax + 1]
mov dword [esi + 0x190], 0xa
mov dword [esi + 0x2c], edi
lea edi, [esi + 0xd0]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], eax
add eax, 0x10
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
lea ecx, [esi + 0x28]
pmovmskb eax, xmm0
not eax
mov word [esi + 0x40], ax
lea eax, [ebx + 0x10]
mov dword [esi + 0x44], edx
mov dword [esi + 0x54], eax
mov dword [esi + 0x48], eax
lea eax, [esi + 0x168]
push ecx
push eax
call fcn.1007b2d0
add esp, 8
mov edx, dword [esi + 0x148]
mov eax, dword [esi + 0x154]
movdqa xmm0, xmmword [edx]
mov dword [esi + 0x14], eax
lea ecx, [edx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x100108e9
mov dword [esi + 0x70], 0
mov eax, dword [esi + 0x7c]
movzx eax, byte [eax + 0xc]
test al, al
je 0x1000fd2a
mov eax, dword [esi + 0xbc]
mov dword [esi + 0x190], 0x13
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x70]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b15e4
push 0x101b1438
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov dword [esi + 0x6c], 0
mov eax, dword [esi + 0xc4]
movzx eax, byte [eax + 0xc]
test al, al
je 0x1000fdd0
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x190], 0x12
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x6c]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b15f4
push 0x101b1418
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x78]
movzx eax, byte [eax + 0xc]
test al, al
je 0x1000fe70
mov eax, dword [esi + 0xb4]
mov dword [esi + 0x190], 0x11
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x68]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b1604
push 0x101b1448
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov dword [esi + 0x64], 0
mov eax, dword [esi + 0xc0]
movzx eax, byte [eax + 0xc]
test al, al
je 0x1000ff16
mov eax, dword [esi + 0xb0]
mov dword [esi + 0x190], 0x10
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x64]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b1614
push 0x101b1428
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x74]
movzx eax, byte [eax + 0xc]
test al, al
je 0x1000ffb6
mov eax, dword [esi + 0xac]
mov dword [esi + 0x190], 0xf
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x60]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b1624
push 0x101b1448
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov dword [esi + 0x5c], 0
mov eax, dword [esi + 0xa8]
movzx eax, byte [eax + 0xc]
test al, al
je 0x10010541
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x190], 0xe
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x5c]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b15a4
push 0x101b1408
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
xor eax, eax
mov ecx, dword [esi + 0xc]
movzx ecx, byte [ecx + 8]
test cl, cl
je 0x100105db
mov ecx, dword [esi + 4]
mov dword [esi + 0x190], 0xd
mov dword [esi + 0x28], ecx
mov byte [esi + 0x2c], al
lea eax, [esi + 0x28]
push 0x101b15b4
push 0x101b13f8
push eax
push 0x2b
push 0x101b13cc
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov dword [esi + 0x190], 0xb
push dword [esi + 0xc8]
push dword [esi + 0xc]
push dword [esi + 0x140]
push dword [esi + 0x144]
push dword [esi + 0x10]
call fcn.10004250
add esp, 0x14
nop dword [eax + eax]
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x58]
cmp dword [esi + 0x14], 0
je 0x10010bde
test ax, ax
je 0x10010910
test edx, edx
je 0x10010bde
lea edi, [eax - 1]
mov dword [esi + 0x24], ecx
and edi, eax
jmp 0x10010941
movdqa xmm0, xmmword [ecx]
add edx, 0xffffff40
add ecx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x10010910
mov ebx, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x190], 0xb
sub ebx, eax
not eax
mov edi, eax
and edi, ebx
mov dword [esi + 0x58], edi
tzcnt eax, eax
mov dword [esi + 0x20], edx
mov dword [esi + 0x190], 0xb
neg eax
lea eax, [eax + eax*2]
lea eax, [edx + eax*4 - 0xc]
mov dword [esi + 4], eax
push eax
push dword [esi + 0x54]
call fcn.10085860
add esp, 8
mov dword [esi + 0x10], eax
mov edi, dword [esi + 0x10]
dec dword [esi + 0x14]
test edi, edi
je 0x10010a50
mov eax, dword [esi + 0xcc]
mov ecx, edi
add ecx, 0x10
mov dword [esi + 0xc], eax
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
push eax
mov dword [esi + 0xc8], ecx
push ecx
call fcn.10091e60
add esp, 8
mov ecx, eax
mov dword [esi + 0x140], edx
mov edx, dword [edi]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x144], eax
shr ecx, 0x19
movd xmm0, ecx
mov ecx, dword [edi + 4]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov dword [esi + 4], ecx
and eax, ecx
movdqa xmm2, xmm0
mov edi, edx
movdqu xmm1, xmmword [edx + eax]
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
nop dword [eax]
test dx, dx
je 0x10010a20
lea ebx, [edx - 1]
mov ecx, edi
and ebx, edx
tzcnt edx, edx
add edx, eax
and edx, dword [esi + 4]
shl edx, 2
sub ecx, edx
mov edx, dword [esi + 0xc]
cmp dword [ecx - 4], edx
mov edx, ebx
jne 0x100109f0
jmp 0x100108e0
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb edx, xmm1
test edx, edx
jne 0x100108b1
mov ecx, dword [esi + 0x1c]
mov edx, edi
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 4]
jmp 0x100109d4
push 0
call fcn.1016f860
add esp, 4
test eax, eax
je 0x100112e9
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [esi + 0x28]
mov dword [esi + 0x80], 0x101b4440
mov dword [esi + 0x84], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
movdqu xmmword [esi + 0x90], xmm0
mov edi, dword [esi + 0xcc]
mov dword [esi + 0x28], edi
push eax
lea ebx, [esi + 0x90]
push ebx
call fcn.10091e60
add esp, 8
mov byte [esi + 0xb], 1
mov dword [esi + 0x190], 0xc
push ebx
push edi
push edx
push eax
lea eax, [esi + 0x80]
push eax
call fcn.10004250
add esp, 0x14
mov byte [esi + 0xb], 1
push dword [esi + 4]
lea eax, [esi + 0x174]
push eax
call fcn.10178120
add esp, 8
movsd xmm1, qword [esi + 0x90]
movq xmm0, qword [esi + 0x98]
movq xmm2, qword [esi + 0x80]
lea eax, [esi + 0x28]
mov byte [esi + 0xb], 0
movsd qword [esi + 0x38], xmm1
movq xmm1, qword [esi + 0x88]
movq qword [esi + 0x40], xmm0
movq qword [esi + 0x28], xmm2
movq qword [esi + 0x30], xmm1
push eax
lea eax, [esi + 0x174]
push eax
push dword [esi + 0x54]
lea eax, [esi + 0xd8]
push eax
call fcn.10084830
add esp, 0x10
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x10010b89
mov ecx, dword [esi + 0xdc]
test ecx, ecx
je 0x10010b89
lea edx, [ecx*4 + 0x13]
and edx, 0xfffffff0
add ecx, edx
add ecx, 0x11
je 0x10010b89
sub eax, edx
push 0x10
push ecx
push eax
call fcn.100985c0
add esp, 0xc
mov byte [esi + 0xb], 0
push dword [esi + 4]
lea eax, [esi + 0xd8]
push eax
call fcn.10178120
add esp, 8
mov edx, dword [esi + 4]
mov edi, dword [esi + 0xe0]
mov eax, dword [esi + 0xd0]
movq xmm0, qword [esi + 0xd8]
mov ecx, dword [edx]
mov edx, dword [edx + 8]
mov dword [esi + 0x30], edi
lea edi, [esi + 0x28]
add eax, 8
movq qword [esi + 0x28], xmm0
mov byte [esi + 0xb], 0
push edi
push edx
push ecx
push eax
call fcn.100871a0
add esp, 0x10
jmp 0x100108e0
mov ebx, dword [esi + 0x170]
mov eax, dword [esi + 0x168]
test ebx, ebx
mov dword [esi + 4], eax
je 0x10010c45
mov eax, dword [esi + 4]
lea edi, [eax + 0x14]
jmp 0x10010c06
add edi, 0x30
dec ebx
je 0x10010c45
mov eax, dword [edi - 0x10]
test eax, eax
je 0x10010c1b
push 1
push eax
push dword [edi - 0x14]
call fcn.100985c0
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x10010c00
lea ecx, [eax*4 + 0x13]
and ecx, 0xfffffff0
add eax, ecx
add eax, 0x11
je 0x10010c00
mov edx, dword [edi - 4]
sub edx, ecx
push 0x10
push eax
push edx
call fcn.100985c0
add esp, 0xc
jmp 0x10010c00
mov eax, dword [esi + 0x16c]
test eax, eax
je 0x10010c63
shl eax, 4
lea eax, [eax + eax*2]
push 8
push eax
push dword [esi + 4]
call fcn.100985c0
add esp, 0xc
mov ecx, dword [esi + 0xd0]
cmp byte [esi + 0xd4], 0
je 0x10010f56
mov dword [esi + 0x190], 9
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp byte [esi + 0x5c], 0
je 0x10010f8e
mov byte [esi + 3], 1
mov dword [esi + 0x190], 8
push dword [esi + 0xa4]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esi + 0xc0]
lea eax, [edi + 0x10]
lea ecx, [edi + 0x20]
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
push eax
mov dword [esi + 0x58], ecx
push ecx
call fcn.10091e60
add esp, 8
mov ecx, eax
mov dword [esi + 0x54], edx
mov edx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
pcmpeqd xmm1, xmm1
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], eax
shr ecx, 0x19
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea ecx, [edx - 0x28]
mov dword [esi + 0x10], edx
mov dword [esi + 4], edi
pshufd xmm0, xmm0, 0
mov dword [esi + 0x14], ecx
and eax, edi
movdqa xmm3, xmm0
movdqu xmm2, xmmword [edx + eax]
pcmpeqb xmm3, xmm2
pmovmskb edx, xmm3
nop word cs:[eax + eax]
test dx, dx
je 0x10010d60
lea ebx, [edx - 1]
mov ecx, dword [esi + 0x14]
and ebx, edx
tzcnt edx, edx
add edx, eax
and edx, dword [esi + 4]
neg edx
lea edi, [edx + edx*4]
mov edx, dword [esi + 0xc]
cmp dword [ecx + edi*8], edx
mov edx, ebx
jne 0x10010d30
jmp 0x10010d85
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
test edx, edx
jne 0x10011284
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0x20], ecx
jmp 0x10010d13
mov eax, dword [esi + 0x10]
movsd xmm4, qword [esi + 0x130]
movq xmm2, qword [esi + 0x120]
movq xmm3, qword [esi + 0x128]
movsd xmm0, qword [eax + edi*8 - 8]
movsd qword [esi + 0x40], xmm0
movsd xmm0, qword [eax + edi*8 - 0x10]
movsd qword [esi + 0x38], xmm0
movsd xmm1, qword [eax + edi*8 - 0x18]
movq xmm0, qword [eax + edi*8 - 0x20]
movsd qword [esi + 0x30], xmm1
movq xmm1, qword [esi + 0x138]
movq qword [esi + 0x28], xmm0
movq qword [eax + edi*8 - 0x20], xmm2
movsd qword [eax + edi*8 - 0x10], xmm4
movq qword [eax + edi*8 - 0x18], xmm3
movq qword [eax + edi*8 - 8], xmm1
cmp dword [esi + 0x28], 0
je 0x10010e0c
lea eax, [esi + 0x28]
mov byte [esi + 3], 0
mov dword [esi + 0x190], 8
push eax
call fcn.10002100
add esp, 4
mov dword [esi + 0x80], 0x10262bf0
mov ecx, dword [ebp + 8]
mov eax, dword [0x10262bf8]
mov dword [esi + 0x190], 8
cmp eax, 3
je 0x10010e6b
lea eax, [esi + 0x80]
mov dword [esi + 4], ecx
mov byte [esi + 3], 0
mov dword [esi + 0xd8], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], eax
lea eax, [0x10262bf8]
push 0x101b3344
push 0x101b2d14
lea ecx, [esi + 0x28]
push ecx
push 0
push eax
call fcn.101ae6e0
add esp, 0x14
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x80]
mov eax, dword [eax + 4]
mov byte [esi + 3], 0
push 1
push ecx
push 0x818
push eax
call sub.user32.dll_PostMessageA
mov eax, dword [esi + 0x10c]
test eax, eax
je 0x10010ea4
shl eax, 2
push 4
push eax
push dword [esi + 0x108]
call fcn.100985c0
add esp, 0xc
mov edi, dword [esi + 0x14c]
test edi, edi
je 0x10010ff5
mov eax, dword [esi + 0x154]
test eax, eax
mov dword [esi + 4], eax
je 0x10010fca
mov ebx, dword [esi + 0x148]
mov dword [esi + 0x14], edi
movdqa xmm0, xmmword [ebx]
lea edi, [ebx + 0x10]
mov dword [esi + 0x10], ebx
pmovmskb edx, xmm0
not edx
jmp 0x10010eeb
mov eax, dword [esi + 0xc]
cmp dword [esi + 4], 0
mov edx, eax
je 0x10010f4e
test dx, dx
je 0x10010f00
lea eax, [edx - 1]
and eax, edx
jmp 0x10010f24
movdqa xmm0, xmmword [edi]
add ebx, 0xffffff40
add edi, 0x10
pmovmskb edx, xmm0
cmp dx, 0xffff
je 0x10010f00
mov ecx, 0xfffffffe
sub ecx, edx
not edx
mov eax, edx
and eax, ecx
mov dword [esi + 0xc], eax
tzcnt eax, edx
dec dword [esi + 4]
neg eax
lea ecx, [eax + eax*2]
mov eax, dword [ebx + ecx*4 - 8]
test eax, eax
je 0x10010ee0
lea ecx, [ebx + ecx*4 - 0xc]
push 1
push eax
push dword [ecx]
call fcn.100985c0
add esp, 0xc
jmp 0x10010ee0
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
jmp 0x10010fd0
mov eax, dword [0x102620f8]
mov eax, dword [eax]
mov dword [esi + 0x190], 9
test eax, 0x7fffffff
je 0x10010c76
mov dword [esi + 4], ecx
call fcn.101ae480
mov ecx, dword [esi + 4]
test al, al
jne 0x10010c76
mov byte [ecx + 4], 1
jmp 0x10010c76
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10010c91
mov byte [esi + 3], 1
mov dword [esi + 0x190], 8
call fcn.101ae480
test al, al
jne 0x10010c91
mov eax, dword [esi + 0xa8]
mov byte [eax + 0xc], 1
jmp 0x10010c91
mov ebx, dword [esi + 0x148]
lea eax, [edi + 1]
mov ecx, 0xc
mul ecx
add eax, 0xf
and eax, 0xfffffff0
add edi, eax
add edi, 0x11
je 0x10010ff5
sub ebx, eax
push 0x10
push edi
push ebx
call fcn.100985c0
add esp, 0xc
mov ebx, dword [esi + 0x11c]
mov eax, dword [esi + 0x114]
test ebx, ebx
mov dword [esi + 4], eax
je 0x1001102c
mov eax, dword [esi + 4]
lea edi, [eax + 4]
jmp 0x10011016
add edi, 0xc
dec ebx
je 0x1001102c
mov eax, dword [edi]
test eax, eax
je 0x10011010
push 1
push eax
push dword [edi - 4]
call fcn.100985c0
add esp, 0xc
jmp 0x10011010
mov eax, dword [esi + 0x118]
test eax, eax
je 0x1001104a
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push dword [esi + 4]
call fcn.100985c0
add esp, 0xc
mov ebx, dword [esi + 0x104]
mov eax, dword [esi + 0xfc]
test ebx, ebx
mov dword [esi + 4], eax
je 0x1001108c
mov eax, dword [esi + 4]
lea edi, [eax + 4]
jmp 0x10011076
add edi, 0xc
dec ebx
je 0x1001108c
mov eax, dword [edi]
test eax, eax
je 0x10011070
push 1
push eax
push dword [edi - 4]
call fcn.100985c0
add esp, 0xc
jmp 0x10011070
mov eax, dword [esi + 0x100]
test eax, eax
je 0x100110aa
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push dword [esi + 4]
call fcn.100985c0
add esp, 0xc
cmp byte [esi + 0x60], 0
je 0x10011175
mov dword [esi + 0x190], 4
push dword [esi + 0xac]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp byte [esi + 0x64], 0
je 0x100111aa
mov dword [esi + 0x190], 3
push dword [esi + 0xb0]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp byte [esi + 0x68], 0
je 0x100111e2
mov dword [esi + 0x190], 2
push dword [esi + 0xb4]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp byte [esi + 0x6c], 0
je 0x10011217
mov dword [esi + 0x190], 1
push dword [esi + 0xb8]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp byte [esi + 0x70], 0
je 0x1001124f
mov dword [esi + 0x190], 0
push dword [esi + 0xbc]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10011161
push 1
push eax
push dword [ecx]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x188]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x102620f8]
mov eax, dword [eax]
mov dword [esi + 0x190], 4
test eax, 0x7fffffff
je 0x100110b4
call fcn.101ae480
test al, al
jne 0x100110b4
mov eax, dword [esi + 0x74]
mov byte [eax + 0xc], 1
jmp 0x100110b4
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x100110d4
mov dword [esi + 0x190], 3
call fcn.101ae480
test al, al
jne 0x100110d4
mov eax, dword [esi + 0xc0]
mov byte [eax + 0xc], 1
jmp 0x100110d4
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x100110f4
mov dword [esi + 0x190], 2
call fcn.101ae480
test al, al
jne 0x100110f4
mov eax, dword [esi + 0x78]
mov byte [eax + 0xc], 1
jmp 0x100110f4
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10011114
mov dword [esi + 0x190], 1
call fcn.101ae480
test al, al
jne 0x10011114
mov eax, dword [esi + 0xc4]
mov byte [eax + 0xc], 1
jmp 0x10011114
mov eax, dword [0x102620f8]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10011134
mov dword [esi + 0x190], 0
call fcn.101ae480
test al, al
jne 0x10011134
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xc], 1
jmp 0x10011134
movsd xmm1, qword [esi + 0x130]
movq xmm0, qword [esi + 0x138]
movq xmm2, qword [esi + 0x120]
mov eax, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 0x190], 8
movsd qword [esi + 0x40], xmm1
movq xmm1, qword [esi + 0x128]
movq qword [esi + 0x48], xmm0
movq qword [esi + 0x30], xmm2
movq qword [esi + 0x38], xmm1
mov dword [esi + 0x28], eax
push dword [esi + 0x58]
lea eax, [esi + 0x28]
push eax
push dword [esi + 0x54]
push dword [esi + 0x1c]
push dword [esi + 0x24]
call fcn.10003f60
add esp, 0x14
jmp 0x10010e0c
push 0x101b4428
push 0x101b416c
lea eax, [esi + 0x28]
push eax
push 0x46
push 0x101b4390
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
lea eax, [esi + 0x28]
push 0x101b4428
push 0x101b416c
push eax
push 0x46
push 0x101b4390
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov byte [esi + 0x1a], 1
lea eax, [esi + 0x28]
push 0x101b4428
push 0x101b416c
push eax
push 0x46
push 0x101b4390
call fcn.101af4e0
add esp, 0x14
jmp 0x10011364
mov byte [esi + 0x1b], 1
mov dword [esi + 0x190], 7
push 4
push 4
call fcn.101aefe0
add esp, 8
ud2