Function at 0x47bfb0
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 [0x674014]
xor eax, ebp
mov dword [esi + 0x98], eax
lea edi, [ebp + 0x10]
lea eax, [ecx - 4]
cmp byte [0x675d04], 0
je 0x47c009
mov ecx, eax
push 0
push dword [edx]
call fcn.00479760
mov ecx, edi
call fcn.004f1b60
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.005dd6f3
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 0x47c815
movups xmm0, xmmword [edi + 0x9c]
movaps xmmword [esi + 0x70], xmm0
mov eax, dword [edi + 0xac]
test eax, eax
mov ecx, edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x10], eax
je 0x47c091
lock inc dword [eax + 4]
mov edi, dword [ecx + 0xac]
mov dword [ecx + 0xac], 0
test edi, edi
je 0x47c0cc
lock dec dword [edi + 4]
jne 0x47c0cc
lea eax, [edi + 4]
add eax, 0xfffffffc
mov dword [esi + 0xc], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
mov dword [esi + 0x18], ecx
call dword [section..00cfg]
mov ecx, dword [esi + 0x14]
call dword [esi + 0x18]
test al, al
je 0x47c09d
mov ecx, dword [esi + 0xc]
push 1
call fcn.004769c0
jmp 0x47c0cc
mov dword [ecx + 0xac], 0
jmp 0x47c0cc
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
lea edi, [esi + 0x40]
push 0x4b
push str....._basememory_ref_counted_delete_on_sequence.h
push str.DestructOnSequence
push edi
call fcn.004b6370
add esp, 0x10
mov ecx, dword [esi + 0x14]
push dword [esi + 0xc]
push 0x47e440
push edi
call fcn.004c24d0
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 0x47c12b
mov ecx, dword [eax + 8]
xor ecx, dword [esi + 0x78]
mov edx, dword [eax + 0xc]
xor edx, dword [esi + 0x7c]
or edx, ecx
jne 0x47c12b
cmp dword [esi + 0x10], 0
je 0x47c12b
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
xor edx, dword [0x629fcc]
mov edi, dword [ecx]
xor edi, dword [0x629fc8]
or edi, edx
jne 0x47c13e
mov edx, dword [0x629fd0]
xor edx, dword [ecx + 8]
mov edi, dword [0x629fd4]
xor edi, dword [ecx + 0xc]
or edi, edx
jne 0x47c13e
mov ecx, dword [esi + 8]
push 0
push eax
call fcn.00479760
lea edi, [ebp + 0x10]
jmp 0x47c79d
xorps xmm0, xmm0
movaps xmmword [esi + 0x60], xmm0
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x50], 0x3f800000
mov edi, dword [esi + 0x1c]
lea ebx, [edi + 0xb0]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x47c821
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.00480440
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 0x47c211
mov ecx, dword [esi + 0x78]
xor ecx, dword [eax + 8]
mov edx, dword [esi + 0x7c]
xor edx, dword [eax + 0xc]
or edx, ecx
jne 0x47c211
mov edx, dword [esi + 0x10]
lock inc dword [edx + 4]
mov dword [esi + 0x3c], edx
jmp 0x47c2ea
mov eax, dword [edi + 0xc]
inc eax
cmp eax, 2
jae 0x47c22b
mov ecx, dword [esi + 8]
push 0
push dword [edi]
call fcn.00479760
jmp 0x47c6a6
mov dword [esi + 0xc], esp
push eax
sub esp, 0x24
mov ebx, esp
mov dword [esi + 0x88], 0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x20], eax
test eax, eax
je 0x47c24f
lock inc dword [eax + 4]
mov dword [esi + 0x14], esp
mov edi, ebx
add edi, 8
sub esp, 8
mov dword [esi + 0x20], esp
mov dword [esi + 0x18], esp
sub esp, 8
mov ecx, esp
lea eax, [ebp + 0x10]
push eax
call fcn.004f1ae0
mov ecx, dword [esi + 0x20]
call fcn.004f1a94
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.004669c0
mov esp, dword [esi + 0x14]
lea eax, [esi + 0x38]
mov dword [ebx], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx + 4], eax
mov dword [ebx + 0x1c], 0
lea edi, [esi + 0x88]
mov dword [ebx + 0x24], edi
call fcn.00474370
add esp, 0x28
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x3c]
push dword [esi + 0x38]
call fcn.00478e40
mov ecx, edi
call fcn.004adda0
mov ecx, dword [esi + 0x3c]
lea edi, [ebp + 8]
push dword [edi + 0x14]
push dword [edi + 0x10]
call fcn.004766f0
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x47c2d7
lock inc dword [eax + 4]
mov ecx, dword [esi + 8]
push 0
push 1
push eax
push dword [edi + 4]
call fcn.00479e30
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.00479e30
mov edi, dword [esi + 0x1c]
lea ebx, [edi + 0x80]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x47c82d
mov eax, dword [edi + 0x84]
mov ecx, dword [edi + 0x88]
mov dword [esi + 8], ecx
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0
push ebx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 8]
cmp ebx, eax
je 0x47c3f9
mov dword [esi + 0xc], ebx
nop dword [eax + eax]
lea edi, [ebx + 0x10]
mov dword [esi + 0x88], 0xffffffff
mov dword [esi + 0x8c], 0xffffffff
mov dword [esi + 0x90], 0xffffffff
lea ecx, [esi + 0x88]
push edi
call fcn.00501580
mov eax, dword [esi + 0x88]
mov eax, dword [eax + 0x10]
mov byte [eax + 0x48], 1
lea ecx, [esi + 0x88]
call fcn.005015f0
mov ecx, dword [esi + 0x10]
push ebx
push edi
call fcn.004751c0
mov eax, dword [esi + 8]
add ebx, 0x28
cmp ebx, eax
jne 0x47c360
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x47c5ae
cmp ebx, eax
jne 0x47c3d9
jmp 0x47c401
mov eax, edi
mov ebx, dword [esi + 0xc]
cmp edi, ebx
je 0x47c401
lea edi, [eax - 0x28]
lea ecx, [eax - 0x18]
mov ebx, eax
call fcn.005021f0
cmp byte [ebx - 0x1d], 0
jns 0x47c3d0
push dword [ebx - 0x28]
call fcn.005dc756
add esp, 4
jmp 0x47c3d0
test ebx, ebx
je 0x47c5ae
push ebx
call fcn.005dc756
add esp, 4
jmp 0x47c5ae
cmp dword [esi + 0x64], ebx
jb 0x47c845
mov eax, dword [esi + 0x60]
shl ebx, 4
mov dword [esi + 0x18], eax
movups xmm0, xmmword [eax + ebx]
sub esp, 0x10
movups xmmword [esp], xmm0
call fcn.004b5e80
add esp, 0x10
mov ecx, eax
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x24]
mov dword [esi + 8], eax
test eax, eax
je 0x47c580
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 0x47c490
lea edx, [edi - 1]
and edx, ecx
jmp 0x47c49e
cmp ecx, edi
jae 0x47c498
mov edx, ecx
jmp 0x47c49e
mov eax, ecx
xor edx, edx
div edi
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x14], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x47c580
mov edi, dword [eax]
test edi, edi
je 0x47c580
mov edx, dword [esi + 0x18]
lea eax, [edx + ebx]
add ebx, edx
add ebx, 8
mov edx, dword [esi + 8]
lea edx, [edx - 1]
mov dword [esi + 0x2c], edx
mov edx, dword [ebx]
mov dword [esi + 0x20], edx
mov edx, dword [ebx + 4]
mov dword [esi + 0x30], edx
mov ebx, dword [eax]
mov dword [esi + 0x28], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x18], eax
mov dword [esi + 0x24], ecx
jmp 0x47c506
and eax, dword [esi + 0x2c]
cmp eax, dword [esi + 0x14]
jne 0x47c580
mov edi, dword [edi]
test edi, edi
je 0x47c580
mov eax, dword [edi + 4]
cmp eax, ecx
jne 0x47c530
mov eax, dword [edi + 8]
xor eax, ebx
mov edx, dword [edi + 0xc]
xor edx, dword [esi + 0x18]
or edx, eax
jne 0x47c4fc
mov eax, dword [edi + 0x10]
xor eax, dword [esi + 0x20]
mov edx, dword [edi + 0x14]
xor edx, dword [esi + 0x30]
or edx, eax
jne 0x47c4fc
jmp 0x47c54c
cmp dword [esi + 0xc], 1
jbe 0x47c4f0
mov ecx, ebx
mov ebx, dword [esi + 8]
cmp eax, ebx
jb 0x47c545
xor edx, edx
div ebx
mov eax, edx
mov ebx, ecx
mov ecx, dword [esi + 0x24]
jmp 0x47c4f3
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.00474890
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
mov ecx, dword [esi + 0xc]
call fcn.00474c20
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 0x47c848
cmp ecx, edx
jb 0x47c84b
cmp eax, ecx
mov ecx, 0
cmove eax, ecx
mov dword [esi + 0x68], eax
lea ecx, [esi + 0x60]
call fcn.00480520
mov ebx, dword [esi + 0x68]
cmp ebx, dword [esi + 0x6c]
jne 0x47c410
mov edi, dword [esi + 0x48]
jmp 0x47c5c2
mov edi, dword [edi]
test edi, edi
je 0x47c67e
mov eax, dword [edi + 0x20]
cmp eax, dword [edi + 0x24]
je 0x47c5c0
lea ecx, [edi + 8]
mov dword [esi + 0x14], ecx
lea ecx, [edi + 0x18]
mov dword [esi + 8], ecx
jmp 0x47c602
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.0047f4b0
mov eax, dword [edi + 0x20]
cmp eax, dword [edi + 0x24]
je 0x47c5c0
cmp dword [edi + 0x1c], eax
jb 0x47c839
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.00475920
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
lea edx, [eax + 1]
cmp ecx, edx
jb 0x47c83c
cmp ecx, eax
jb 0x47c83f
cmp eax, 0x7fffffff
je 0x47c842
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 0x47c5e0
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 0x47c5e0
mov ecx, dword [esi + 0x10]
push 0
push 1
call fcn.004769a0
test al, al
je 0x47c6a6
mov ecx, dword [esi + 0x10]
push 0
push 1
call fcn.00476970
test al, al
je 0x47c6a6
mov ecx, dword [esi + 0x10]
call fcn.00476920
mov ebx, dword [esi + 0x3c]
test ebx, ebx
je 0x47c712
lock dec dword [ebx + 4]
jne 0x47c712
lea eax, [ebx + 4]
add eax, 0xfffffffc
mov dword [esi + 8], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, dword [esi + 0xc]
call edi
test al, al
je 0x47c6e4
mov ecx, dword [esi + 8]
push 1
call fcn.004769c0
jmp 0x47c712
mov edi, dword [ebx + 8]
lea ebx, [esi + 0x88]
push 0x4b
push str....._basememory_ref_counted_delete_on_sequence.h
push str.DestructOnSequence
push ebx
call fcn.004b6370
add esp, 0x10
mov ecx, edi
push dword [esi + 8]
push 0x47e440
push ebx
call fcn.004c24d0
mov edi, dword [esi + 0x48]
test edi, edi
je 0x47c74a
nop dword [eax]
mov ebx, dword [edi]
lea ecx, [edi + 0x18]
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.0047de00
push dword [edi + 0x18]
call fcn.004d2040
add esp, 4
push edi
call fcn.005dc756
add esp, 4
mov edi, ebx
test ebx, ebx
jne 0x47c720
mov eax, dword [esi + 0x40]
mov dword [esi + 0x40], 0
test eax, eax
je 0x47c761
push eax
call fcn.005dc756
add esp, 4
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
cmp ecx, eax
lea edi, [ebp + 0x10]
je 0x47c792
mov edx, dword [esi + 0x64]
jbe 0x47c782
cmp edx, ecx
jb 0x47c84e
cmp edx, eax
jae 0x47c792
int3
cmp edx, eax
jb 0x47c851
cmp edx, ecx
jb 0x47c854
push dword [esi + 0x60]
call fcn.004d2040
add esp, 4
mov edx, dword [esi + 0x10]
test edx, edx
je 0x47bfeb
lock dec dword [edx + 4]
jne 0x47bfeb
lea eax, [edx + 4]
add eax, 0xfffffffc
mov dword [esi + 8], eax
mov ebx, dword [edx + 8]
mov eax, dword [ebx]
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
test al, al
je 0x47c7df
mov ecx, dword [esi + 8]
push 1
call fcn.004769c0
jmp 0x47c80d
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 8]
lea ebx, [esi + 0x40]
push 0x4b
push str....._basememory_ref_counted_delete_on_sequence.h
push str.DestructOnSequence
push ebx
call fcn.004b6370
add esp, 0x10
mov ecx, edi
push dword [esi + 8]
push 0x47e440
push ebx
call fcn.004c24d0
lea edi, [ebp + 0x10]
jmp 0x47bfeb
mov ecx, ebx
call fcn.004cea50
jmp 0x47c023
mov ecx, ebx
call fcn.004cea50
jmp 0x47c168
mov ecx, ebx
call fcn.004cea50
jmp 0x47c317
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3