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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x17c
mov dword [ebp - 0x14c], edx
test eax, eax
je 0x62a83180
lea eax, [ebp - 0x144]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov eax, dword [sym.imp.advapi32.dll_RegCreateKeyExA]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xf003f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareODBCODBC.INI
mov dword [esp], 0x80000001
mov dword [ebp - 0x154], eax
call eax
mov dword [ebp - 0x150], str.user
sub esp, 0x24
test eax, eax
jne 0x62a831e7
mov eax, 0x1f
jmp 0x62a83215
lea eax, [ebp - 0x144]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov eax, dword [sym.imp.advapi32.dll_RegCreateKeyExA]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xf003f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareODBCODBC.INI
mov dword [esp], 0x80000002
mov dword [ebp - 0x154], eax
call eax
mov dword [ebp - 0x150], str.system
sub esp, 0x24
test eax, eax
je 0x62a83210
movzx edx, byte [0x62a8e028]
test dl, 8
jne 0x62a83458
and edx, 4
jne 0x62a8341f
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x20
mov edi, 1
lea ebx, [ebp - 0x139]
lea esi, [ebp - 0x118]
jmp 0x62a83244
xor edi, edi
test byte [0x62a8e028], 4
jne 0x62a83360
mov eax, 1
mov dword [esp + 4], eax
lea ecx, [ebp - 0x146]
mov eax, dword [ebp - 0x14c]
mov dword [esp + 0x1c], ecx
lea ecx, [ebp - 0x148]
mov dword [esp + 0x18], 0x100
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0x21
mov dword [esp + 8], ebx
mov dword [esp], eax
call sym.odbc32.dll_SQLDataSources
sub esp, 0x20
cmp ax, 1
ja 0x62a833a0
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_strlen]
movsx edx, word [ebp - 0x148]
cmp edx, eax
jne 0x62a83230
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strlen]
movsx edx, word [ebp - 0x146]
cmp edx, eax
jne 0x62a83230
lea eax, [ebp - 0x140]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x144]
mov dword [esp + 0x18], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x154]
mov dword [esp + 0x14], 0xf003f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
call eax
sub esp, 0x24
test eax, eax
je 0x62a834a0
xor edi, edi
test byte [0x62a8e028], 8
je 0x62a8323f
mov edx, dword [ebp - 0x150]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], str.Error__ld_opening__s_DSN_key__s_n
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8323f
mov eax, dword [ebp - 0x150]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unusually_long__s_data_source_name__s___s__not_replicated_n
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 2
call sym._wine_dbg_log
jmp 0x62a8323f
cmp ax, 0x64
je 0x62a83560
test byte [0x62a8e028], 8
jne 0x62a83598
mov eax, dword [ebp - 0x144]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a8340f
movzx edx, byte [0x62a8e028]
test dl, 8
je 0x62a831f7
mov edi, dword [ebp - 0x150]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Error__ld_closing__s_ODBC.INI_registry_key_n
mov dword [esp + 0x14], edi
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
movzx edx, byte [0x62a8e028]
and edx, 4
je 0x62a83200
mov eax, dword [ebp - 0x150]
mov dword [esp + 0xc], str.May_not_have_replicated_all__s_ODBC_DSNs_to_the_registry_n
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 2
call sym._wine_dbg_log
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp - 0x150]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Error__ld_creating_opening__s_ODBC.INI_registry_key_n
mov dword [esp + 0x14], edi
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
movzx edx, byte [0x62a8e028]
jmp 0x62a831f7
mov eax, dword [ebp - 0x140]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Driver
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
sub esp, 0x18
cmp eax, 2
je 0x62a83601
test eax, eax
je 0x62a834f6
test byte [0x62a8e028], 8
jne 0x62a835d0
xor edi, edi
mov eax, dword [ebp - 0x140]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a8323f
test byte [0x62a8e028], 8
je 0x62a8323f
mov edx, dword [ebp - 0x150]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], str.Error__ld_closing__s_DSN_key__s_n
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a8323f
mov eax, dword [ebp - 0x144]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test eax, eax
je 0x62a83583
test byte [0x62a8e028], 8
jne 0x62a83686
test edi, edi
je 0x62a8340f
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp - 0x150]
cwde
mov dword [esp + 0xc], str.Error__d_enumerating__s_datasources_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a833b7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Error__ld_checking_for_description_of__s_n
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a834f4
movsx eax, word [ebp - 0x146]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 1
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x140]
mov dword [esp + 8], 0
mov dword [esp + 4], str.Driver
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExA]
sub esp, 0x18
test eax, eax
je 0x62a834f6
test byte [0x62a8e028], 8
je 0x62a834f4
mov dword [esp + 0x18], esi
xor edi, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Error__ld_replicating_description_of__s__s__n
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a834f6
mov esi, dword [ebp - 0x150]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Error__ld_closing__s_ODBC.INI_registry_key_n
mov dword [esp + 0x14], esi
mov dword [esp + 8], str.ODBC_ReplicateODBCToRegistry
mov dword [esp + 4], 0x62a8e028
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x62a83583