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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov esi, ecx
mov eax, dword [0x102b0014]
xor eax, ebp
mov dword [esp + 0x58], eax
movups xmm0, xmmword [edx]
movaps xmmword [esp + 0x40], xmm0
lea edi, [ecx + 0x20]
push edi
call dword [sym.imp.kernel32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x100a1c56
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x14], eax
push eax
mov dword [esp + 0x14], ecx
push ecx
mov dword [esp + 0x20], edx
push edx
mov dword [esp + 0x2c], edi
push edi
call fcn.1014d770
add esp, 0x10
mov dword [esp + 8], esi
mov esi, dword [esi + 0x28]
test esi, esi
je 0x100a14d5
mov ebx, eax
mov eax, dword [esp + 8]
lea edi, [eax + 0x24]
mov eax, esi
shr eax, 1
and eax, 0x55555555
mov ecx, esi
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esp], eax
cmp eax, 1
ja 0x100a143e
lea edx, [esi - 1]
and edx, ebx
jmp 0x100a144c
cmp ebx, esi
jae 0x100a1446
mov edx, ebx
jmp 0x100a144c
mov eax, ebx
xor edx, edx
div esi
mov dword [esp + 0xc], edi
mov eax, dword [edi]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100a14d5
mov edi, dword [eax]
test edi, edi
je 0x100a14d5
lea eax, [esi - 1]
mov dword [esp + 4], eax
mov ecx, edx
jmp 0x100a147e
and eax, dword [esp + 4]
cmp eax, edx
jne 0x100a14d5
mov edi, dword [edi]
test edi, edi
je 0x100a14d5
mov eax, dword [edi + 4]
cmp eax, ebx
jne 0x100a14b0
mov eax, dword [edi + 8]
xor eax, dword [esp + 0x20]
mov edx, dword [edi + 0xc]
xor edx, dword [esp + 0x18]
or edx, eax
mov edx, ecx
jne 0x100a1478
mov eax, dword [edi + 0x10]
xor eax, dword [esp + 0x10]
mov edx, dword [edi + 0x14]
xor edx, dword [esp + 0x14]
or edx, eax
mov edx, ecx
jne 0x100a1478
jmp 0x100a14c4
cmp dword [esp], 1
jbe 0x100a1470
cmp eax, esi
jb 0x100a1474
xor edx, edx
div esi
mov eax, edx
mov edx, ecx
jmp 0x100a1474
lea edx, [esp + 0x34]
mov ecx, dword [esp + 0xc]
push edi
call fcn.100a6b00
add esp, 4
mov esi, dword [esp + 8]
lea ecx, [esi + 0x38]
lea edx, [esp + 0x40]
call fcn.100a6ce0
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x20]
push dword [esp + 0x2c]
call fcn.1014d770
add esp, 0x10
mov esi, dword [esi + 0xd4]
test esi, esi
je 0x100a15f5
mov ebx, eax
mov eax, dword [esp + 8]
lea edi, [eax + 0xd0]
mov eax, esi
shr eax, 1
and eax, 0x55555555
mov ecx, esi
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esp], eax
cmp eax, 1
ja 0x100a155a
lea edx, [esi - 1]
and edx, ebx
jmp 0x100a1568
cmp ebx, esi
jae 0x100a1562
mov edx, ebx
jmp 0x100a1568
mov eax, ebx
xor edx, edx
div esi
mov dword [esp + 0xc], edi
mov eax, dword [edi]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100a15f5
mov edi, dword [eax]
test edi, edi
je 0x100a15f5
lea eax, [esi - 1]
mov dword [esp + 4], eax
mov ecx, edx
jmp 0x100a159e
and eax, dword [esp + 4]
cmp eax, edx
jne 0x100a15f5
mov edi, dword [edi]
test edi, edi
je 0x100a15f5
mov eax, dword [edi + 4]
cmp eax, ebx
jne 0x100a15d0
mov eax, dword [edi + 8]
xor eax, dword [esp + 0x20]
mov edx, dword [edi + 0xc]
xor edx, dword [esp + 0x18]
or edx, eax
mov edx, ecx
jne 0x100a1598
mov eax, dword [edi + 0x10]
xor eax, dword [esp + 0x10]
mov edx, dword [edi + 0x14]
xor edx, dword [esp + 0x14]
or edx, eax
mov edx, ecx
jne 0x100a1598
jmp 0x100a15e4
cmp dword [esp], 1
jbe 0x100a1590
cmp eax, esi
jb 0x100a1594
xor edx, edx
div esi
mov eax, edx
mov edx, ecx
jmp 0x100a1594
lea edx, [esp + 0x34]
mov ecx, dword [esp + 0xc]
push edi
call fcn.100a6b00
add esp, 4
push dword [esp + 0x1c]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 8]
lea edi, [esi + 0x4c]
push edi
call dword [sym.imp.kernel32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x100a1c62
mov dword [esp + 0x2c], edi
mov eax, dword [esi + 0x54]
test eax, eax
mov ebx, dword [esp + 0x20]
je 0x100a16a6
lea ecx, [esi + 0x54]
mov dword [esp], ecx
mov dword [esp + 4], ecx
jmp 0x100a1659
add eax, 4
mov eax, dword [eax]
test eax, eax
je 0x100a1687
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
cmp ecx, ebx
mov edi, edx
mov esi, dword [esp + 0x18]
sbb edi, esi
jb 0x100a1650
cmp ebx, ecx
sbb esi, edx
jb 0x100a1681
mov edx, dword [eax + 0x1c]
mov esi, dword [esp + 0x10]
cmp dword [eax + 0x18], esi
sbb edx, dword [esp + 0x14]
jb 0x100a1650
mov dword [esp + 4], eax
jmp 0x100a1653
mov eax, dword [esp + 4]
cmp eax, dword [esp]
je 0x100a16a6
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
cmp ebx, ecx
mov esi, dword [esp + 0x18]
mov edx, esi
sbb edx, eax
jae 0x100a1742
xor edi, edi
xor ebx, ebx
xor esi, esi
mov dword [esp + 0xc], edi
push dword [esp + 0x2c]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esp + 8]
lea eax, [edi + 0x70]
mov dword [esp], eax
push eax
call dword [sym.imp.kernel32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x100a1c6e
mov eax, dword [edi + 0x78]
xor eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x7c]
xor ecx, dword [esp + 0x18]
or ecx, eax
jne 0x100a1712
mov eax, dword [edi + 0x80]
xor eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x84]
xor ecx, dword [esp + 0x14]
or ecx, eax
jne 0x100a1712
push dword [esp]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
call fcn.1009fe10
jmp 0x100a1934
cmp dword [ebp + 8], 0
je 0x100a1927
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0x88]
mov dword [esp + 4], ecx
push dword [esp]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [ebp + 8]
cmp dword [esp + 4], eax
jne 0x100a1934
jmp 0x100a1706
cmp ecx, ebx
sbb eax, esi
mov esi, 0
jb 0x100a176f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 4]
cmp eax, dword [ecx + 0x18]
mov eax, dword [esp + 0x14]
sbb eax, dword [ecx + 0x1c]
mov edi, 0
mov ebx, 0
jb 0x100a16ac
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x20]
add eax, 0x24
mov dword [esp + 0x30], eax
xor esi, esi
xor edi, edi
cmp ecx, eax
je 0x100a19fc
xor edx, edx
xor ebx, ebx
jmp 0x100a17a0
mov ecx, eax
cmp eax, dword [esp + 0x30]
mov edi, dword [esp + 0xc]
je 0x100a19fe
lea eax, [ecx + 0x20]
cmp ebx, edi
mov dword [esp], edx
mov dword [esp + 0x28], ecx
jae 0x100a17d0
mov dword [esp + 0xc], edi
mov ecx, ebx
push eax
call fcn.101972e0
mov edx, dword [esp]
add ebx, 0x18
mov dword [esp + 0x38], ebx
jmp 0x100a18d4
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebx
sub ebx, edx
sar ebx, 3
imul ebx, ebx, 0xaaaaaaab
lea eax, [ebx + 1]
cmp eax, 0xaaaaaab
jae 0x100a1c7b
sub edi, edx
sar edi, 3
imul ecx, edi, 0xaaaaaaab
lea edx, [ecx + ecx]
cmp edx, eax
cmovb edx, eax
cmp ecx, 0x5555555
mov eax, 0xaaaaaaa
cmovae edx, eax
test edx, edx
je 0x100a183b
cmp edx, 0xaaaaaab
jae 0x100a1c84
lea eax, [edx*8]
lea eax, [eax + eax*2]
push eax
mov esi, edx
call fcn.10216dd3
mov edx, esi
add esp, 4
jmp 0x100a183d
xor eax, eax
lea edi, [ebx + ebx*2]
lea esi, [eax + edi*8]
mov ebx, eax
lea eax, [edx + edx*2]
lea eax, [ebx + eax*8]
mov dword [esp + 0xc], eax
mov ecx, esi
push dword [esp + 0x24]
call fcn.101972e0
lea ecx, [ebx + edi*8]
add ecx, 0x18
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp]
cmp ebx, eax
mov dword [esp + 0x24], ecx
je 0x100a1911
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 0xffffffe8
add esi, 0xffffffe8
mov ecx, esi
push edi
call fcn.10197300
cmp dword [esp], edi
jne 0x100a1880
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0xc]
mov dword [esp + 0x3c], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 0xffffffe8
mov ecx, ebx
call fcn.10197290
mov eax, dword [esp]
cmp eax, ebx
jne 0x100a18b0
test eax, eax
je 0x100a18ce
push eax
call fcn.10205096
add esp, 4
mov ebx, dword [esp + 0x24]
mov edx, esi
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x100a18f0
nop
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100a18e0
jmp 0x100a1790
mov eax, dword [edi + 8]
cmp dword [eax], edi
je 0x100a1790
add edi, 8
nop
nop
mov ecx, dword [edi]
lea edi, [ecx + 8]
mov eax, dword [ecx + 8]
cmp dword [eax], ecx
jne 0x100a1900
jmp 0x100a1790
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ecx
mov edi, dword [esp + 0xc]
mov dword [esp + 0x3c], edi
test eax, eax
jne 0x100a18c5
jmp 0x100a18ce
push dword [esp]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0xe8]
test eax, eax
je 0x100a1bc9
mov dword [esp + 0x28], esi
lea ecx, [edi + 0xe8]
mov dword [esp + 4], ecx
mov dword [esp], ecx
mov dword [esp + 0x1c], ebx
jmp 0x100a196d
add eax, 4
mov ebx, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x100a199e
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov ebx, dword [esp + 0x20]
cmp esi, ebx
mov edx, edi
mov ecx, dword [esp + 0x18]
sbb edx, ecx
jb 0x100a1960
cmp ebx, esi
sbb ecx, edi
jb 0x100a1999
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x10]
cmp dword [eax + 0x18], edx
sbb ecx, dword [esp + 0x14]
jb 0x100a1960
mov dword [esp], eax
jmp 0x100a1963
mov eax, dword [esp]
cmp eax, dword [esp + 4]
je 0x100a19bd
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov esi, dword [esp + 0x20]
cmp esi, ecx
mov edi, dword [esp + 0x18]
mov edx, edi
sbb edx, eax
jae 0x100a19c6
mov esi, dword [esp + 0x28]
jmp 0x100a1bc9
cmp ecx, esi
sbb eax, edi
jb 0x100a19df
mov eax, dword [esp + 0x10]
mov ecx, dword [esp]
cmp eax, dword [ecx + 0x18]
mov eax, dword [esp + 0x14]
sbb eax, dword [ecx + 0x1c]
jb 0x100a19bd
mov eax, dword [esp]
add eax, 0x28
cmp ebx, dword [esp + 0xc]
je 0x100a1a1d
mov ecx, ebx
push eax
call fcn.101972e0
add ebx, 0x18
mov dword [esp + 0x38], ebx
jmp 0x100a1a27
xor ebx, ebx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x100a1a8d
nop
nop
nop
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100a1a10
jmp 0x100a1aac
lea ecx, [esp + 0x34]
push eax
call fcn.100a6e60
mov edi, dword [esp + 8]
mov esi, dword [esp]
movzx eax, byte [esi + 0x4b]
test al, al
jns 0x100a1a39
mov eax, dword [esi + 0x44]
test eax, eax
je 0x100a1b4d
lea eax, [esi + 0x40]
lea esi, [edi + 0xf0]
mov dword [esp + 0x54], 0xffffffff
lea edx, [esp + 0x54]
mov ecx, esi
push eax
call fcn.100a6550
add esp, 4
lea eax, [edi + 0xf4]
mov ebx, dword [esp + 0x54]
cmp ebx, eax
je 0x100a1b46
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x100a1aed
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100a1a80
jmp 0x100a1b0c
mov ecx, eax
mov eax, dword [eax + 8]
cmp dword [eax], ecx
je 0x100a1aac
mov eax, dword [esp + 4]
lea ecx, [eax + 8]
nop
nop
nop
mov edx, dword [ecx]
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
cmp dword [eax], edx
jne 0x100a1aa0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
cmp dword [ecx + 0x50], edx
jne 0x100a1abc
mov dword [ecx + 0x50], eax
add dword [ecx + 0x58], 0xffffffff
push edx
push dword [ecx + 0x54]
mov dword [esp + 0xc], edx
call fcn.10030398
add esp, 8
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x24]
call fcn.100a5bd0
push dword [esp + 4]
call fcn.10205096
add esp, 4
jmp 0x100a16ac
mov eax, dword [ebx + 8]
cmp dword [eax], ebx
je 0x100a1b0c
lea ecx, [ebx + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx]
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
cmp dword [eax], edx
jne 0x100a1b00
cmp dword [esi], ebx
jne 0x100a1b12
mov dword [esi], eax
mov eax, dword [esp + 8]
add dword [eax + 0xf8], 0xffffffff
push ebx
push dword [eax + 0xf4]
call fcn.10030398
add esp, 8
cmp byte [ebx + 0x1b], 0
jns 0x100a1b3d
push dword [ebx + 0x10]
call fcn.10205096
add esp, 4
push ebx
call fcn.10205096
add esp, 4
mov edi, dword [esp + 8]
mov esi, dword [esp]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x100a1b6a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100a1b60
jmp 0x100a1b8c
mov eax, dword [esi + 8]
cmp dword [eax], esi
je 0x100a1b8c
lea ecx, [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx]
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
cmp dword [eax], edx
jne 0x100a1b80
cmp dword [edi + 0xe4], esi
jne 0x100a1b9a
mov dword [edi + 0xe4], eax
add dword [edi + 0xec], 0xffffffff
push esi
push dword [edi + 0xe8]
call fcn.10030398
add esp, 8
lea ecx, [esi + 0x20]
call fcn.100a12e0
push esi
call fcn.10205096
add esp, 4
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
cmp esi, ebx
mov edi, dword [esp + 8]
je 0x100a1bf0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + 0x18]
push esi
call fcn.10191a00
add esi, 0x18
cmp ebx, esi
jne 0x100a1be0
mov ecx, dword [edi + 0x18]
push 0x1025a1d0
lea eax, [esp + 0x44]
push eax
call fcn.10194230
mov ecx, edi
call fcn.100a0db0
mov edi, dword [esp + 0x34]
test edi, edi
je 0x100a1c43
mov esi, dword [esp + 0x38]
cmp esi, edi
je 0x100a1c34
nop
nop
nop
nop
nop
nop
nop
add esi, 0xffffffe8
mov ecx, esi
call fcn.10197290
cmp edi, esi
jne 0x100a1c20
mov eax, dword [esp + 0x34]
jmp 0x100a1c36
mov eax, edi
mov dword [esp + 0x38], edi
push eax
call fcn.10205096
add esp, 4
mov ecx, dword [esp + 0x58]
xor ecx, ebp
call fcn.10205d16
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
call fcn.1016d1b0
jmp 0x100a13b3
mov ecx, edi
call fcn.1016d1b0
jmp 0x100a162d
mov ecx, dword [esp]
call fcn.1016d1b0
jmp 0x100a16d3
lea ecx, [esp + 0x34]
call fcn.1002bb40
call fcn.102177d0
int3