Function at 0x1006b950
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.10031760
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.10031760
cmp dword [esi + 0x1bc], 0xffffffff
mov ebx, 0xfffe
mov ecx, 0x2000
mov dword [ebp - 4], 1
mov edx, 0x800
jne 0x1006bb8c
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 0x1006ba14
or dword [esi + 0x1b0], 0x2000000
test word [edi + 0x306], cx
je 0x1006ba27
or dword [esi + 0x1b0], 0x40000000
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x14]
cmp word [eax + 0x20], 0xffff
je 0x1006ba8b
test byte [edi + 0x290], 0x10
je 0x1006ba8b
mov ecx, dword [edi + 0x250]
test ecx, 0x40000
je 0x1006ba8b
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x2a0]
test al, 1
je 0x1006ba67
test cl, 4
jne 0x1006ba67
or dword [esi + 0x1b0], 0x1000000
test al, 2
je 0x1006ba7e
test byte [edi + 0x250], 8
jne 0x1006ba7e
or dword [esi + 0x1b0], 0x1000000
test al, 4
je 0x1006ba95
test byte [edi + 0x250], 0x10
jne 0x1006ba95
or dword [esi + 0x1b0], 0x1000000
test byte [edi + 0x254], 0x40
je 0x1006baa8
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 0x1006bace
cmp dword [edx + eax*8], 0
jne 0x1006bace
cmp word [edx + eax*8 + 0x20], 0xffff
je 0x1006bad8
add ecx, 4
cmp ecx, 8
jb 0x1006bab0
jmp 0x1006bae2
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 0x1006bb0e
cmp dword [edx + eax*8], 0
jne 0x1006bb0e
cmp word [edx + eax*8 + 0x20], 0xffff
je 0x1006bb18
add ecx, 4
cmp ecx, 0x10
jb 0x1006baf0
jmp 0x1006bb22
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 0x1006bb51
mov eax, dword [ebp - 0x18]
cmp eax, 1
je 0x1006bb51
cmp eax, 2
je 0x1006bb51
or dword [esi + 0x1b0], 0x8000000
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x14]
cmp dword [eax + 0xa0], 0
jne 0x1006bb71
mov eax, dword [eax + 0xc0]
and eax, 0xf
or dword [esi + 0x1b0], eax
jmp 0x1006bb8c
mov eax, dword [esi + 0x1b0]
test eax, 0x20000000
je 0x1006bb83
or eax, 0xf
jmp 0x1006bb86
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 0x1006bbc8
mov edi, dword [esi + 0x1c0]
or eax, 0xffffffff
mov dword [ebp - 8], eax
dec edi
test eax, eax
jle 0x1006bbd3
cmp edi, 0x11
jl 0x1006bbe1
test eax, eax
jns 0x1006bde3
test edi, edi
js 0x1006bde3
lea eax, [edi + edi*2]
mov edx, dword [eax*4 + 0x1007b888]
mov eax, dword [esi + 0x1b0]
and eax, edx
test al, 0xf
je 0x1006bda9
test dl, 0x10
je 0x1006bc13
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x14
jmp 0x1006bc5c
test dl, 0x20
je 0x1006bc2b
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x18
jmp 0x1006bc5c
test dl, 0x40
je 0x1006bc43
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x15
jmp 0x1006bc5c
test dl, dl
jns 0x1006bda9
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x16
and ecx, 1
test ecx, ecx
je 0x1006bda9
test dl, 8
je 0x1006bc71
shr eax, 0x1c
jmp 0x1006bc91
test dl, 1
je 0x1006bc7b
shr eax, 0x1e
jmp 0x1006bc91
test dl, 2
je 0x1006bc85
shr eax, 0x1f
jmp 0x1006bc94
test dl, 4
je 0x1006bda9
shr eax, 0x1d
and eax, 1
test eax, eax
je 0x1006bda9
test ebx, 0x1000000
je 0x1006bcb0
test edx, 0x100
je 0x1006bda9
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push edi
call fcn.1006ca00
movzx eax, word [esi + 0x1ba]
mov bx, word [ebp - 0x1a]
cmp bx, ax
jb 0x1006bd3e
cmp dword [ebp - 4], 1
je 0x1006bd3e
cmp bx, ax
ja 0x1006bda6
mov ecx, dword [ebp - 0x20]
cmp cx, word [esi + 0x1b4]
jbe 0x1006bda1
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 0x1006bd31
or eax, 8
mov dword [edx + ecx + 4], eax
add ecx, 0x28
cmp ecx, 0x500
jb 0x1006bd11
jmp 0x1006bd9b
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 0x1006bd90
or eax, 8
mov dword [edx + ecx + 4], eax
add ecx, 0x28
cmp ecx, 0x500
jb 0x1006bd70
mov dword [esi + 0x1bc], edi
test bx, bx
je 0x1006bdce
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
test eax, eax
jle 0x1006bdc7
cmp dword [ebp - 4], 0
je 0x1006bdc7
cmp edi, 0x10
jne 0x1006bdc7
mov edi, dword [esi + 0x1c0]
or eax, 0xffffffff
mov dword [ebp - 8], eax
add edi, eax
jmp 0x1006bbc8
cmp dword [esi + 0x1c0], 0xffffffff
jne 0x1006bde3
mov eax, dword [esi + 0x1bc]
mov dword [esi + 0x1c0], eax
cmp word [esi + 0x1ba], 0
ja 0x1006beed
test edi, edi
js 0x1006beed
and dword [esi + 0x1b0], 0xffbfffff
xor ecx, ecx
mov edi, dword [esi + 0x1b0]
xor edx, edx
lea ecx, [ecx]
test ecx, ecx
je 0x1006be1e
cmp ecx, 7
je 0x1006be1e
cmp ecx, 0x16
jne 0x1006be2b
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
test byte [eax + edx + 4], 2
jne 0x1006be3f
add edx, 0x28
inc ecx
cmp edx, 0x500
jb 0x1006be10
mov edi, dword [esi + 0x1b0]
jmp 0x1006be4b
or edi, 0x400000
mov dword [esi + 0x1b0], edi
mov ebx, dword [ebp + 8]
test edi, 0x8000000
je 0x1006be62
or dword [ebx], 0x800
mov edi, dword [esi + 0x1b0]
test edi, 0x2000000
je 0x1006be6d
or dword [ebx], 0x40
mov ecx, dword [esi + 0x1bc]
cmp ecx, 0x11
jae 0x1006bedd
mov eax, dword [esi + 0x1a4]
test dword [eax + 0x250], 0x20000000
je 0x1006beb3
mov edx, dword [esi + 0x1b0]
test edx, 0x40000000
je 0x1006beb3
lea eax, [ecx + ecx*2]
test byte [eax*4 + 0x1007b888], 0x10
je 0x1006bead
test edx, 0x600000
je 0x1006beb3
or dword [ebx], 0x10000000
cmp word [esi + 0x1b6], 0
jbe 0x1006bec7
mov ebx, 0x40eda
mov dword [ebp - 0x14], ebx
jmp 0x1006beca
mov ebx, dword [ebp - 0x14]
push dword [ebp + 0xc]
mov ecx, esi
call fcn.1006bf40
test eax, eax
je 0x1006bee2
jmp 0x1006b9c4
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 0x1006bf0e
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 0x1006bef1
push ecx
push 0x905
push dword [ebp + 0xc]
push 0x80040e21
call fcn.10028ec0
pop edi
pop esi
mov eax, 0x80040e21
pop ebx
mov esp, ebp
pop ebp
ret 8