Function at 0x100197e0
Capabilities:
Link many functions at runtime
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003ace2
mov eax, dword fs:[0]
push eax
sub esp, 0x1a4
mov eax, dword [0x10055014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x10055d08], 0
jne 0x1001a50a
push 0x100459f0
mov dword [0x10055d10], 0
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov edx, eax
mov dword [ebp - 0x18c], 0xf
add esp, 4
mov dword [ebp - 0x190], 0
mov byte [ebp - 0x1a0], 0
cmp byte [edx], 0
jne 0x10019859
xor ecx, ecx
jmp 0x10019869
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10019860
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x1a0]
call fcn.1000dc30
xor esi, esi
mov dword [ebp - 4], 0
mov ebx, 0x10055dd0
cmp dword [0x10055d24], esi
jbe 0x10019acc
push ecx
push esi
lea eax, [ebp - 0x1a4]
mov byte [ebp - 0x1a4], 0x3b
push eax
mov ecx, 0x10055d14
call fcn.1002ebc0
mov edi, eax
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
mov byte [ebp - 4], 1
cmp edi, 0xffffffff
jne 0x100198e7
push eax
push esi
lea eax, [ebp - 0x130]
mov ecx, 0x10055d14
push eax
call fcn.1002db20
mov esi, eax
jmp 0x10019900
mov eax, edi
mov ecx, 0x10055d14
sub eax, esi
push eax
push esi
lea eax, [ebp - 0x130]
push eax
call fcn.1002db20
mov esi, eax
lea eax, [ebp - 0x148]
cmp eax, esi
je 0x10019949
mov eax, dword [ebp - 0x134]
cmp eax, 0x10
jb 0x10019922
inc eax
push eax
push dword [ebp - 0x148]
call fcn.1000e550
push esi
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
call fcn.1000dff0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x11c]
cmp eax, 0x10
jb 0x10019965
inc eax
push eax
push dword [ebp - 0x130]
call fcn.1000e550
mov ecx, dword [ebp - 0x138]
cmp ecx, 1
jb 0x10019a78
cmp dword [ebp - 0x134], 0x10
lea eax, [ebp - 0x148]
cmovae eax, dword [ebp - 0x148]
cmp byte [eax + ecx - 1], 0x5c
je 0x100199e3
mov eax, ecx
not eax
cmp eax, 1
jbe 0x10019aa5
lea esi, [ecx + 1]
push ecx
push esi
lea ecx, [ebp - 0x148]
call fcn.1000e5a0
test al, al
je 0x100199e3
push 0x5c
push 1
push dword [ebp - 0x138]
lea ecx, [ebp - 0x148]
call fcn.1002f2a0
cmp dword [ebp - 0x134], 0x10
lea eax, [ebp - 0x148]
mov dword [ebp - 0x138], esi
cmovae eax, dword [ebp - 0x148]
mov byte [eax + esi], 0
push 5
push str.PATH
mov ecx, ebx
call fcn.1000dc30
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x148]
mov ecx, ebx
push eax
call fcn.1000df40
push 1
push 0x10045a00
mov ecx, eax
call fcn.1000de50
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x1a0]
push ecx
mov ecx, eax
call fcn.1000df40
cmp dword [0x10055de4], 0x10
mov eax, ebx
cmovae eax, dword [0x10055dd0]
push eax
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__putenv]
add esp, 4
lea ecx, [ebp - 0x148]
push 0xc
push str.fbclient.dll
call fcn.1000de50
cmp dword [ebp - 0x134], 0x10
lea eax, [ebp - 0x148]
cmovae eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x10055d10], eax
test eax, eax
jne 0x10019ab0
cmp edi, 0xffffffff
je 0x10019ab0
mov byte [ebp - 4], 0
lea esi, [edi + 1]
mov eax, dword [ebp - 0x134]
cmp eax, 0x10
jb 0x10019a97
inc eax
push eax
push dword [ebp - 0x148]
call fcn.1000e550
cmp esi, dword [0x10055d24]
jb 0x10019890
jmp 0x10019acc
push str.string_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x134]
cmp eax, 0x10
jb 0x10019acc
inc eax
push eax
push dword [ebp - 0x148]
call fcn.1000e550
cmp dword [0x10055d10], 0
jne 0x10019c97
cmp dword [0x10055de0], 0
je 0x10019b1a
push 5
push str.PATH
mov ecx, ebx
call fcn.1000dc30
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x1a0]
mov ecx, ebx
push eax
call fcn.1000df40
cmp dword [0x10055de4], 0x10
cmovae ebx, dword [0x10055dd0]
push ebx
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__putenv]
add esp, 4
push 0x104
lea eax, [ebp - 0x118]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
test eax, eax
je 0x10019b92
lea esi, [ebp - 0x118]
add esi, eax
cmp byte [esi - 1], 0x5c
lea esi, [esi - 1]
jne 0x10019b40
push str._fbembed.dll
lea eax, [ebp - 0x118]
mov byte [esi], 0
push eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea eax, [ebp - 0x118]
push eax
call ebx
mov dword [0x10055d10], eax
test eax, eax
jne 0x10019b98
mov byte [esi], al
lea eax, [ebp - 0x118]
push str._fbclient.dll
push eax
call edi
lea eax, [ebp - 0x118]
push eax
call ebx
mov dword [0x10055d10], eax
jmp 0x10019b98
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp dword [0x10055d10], 0
jne 0x10019c97
lea eax, [ebp - 0x1a8]
push eax
push 0x20019
push 0
push str.SOFTWAREFirebird_ProjectFirebird_ServerInstances
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x10019c2e
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x1ac], 0x104
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x1b0]
push eax
push 0
push str.DefaultInstance
push dword [ebp - 0x1a8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x10019c22
cmp dword [ebp - 0x1b0], 1
jne 0x10019c22
push str.bin_fbclient.dll
lea eax, [ebp - 0x118]
push eax
call edi
lea eax, [ebp - 0x118]
push eax
call ebx
mov dword [0x10055d10], eax
push dword [ebp - 0x1a8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [0x10055d10], 0
jne 0x10019c97
push str.fbclient.dll
call ebx
mov dword [0x10055d10], eax
test eax, eax
jne 0x10019c97
push str.gds32.dll
call ebx
mov dword [0x10055d10], eax
test eax, eax
jne 0x10019c97
push str.GDS::Call__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 4
push str.Cant_find_or_load_FBCLIENT.DLL_or_GDS32.DLL
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.1001f830
add esp, 0xc
lea eax, [ebp - 0x188]
push 0x10050054
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.isc_create_database
push dword [0x10055d10]
mov dword [0x10055d0c], 0x3c
call esi
mov dword [0x10055d2c], eax
test eax, eax
jne 0x10019cd8
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 5
push str.Entry_point_isc_create_database_not_found
jmp 0x10019c70
push str.isc_attach_database
push dword [0x10055d10]
call esi
mov dword [0x10055d30], eax
test eax, eax
jne 0x10019d0c
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 6
push str.Entry_point_isc_attach_database_not_found
jmp 0x10019c70
push str.isc_detach_database
push dword [0x10055d10]
call esi
mov dword [0x10055d34], eax
test eax, eax
jne 0x10019d40
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 7
push str.Entry_point_isc_detach_database_not_found
jmp 0x10019c70
push str.isc_drop_database
push dword [0x10055d10]
call esi
mov dword [0x10055d38], eax
test eax, eax
jne 0x10019d74
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 8
push str.Entry_point_isc_drop_database_not_found
jmp 0x10019c70
push str.isc_database_info
push dword [0x10055d10]
call esi
mov dword [0x10055d3c], eax
test eax, eax
jne 0x10019da8
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 9
push str.Entry_point_isc_database_info_not_found
jmp 0x10019c70
push str.isc_open_blob2
push dword [0x10055d10]
call esi
mov dword [0x10055d44], eax
test eax, eax
jne 0x10019ddc
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0xa
push str.Entry_point_isc_open_blob2_not_found
jmp 0x10019c70
push str.isc_create_blob2
push dword [0x10055d10]
call esi
mov dword [0x10055d48], eax
test eax, eax
jne 0x10019e10
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0xb
push str.Entry_point_isc_create_blob2_not_found
jmp 0x10019c70
push str.isc_close_blob
push dword [0x10055d10]
call esi
mov dword [0x10055d4c], eax
test eax, eax
jne 0x10019e44
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0xc
push str.Entry_point_isc_close_blob_not_found
jmp 0x10019c70
push str.isc_cancel_blob
push dword [0x10055d10]
call esi
mov dword [0x10055d50], eax
test eax, eax
jne 0x10019e78
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0xd
push str.Entry_point_isc_cancel_blob_not_found
jmp 0x10019c70
push str.isc_get_segment
push dword [0x10055d10]
call esi
mov dword [0x10055d54], eax
test eax, eax
jne 0x10019eac
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0xe
push str.Entry_point_isc_get_segment_not_found
jmp 0x10019c70
push str.isc_put_segment
push dword [0x10055d10]
call esi
mov dword [0x10055d58], eax
test eax, eax
jne 0x10019ee0
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0xf
push str.Entry_point_isc_put_segment_not_found
jmp 0x10019c70
push str.isc_blob_info
push dword [0x10055d10]
call esi
mov dword [0x10055d5c], eax
test eax, eax
jne 0x10019f14
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x10
push str.Entry_point_isc_blob_info_not_found
jmp 0x10019c70
push str.isc_array_lookup_bounds
push dword [0x10055d10]
call esi
mov dword [0x10055d60], eax
test eax, eax
jne 0x10019f48
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x11
push str.Entry_point_isc_array_lookup_bounds_not_found
jmp 0x10019c70
push str.isc_array_get_slice
push dword [0x10055d10]
call esi
mov dword [0x10055d64], eax
test eax, eax
jne 0x10019f7c
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x12
push str.Entry_point_isc_array_get_slice_not_found
jmp 0x10019c70
push str.isc_array_put_slice
push dword [0x10055d10]
call esi
mov dword [0x10055d68], eax
test eax, eax
jne 0x10019fb0
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x13
push str.Entry_point_isc_array_put_slice_not_found
jmp 0x10019c70
push str.isc_vax_integer
push dword [0x10055d10]
call esi
mov dword [0x10055d6c], eax
test eax, eax
jne 0x10019fe4
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x14
push str.Entry_point_isc_vax_integer_not_found
jmp 0x10019c70
push str.isc_sqlcode
push dword [0x10055d10]
call esi
mov dword [0x10055d70], eax
test eax, eax
jne 0x1001a018
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x15
push str.Entry_point_isc_sqlcode_not_found
jmp 0x10019c70
push str.isc_sql_interprete
push dword [0x10055d10]
call esi
mov dword [0x10055d74], eax
test eax, eax
jne 0x1001a04c
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x16
push str.Entry_point_isc_sql_interprete_not_found
jmp 0x10019c70
push str.isc_interprete
push dword [0x10055d10]
call esi
mov dword [0x10055d78], eax
test eax, eax
jne 0x1001a080
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x17
push str.Entry_point_isc_interprete_not_found
jmp 0x10019c70
push str.isc_que_events
push dword [0x10055d10]
call esi
mov dword [0x10055d7c], eax
test eax, eax
jne 0x1001a0b4
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x18
push str.Entry_point_isc_que_events_not_found
jmp 0x10019c70
push str.isc_cancel_events
push dword [0x10055d10]
call esi
mov dword [0x10055d80], eax
test eax, eax
jne 0x1001a0e8
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x19
push str.Entry_point_isc_cancel_events_not_found
jmp 0x10019c70
push str.isc_start_multiple
push dword [0x10055d10]
call esi
mov dword [0x10055d84], eax
test eax, eax
jne 0x1001a11c
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x1a
push str.Entry_point_isc_start_multiple_not_found
jmp 0x10019c70
push str.isc_commit_transaction
push dword [0x10055d10]
call esi
mov dword [0x10055d88], eax
test eax, eax
jne 0x1001a150
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x1b
push str.Entry_point_isc_commit_transaction_not_found
jmp 0x10019c70
push str.isc_commit_retaining
push dword [0x10055d10]
call esi
mov dword [0x10055d8c], eax
test eax, eax
jne 0x1001a184
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x1c
push str.Entry_point_isc_commit_retaining_not_found
jmp 0x10019c70
push str.isc_rollback_transaction
push dword [0x10055d10]
call esi
mov dword [0x10055d90], eax
test eax, eax
jne 0x1001a1b8
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x1d
push str.Entry_point_isc_rollback_transaction_not_found
jmp 0x10019c70
push str.isc_rollback_retaining
push dword [0x10055d10]
call esi
mov dword [0x10055d94], eax
test eax, eax
jne 0x1001a1ec
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x1e
push str.Entry_point_isc_rollback_retaining_not_found
jmp 0x10019c70
push str.isc_dsql_execute_immediate
push dword [0x10055d10]
call esi
mov dword [0x10055d40], eax
test eax, eax
jne 0x1001a220
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x1f
push str.Entry_point_isc_dsql_execute_immediate_not_found
jmp 0x10019c70
push str.isc_dsql_allocate_statement
push dword [0x10055d10]
call esi
mov dword [0x10055d98], eax
test eax, eax
jne 0x1001a254
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x20
push str.Entry_point_isc_dsql_allocate_statement_not_found
jmp 0x10019c70
push str.isc_dsql_describe
push dword [0x10055d10]
call esi
mov dword [0x10055d9c], eax
test eax, eax
jne 0x1001a288
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x21
push str.Entry_point_isc_dsql_describe_not_found
jmp 0x10019c70
push str.isc_dsql_describe_bind
push dword [0x10055d10]
call esi
mov dword [0x10055da0], eax
test eax, eax
jne 0x1001a2bc
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x22
push str.Entry_point_isc_dsql_describe_bind_not_found
jmp 0x10019c70
push str.isc_dsql_prepare
push dword [0x10055d10]
call esi
mov dword [0x10055da4], eax
test eax, eax
jne 0x1001a2f0
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x23
push str.Entry_point_isc_dsql_prepare_not_found
jmp 0x10019c70
push str.isc_dsql_execute
push dword [0x10055d10]
call esi
mov dword [0x10055da8], eax
test eax, eax
jne 0x1001a324
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x24
push str.Entry_point_isc_dsql_execute_not_found
jmp 0x10019c70
push str.isc_dsql_execute2
push dword [0x10055d10]
call esi
mov dword [0x10055dac], eax
test eax, eax
jne 0x1001a358
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x25
push str.Entry_point_isc_dsql_execute2_not_found
jmp 0x10019c70
push str.isc_dsql_fetch
push dword [0x10055d10]
call esi
mov dword [0x10055db0], eax
test eax, eax
jne 0x1001a38c
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x26
push str.Entry_point_isc_dsql_fetch_not_found
jmp 0x10019c70
push str.isc_dsql_free_statement
push dword [0x10055d10]
call esi
mov dword [0x10055db4], eax
test eax, eax
jne 0x1001a3c0
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x27
push str.Entry_point_isc_dsql_free_statement_not_found
jmp 0x10019c70
push str.isc_dsql_set_cursor_name
push dword [0x10055d10]
call esi
mov dword [0x10055db8], eax
test eax, eax
jne 0x1001a3f4
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x28
push str.Entry_point_isc_dsql_set_cursor_name_not_found
jmp 0x10019c70
push str.isc_dsql_sql_info
push dword [0x10055d10]
call esi
mov dword [0x10055dbc], eax
test eax, eax
jne 0x1001a428
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x29
push str.Entry_point_isc_dsql_sql_info_not_found
jmp 0x10019c70
push str.isc_service_attach
push dword [0x10055d10]
call esi
mov dword [0x10055dc0], eax
test eax, eax
jne 0x1001a45c
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x2a
push str.Entry_point_isc_service_attach_not_found
jmp 0x10019c70
push str.isc_service_detach
push dword [0x10055d10]
call esi
mov dword [0x10055dc4], eax
test eax, eax
jne 0x1001a490
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x2b
push str.Entry_point_isc_service_detach_not_found
jmp 0x10019c70
push str.isc_service_start
push dword [0x10055d10]
call esi
mov dword [0x10055dc8], eax
test eax, eax
jne 0x1001a4c4
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x2c
push str.Entry_point_isc_service_start_not_found
jmp 0x10019c70
push str.isc_service_query
push dword [0x10055d10]
call esi
mov dword [0x10055dcc], eax
test eax, eax
jne 0x1001a4f8
push str.GDS:gds__
lea ecx, [ebp - 0x130]
call fcn.1000d440
mov byte [ebp - 4], 0x2d
push str.Entry_point_isc_service_query_not_found
jmp 0x10019c70
lea ecx, [ebp - 0x1a0]
mov byte [0x10055d08], 1
call fcn.1000d300
mov eax, 0x10055d08
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100364bc
mov esp, ebp
pop ebp
ret