Function at 0x4015b0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
push str.QKeyCrypt_Install_Event_0123456789
push 0
push 2
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov esi, eax
test esi, esi
jne 0x4015d9
push str.Can_not_open_install_event._r_n
call edi
call fcn.00401520
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
cmp ecx, 3
je 0x4015fa
cmp ecx, 5
je 0x4015fa
push str.Params_err._r_n
jmp 0x401a17
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp + 4]
cmp byte [eax], 0x2d
jne 0x401901
cmp byte [eax + 1], 0x69
jne 0x401901
cmp ecx, 5
je 0x401623
push str.Params_err._r_n
jmp 0x401a17
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x401640
push str.Params_err._ver__0_r_n
jmp 0x401a17
call fcn.00401a30
test eax, eax
jne 0x401765
mov eax, dword [esp + 0x18]
cmp eax, 1
jne 0x4016c4
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401000
add esp, 4
test eax, eax
je 0x401a12
call fcn.00401a60
test eax, eax
je 0x40175b
push ebx
call fcn.00401b80
add esp, 4
test eax, eax
je 0x40175b
push 1
call fcn.00401aa0
add esp, 4
test eax, eax
je 0x40175b
mov edx, dword [ebp + 0x10]
push edx
call fcn.00401c60
add esp, 4
test eax, eax
je 0x40175b
push esi
call fcn.00401590
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp eax, 2
je 0x4016d2
cmp eax, 4
jne 0x4018fd
mov eax, dword [ebp + 8]
push eax
call fcn.00401000
add esp, 4
test eax, eax
je 0x401a12
lea ecx, [esp + 0x14]
push 2
push ecx
call fcn.00401170
add esp, 8
test eax, eax
je 0x401a12
call fcn.00401a60
test eax, eax
je 0x40174e
push ebx
call fcn.00401b80
add esp, 4
test eax, eax
je 0x40174e
push 1
call fcn.00401aa0
add esp, 4
test eax, eax
je 0x40174e
mov edx, dword [ebp + 0x10]
push edx
call fcn.00401c60
add esp, 4
test eax, eax
je 0x40174e
push esi
call fcn.00401590
add esp, 4
push str.Install_ok_0._r_n
call edi
call fcn.00401f00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x14]
push eax
call fcn.004013f0
add esp, 4
push str.Write_Reg_Value_Error._r_n
jmp 0x401a17
lea ecx, [esp + 0x1c]
push ecx
call fcn.00401be0
add esp, 4
test eax, eax
je 0x4018f3
lea edx, [esp + 0x10]
push edx
call fcn.00401b00
add esp, 4
test eax, eax
je 0x4018f3
cmp dword [esp + 0x1c], ebx
jb 0x40181c
call fcn.00401f00
test eax, eax
je 0x40181c
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401e80
add esp, 4
test eax, eax
jne 0x4017ff
mov eax, dword [esp + 0x10]
inc eax
push eax
mov dword [esp + 0x14], eax
call fcn.00401aa0
add esp, 4
test eax, eax
je 0x4017f5
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401c60
add esp, 4
test eax, eax
je 0x4017f5
push str.Install_ok_1._r_n
call edi
push esi
call fcn.00401590
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
push str.Write_Reg_Fail._r_n
jmp 0x401a17
push esi
call fcn.00401590
add esp, 4
push str.Install_ok_2._r_n
call edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
push 0
call fcn.004013f0
mov edx, dword [ebp + 8]
push edx
call fcn.00401000
add esp, 8
test eax, eax
je 0x401a12
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x14]
push 2
push eax
call fcn.00401170
add esp, 8
test eax, eax
je 0x401a12
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401e80
add esp, 4
test eax, eax
jne 0x4018c9
mov ecx, dword [esp + 0x10]
push ebx
inc ecx
mov dword [esp + 0x14], ecx
call fcn.00401b80
add esp, 4
test eax, eax
je 0x40175b
mov edx, dword [esp + 0x10]
push edx
call fcn.00401aa0
add esp, 4
test eax, eax
je 0x40175b
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401c60
add esp, 4
test eax, eax
je 0x40175b
push esi
call fcn.00401590
add esp, 4
push str.Install_ok_3._r_n
call edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
push str.Install_ok.
call edi
push ebx
call fcn.00401b80
push esi
call fcn.00401590
add esp, 8
push str.Install_ok_4._r_n
call edi
call fcn.00401f00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
push str.Read_Reg_Fail._r_n
jmp 0x401a17
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 4]
cmp byte [eax], 0x2d
jne 0x401a19
cmp byte [eax + 1], 0x75
jne 0x401a19
cmp ecx, 3
je 0x40193a
push str.Params_err._r_n
call dword [sym.imp.MSVCRT.dll_printf]
push esi
call fcn.00401590
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
call fcn.00401d20
lea ecx, [esp + 0x10]
mov edi, eax
push ecx
call fcn.00401b00
add esp, 4
test eax, eax
jne 0x401970
push str.Read_Reg_Fail._r_n
call dword [sym.imp.MSVCRT.dll_printf]
push esi
call fcn.00401590
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x10]
cmp edi, eax
jbe 0x40197e
mov eax, edi
mov dword [esp + 0x10], eax
test eax, eax
jbe 0x401987
dec eax
mov dword [esp + 0x10], eax
push eax
call fcn.00401aa0
add esp, 4
test eax, eax
jne 0x4019b2
push str.Write_Reg_Fail._r_n
call dword [sym.imp.MSVCRT.dll_printf]
push esi
call fcn.00401590
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov edx, dword [ebp + 8]
push edx
call fcn.00401cc0
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4019fc
push 0
call fcn.004013f0
mov edi, dword [sym.imp.MSVCRT.dll_printf]
add esp, 4
test eax, eax
jne 0x4019e4
push str.Uninstalll_Driver_Fail._r_n
call edi
add esp, 4
call fcn.00401e20
test eax, eax
jne 0x4019f7
push str.Delete_Reg_Key_Fail._r_n
call edi
add esp, 4
call fcn.00401f40
push esi
call fcn.00401590
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
push str.Install_Driver_Error._r_n
call edi
push esi
call fcn.00401590
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret