Function at 0x401110
Capabilities:
Terminate process

Disassembly:
push esi
mov esi, dword [sym.imp.MSVCR80.dll_printf]
push str._nUsage:_n
call esi
push str.__instreg_i_nstall__n
call esi
push str.__________r_emove__n_n
call esi
push str.__This_utility_should_be_located_and_run_from_the_bin_directory_n
call esi
push str.__of_your_Firebird_installation._n_n
call esi
push str.___z_can_be_used_with_any_other_option__prints_version_n
call esi
add esp, 0x18
push 1
call dword [sym.imp.MSVCR80.dll_exit]
pop esi
int3
sub esp, 0x114
mov eax, dword [0x403008]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
mov ebx, dword [esp + 0x120]
push esi
push 0x104
lea eax, [esp + 0x18]
push eax
xor esi, esi
push esi
mov byte [esp + 0x17], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
movzx eax, ax
test ax, ax
jne 0x40117d
push 0
push str.GetModuleFileName
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call section..text
add esp, 0xc
pop esi
movzx eax, ax
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.00401658
add esp, 0x114
ret
movzx eax, ax
lea eax, [esp + eax + 0x14]
sub eax, 1
cmp byte [eax], 0x5c
jne 0x401184
lea esp, [esp]
mov cl, byte [eax - 1]
sub eax, 1
cmp cl, 0x5c
je 0x4011a0
cmp cl, 0x3a
jne 0x401190
mov ecx, dword [esp + 0x120]
push ebp
push edi
lea edi, [ebx + ecx*4]
add ebx, 4
cmp ebx, edi
mov byte [eax], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
jae 0x4012cf
mov edx, dword [str.INSTALL]
jmp 0x4011d0
mov ebp, dword [ebx]
cmp byte [ebp], 0x2d
je 0x401277
xor edi, edi
test edx, edx
mov esi, edx
je 0x401242
mov ecx, ebp
mov al, byte [ecx]
test al, al
mov edx, esi
je 0x40121e
mov edi, edi
cmp al, 0x61
jl 0x401200
cmp al, 0x7a
jg 0x401200
movsx eax, al
sub eax, 0x20
jmp 0x401203
movsx eax, al
movsx ebx, byte [edx]
cmp eax, ebx
jne 0x401219
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
test al, al
jne 0x4011f0
jmp 0x40121e
cmp byte [ecx], 0
jne 0x40122d
movzx eax, di
sub edx, esi
cmp word [eax*8 + 0x402140], dx
jbe 0x401258
add edi, 1
movzx ecx, di
mov esi, dword [ecx*8 + 0x40213c]
test esi, esi
jne 0x4011e4
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx]
push eax
push str.Unknown_command___s__n
call dword [sym.imp.MSVCR80.dll_printf]
add esp, 8
jmp 0x4010d0
test esi, esi
je 0x40123e
mov ebx, dword [esp + 0x14]
movzx edx, di
movzx esi, word [edx*8 + 0x402142]
mov edx, dword [str.INSTALL]
mov edi, dword [esp + 0x18]
jmp 0x40129f
mov al, byte [ebp + 1]
cmp al, 0x61
lea ecx, [ebp + 1]
jl 0x40128d
cmp al, 0x7a
jg 0x40128d
movsx eax, al
sub eax, 0x20
jmp 0x401290
movsx eax, al
cmp eax, 0x3f
je 0x401253
cmp eax, 0x5a
jne 0x4012d4
mov byte [esp + 0x13], 1
add ebx, 4
cmp ebx, edi
mov dword [esp + 0x14], ebx
jb 0x4011d0
cmp byte [esp + 0x13], 0
mov edi, dword [sym.imp.MSVCR80.dll_printf]
je 0x4012ca
push str.WI_V2.5.2.26540_Firebird_2.5
push str.instreg_version__s_n
call edi
add esp, 8
test si, si
jne 0x4012e8
jmp 0x4010d0
push ecx
push str.Unknown_switch___s__n
call dword [sym.imp.MSVCR80.dll_printf]
add esp, 8
jmp 0x4010d0
movzx eax, si
sub eax, 1
je 0x401323
sub eax, 1
je 0x4012f9
xor esi, esi
jmp 0x401353
push section..text
push 0
push 0x80000002
call fcn.00401550
movzx esi, ax
add esp, 0xc
test si, si
je 0x40131c
push str.Firebird_has_not_been_deleted_from_the_registry._n
jmp 0x40134e
push str.Firebird_has_been_successfully_deleted_from_the_registry._n
jmp 0x40134e
push section..text
lea ecx, [esp + 0x20]
push ecx
push 0x80000002
call fcn.004013f0
movzx esi, ax
add esp, 0xc
test si, si
je 0x401349
push str.Firebird_has_not_been_installed_in_the_registry._n
jmp 0x40134e
push str.Firebird_has_been_successfully_installed_in_the_registry._n
call edi
add esp, 4
mov ecx, dword [esp + 0x120]
pop edi
xor eax, eax
test si, si
pop ebp
pop esi
setne al
pop ebx
xor ecx, esp
call fcn.00401658
add esp, 0x114
ret