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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, esp
lea edx, [ebp + 8]
mov eax, dword [0x10123014]
xor eax, ebp
mov dword [esi + 0x98], eax
lea edi, [ebp + 0x10]
lea eax, [ecx - 4]
cmp byte [0x10123c2c], 0
je 0x1002aeb9
mov ecx, eax
push 0
push dword [edx]
call fcn.10028760
mov ecx, edi
call fcn.10080ea0
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.100dea63
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov dword [esi + 8], eax
lea ebx, [ecx + 0x94]
push ebx
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1002b6bd
movups xmm0, xmmword [edi + 0x9c]
movaps xmmword [esi + 0x70], xmm0
mov eax, dword [edi + 0xac]
test eax, eax
mov ecx, edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x10], eax
je 0x1002af37
lock inc dword [eax + 4]
mov edi, dword [ecx + 0xac]
mov dword [ecx + 0xac], 0
test edi, edi
je 0x1002af73
lock dec dword [edi + 4]
jne 0x1002af73
mov eax, dword [edi + 8]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
mov dword [esi + 0x14], ecx
call dword [section..00cfg]
mov ecx, dword [esi + 0xc]
call dword [esi + 0x14]
test al, al
je 0x1002af43
mov ecx, edi
push 1
call fcn.10025bc0
jmp 0x1002af73
mov dword [ecx + 0xac], 0
jmp 0x1002af73
mov eax, dword [edi + 8]
mov dword [esi + 0xc], eax
lea eax, [esi + 0x40]
push 0x4b
push str....._basememory_ref_counted_delete_on_sequence.h
push str.DestructOnSequence
push eax
call fcn.10060920
add esp, 0x10
mov ecx, dword [esi + 0xc]
push edi
push 0x1002d7d0
lea eax, [esi + 0x40]
push eax
call fcn.10068300
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea edi, [ebp + 8]
mov eax, dword [edi]
mov ecx, dword [esi + 0x74]
xor ecx, dword [eax + 4]
mov edx, dword [esi + 0x70]
xor edx, dword [eax]
or edx, ecx
jne 0x1002afd2
mov ecx, dword [eax + 8]
xor ecx, dword [esi + 0x78]
mov edx, dword [eax + 0xc]
xor edx, dword [esi + 0x7c]
or edx, ecx
jne 0x1002afd2
cmp dword [esi + 0x10], 0
je 0x1002afd2
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
xor edx, dword [0x10117c0c]
mov edi, dword [ecx]
xor edi, dword [0x10117c08]
or edi, edx
jne 0x1002afe5
mov edx, dword [0x10117c10]
xor edx, dword [ecx + 8]
mov edi, dword [0x10117c14]
xor edi, dword [ecx + 0xc]
or edi, edx
jne 0x1002afe5
mov ecx, dword [esi + 8]
push 0
push eax
call fcn.10028760
lea edi, [ebp + 0x10]
jmp 0x1002b64d
xorps xmm0, xmm0
movaps xmmword [esi + 0x60], xmm0
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x50], 0x3f800000
mov edi, dword [esi + 0x18]
lea ebx, [edi + 0xb0]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1002b6c9
lea eax, [ebp + 8]
mov eax, dword [eax + 4]
movups xmm0, xmmword [eax]
movups xmmword [edi + 0xb4], xmm0
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov edx, dword [edi + 0xc4]
mov dword [esi + 0x60], edx
mov edx, dword [edi + 0xc8]
mov dword [esi + 0x64], edx
mov dword [edi + 0xc4], eax
mov dword [edi + 0xc8], ecx
mov eax, dword [esi + 0x68]
mov ecx, dword [edi + 0xcc]
mov dword [esi + 0x68], ecx
mov dword [edi + 0xcc], eax
mov eax, dword [esi + 0x6c]
mov ecx, dword [edi + 0xd0]
mov dword [esi + 0x6c], ecx
mov dword [edi + 0xd0], eax
lea eax, [edi + 0xd4]
lea ecx, [esi + 0x40]
push eax
call fcn.1002f330
push ebx
lea edi, [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [esi + 0x3c], 0
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
xor ecx, dword [esi + 0x74]
mov edx, dword [eax]
xor edx, dword [esi + 0x70]
or edx, ecx
jne 0x1002b0b8
mov ecx, dword [esi + 0x78]
xor ecx, dword [eax + 8]
mov edx, dword [esi + 0x7c]
xor edx, dword [eax + 0xc]
or edx, ecx
jne 0x1002b0b8
mov edx, dword [esi + 0x10]
lock inc dword [edx + 4]
mov dword [esi + 0x3c], edx
jmp 0x1002b191
mov eax, dword [edi + 0xc]
inc eax
cmp eax, 2
jae 0x1002b0d2
mov ecx, dword [esi + 8]
push 0
push dword [edi]
call fcn.10028760
jmp 0x1002b556
mov dword [esi + 0xc], esp
push eax
sub esp, 0x24
mov edi, esp
mov dword [esi + 0x88], 0
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x18]
mov dword [edi + 0x20], eax
test eax, eax
je 0x1002b0f6
lock inc dword [eax + 4]
mov dword [esi + 0x14], esp
mov ebx, edi
add ebx, 8
sub esp, 8
mov dword [esi + 0x1c], esp
mov dword [esi + 0x20], esp
sub esp, 8
mov ecx, esp
lea eax, [ebp + 0x10]
push eax
call fcn.10080e26
mov ecx, dword [esi + 0x1c]
call fcn.10080dd8
mov esp, dword [esi + 0x20]
mov ecx, ebx
call fcn.10015660
mov esp, dword [esi + 0x14]
lea eax, [esi + 0x38]
mov dword [edi], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 4], eax
mov dword [edi + 0x1c], 0
lea ebx, [esi + 0x88]
mov dword [edi + 0x24], ebx
call fcn.10023340
add esp, 0x28
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x3c]
push dword [esi + 0x38]
call fcn.10027e70
mov ecx, ebx
call fcn.10060350
mov ecx, dword [esi + 0x3c]
lea edi, [ebp + 8]
push dword [edi + 0x14]
push dword [edi + 0x10]
call fcn.10025800
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x1002b17e
lock inc dword [eax + 4]
mov ecx, dword [esi + 8]
push 0
push 1
push eax
push dword [edi + 4]
call fcn.10028ee0
mov edx, dword [esi + 0x10]
lock inc dword [edx + 4]
lea eax, [esi + 0x70]
mov ecx, dword [esi + 8]
push 0
push 0
push edx
push eax
call fcn.10028ee0
mov ebx, dword [esi + 0x18]
lea edi, [ebx + 0x80]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1002b6d5
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x88]
mov dword [esi + 8], ecx
mov dword [ebx + 0x84], 0
mov dword [ebx + 0x88], 0
mov dword [ebx + 0x8c], 0
mov ebx, eax
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 8]
cmp ebx, eax
je 0x1002b2a9
mov dword [esi + 0xc], ebx
mov edi, ebx
nop word cs:[eax + eax]
lea ebx, [edi + 0x10]
mov dword [esi + 0x88], 0xffffffff
mov dword [esi + 0x8c], 0xffffffff
mov dword [esi + 0x90], 0xffffffff
lea ecx, [esi + 0x88]
push ebx
call fcn.1007fcf0
mov eax, dword [esi + 0x88]
mov eax, dword [eax + 0x10]
mov byte [eax + 0x48], 1
lea ecx, [esi + 0x88]
call fcn.1007fd70
mov ecx, dword [esi + 0x10]
push edi
push ebx
call fcn.10024230
mov eax, dword [esi + 8]
add edi, 0x28
cmp edi, eax
jne 0x1002b210
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x1002b45e
cmp ebx, eax
jne 0x1002b289
jmp 0x1002b2b1
mov eax, edi
mov ebx, dword [esi + 0xc]
cmp edi, ebx
je 0x1002b2b1
lea edi, [eax - 0x28]
lea ecx, [eax - 0x18]
mov ebx, eax
call fcn.10080980
cmp byte [ebx - 0x1d], 0
jns 0x1002b280
push dword [ebx - 0x28]
call fcn.100de098
add esp, 4
jmp 0x1002b280
test ebx, ebx
je 0x1002b45e
push ebx
call fcn.100de098
add esp, 4
jmp 0x1002b45e
cmp dword [esi + 0x64], ebx
jb 0x1002b6ed
mov eax, dword [esi + 0x60]
shl ebx, 4
mov dword [esi + 0x1c], eax
movups xmm0, xmmword [eax + ebx]
sub esp, 0x10
movups xmmword [esp], xmm0
call fcn.10060470
add esp, 0x10
mov ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x24]
mov dword [esi + 8], eax
test eax, eax
je 0x1002b430
mov edi, dword [esi + 8]
mov edx, edi
shr edx, 1
and edx, 0x55555555
mov eax, edi
sub eax, edx
mov edx, eax
and edx, 0x33333333
shr eax, 2
and eax, 0x33333333
add eax, edx
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul eax, edx, 0x1010101
shr eax, 0x18
mov dword [esi + 0xc], eax
cmp eax, 1
ja 0x1002b340
lea edx, [edi - 1]
and edx, ecx
jmp 0x1002b34e
cmp ecx, edi
jae 0x1002b348
mov edx, ecx
jmp 0x1002b34e
mov eax, ecx
xor edx, edx
div edi
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x14], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1002b430
mov edi, dword [eax]
test edi, edi
je 0x1002b430
mov eax, dword [esi + 0x1c]
add eax, ebx
mov edx, dword [esi + 8]
dec edx
mov dword [esi + 0x28], edx
mov ebx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esi + 0x20], edx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x30], edx
mov dword [esi + 0x1c], eax
mov eax, dword [eax + 8]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x24], ecx
jmp 0x1002b3b6
and eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x14]
jne 0x1002b430
mov edi, dword [edi]
test edi, edi
je 0x1002b430
mov eax, dword [edi + 4]
cmp eax, ecx
jne 0x1002b3e0
mov eax, dword [edi + 8]
xor eax, ebx
mov edx, dword [edi + 0xc]
xor edx, dword [esi + 0x20]
or edx, eax
jne 0x1002b3ac
mov eax, dword [edi + 0x10]
xor eax, dword [esi + 0x2c]
mov edx, dword [edi + 0x14]
xor edx, dword [esi + 0x30]
or edx, eax
jne 0x1002b3ac
jmp 0x1002b3fc
cmp dword [esi + 0xc], 1
jbe 0x1002b3a0
mov ecx, ebx
mov ebx, dword [esi + 8]
cmp eax, ebx
jb 0x1002b3f5
xor edx, edx
div ebx
mov eax, edx
mov ebx, ecx
mov ecx, dword [esi + 0x24]
jmp 0x1002b3a3
mov dword [esi + 8], esp
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xc], eax
push eax
sub esp, 8
mov ebx, esp
lea eax, [ebx + 4]
mov ecx, dword [edi + 0x18]
push eax
call fcn.10023880
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
mov ecx, dword [esi + 0xc]
call fcn.10023c10
mov esp, dword [esi + 8]
nop word [eax + eax]
mov ecx, dword [esi + 0x64]
mov edx, dword [esi + 0x68]
lea eax, [edx + 1]
cmp ecx, eax
jb 0x1002b6f0
cmp ecx, edx
jb 0x1002b6f3
cmp eax, ecx
mov ecx, 0
cmove eax, ecx
mov dword [esi + 0x68], eax
lea ecx, [esi + 0x60]
call fcn.1002f410
mov ebx, dword [esi + 0x68]
cmp ebx, dword [esi + 0x6c]
jne 0x1002b2c0
mov edi, dword [esi + 0x48]
jmp 0x1002b472
mov edi, dword [edi]
test edi, edi
je 0x1002b52e
mov eax, dword [edi + 0x20]
cmp eax, dword [edi + 0x24]
je 0x1002b470
lea ecx, [edi + 8]
mov dword [esi + 0x14], ecx
lea ecx, [edi + 0x18]
mov dword [esi + 8], ecx
jmp 0x1002b4b2
mov eax, dword [edi + 0x20]
inc eax
cmp eax, dword [edi + 0x1c]
mov ecx, 0
cmove eax, ecx
mov dword [edi + 0x20], eax
mov ecx, dword [esi + 8]
call fcn.1002e720
mov eax, dword [edi + 0x20]
cmp eax, dword [edi + 0x24]
je 0x1002b470
cmp dword [edi + 0x1c], eax
jb 0x1002b6e1
mov ecx, dword [esi + 0x3c]
mov edx, dword [edi + 0x18]
mov ebx, dword [edx + eax*4]
mov dword [edx + eax*4], 0
mov dword [esi + 0x34], ebx
mov eax, dword [esi + 0x34]
push eax
push dword [esi + 0x14]
call fcn.100249c0
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
lea edx, [eax + 1]
cmp ecx, edx
jb 0x1002b6e4
cmp ecx, eax
jb 0x1002b6e7
cmp eax, 0x7fffffff
je 0x1002b6ea
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
mov dword [ecx + eax*4], 0
test ebx, ebx
je 0x1002b490
mov eax, dword [ebx]
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
call dword [section..00cfg]
mov ecx, ebx
push 1
call dword [esi + 0xc]
jmp 0x1002b490
mov ecx, dword [esi + 0x10]
push 0
push 1
call fcn.10025ba0
test al, al
je 0x1002b556
mov ecx, dword [esi + 0x10]
push 0
push 1
call fcn.10025b70
test al, al
je 0x1002b556
mov ecx, dword [esi + 0x10]
call fcn.10025b20
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x1002b5bc
lock dec dword [edi + 4]
jne 0x1002b5bc
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, dword [esi + 8]
call ebx
test al, al
je 0x1002b58a
mov ecx, edi
push 1
call fcn.10025bc0
jmp 0x1002b5bc
mov ebx, dword [edi + 8]
lea eax, [esi + 0x88]
push 0x4b
push str....._basememory_ref_counted_delete_on_sequence.h
push str.DestructOnSequence
push eax
call fcn.10060920
add esp, 0x10
mov ecx, ebx
push edi
push 0x1002d7d0
lea eax, [esi + 0x88]
push eax
call fcn.10068300
mov edi, dword [esi + 0x48]
test edi, edi
je 0x1002b5fa
nop word cs:[eax + eax]
mov ebx, dword [edi]
lea ecx, [edi + 0x18]
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.1002ce60
push dword [edi + 0x18]
call fcn.1006d850
add esp, 4
push edi
call fcn.100de098
add esp, 4
mov edi, ebx
test ebx, ebx
jne 0x1002b5d0
mov eax, dword [esi + 0x40]
mov dword [esi + 0x40], 0
test eax, eax
je 0x1002b611
push eax
call fcn.100de098
add esp, 4
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
cmp ecx, eax
lea edi, [ebp + 0x10]
je 0x1002b642
mov edx, dword [esi + 0x64]
jbe 0x1002b632
cmp edx, ecx
jb 0x1002b6f6
cmp edx, eax
jae 0x1002b642
int3
cmp edx, eax
jb 0x1002b6f9
cmp edx, ecx
jb 0x1002b6fc
push dword [esi + 0x60]
call fcn.1006d850
add esp, 4
mov edx, dword [esi + 0x10]
test edx, edx
je 0x1002ae9b
lock dec dword [edx + 4]
jne 0x1002ae9b
mov edi, dword [edx + 8]
mov eax, dword [edi]
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
call ebx
test al, al
je 0x1002b686
mov ecx, dword [esi + 0x10]
push 1
call fcn.10025bc0
jmp 0x1002b6b5
mov ebx, dword [esi + 0x10]
mov edi, dword [ebx + 8]
lea eax, [esi + 0x40]
push 0x4b
push str....._basememory_ref_counted_delete_on_sequence.h
push str.DestructOnSequence
push eax
call fcn.10060920
add esp, 0x10
mov ecx, edi
push ebx
push 0x1002d7d0
lea eax, [esi + 0x40]
push eax
call fcn.10068300
lea edi, [ebp + 0x10]
jmp 0x1002ae9b
mov ecx, ebx
call fcn.1006ca90
jmp 0x1002aed3
mov ecx, ebx
call fcn.1006ca90
jmp 0x1002b00f
mov ecx, edi
call fcn.1006ca90
jmp 0x1002b1be
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3