Function at 0x140021bc0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov dword [rsp + 0x20], r9d
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rbx, qword [rcx + 8]
xor r15d, r15d
and dword [rcx + 0x278], r15d
mov rdi, rcx
mov dword [rcx + 0x28], edx
test rbx, rbx
je 0x140021e60
mov rcx, qword [rbx]
test rcx, rcx
je 0x140021e09
mov eax, dword [rdi + 0x28]
mov dword [rcx + 0x74], eax
mov ecx, dword [rdi + 0x28]
test ecx, ecx
je 0x140021d10
sub ecx, 1
je 0x140021d06
cmp ecx, 2
jne 0x140021e51
mov rbp, qword [rbx]
mov rsi, qword [rbp + 0x80]
test rsi, rsi
je 0x140021df2
mov rsi, qword [rsi]
test rsi, rsi
je 0x140021df2
mov rcx, qword [rsi]
cmp dword [rcx], 4
jne 0x140021c57
call fcn.14001ccb8
test eax, eax
jne 0x140021c5d
mov rsi, qword [rsi + 8]
jmp 0x140021c3d
mov rax, qword [rbp + 0x88]
test rax, rax
je 0x140021c8d
mov rax, qword [rax]
xor ecx, ecx
test rax, rax
je 0x140021c84
mov rdx, qword [rax]
test rdx, rdx
jne 0x140021c81
mov rax, qword [rax + 8]
jmp 0x140021c6e
mov rcx, rdx
mov qword [rbp + 0x90], rcx
jmp 0x140021c94
mov rcx, qword [rbp + 0x90]
test rcx, rcx
je 0x140021df2
mov rax, qword [rbp + 0x80]
mov rsi, qword [rax]
jmp 0x140021cd8
mov r14, qword [rsi]
cmp dword [r14], 1
jne 0x140021cd4
mov rcx, r14
call fcn.14001c624
test eax, eax
jne 0x140021df2
xor edx, edx
mov rcx, r14
call fcn.14001c3ec
test eax, eax
jne 0x140021df2
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x140021ca9
cmp dword [rdi + 0x280], esi
jne 0x140021d22
mov rcx, qword [rbx]
cmp dword [rcx + 0x70], 0xffffffff
je 0x140021cf8
xor eax, eax
cmp dword [rcx + 0x70], eax
setne al
jmp 0x140021cfd
call fcn.140025dc8
xor ecx, ecx
test eax, eax
sete cl
jmp 0x140021d1a
mov rcx, qword [rbx]
call fcn.140025d74
jmp 0x140021cfd
mov rcx, qword [rbx]
call fcn.140024f40
mov ecx, eax
test ecx, ecx
je 0x140021df2
mov rcx, qword [rbx]
cmp dword [rcx + 0x60], 0
jl 0x140021df2
call fcn.140024f40
test eax, eax
je 0x140021df2
mov rcx, qword [rbx]
xor edx, edx
call fcn.140025070
mov rcx, qword [rbx]
mov rsi, rax
movabs rax, 0x624dd2f1a9fbe77
mul rsi
sub rsi, rdx
shr rsi, 1
add rsi, rdx
xor edx, edx
shr rsi, 9
cmp dword [rdi + 0x28], 3
setne dl
call fcn.140024cf4
mov r14, qword [rbx]
xor ebp, ebp
cmp dword [rdi + 0x28], 3
mov rcx, r14
setne bpl
call fcn.14002513c
mov rcx, qword [0x1400516d8]
mov r12, rax
test rcx, rcx
je 0x140021ded
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x140021ded
and qword [rsp + 0x38], 0
lea r8, [rsp + 0x30]
and dword [rsp + 0x4c], 0
xorps xmm0, xmm0
mov rcx, qword [0x1400516d8]
xor r9d, r9d
mov eax, esi
mov edx, 0x5cb
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x48], ebp
mov qword [rsp + 0x50], r14
cvtsi2sd xmm0, rax
divsd xmm0, qword [0x140049d88]
movsd qword [rsp + 0x40], xmm0
call qword [sym.imp.USER32.dll_SendMessageW]
inc r15d
jmp 0x140021dfc
mov rcx, qword [rbx]
xor edx, edx
call fcn.140024cf4
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140021bf8
test r15d, r15d
jne 0x140021eb4
test rbx, rbx
je 0x140021e60
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
jne 0x140021e39
lea edx, [rcx + 3]
call fcn.140016148
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
je 0x140021eb4
cmp dword [0x1400516e0], 2
jl 0x140021eb4
mov r8d, AtlInternalQueryInterface
lea rdx, str.ERROR:_Nothing_to_install._r_n
jmp 0x140021e98
mov ecx, 0x8000ffff
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x140021ed4
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
jne 0x140021e82
lea edx, [rcx + 5]
call fcn.140016148
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
je 0x140021eb4
cmp dword [0x1400516e0], 4
jl 0x140021eb4
mov r8d, 0x3f
lea rdx, str.__Install_list_not_generated_or_parsed_for_this_install_type._r_n
and qword [rsp + 0x20], 0
lea r9, [rsp + 0xa8]
and dword [rsp + 0xa8], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, r15d
call fcn.140015c04
mov edx, dword [rdi + 0x20]
mov ecx, dword [rdi + 0x1c]
call fcn.140015a2c
mov eax, r15d
mov dword [rdi + 0x278], 1
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret