Function at 0x402200
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x41636b
mov eax, dword fs:[0]
push eax
mov eax, 0x1498
call fcn.00409680
mov eax, dword [0x41e040]
xor eax, esp
mov dword [esp + 0x1490], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x41e040]
xor eax, esp
push eax
lea eax, [esp + 0x14ac]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x14bc]
push 0x256
xor esi, esi
lea ecx, [esp + 0xffa]
xor eax, eax
push esi
push ecx
xor bl, bl
mov word [esp + 0x1000], ax
call fcn.0040c350
add esp, 0xc
push 0xbb8
lea edx, [esp + 0x43a]
push esi
push edx
mov byte [esp + 0x440], bl
call fcn.0040c350
add esp, 0xc
lea eax, [esp + 0x18]
push eax
push 0x20019
push esi
push 0x418c68
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x2c], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4026c2
mov eax, dword [esp + 0x18]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0xff8]
push edx
push esi
push esi
push str.DBPropsFile
mov ebx, 0x258
push eax
mov dword [esp + 0x34], ebx
call edi
test eax, eax
jne 0x402395
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x434]
push edx
lea ecx, [esp + 0xff8]
mov dword [ebp], 3
call fcn.00402a40
mov bl, al
test bl, bl
je 0x4026c2
lea ecx, [esp + 0x28]
xor edx, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x428], 0x200
mov dword [esp + 0x42c], esi
mov word [esp + 0x28], dx
mov dword [esp + 0x14b4], esi
lea edi, [ebp + 0x22c]
cmp byte [esp + 0x434], dl
je 0x40246f
lea eax, [esp + 0xb3e]
push eax
mov ebx, edi
mov ecx, ebp
call fcn.00402e10
lea ecx, [esp + 0x8e6]
push ecx
lea edx, [esp + 0x43a]
push edx
lea eax, [esp + 0x2c]
push str.ProviderSQLOLEDB.1_Integrated_SecuritySSPI_Persist_Security_InfoFalse_Data_Source_s_Initial_Catalog_s
push eax
call fcn.00404990
lea ecx, [esp + 0xb4e]
push ecx
push str.Using_NT_authentication:_username:_s_n
call fcn.00407fcb
add esp, 0x18
jmp 0x4024ac
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xff8]
push ecx
push esi
push esi
push str.ServerINI
push edx
mov dword [esp + 0x34], ebx
call edi
test eax, eax
je 0x4023e1
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.ConnectToDatabase_failed:_Cannot_find_ServerINI_n
mov dword [ebp + 0x434], str.IDS_EPO_MIGRATION_CONNECT_FAIL
call fcn.00407fcb
add esp, 4
xor al, al
jmp 0x4026e9
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x256
lea eax, [esp + 0x1252]
xor edx, edx
push esi
push eax
mov word [esp + 0x1258], dx
call fcn.0040c350
add esp, 0xc
lea ecx, [esp + 0xff4]
push ecx
push 0x12c
lea edx, [esp + 0x1254]
push edx
push 0x41b834
push str.Version
push str.Server
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 4
lea eax, [esp + 0x1250]
push str.3.6.
push eax
call fcn.00408236
add esp, 0xc
neg eax
sbb eax, eax
add eax, 2
mov dword [ebp], eax
lea eax, [esp + 0x434]
lea edi, [esp + 0xff4]
call fcn.00402d30
jmp 0x402310
lea edx, [esp + 0x8e6]
push edx
lea eax, [esp + 0x43a]
push eax
push edi
lea ecx, [esp + 0xb4a]
push ecx
lea edx, [esp + 0x34]
push str.ProviderSQLOLEDB.1_Persist_Security_InfoFalse_User_ID__s__Password__s__Data_Source_s_Initial_Catalog_s
push edx
call fcn.00404990
lea eax, [esp + 0xb56]
push eax
push str.Using_SQL_authentication:_username:_s_n
call fcn.00407fcb
add esp, 0x20
sub esp, 0x40c
mov esi, esp
lea eax, [esi + 4]
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 0x404], 0x200
mov dword [esi + 0x408], 0
mov word [eax], cx
mov edx, dword [esp + 0x430]
mov dword [esp + 0x42c], esp
push edx
call fcn.00404800
mov ecx, ebp
call fcn.00402720
mov bl, al
test bl, bl
jne 0x4026ad
cmp byte [esp + 0x434], al
je 0x402547
lea eax, [esp + 0xb3e]
push eax
mov ebx, edi
mov ecx, ebp
call fcn.00402e10
lea ecx, [esp + 0x8e6]
push ecx
lea edx, [esp + 0x43a]
push edx
lea eax, [esp + 0x2c]
push str.ProviderSQLOLEDB.1_Integrated_SecuritySSPI_Persist_Security_InfoFalse_Data_Source_s_Initial_Catalog_s_OLE_DB_Services_2
push eax
call fcn.00404990
lea ecx, [esp + 0xb4e]
push ecx
push str.Using_NT_authentication:_username:_s_n
call fcn.00407fcb
add esp, 0x18
jmp 0x402584
lea edx, [esp + 0x8e6]
push edx
lea eax, [esp + 0x43a]
push eax
push edi
lea ecx, [esp + 0xb4a]
push ecx
lea edx, [esp + 0x34]
push str.ProviderSQLOLEDB.1_Persist_Security_InfoFalse_User_ID__s__Password__s__Data_Source_s_Initial_Catalog_s_OLE_DB_Services_2
push edx
call fcn.00404990
lea eax, [esp + 0xb56]
push eax
push str.Using_SQL_authentication:_username:_s_n
call fcn.00407fcb
add esp, 0x20
sub esp, 0x40c
mov esi, esp
lea eax, [esi + 4]
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 0x404], 0x200
mov dword [esi + 0x408], 0
mov word [eax], cx
mov edx, dword [esp + 0x430]
mov dword [esp + 0x42c], esp
push edx
call fcn.00404800
mov ecx, ebp
call fcn.00402720
mov bl, al
test bl, bl
jne 0x4026ad
cmp byte [esp + 0x434], al
je 0x402622
lea eax, [esp + 0xb3e]
push eax
mov ebx, edi
mov ecx, ebp
call fcn.00402e10
lea ecx, [esp + 0x8e6]
push ecx
lea edx, [esp + 0x692]
push edx
lea eax, [esp + 0x43e]
push eax
lea ecx, [esp + 0x30]
push str.ProviderSQLOLEDB.1_Integrated_SecuritySSPI_Persist_Security_InfoFalse_Data_Source_s__s_Initial_Catalog_s_Network_LibraryDBMSSOCN
push ecx
call fcn.00404990
add esp, 0x14
lea edx, [esp + 0xb3e]
push edx
push str.Using_NT_authentication:_username:_s_n
jmp 0x402662
lea eax, [esp + 0x8e6]
push eax
lea ecx, [esp + 0x692]
push ecx
lea edx, [esp + 0x43e]
push edx
push edi
lea eax, [esp + 0xb4e]
push eax
lea ecx, [esp + 0x38]
push str.ProviderSQLOLEDB.1_Persist_Security_InfoFalse_User_ID__s__Password__s__Data_Source_s__s_Initial_Catalog_s_Network_LibraryDBMSSOCN
push ecx
call fcn.00404990
add esp, 0x1c
lea edx, [esp + 0xb3e]
push edx
push str.Using_SQL_authentication:_username:_s_n
call fcn.00407fcb
add esp, 8
sub esp, 0x40c
mov esi, esp
lea eax, [esi + 4]
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 0x404], 0x200
mov dword [esi + 0x408], 0
mov word [eax], cx
mov edx, dword [esp + 0x430]
mov dword [esp + 0x42c], esp
push edx
call fcn.00404800
mov ecx, ebp
call fcn.00402720
mov bl, al
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x28]
cmp eax, ecx
je 0x4026c2
push eax
call fcn.00407d02
add esp, 4
mov ecx, 0x208
lea eax, [ebp + 0x22c]
lea ecx, [ecx]
mov byte [eax], 0
inc eax
sub ecx, 1
jne 0x4026d0
test bl, bl
jne 0x4026e7
mov dword [ebp + 0x434], str.IDS_EPO_MIGRATION_CONNECT_FAIL
mov al, bl
mov ecx, dword [esp + 0x14ac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1490]
xor ecx, esp
call fcn.00407bfa
add esp, 0x14a4
ret 4