Function at 0x1006b580
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.10030fc0
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.10030fc0
cmp dword [esi + 0x1bc], 0xffffffff
mov ebx, 0xfffe
mov ecx, 0x2000
mov dword [ebp - 4], 1
mov edx, 0x800
jne 0x1006b7bc
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 0x1006b644
or dword [esi + 0x1b0], 0x2000000
test word [edi + 0x306], cx
je 0x1006b657
or dword [esi + 0x1b0], 0x40000000
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x14]
cmp word [eax + 0x20], 0xffff
je 0x1006b6bb
test byte [edi + 0x290], 0x10
je 0x1006b6bb
mov ecx, dword [edi + 0x250]
test ecx, 0x40000
je 0x1006b6bb
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x2a0]
test al, 1
je 0x1006b697
test cl, 4
jne 0x1006b697
or dword [esi + 0x1b0], 0x1000000
test al, 2
je 0x1006b6ae
test byte [edi + 0x250], 8
jne 0x1006b6ae
or dword [esi + 0x1b0], 0x1000000
test al, 4
je 0x1006b6c5
test byte [edi + 0x250], 0x10
jne 0x1006b6c5
or dword [esi + 0x1b0], 0x1000000
test byte [edi + 0x254], 0x40
je 0x1006b6d8
or dword [esi + 0x1b0], 0x10000000
mov eax, dword [esi + 0x1c]
xor ecx, ecx
mov edx, dword [eax + 8]
mov eax, dword [ecx + 0x10015cb4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 4], 1
je 0x1006b6fe
cmp dword [edx + eax*8], 0
jne 0x1006b6fe
cmp word [edx + eax*8 + 0x20], 0xffff
je 0x1006b708
add ecx, 4
cmp ecx, 8
jb 0x1006b6e0
jmp 0x1006b712
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 + 0x10015ca4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 4], 1
je 0x1006b73e
cmp dword [edx + eax*8], 0
jne 0x1006b73e
cmp word [edx + eax*8 + 0x20], 0xffff
je 0x1006b748
add ecx, 4
cmp ecx, 0x10
jb 0x1006b720
jmp 0x1006b752
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 0x1006b781
mov eax, dword [ebp - 0x18]
cmp eax, 1
je 0x1006b781
cmp eax, 2
je 0x1006b781
or dword [esi + 0x1b0], 0x8000000
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x14]
cmp dword [eax + 0xa0], 0
jne 0x1006b7a1
mov eax, dword [eax + 0xc0]
and eax, 0xf
or dword [esi + 0x1b0], eax
jmp 0x1006b7bc
mov eax, dword [esi + 0x1b0]
test eax, 0x20000000
je 0x1006b7b3
or eax, 0xf
jmp 0x1006b7b6
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 0x1006b7f8
mov edi, dword [esi + 0x1c0]
or eax, 0xffffffff
mov dword [ebp - 8], eax
dec edi
test eax, eax
jle 0x1006b803
cmp edi, 0x11
jl 0x1006b811
test eax, eax
jns 0x1006ba13
test edi, edi
js 0x1006ba13
lea eax, [edi + edi*2]
mov edx, dword [eax*4 + 0x10079840]
mov eax, dword [esi + 0x1b0]
and eax, edx
test al, 0xf
je 0x1006b9d9
test dl, 0x10
je 0x1006b843
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x14
jmp 0x1006b88c
test dl, 0x20
je 0x1006b85b
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x18
jmp 0x1006b88c
test dl, 0x40
je 0x1006b873
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x15
jmp 0x1006b88c
test dl, dl
jns 0x1006b9d9
mov eax, dword [esi + 0x1a4]
mov eax, dword [eax + 0x254]
mov ecx, eax
shr ecx, 0x16
and ecx, 1
test ecx, ecx
je 0x1006b9d9
test dl, 8
je 0x1006b8a1
shr eax, 0x1c
jmp 0x1006b8c1
test dl, 1
je 0x1006b8ab
shr eax, 0x1e
jmp 0x1006b8c1
test dl, 2
je 0x1006b8b5
shr eax, 0x1f
jmp 0x1006b8c4
test dl, 4
je 0x1006b9d9
shr eax, 0x1d
and eax, 1
test eax, eax
je 0x1006b9d9
test ebx, 0x1000000
je 0x1006b8e0
test edx, 0x100
je 0x1006b9d9
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push edi
call fcn.1006caf0
movzx eax, word [esi + 0x1ba]
mov bx, word [ebp - 0x1a]
cmp bx, ax
jb 0x1006b96e
cmp dword [ebp - 4], 1
je 0x1006b96e
cmp bx, ax
ja 0x1006b9d6
mov ecx, dword [ebp - 0x20]
cmp cx, word [esi + 0x1b4]
jbe 0x1006b9d1
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 0x1006b961
or eax, 8
mov dword [edx + ecx + 4], eax
add ecx, 0x28
cmp ecx, 0x500
jb 0x1006b941
jmp 0x1006b9cb
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 0x1006b9c0
or eax, 8
mov dword [edx + ecx + 4], eax
add ecx, 0x28
cmp ecx, 0x500
jb 0x1006b9a0
mov dword [esi + 0x1bc], edi
test bx, bx
je 0x1006b9fe
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
test eax, eax
jle 0x1006b9f7
cmp dword [ebp - 4], 0
je 0x1006b9f7
cmp edi, 0x10
jne 0x1006b9f7
mov edi, dword [esi + 0x1c0]
or eax, 0xffffffff
mov dword [ebp - 8], eax
add edi, eax
jmp 0x1006b7f8
cmp dword [esi + 0x1c0], 0xffffffff
jne 0x1006ba13
mov eax, dword [esi + 0x1bc]
mov dword [esi + 0x1c0], eax
cmp word [esi + 0x1ba], 0
ja 0x1006bb0e
test edi, edi
js 0x1006bb0e
and dword [esi + 0x1b0], 0xffbfffff
xor ecx, ecx
xor edx, edx
test ecx, ecx
je 0x1006ba45
cmp ecx, 7
je 0x1006ba45
cmp ecx, 0x16
jne 0x1006ba52
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
test byte [eax + edx + 4], 2
jne 0x1006ba60
add edx, 0x28
inc ecx
cmp edx, 0x500
jb 0x1006ba37
jmp 0x1006ba6a
or dword [esi + 0x1b0], 0x400000
test dword [esi + 0x1b0], 0x8000000
mov ebx, dword [ebp + 8]
je 0x1006ba7f
or dword [ebx], 0x800
test dword [esi + 0x1b0], 0x2000000
je 0x1006ba8e
or dword [ebx], 0x40
mov ecx, dword [esi + 0x1bc]
cmp ecx, 0x11
jae 0x1006bafe
mov eax, dword [esi + 0x1a4]
test dword [eax + 0x250], 0x20000000
je 0x1006bad4
mov edx, dword [esi + 0x1b0]
test edx, 0x40000000
je 0x1006bad4
lea eax, [ecx + ecx*2]
test byte [eax*4 + 0x10079840], 0x10
je 0x1006bace
test edx, 0x600000
je 0x1006bad4
or dword [ebx], 0x10000000
cmp word [esi + 0x1b6], 0
jbe 0x1006bae8
mov ebx, 0x40eda
mov dword [ebp - 0x14], ebx
jmp 0x1006baeb
mov ebx, dword [ebp - 0x14]
push dword [ebp + 0xc]
mov ecx, esi
call fcn.1006bb60
test eax, eax
je 0x1006bb03
jmp 0x1006b5f4
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 0x1006bb2f
push dword [edi + 0x10015cd0]
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 0x1006bb12
push ecx
push 0x905
push dword [ebp + 0xc]
push 0x80040e21
call fcn.10028820
pop edi
pop esi
mov eax, 0x80040e21
pop ebx
mov esp, ebp
pop ebp
ret 8