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

Disassembly:
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push esi
mov esi, ecx
push edi
mov edi, dword [esi + 0x20]
xor ebx, ebx
mov dword [esi], sym.OOXMLDocument.dll_const_OOXML::VML::CShape::vftablefor__CSDExtObject
mov dword [esi + 0x18], sym.OOXMLDocument.dll_const_OOXML::VML::CShape::vftablefor__OOXML::VML::AG_CAllShapeAttributes
mov dword [esi + 0x1c], sym.OOXMLDocument.dll_const_OOXML::VML::CShape::vftablefor__OOXML::VML::AG_CAllCoreAttributes
cmp edi, ebx
je 0x10167584
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167578
push eax
call ebp
test eax, eax
jg 0x10167578
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x20], ebx
mov edi, dword [esi + 0x24]
cmp edi, ebx
je 0x101675b6
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101675aa
push eax
call ebp
test eax, eax
jg 0x101675aa
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x24], ebx
mov edi, dword [esi + 0x28]
cmp edi, ebx
je 0x101675e8
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101675dc
push eax
call ebp
test eax, eax
jg 0x101675dc
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x28], ebx
mov edi, dword [esi + 0x2c]
cmp edi, ebx
je 0x1016761a
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x1016760e
push eax
call ebp
test eax, eax
jg 0x1016760e
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x2c], ebx
mov edi, dword [esi + 0x30]
cmp edi, ebx
je 0x1016764c
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167640
push eax
call ebp
test eax, eax
jg 0x10167640
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x30], ebx
mov edi, dword [esi + 0x34]
cmp edi, ebx
je 0x1016767e
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167672
push eax
call ebp
test eax, eax
jg 0x10167672
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x34], ebx
mov edi, dword [esi + 0x38]
cmp edi, ebx
je 0x101676b0
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101676a4
push eax
call ebp
test eax, eax
jg 0x101676a4
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x38], ebx
mov edi, dword [esi + 0x3c]
cmp edi, ebx
je 0x101676e2
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101676d6
push eax
call ebp
test eax, eax
jg 0x101676d6
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x3c], ebx
mov edi, dword [esi + 0x40]
cmp edi, ebx
je 0x10167714
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167708
push eax
call ebp
test eax, eax
jg 0x10167708
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x40], ebx
mov edi, dword [esi + 0x44]
cmp edi, ebx
je 0x10167746
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x1016773a
push eax
call ebp
test eax, eax
jg 0x1016773a
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x44], ebx
mov eax, dword [esi + 0x48]
cmp eax, ebx
je 0x10167759
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x48], ebx
mov edi, dword [esi + 0x4c]
cmp edi, ebx
je 0x1016778b
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x1016777f
push eax
call ebp
test eax, eax
jg 0x1016777f
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x4c], ebx
mov edi, dword [esi + 0x50]
cmp edi, ebx
je 0x101677bd
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101677b1
push eax
call ebp
test eax, eax
jg 0x101677b1
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x50], ebx
mov edi, dword [esi + 0x54]
cmp edi, ebx
je 0x101677ef
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101677e3
push eax
call ebp
test eax, eax
jg 0x101677e3
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x54], ebx
mov eax, dword [esi + 0x58]
cmp eax, ebx
je 0x10167802
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x58], ebx
mov eax, dword [esi + 0x5c]
cmp eax, ebx
je 0x10167815
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x5c], ebx
mov eax, dword [esi + 0x60]
cmp eax, ebx
je 0x10167828
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x60], ebx
mov eax, dword [esi + 0x64]
cmp eax, ebx
je 0x1016783b
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x64], ebx
mov eax, dword [esi + 0x68]
cmp eax, ebx
je 0x1016784e
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x68], ebx
mov eax, dword [esi + 0x6c]
cmp eax, ebx
je 0x10167861
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x6c], ebx
mov eax, dword [esi + 0x70]
cmp eax, ebx
je 0x10167874
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x70], ebx
mov eax, dword [esi + 0x74]
cmp eax, ebx
je 0x10167887
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x74], ebx
mov eax, dword [esi + 0x78]
cmp eax, ebx
je 0x1016789a
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x78], ebx
mov eax, dword [esi + 0x7c]
cmp eax, ebx
je 0x101678ad
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x7c], ebx
mov eax, dword [esi + 0x84]
cmp eax, ebx
je 0x101678c6
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x84], ebx
mov eax, dword [esi + 0x88]
cmp eax, ebx
je 0x101678df
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x88], ebx
mov eax, dword [esi + 0x8c]
cmp eax, ebx
je 0x101678f8
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x8c], ebx
mov edi, dword [esi + 0x90]
cmp edi, ebx
je 0x10167930
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167921
push eax
call ebp
test eax, eax
jg 0x10167921
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x90], ebx
mov edi, dword [esi + 0x94]
cmp edi, ebx
je 0x10167968
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167959
push eax
call ebp
test eax, eax
jg 0x10167959
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x94], ebx
mov edi, dword [esi + 0x98]
cmp edi, ebx
je 0x101679a0
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167991
push eax
call ebp
test eax, eax
jg 0x10167991
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x98], ebx
mov edi, dword [esi + 0x9c]
cmp edi, ebx
je 0x101679d8
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x101679c9
push eax
call ebp
test eax, eax
jg 0x101679c9
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x9c], ebx
mov eax, dword [esi + 0xa0]
cmp eax, ebx
je 0x101679f1
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xa0], ebx
mov eax, dword [esi + 0xa4]
cmp eax, ebx
je 0x10167a0a
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xa4], ebx
mov eax, dword [esi + 0xa8]
cmp eax, ebx
je 0x10167a23
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xa8], ebx
mov edi, dword [esi + 0xb0]
cmp edi, ebx
je 0x10167a5b
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167a4c
push eax
call ebp
test eax, eax
jg 0x10167a4c
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xb0], ebx
mov eax, dword [esi + 0xb4]
cmp eax, ebx
je 0x10167a74
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xb4], ebx
mov edi, dword [esi + 0xb8]
cmp edi, ebx
je 0x10167aac
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167a9d
push eax
call ebp
test eax, eax
jg 0x10167a9d
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xb8], ebx
mov edi, dword [esi + 0xbc]
cmp edi, ebx
je 0x10167ae4
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167ad5
push eax
call ebp
test eax, eax
jg 0x10167ad5
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xbc], ebx
mov eax, dword [esi + 0xc0]
cmp eax, ebx
je 0x10167afd
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xc0], ebx
mov edi, dword [esi + 0xc4]
cmp edi, ebx
je 0x10167b35
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167b26
push eax
call ebp
test eax, eax
jg 0x10167b26
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xc4], ebx
mov eax, dword [esi + 0xc8]
cmp eax, ebx
je 0x10167b4e
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xc8], ebx
mov edi, dword [esi + 0xcc]
cmp edi, ebx
je 0x10167b86
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167b77
push eax
call ebp
test eax, eax
jg 0x10167b77
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xcc], ebx
mov eax, dword [esi + 0xd0]
cmp eax, ebx
je 0x10167b9f
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xd0], ebx
mov eax, dword [esi + 0xd8]
cmp eax, ebx
je 0x10167bb8
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xd8], ebx
mov eax, dword [esi + 0xdc]
cmp eax, ebx
je 0x10167bd1
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xdc], ebx
mov eax, dword [esi + 0xe0]
cmp eax, ebx
je 0x10167bea
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xe0], ebx
mov eax, dword [esi + 0xe4]
cmp eax, ebx
je 0x10167c03
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xe4], ebx
mov eax, dword [esi + 0xe8]
cmp eax, ebx
je 0x10167c1c
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xe8], ebx
mov eax, dword [esi + 0xec]
cmp eax, ebx
je 0x10167c35
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xec], ebx
mov eax, dword [esi + 0xf0]
cmp eax, ebx
je 0x10167c4e
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xf0], ebx
mov eax, dword [esi + 0xf4]
cmp eax, ebx
je 0x10167c67
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xf4], ebx
mov eax, dword [esi + 0xf8]
cmp eax, ebx
je 0x10167c80
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xf8], ebx
mov edi, dword [esi + 0xfc]
cmp edi, ebx
je 0x10167cb8
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167ca9
push eax
call ebp
test eax, eax
jg 0x10167ca9
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0xfc], ebx
mov edi, dword [esi + 0x100]
cmp edi, ebx
je 0x10167cf0
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167ce1
push eax
call ebp
test eax, eax
jg 0x10167ce1
mov edx, dword [edi]
sub edx, 0xc
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x100], ebx
mov edi, dword [esi + 0x104]
cmp edi, ebx
je 0x10167d28
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167d19
push eax
call ebp
test eax, eax
jg 0x10167d19
mov eax, dword [edi]
sub eax, 0xc
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x104], ebx
mov edi, dword [esi + 0x108]
cmp edi, ebx
je 0x10167d60
mov eax, dword [edi]
add eax, 0xfffffff4
cmp dword [eax], 0xfffffffe
je 0x10167d51
push eax
call ebp
test eax, eax
jg 0x10167d51
mov ecx, dword [edi]
sub ecx, 0xc
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x108], ebx
mov eax, dword [esi + 0x10c]
cmp eax, ebx
je 0x10167d79
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x10c], ebx
pop edi
mov dword [esi + 0x1c], sym.OOXMLDocument.dll_const_OOXML::VML::AG_CAllCoreAttributes::vftable
mov dword [esi + 0x18], sym.OOXMLDocument.dll_const_OOXML::VML::AG_CAllShapeAttributes::vftable
mov ecx, esi
pop esi
pop ebp
pop ebx
jmp sym.OOXMLDocument.dll_public_virtual:_void___thiscall_CSDExtObject::destructor_void_