Function at 0x1006be10
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
push 0
mov esi, ecx
mov dword [ebp - 0xc], 0
push 0xfffffffffffffffb
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 1
push eax
mov eax, dword [esi + 0x1a8]
push 6
mov dword [ebp - 0x14], 0
push dword [eax + 0xc]
call dword [sym.imp.ODBC32.dll_SQLGetStmtAttrW]
push dword [ebp - 0xc]
mov ecx, dword [esi + 0x1a8]
push 6
call fcn.10031bf0
push 0
push 0xfffffffffffffffb
lea eax, [ebp - 0x10]
push eax
mov eax, dword [esi + 0x1a8]
push 7
push dword [eax + 0xc]
call dword [sym.imp.ODBC32.dll_SQLGetStmtAttrW]
push dword [ebp - 0x10]
mov ecx, dword [esi + 0x1a8]
push 7
call fcn.10031bf0
cmp dword [esi + 0x1bc], 0xffffffff
mov ebx, 0xfffe
mov ecx, 0x2000
mov dword [ebp - 4], 1
mov edx, 0x800
jne 0x1006c04c
xor eax, eax
mov dword [esi + 0x1b0], eax
mov dword [esi + 0x1b4], eax
mov dword [esi + 0x1b8], eax
mov edi, dword [esi + 0x1a4]
test word [edi + 0x28e], dx
je 0x1006bed4
or dword [esi + 0x1b0], 0x2000000
test word [edi + 0x306], cx
je 0x1006bee7
or dword [esi + 0x1b0], 0x40000000
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x14]
cmp word [eax + 0x20], 0xffff
je 0x1006bf4b
test byte [edi + 0x290], 0x10
je 0x1006bf4b
mov ecx, dword [edi + 0x250]
test ecx, 0x40000
je 0x1006bf4b
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x2a0]
test al, 1
je 0x1006bf27
test cl, 4
jne 0x1006bf27
or dword [esi + 0x1b0], 0x1000000
test al, 2
je 0x1006bf3e
test byte [edi + 0x250], 8
jne 0x1006bf3e
or dword [esi + 0x1b0], 0x1000000
test al, 4
je 0x1006bf55
test byte [edi + 0x250], 0x10
jne 0x1006bf55
or dword [esi + 0x1b0], 0x1000000
test byte [edi + 0x254], 0x40
je 0x1006bf68
or dword [esi + 0x1b0], 0x10000000
mov edx, dword [edx + 8]
xor ecx, ecx
lea ecx, [ecx]
mov eax, dword [ecx + 0x10015db0]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 4], 1
je 0x1006bf8e
cmp dword [edx + eax*8], 0
jne 0x1006bf8e
cmp word [edx + eax*8 + 0x20], 0xffff
je 0x1006bf98
add ecx, 4
cmp ecx, 8
jb 0x1006bf70
jmp 0x1006bfa2
or dword [esi + 0x1b0], 0x20000000
mov eax, dword [esi + 0x1c]
xor ecx, ecx
mov edx, dword [eax + 8]
lea ebx, [ebx]
mov eax, dword [ecx + 0x10015da0]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 4], 1
je 0x1006bfce
cmp dword [edx + eax*8], 0
jne 0x1006bfce
cmp word [edx + eax*8 + 0x20], 0xffff
je 0x1006bfd8
add ecx, 4
cmp ecx, 0x10
jb 0x1006bfb0
jmp 0x1006bfe2
or dword [esi + 0x1b0], 0x200000
push 0
push 4
lea eax, [ebp - 0x18]
push eax
push 0x6c
push dword [edi + 0xc]
call dword [sym.imp.ODBC32.dll_SQLGetConnectAttrW]
test bx, ax
jne 0x1006c011
mov eax, dword [ebp - 0x18]
cmp eax, 1
je 0x1006c011
cmp eax, 2
je 0x1006c011
or dword [esi + 0x1b0], 0x8000000
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x14]
cmp dword [eax + 0xa0], 0
jne 0x1006c031
mov eax, dword [eax + 0xc0]
and eax, 0xf
or dword [esi + 0x1b0], eax
jmp 0x1006c04c
mov eax, dword [esi + 0x1b0]
test eax, 0x20000000
je 0x1006c043
or eax, 0xf
jmp 0x1006c046
or eax, 8
mov dword [esi + 0x1b0], eax
mov eax, dword [esi + 0x1b4]
mov edi, dword [esi + 0x1bc]
mov ebx, dword [esi + 0x1b0]
inc edi
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x1b8]
mov dword [ebp - 0x1c], eax
mov eax, 1
mov dword [ebp - 0x24], ebx
mov dword [ebp - 8], eax
cmp edi, 0x11
jl 0x1006c088
mov edi, dword [esi + 0x1c0]
or eax, 0xffffffff
mov dword [ebp - 8], eax
dec edi
test eax, eax
jle 0x1006c093
cmp edi, 0x11
jl 0x1006c0a1
test eax, eax
jns 0x1006c2a3
test edi, edi
js 0x1006c2a3
lea eax, [edi + edi*2]
mov edx, dword [eax*4 + 0x1007b888]
mov eax, dword [esi + 0x1b0]
and eax, edx
test al, 0xf
je 0x1006c269
test dl, 0x10
je 0x1006c0d3
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x14
jmp 0x1006c11c
test dl, 0x20
je 0x1006c0eb
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x18
jmp 0x1006c11c
test dl, 0x40
je 0x1006c103
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x15
jmp 0x1006c11c
test dl, dl
jns 0x1006c269
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x16
and ecx, 1
test ecx, ecx
je 0x1006c269
test dl, 8
je 0x1006c131
shr eax, 0x1c
jmp 0x1006c151
test dl, 1
je 0x1006c13b
shr eax, 0x1e
jmp 0x1006c151
test dl, 2
je 0x1006c145
shr eax, 0x1f
jmp 0x1006c154
test dl, 4
je 0x1006c269
shr eax, 0x1d
and eax, 1
test eax, eax
je 0x1006c269
test ebx, 0x1000000
je 0x1006c170
test edx, 0x100
je 0x1006c269
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push edi
call fcn.1006cf10
movzx eax, word [esi + 0x1ba]
mov bx, word [ebp - 0x1a]
cmp bx, ax
jb 0x1006c1fe
cmp dword [ebp - 4], 1
je 0x1006c1fe
cmp bx, ax
ja 0x1006c266
mov ecx, dword [ebp - 0x20]
cmp cx, word [esi + 0x1b4]
jbe 0x1006c261
movzx eax, word [ebp - 0x1c]
mov word [esi + 0x1b8], ax
movzx eax, word [ebp - 0x1e]
mov word [esi + 0x1b4], cx
xor ecx, ecx
mov word [esi + 0x1ba], bx
mov word [esi + 0x1b6], ax
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
and dword [eax + ecx + 4], 0xfffffff7
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 8]
mov eax, dword [edx + ecx + 4]
test al, 4
je 0x1006c1f1
or eax, 8
mov dword [edx + ecx + 4], eax
add ecx, 0x28
cmp ecx, 0x500
jb 0x1006c1d1
jmp 0x1006c25b
movzx eax, word [ebp - 0x1c]
xor ecx, ecx
mov word [esi + 0x1b8], ax
movzx eax, word [ebp - 0x20]
mov word [esi + 0x1b4], ax
movzx eax, word [ebp - 0x1e]
mov dword [ebp - 4], 0
mov word [esi + 0x1ba], bx
mov word [esi + 0x1b6], ax
nop
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
and dword [eax + ecx + 4], 0xfffffff7
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 8]
mov eax, dword [edx + ecx + 4]
test al, 4
je 0x1006c250
or eax, 8
mov dword [edx + ecx + 4], eax
add ecx, 0x28
cmp ecx, 0x500
jb 0x1006c230
mov dword [esi + 0x1bc], edi
test bx, bx
je 0x1006c28e
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
test eax, eax
jle 0x1006c287
cmp dword [ebp - 4], 0
je 0x1006c287
cmp edi, 0x10
jne 0x1006c287
mov edi, dword [esi + 0x1c0]
or eax, 0xffffffff
mov dword [ebp - 8], eax
add edi, eax
jmp 0x1006c088
cmp dword [esi + 0x1c0], 0xffffffff
jne 0x1006c2a3
mov eax, dword [esi + 0x1bc]
mov dword [esi + 0x1c0], eax
cmp word [esi + 0x1ba], 0
ja 0x1006c3ad
test edi, edi
js 0x1006c3ad
and dword [esi + 0x1b0], 0xffbfffff
xor ecx, ecx
mov edi, dword [esi + 0x1b0]
xor edx, edx
lea ecx, [ecx]
test ecx, ecx
je 0x1006c2de
cmp ecx, 7
je 0x1006c2de
cmp ecx, 0x16
jne 0x1006c2eb
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
test byte [eax + edx + 4], 2
jne 0x1006c2ff
add edx, 0x28
inc ecx
cmp edx, 0x500
jb 0x1006c2d0
mov edi, dword [esi + 0x1b0]
jmp 0x1006c30b
or edi, 0x400000
mov dword [esi + 0x1b0], edi
mov ebx, dword [ebp + 8]
test edi, 0x8000000
je 0x1006c322
or dword [ebx], 0x800
mov edi, dword [esi + 0x1b0]
test edi, 0x2000000
je 0x1006c32d
or dword [ebx], 0x40
mov ecx, dword [esi + 0x1bc]
cmp ecx, 0x11
jae 0x1006c39d
mov eax, dword [esi + 0x1a4]
test dword [eax + 0x250], 0x20000000
je 0x1006c373
mov edx, dword [esi + 0x1b0]
test edx, 0x40000000
je 0x1006c373
lea eax, [ecx + ecx*2]
test byte [eax*4 + 0x1007b888], 0x10
je 0x1006c36d
test edx, 0x600000
je 0x1006c373
or dword [ebx], 0x10000000
cmp word [esi + 0x1b6], 0
jbe 0x1006c387
mov ebx, 0x40eda
mov dword [ebp - 0x14], ebx
jmp 0x1006c38a
mov ebx, dword [ebp - 0x14]
push dword [ebp + 0xc]
mov ecx, esi
call fcn.1006c400
test eax, eax
je 0x1006c3a2
jmp 0x1006be84
mov ebx, 0x8007000e
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
xor ebx, ebx
xor edi, edi
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
test byte [eax + ebx + 4], 8
je 0x1006c3ce
push dword [edi + 0x10015dd0]
mov ecx, esi
push 0
call dword [sym.imp.MSDATL3.dll_public:_void___thiscall_CUtlProps2::SetPropertyInError_unsigned_long_int__unsigned_long_int_]
add edi, 4
add ebx, 0x28
cmp edi, 0x80
jb 0x1006c3b1
push ecx
push 0x905
push dword [ebp + 0xc]
push 0x80040e21
call fcn.10029240
pop edi
pop esi
mov eax, 0x80040e21
pop ebx
mov esp, ebp
pop ebp
ret 8