Function at 0x10002b70
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x34
mov edi, dword [ebp + 0x10]
test byte [0x1000a03c], 8
jne 0x10002d78
mov dword [esp], 0x170
call dword [sym.imp.ucrtbase.dll_malloc]
test eax, eax
je 0x10002e6d
mov dword [eax], sym._msdsql_QueryInterface_12
mov esi, 0x1000c9c4
lea ebx, [eax + 0x20]
mov dword [eax + 4], 0x1000c834
mov dword [eax + 8], 0x1000c820
mov dword [eax + 0xc], 0x1000c810
mov dword [eax + 0x10], 0x1000c800
mov dword [eax + 0x14], 1
mov dword [ebp - 0x10], eax
mov dword [ebp + 0x10], edi
jmp 0x10002c07
cmp edi, 0x40
jne 0x10002d20
movzx eax, word [esi + 8]
mov edx, 4
mov word [ebx + 8], dx
mov word [ebx], ax
add esi, 0x14
add ebx, 0x18
cmp esi, 0x1000cadc
je 0x10002c4a
mov edi, dword [esi]
mov word [ebx - 8], di
mov dword [esp], ebx
call dword [sym.imp.oleaut32.dll_VariantInit]
sub esp, 4
cmp edi, 0xba
je 0x10002d08
cmp edi, 0xf8
jne 0x10002be0
movzx eax, word [esi + 8]
add esi, 0x14
mov dword [ebx + 8], 0xffffffff
add ebx, 0x18
mov word [ebx - 0x18], ax
cmp esi, 0x1000cadc
jne 0x10002c07
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x10]
mov dword [esp + 4], 0
mov dword [esp], 1
lea eax, [edx + 0x168]
mov dword [esp + 8], eax
call sym._SQLAllocHandle_12
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x17c
mov dword [esp + 4], 0xc8
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x168]
mov dword [esp], eax
call sym._SQLSetEnvAttr_16
mov edx, dword [ebp - 0x10]
sub esp, 0x10
cmp ax, 0xffff
je 0x10002d30
lea eax, [edx + 0x16c]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x168]
mov dword [ebp - 0x10], edx
mov dword [esp + 4], eax
mov dword [esp], 2
call sym._SQLAllocHandle_12
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x14]
sub esp, 0xc
mov eax, dword [edx]
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 4], edi
call dword [eax]
mov edx, dword [ebp - 0x10]
mov ebx, eax
sub esp, 0xc
mov eax, dword [edx]
mov dword [esp], edx
call dword [eax + 8]
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
movzx eax, word [esi + 8]
mov word [ebx], ax
call dword [sym.imp.kernel32.dll_GetUserDefaultLCID]
mov dword [ebx + 8], eax
jmp 0x10002bf9
xor eax, eax
mov word [ebx], ax
jmp 0x10002bf9
test byte [0x1000a03c], 4
jne 0x10002e3a
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0xc8
mov eax, dword [edx + 0x168]
mov dword [ebp - 0x10], edx
mov dword [esp], eax
call sym._SQLSetEnvAttr_16
mov edx, dword [ebp - 0x10]
sub esp, 0x10
jmp 0x10002caa
test edi, edi
je 0x10002e66
mov eax, edi
shr eax, 0x10
je 0x10002e28
movzx eax, byte [edi + 0xf]
mov dword [esp + 0x2c], eax
movzx eax, byte [edi + 0xe]
mov dword [esp + 0x28], eax
movzx eax, byte [edi + 0xd]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 0xc]
mov dword [esp + 0x20], eax
movzx eax, byte [edi + 0xb]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 0xa]
mov dword [esp + 0x18], eax
movzx eax, byte [edi + 9]
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 8]
mov dword [esp + 0x10], eax
movzx eax, word [edi + 6]
mov dword [esp + 0xc], eax
movzx eax, word [edi + 4]
mov dword [esp + 8], eax
mov eax, dword [edi]
mov dword [esp], 0x1000c2e8
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], str.__p__s__p__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.msdasql_CreateInstance
mov dword [esp + 4], 0x1000a03c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10002b89
mov dword [esp + 4], edi
mov dword [esp], 0x1000c2d8
call sym._wine_dbg_sprintf
jmp 0x10002ded
mov dword [esp + 0xc], str.Falling_back_to_SQL_OV_ODBC3_n
mov dword [esp + 8], str.create_msdasql_provider
mov dword [esp + 4], 0x1000a03c
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
mov edx, dword [ebp - 0x10]
jmp 0x10002d3d
mov eax, 0x1000c08c
jmp 0x10002ded
mov ebx, 0x8007000e
jmp 0x10002cf8