Function at 0x140003390
Capabilities:
Create process on windows
Hide graphical window

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0xa8]
sub rsp, 0x190
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x140024728]
xor rax, rsp
mov qword [rbp + 0x80], rax
lea r8, str.l.c
lea rcx, [rbp - 0x40]
call fcn.140002ba0
nop
mov rdx, rax
lea rcx, [rbp + 0x40]
call fcn.140001920
nop
cmp qword [rbp - 0x28], 0x10
jb 0x1400033f9
mov rcx, qword [rbp - 0x40]
call fcn.140005280
mov qword [rbp - 0x28], 0xf
xor r15d, r15d
mov qword [rbp - 0x30], r15
mov byte [rbp - 0x40], r15b
lea r8, [rbp + 0x40]
lea rdx, str.AskUpgrade_11:
lea rcx, [rbp + 0x60]
call fcn.140002ac0
mov rcx, rax
call fcn.140003090
lea r8, str.upgrade_url
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x20]
call fcn.140001ac0
nop
cmp qword [rbp - 0x10], r15
je 0x1400038cf
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], r15b
lea r8d, [r15 + 0xd]
lea rdx, str.AskUpgrade_22
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
lea rax, [rbp - 0x40]
mov qword [rsp + 0x50], rax
mov qword [rbp - 0x28], 0xf
mov qword [rbp - 0x30], r15
mov byte [rbp - 0x40], r15b
lea r8d, [r15 + 0xa]
lea rdx, str.upgradeUrl
lea rcx, [rbp - 0x40]
call fcn.1400020e0
nop
lea r14, [0x140025df8]
mov rdx, r14
cmp qword [0x140025e10], 0x10
cmovae rdx, qword [0x140025df8]
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], r15b
cmp byte [rdx], r15b
jne 0x1400034de
mov r8d, r15d
jmp 0x1400034ec
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x1400034e2
lea rcx, [rsp + 0x30]
call fcn.1400020e0
nop
lea r9, [rbp - 0x40]
lea r8, [rsp + 0x30]
lea rcx, [rbp + 0x60]
call fcn.140001d80
lea rdx, [rbp - 0x20]
cmp qword [rbp - 8], 0x10
cmovae rdx, qword [rbp - 0x20]
mov rdi, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x140003525
mov rax, qword [rax]
mov rbx, qword [rbp - 0x10]
mov r8, rbx
cmp rdi, rbx
cmovb r8, rdi
test r8, r8
jne 0x14000353d
mov eax, r15d
jmp 0x140003545
mov rcx, rax
call fcn.140009260
cdqe
test rax, rax
jne 0x14000355f
cmp rdi, rbx
jae 0x140003556
or eax, 0xffffffff
jmp 0x14000355f
mov eax, r15d
cmp rdi, rbx
setne al
test eax, eax
sete bl
cmp qword [rbp + 0x78], 0x10
jb 0x140003574
mov rcx, qword [rbp + 0x60]
call fcn.140005280
test bl, bl
jne 0x1400038cf
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], bl
mov r8d, 0xd
lea rdx, str.AskUpgrade_33
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
lea r8, str.upgrade_message
lea rdx, [rbp + 0x40]
lea rcx, [rbp]
call fcn.140001ac0
nop
mov r8, qword [rbp + 0x10]
test r8, r8
jne 0x1400035d5
mov ebx, r15d
jmp 0x1400038ad
lea rax, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rax, qword [rbp]
add rax, r8
lea r8, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae r8, qword [rbp]
cmp r8, rax
je 0x140003612
nop dword [rax]
cmp byte [r8], 0x5c
jne 0x14000360a
mov byte [r8], 0xa
inc r8
cmp r8, rax
jne 0x140003600
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
mov r8d, 0xd
lea rdx, str.AskUpgrade_44
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
lea r8, str.upgrade_caption
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x20]
call fcn.140001ac0
nop
cmp qword [rbp + 0x30], 0
jne 0x14000366a
mov ebx, r15d
jmp 0x14000388d
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
mov r8d, 0xd
lea rdx, str.AskUpgrade_55
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
lea r8, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
cmovae r8, qword [rbp + 0x20]
call fcn.140003280
mov rsi, rax
mov edx, 6
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
lea rdi, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
cmovae rdi, qword [rbp + 0x20]
lea rbx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rbx, qword [rbp]
mov dword [rsp + 0x60], 0x50
mov qword [rsp + 0x68], rsi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x80], rdi
mov dword [rbp - 0x78], 0x84
mov dword [rbp - 0x58], 0x400
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x68], r15
mov qword [rbp - 0x70], 0x65
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_MessageBoxIndirectA]
mov ebx, eax
mov rcx, rsi
call qword [sym.imp.USER32.dll_DestroyWindow]
cmp ebx, 6
jne 0x140003858
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
lea r8d, [rbx + 7]
lea rdx, str.AskUpgrade_66
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
lea rax, [rbp - 0x40]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x28], 0xf
mov qword [rbp - 0x30], r15
mov byte [rbp - 0x40], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x40]
call fcn.1400023a0
nop
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
lea r8d, [rbx + 4]
lea rdx, str.upgradeUrl
lea rcx, [rsp + 0x30]
call fcn.1400020e0
nop
cmp qword [0x140025e10], 0x10
cmovae r14, qword [0x140025df8]
mov rdx, r14
lea rcx, [rbp + 0x60]
call fcn.140002060
nop
lea r9, [rbp - 0x40]
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140001f30
lea r8, [rbp - 0x20]
cmp qword [rbp - 8], 0x10
cmovae r8, qword [rbp - 0x20]
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
lea r8d, [rbx + 7]
lea rdx, str.AskUpgrade_77
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
mov r8d, 0xd
lea rdx, str.AskUpgrade_99
lea rcx, [rsp + 0x30]
call fcn.1400020e0
lea rcx, [rsp + 0x30]
call fcn.140003090
nop
cmp qword [rbp + 0x38], 0x10
jb 0x14000389d
mov rcx, qword [rbp + 0x20]
call fcn.140005280
mov qword [rbp + 0x38], 0xf
mov qword [rbp + 0x30], r15
mov byte [rbp + 0x20], 0
cmp qword [rbp + 0x18], 0x10
jb 0x1400038bd
mov rcx, qword [rbp]
call fcn.140005280
mov qword [rbp + 0x18], 0xf
mov qword [rbp + 0x10], r15
mov byte [rbp], 0
jmp 0x1400038d2
mov ebx, r15d
cmp qword [rbp - 8], 0x10
jb 0x1400038e2
mov rcx, qword [rbp - 0x20]
call fcn.140005280
mov qword [rbp - 8], 0xf
mov qword [rbp - 0x10], r15
mov byte [rbp - 0x20], 0
cmp qword [rbp + 0x58], 0x10
jb 0x140003902
mov rcx, qword [rbp + 0x40]
call fcn.140005280
mov eax, ebx
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.140003d50
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret