Function at 0x62a8d4b0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x15c
test byte [0x62a98028], 8
jne 0x62a8d790
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x44]
xor edi, edi
mov dword [esp + 0x1c], eax
mov ecx, 0xf003f
xor esi, esi
mov dword [esp + 0xc], edi
xor ebp, ebp
mov eax, str.SoftwareODBCODBCINST.INI
mov dword [esp + 0x18], edx
mov edi, dword [sym.imp.advapi32.dll_RegCreateKeyExA]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], 0x80000002
call edi
sub esp, 0x24
test eax, eax
je 0x62a8d5b0
movzx edx, byte [0x62a98028]
test dl, 8
jne 0x62a8d540
and dl, 4
jne 0x62a8d577
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, str.Error__ld_opening_HKLMSOODBCINST.INI_n
mov esi, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 0x10], eax
mov edi, 0x62a98028
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 3
call sym._wine_dbg_log
movzx edx, byte [0x62a98028]
and dl, 4
je 0x62a8d52c
mov eax, str.May_not_have_replicated_all_ODBC_drivers_to_the_registry_n
mov edx, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 0xc], eax
mov ecx, 0x62a98028
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 2
call sym._wine_dbg_log
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x48]
xor ecx, ecx
mov dword [esp + 0x1c], eax
xor eax, eax
xor esi, esi
mov dword [esp + 0x10], eax
xor eax, eax
mov ebp, 0xf003f
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, str.ODBC_Drivers
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebp
mov dword [esp], eax
call edi
sub esp, 0x24
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x62a8d7c0
mov dword [esp + 0x38], edi
mov ecx, 1
mov eax, 2
lea ebp, [esp + 0x50]
mov edi, ecx
lea esi, [esp + 0x42]
jmp 0x62a8d634
xor edi, edi
test byte [0x62a98028], 4
jne 0x62a8d860
mov eax, 1
mov dword [esp + 0x10], esi
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x1c], edx
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, 0x100
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.odbc32.dll_SQLDrivers
sub esp, 0x20
cmp ax, 1
movsx edx, ax
ja 0x62a8d8f0
mov edx, ebp
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x62a8d675
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov cl, al
add cl, al
movsx eax, word [esp + 0x42]
sbb edx, 3
sub edx, ebp
cmp eax, edx
jne 0x62a8d620
mov dword [esp + 4], ebp
xor eax, eax
xor edx, edx
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], edx
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
sub esp, 0x18
cmp eax, 2
je 0x62a8d960
test eax, eax
je 0x62a8d6fc
test byte [0x62a98028], 8
jne 0x62a8d828
xor edi, edi
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, 0xf003f
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebp
mov dword [esp], eax
mov eax, dword [esp + 0x38]
call eax
sub esp, 0x24
test eax, eax
je 0x62a8d890
xor edi, edi
test byte [0x62a98028], 8
je 0x62a8d62f
mov dword [esp + 0x10], eax
mov eax, str.Error__ld_ensuring_driver_key__s_n
mov edx, 0x62a98028
mov dword [esp + 0xc], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 0x14], ebp
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d62f
mov dword [esp], 3
mov eax, str.Driver_settings_are_not_currently_replicated_to_the_registry_n
mov dword [esp + 0xc], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 8], eax
mov eax, 0x62a98028
mov dword [esp + 4], eax
call sym._wine_dbg_log
jmp 0x62a8d4c9
test byte [0x62a98028], 8
jne 0x62a8d9d0
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a8d56b
movzx edx, byte [0x62a98028]
test dl, 8
je 0x62a8d527
mov dword [esp + 0x10], eax
mov eax, str.Error__ld_closing_HKLMSOODBCINST.INI_n
mov edx, 0x62a98028
mov dword [esp + 0xc], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d56b
mov dword [esp + 0x10], eax
mov eax, str.Error__ld_checking_for__s_in_drivers_n
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], eax
mov dword [esp], 3
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 8], eax
mov eax, 0x62a98028
mov dword [esp + 4], eax
call sym._wine_dbg_log
jmp 0x62a8d6fa
mov dword [esp + 0x10], ebp
mov eax, str.Unusually_long_driver_name__s_not_replicated_n
mov dword [esp + 0xc], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 8], eax
mov eax, 0x62a98028
mov dword [esp + 4], eax
mov dword [esp], 2
call sym._wine_dbg_log
jmp 0x62a8d62f
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a8d62f
test byte [0x62a98028], 8
je 0x62a8d62f
mov dword [esp + 0x10], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov ecx, str.Error__ld_closing__s_key_n
mov dword [esp + 8], eax
mov eax, 0x62a98028
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d62f
cmp edx, 0x64
je 0x62a8d9c0
test byte [0x62a98028], 8
jne 0x62a8da08
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a8d927
test byte [0x62a98028], 8
jne 0x62a8da68
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a8d948
test byte [0x62a98028], 8
jne 0x62a8da38
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x62a8d56b
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 1
mov edx, 0xa
mov dword [esp + 0xc], eax
xor eax, eax
mov ecx, str.Installed
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebp
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExA]
sub esp, 0x18
test eax, eax
je 0x62a8d6fc
test byte [0x62a98028], 8
je 0x62a8d6fa
mov dword [esp + 0x10], eax
mov eax, str.Error__ld_replicating_driver__s_n
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], eax
jmp 0x62a8d839
mov dword [esp + 0x3c], edi
jmp 0x62a8d906
mov eax, dword [esp + 0x3c]
mov ecx, str.Error__ld_opening_HKLMSOOIDrivers_n
mov ebx, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 0xc], ecx
mov esi, 0x62a98028
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d7cd
mov dword [esp + 0x10], edx
mov eax, str.Error__d_enumerating_drivers_n
mov dword [esp + 0xc], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 8], eax
mov eax, 0x62a98028
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d906
mov dword [esp + 0x10], eax
mov eax, str.Error__ld_closing_HKLMSOODBCINST.INI_n
mov dword [esp + 0xc], eax
mov eax, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 8], eax
mov eax, 0x62a98028
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d948
mov dword [esp + 0x10], eax
mov edi, str.Error__ld_closing_hDrivers_n
mov ebp, str.ODBC_ReplicateODBCInstToRegistry
mov dword [esp + 0xc], edi
mov eax, 0x62a98028
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8d927