Function at 0x140021c20
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 0x140021ec5
mov rcx, qword [rbx]
test rcx, rcx
je 0x140021e6e
mov eax, dword [rdi + 0x28]
mov dword [rcx + 0x74], eax
mov ecx, dword [rdi + 0x28]
test ecx, ecx
je 0x140021d70
sub ecx, 1
je 0x140021d66
cmp ecx, 2
jne 0x140021eb6
mov rbp, qword [rbx]
mov rsi, qword [rbp + 0x80]
test rsi, rsi
je 0x140021e57
mov rsi, qword [rsi]
test rsi, rsi
je 0x140021e57
mov rcx, qword [rsi]
cmp dword [rcx], 4
jne 0x140021cb7
call fcn.14001cd08
test eax, eax
jne 0x140021cbd
mov rsi, qword [rsi + 8]
jmp 0x140021c9d
mov rax, qword [rbp + 0x88]
test rax, rax
je 0x140021ced
mov rax, qword [rax]
xor ecx, ecx
test rax, rax
je 0x140021ce4
mov rdx, qword [rax]
test rdx, rdx
jne 0x140021ce1
mov rax, qword [rax + 8]
jmp 0x140021cce
mov rcx, rdx
mov qword [rbp + 0x90], rcx
jmp 0x140021cf4
mov rcx, qword [rbp + 0x90]
test rcx, rcx
je 0x140021e57
mov rax, qword [rbp + 0x80]
mov rsi, qword [rax]
jmp 0x140021d38
mov r14, qword [rsi]
cmp dword [r14], 1
jne 0x140021d34
mov rcx, r14
call fcn.14001c674
test eax, eax
jne 0x140021e57
xor edx, edx
mov rcx, r14
call fcn.14001c43c
test eax, eax
jne 0x140021e57
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x140021d09
cmp dword [rdi + 0x280], esi
jne 0x140021d82
mov rcx, qword [rbx]
cmp dword [rcx + 0x70], 0xffffffff
je 0x140021d58
xor eax, eax
cmp dword [rcx + 0x70], eax
setne al
jmp 0x140021d5d
call fcn.140025e30
xor ecx, ecx
test eax, eax
sete cl
jmp 0x140021d7a
mov rcx, qword [rbx]
call fcn.140025ddc
jmp 0x140021d5d
mov rcx, qword [rbx]
call fcn.140024fa8
mov ecx, eax
test ecx, ecx
je 0x140021e57
mov rcx, qword [rbx]
cmp dword [rcx + 0x60], 0
jl 0x140021e57
call fcn.140024fa8
test eax, eax
je 0x140021e57
mov rcx, qword [rbx]
xor edx, edx
call fcn.1400250d8
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.140024d5c
mov r14, qword [rbx]
xor ebp, ebp
cmp dword [rdi + 0x28], 3
mov rcx, r14
setne bpl
call fcn.1400251a4
mov rcx, qword [0x1400516d8]
mov r12, rax
test rcx, rcx
je 0x140021e52
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x140021e52
xor edx, edx
lea rcx, [rsp + 0x30]
lea r8d, [rdx + 0x28]
call sub.msvcrt.dll_memset
mov rcx, qword [0x1400516d8]
lea r8, [rsp + 0x30]
xorps xmm0, xmm0
mov eax, esi
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov edx, 0x5cb
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 0x140021e61
mov rcx, qword [rbx]
xor edx, edx
call fcn.140024d5c
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140021c58
test r15d, r15d
jne 0x140021f19
test rbx, rbx
je 0x140021ec5
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
jne 0x140021e9e
lea edx, [rcx + 3]
call fcn.140016188
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
je 0x140021f19
cmp dword [0x1400516e0], 2
jl 0x140021f19
mov r8d, AtlInternalQueryInterface
lea rdx, str.ERROR:_Nothing_to_install._r_n
jmp 0x140021efd
mov ecx, 0x8000ffff
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x140021f39
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
jne 0x140021ee7
lea edx, [rcx + 5]
call fcn.140016188
mov rcx, qword [0x140050310]
cmp rcx, 0xffffffffffffffff
je 0x140021f19
cmp dword [0x1400516e0], 4
jl 0x140021f19
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.140015c44
mov edx, dword [rdi + 0x20]
mov ecx, dword [rdi + 0x1c]
call fcn.140015a6c
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