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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6869c3
push eax
mov dword fs:[0], esp
sub esp, 0x84
push ebx
push ebp
mov ebp, dword [esp + 0x9c]
push esi
push edi
cmp ebp, 0xffffffff
mov edi, ecx
je case.0x51669e.25
push 0x30
call fcn.004e8af0
test eax, eax
je case.0x51669e.25
lea esi, [edi + 0x3900]
mov ecx, esi
call fcn.0051af50
test eax, eax
je case.0x51669e.25
lea ebx, [edi + 0x2f04]
mov ecx, esi
push ebx
push ebp
call fcn.0051d9f0
xor esi, esi
cmp eax, esi
jne 0x5166af
add ebp, 0xffffffe7
cmp ebp, 0x65
ja case.0x51669e.27
xor ecx, ecx
mov cl, byte [ebp + 0x516968]
jmp dword [ecx*4 + 0x51695c]
mov eax, 1
jmp case.0x51669e.27
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 8]
cmp edx, 1
jne case.0x51669e.27
mov edx, dword [ecx + 4]
push 1
lea ecx, [edi + 0x2db8]
mov ebp, dword [edx]
push ebp
call fcn.005d75c0
test eax, eax
je 0x5166ed
push ebp
lea ecx, [edi + 0x2064]
call fcn.00570460
test eax, eax
je case.0x51669e.25
mov dword [esp + 0x3c], vtable.CArray_struct_SEARCHPARAM__struct_SEARCHPARAM__.0
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
lea ecx, [esp + 0x50]
mov dword [esp + 0x9c], esi
call fcn.004a2080
lea ecx, [esp + 0x78]
mov byte [esp + 0x9c], 1
call fcn.004858d0
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 2
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], esi
call fcn.00482e50
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x58]
call fcn.00482ca0
mov dword [esp + 0x9c], 3
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], vtable.CMap_enum_TDC_ATTRIBUTE__enum_TDC_ATTRIBUTE__class_CString__class_CString__.0
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], 0x11
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0xa
lea eax, [esp + 0x3c]
push ebx
push eax
lea ecx, [edi + 0x3900]
mov byte [esp + 0xa4], 4
call fcn.0051bad0
lea ecx, [esp + 0x14]
lea edx, [esp + 0x3c]
push ecx
push esi
push edx
push ebp
lea ecx, [edi + 0x2d70]
call fcn.005c5390
push ebp
lea ecx, [edi + 0x2064]
mov ebx, eax
call fcn.00570460
neg eax
sbb eax, eax
neg eax
cmp ebx, esi
je 0x5167eb
cmp eax, esi
je 0x5167ef
mov dword [esp + 0x10], esi
jmp 0x516820
cmp eax, esi
je 0x5167e5
mov ebx, 1
mov ecx, edi
mov dword [esp + 0x10], ebx
call fcn.00515140
test eax, eax
je 0x516820
cmp dword [esp + 0xa4], 0xc
jne 0x51681c
mov ecx, edi
call fcn.004e64f0
test eax, eax
mov dword [esp + 0x10], esi
jne 0x516820
mov dword [esp + 0x10], ebx
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CMap_enum_TDC_ATTRIBUTE__enum_TDC_ATTRIBUTE__class_CString__class_CString__.0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov byte [esp + 0x9c], 5
cmp eax, esi
je 0x51686f
mov ecx, dword [esp + 0x24]
xor ebx, ebx
cmp ecx, esi
jbe 0x51686f
mov edi, dword [eax + ebx*4]
cmp edi, esi
je 0x516866
lea ecx, [edi + 0xc]
push 1
push ecx
call sub.MFC42u.DLL_DestructElements
mov edi, dword [edi]
cmp edi, esi
jne 0x516851
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
inc ebx
cmp ebx, ecx
jb 0x51684a
push eax
call sub.MFC42u.DLL_operatordelete
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call sub.MFC42u.DLL_CPlex::FreeDataChain
mov ebp, vtable.CObject.0
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x78]
mov dword [esp + 0x9c], 7
call fcn.00485af0
lea edx, [esp + 0x50]
mov dword [esp + 0x50], vtable.CArray_struct_TDCCUSTOMATTRIBUTEDEFINITION__struct_TDCCUSTOMATTRIBUTEDEFINITION__.0
mov dword [esp + 0x38], edx
mov edi, dword [esp + 0x54]
mov byte [esp + 0x9c], 8
cmp edi, esi
je 0x5168f3
mov eax, dword [esp + 0x58]
cmp eax, esi
je 0x5168ea
lea ebx, [eax]
push esi
mov ecx, edi
call fcn.004830d0
add edi, 0x70
dec ebx
jne 0x5168d8
mov edi, dword [esp + 0x54]
push edi
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov dword [esp + 0x50], ebp
mov dword [esp + 0x3c], vtable.CArray_struct_SEARCHPARAM__struct_SEARCHPARAM__.0
mov edi, dword [esp + 0x40]
mov dword [esp + 0x9c], 9
cmp edi, esi
je 0x516937
mov eax, dword [esp + 0x44]
cmp eax, esi
je 0x51692e
lea ebx, [eax]
push esi
mov ecx, edi
call fcn.004830f0
add edi, 0x30
dec ebx
jne 0x51691c
mov edi, dword [esp + 0x40]
push edi
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x10]
jmp case.0x51669e.27
xor eax, eax
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x90
ret 8