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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov ebp, ecx
push str.CGetRowsCore
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], vtable.CDAOContext.0
mov dword [esp + 0x48], ebp
call fcn.10009750
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp + 0x40], vtable.CDAOVARGContext.0
mov word [esp + 0x50], bx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x1c], ebx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 4]
and eax, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebx
mov eax, dword [edx + 8]
cmp eax, ebx
mov dword [esp + 0x10], ecx
je 0x10031e2b
cmp dword [eax + 0x10], 0x25
jge 0x10031e2b
cmp dword [ecx + 0x2a0], 0xffffffff
jne 0x10031e52
push 1
push ebx
push eax
push 0xffff8abf
call fcn.1005a550
cmp eax, ebx
je 0x10032351
movzx eax, ax
or eax, 0x800a0000
mov dword [esp + 0x48], eax
jmp 0x10032355
push 0x3c
mov ecx, ebp
call fcn.1002b5b0
cmp eax, ebx
mov dword [esp + 0x48], eax
jl 0x10032355
cmp dword [esp + 0x7c], ebx
jle 0x10032347
mov edi, dword [esp + 0x80]
cmp edi, ebx
je 0x10032347
cmp dword [esi], ebx
jbe 0x10032347
cmp dword [esp + 0x78], ebx
jne 0x10031ec0
test byte [esi + 4], 0x10
jne 0x10031ec0
mov eax, dword [ebp]
mov edx, dword [eax + 0x174]
mov ecx, ebp
call edx
test eax, eax
je 0x10031ec0
lea ecx, [esp + 0x40]
mov dword [esi + 0x14], ebx
call fcn.100097c0
mov eax, 0x41001
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov eax, dword [esi + 4]
test al, 1
je 0x10031ed1
mov edi, 0x80004001
jmp 0x10031fe4
test al, 8
je 0x10031edf
mov dword [esp + 0x34], 1
jmp 0x10031ee5
mov eax, dword [esi]
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x2c]
shl esi, 5
push esi
push ecx
call fcn.10069dc0
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x10031fcc
push esi
mov edx, eax
push edi
push edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x94]
add esp, 0xc
test byte [eax + 4], 4
je 0x10031f60
lea ecx, [esp + 0x54]
call fcn.10009ef0
mov esi, dword [eax + 0x10]
mov edx, dword [ebp]
add eax, 0x10
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, dword [edx + 0x130]
push ebp
call ecx
lea ecx, [esp + 0x54]
mov edi, eax
call fcn.10014290
cmp edi, ebx
jl 0x10031fd1
mov edx, dword [esp + 0x88]
test byte [edx + 4], 2
je 0x10032048
cmp dword [esp + 0x8c], ebx
je 0x10031f96
mov eax, dword [ebp]
mov edx, dword [eax + 0xc8]
lea ecx, [esp + 0x28]
push ecx
push ebp
call edx
mov edi, eax
cmp edi, ebx
jl 0x10031fd1
jmp 0x10032048
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push esi
call fcn.10051cf0
test eax, eax
je 0x10031fb0
mov edi, 0x80004005
jmp 0x10031fd1
push ebx
push esi
lea ecx, [esp + 0x24]
push ecx
call fcn.10052b60
test eax, eax
je 0x10032009
mov edx, dword [esp + 0x14]
push edx
mov ecx, ebp
call fcn.10015d10
mov edi, 0x8007000e
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x10031fe4
mov edx, dword [esp + 0x2c]
push eax
push edx
call fcn.1006a020
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x10031ff4
push 1
push eax
call fcn.10052e10
lea ecx, [esp + 0x40]
call fcn.100097c0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push eax
push ecx
push edx
call fcn.10051c00
test eax, eax
je 0x10032034
mov eax, dword [esp + 0x14]
push eax
mov ecx, ebp
call fcn.10015d10
mov edi, 0x80004005
jmp 0x10031fd1
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.10015d10
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x300]
mov eax, dword [ebp]
mov eax, dword [eax + 0x178]
push edx
mov ecx, ebp
call eax
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x80], ebx
jle 0x10032299
mov esi, dword [esp + 0x18]
add esi, 0x14
lea esp, [esp]
mov ecx, dword [esi + 4]
cmp ecx, 0x12
jae 0x100320cd
cmp ecx, 0xf
jne 0x100320a5
mov ecx, dword [ecx*4 + 0x10071e38]
test dword [esi], ecx
je 0x100320cd
add dword [esp + 0x80], 4
jmp 0x10032216
mov edi, dword [esi - 0x14]
cmp edi, ebx
je 0x100320b6
cmp edi, 1
je 0x100320b6
cmp edi, 2
jne 0x100320cd
mov eax, dword [esi]
mov edx, eax
and edx, 4
je 0x100320d7
cmp dword [esi - 0xc], ebx
je 0x100320cd
cmp dword [ecx*4 + 0x10071d60], ebx
je 0x100320e0
mov edi, 0x80041001
jmp 0x10031fd1
test dword [ecx*4 + 0x10071e38], eax
je 0x100320cd
cmp edx, ebx
jne 0x10032133
test al, 2
je 0x100320f8
mov eax, 0x10
cmp dword [esi - 8], eax
jb 0x100322b6
jmp 0x1003212c
cmp dword [ecx*4 + 0x10071d18], ebx
je 0x1003210d
mov edx, dword [esi - 8]
add dword [esp + 0x80], edx
jmp 0x10032133
mov eax, dword [esi - 8]
cmp eax, ebx
je 0x10032124
movsx edx, word [ecx*2 + 0x10071c68]
cmp eax, edx
jb 0x100322b6
movsx eax, word [ecx*2 + 0x10071c68]
add dword [esp + 0x80], eax
cmp edi, ebx
jne 0x1003216f
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x300]
mov ecx, dword [eax + 0x3c]
cmp ecx, ebx
movzx edx, word [esi - 0x10]
jne 0x1003215a
push edx
push eax
call fcn.100559d0
mov edi, eax
jmp 0x100321fd
cmp dx, word [eax + 0x2c]
jge 0x100322c0
movsx eax, dx
mov edi, dword [ecx + eax*4]
jmp 0x100321fd
cmp edi, 2
mov dword [esp + 0x20], ebx
jne 0x10032188
mov eax, dword [esi - 0x10]
push eax
mov dword [esp + 0x40], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x100321c3
cmp edi, 1
jne 0x100320cd
mov edx, dword [esi - 0x10]
lea ecx, [esp + 0x20]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [esi - 0x10]
push eax
call fcn.10014000
mov edi, eax
cmp edi, ebx
jl 0x10031fd1
mov eax, dword [esp + 0x20]
push eax
mov dword [esp + 0x40], eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x300]
cmp dword [eax + 0x48], ebx
jne 0x100321e3
lea edx, [esp + 0x38]
push edx
push eax
call fcn.10056e60
jmp 0x100321f0
push ebx
push ebx
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.100569a0
mov edx, dword [esp + 0x20]
push edx
mov edi, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp edi, ebx
je 0x100322c0
mov eax, dword [ebp]
mov edx, dword [eax + 0x17c]
push edi
mov ecx, ebp
call edx
mov dword [esi - 0x10], eax
cmp dword [esi - 8], ebx
jne 0x10032227
test byte [esi], 4
je 0x10032227
mov dword [esi - 8], 0xffffffff
cmp dword [esp + 0x8c], ebx
je 0x10032251
cmp dword [esp + 0x24], ebx
je 0x10032281
mov eax, dword [ebp]
mov edx, dword [esi - 0x10]
mov eax, dword [eax + 0x18c]
lea ecx, [esi - 0x14]
push ecx
push edx
mov ecx, ebp
call eax
mov dword [esp + 0x24], eax
jmp 0x10032281
cmp dword [esi], 2
mov dword [esi - 0x14], ebx
je 0x10032281
mov ecx, dword [esi + 4]
cmp dword [ecx*4 + 0x10071da8], ebx
je 0x10032281
mov edx, dword [ebp]
mov eax, dword [esi - 0x10]
mov edx, dword [edx + 0x180]
push eax
mov ecx, ebp
call edx
test eax, eax
je 0x10032281
mov dword [esi - 0x14], 1
mov eax, dword [esp + 0x30]
add eax, 1
add esi, 0x20
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x30], eax
jl 0x10032080
mov ecx, dword [esp + 0x88]
test byte [ecx + 4], 1
mov eax, dword [esp + 0x84]
jne 0x100322ca
cmp dword [esp + 0x80], eax
jbe 0x100322ca
mov edi, 0x80041000
jmp 0x10031fd1
mov edi, 0x80041002
jmp 0x10031fd1
mov esi, dword [ebp + 0x13c]
mov edx, dword [ebp]
push esi
mov esi, dword [esp + 0x28]
mov edx, dword [edx + 0x190]
push esi
mov esi, dword [esp + 0x84]
push esi
push eax
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x28]
push eax
push ecx
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, ebp
call edx
cmp dword [esp + 0x8c], ebx
mov edi, eax
je 0x10031fd1
mov eax, dword [esp + 0x88]
test byte [eax + 4], 2
je 0x10031fd1
mov ecx, dword [ebp]
mov eax, dword [ecx + 0xd0]
lea edx, [esp + 0x28]
push edx
push ebp
call eax
mov ecx, dword [esp + 0x28]
push ecx
mov edi, eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x10031fd1
mov edi, 0x80070057
jmp 0x10031fe4
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.100097c0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18