Function at 0x1400039d0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov qword [rbp - 1], 0xfffffffffffffffe
mov qword [rsp + 0xd0], rbx
mov rax, qword [0x140020008]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r14, rdx
mov r15, rcx
mov qword [rbp + 7], rdx
mov rdx, qword [rdx]
cmp dword [rdx - 0x10], 0
jne 0x140003a21
add rdx, 0xffffffffffffffe8
or edi, 0xffffffff
jmp 0x140003e8f
call fcn.140001930
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140003a40
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0xf], rax
lea rdx, [0x14001c1d0]
test rdx, 0xffffffffffff0000
jne 0x140003a81
movzx ebx, dx
mov ecx, ebx
call fcn.1400014c0
test rax, rax
je 0x140003a91
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp + 0xf]
call fcn.140005be0
jmp 0x140003a91
mov r8d, 1
lea rcx, [rbp + 0xf]
call fcn.140005a20
nop
xor eax, eax
mov qword [rbp + 0x17], rax
lea r8, [0x140021dd0]
lea rdx, str.install
lea rcx, [rbp + 0x17]
call fcn.1400051d0
nop
xor ecx, ecx
mov rax, qword [rbp + 0x17]
test rax, rax
setne cl
test ecx, ecx
jne 0x140003aca
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rcx, qword [r14]
sub rax, rcx
movzx edx, word [rcx]
cmp dx, word [rcx + rax]
jne 0x140003ae6
add rcx, 2
test dx, dx
jne 0x140003ad0
xor eax, eax
jmp 0x140003aeb
sbb eax, eax
or eax, 1
or edi, 0xffffffff
test eax, eax
jne 0x140003afc
call fcn.140001f80
jmp 0x140003d86
lea r8, [0x140021dd0]
lea rdx, str.uninstall
lea rcx, [rbp - 0x29]
call fcn.1400051d0
mov rdx, qword [rax]
xor eax, eax
test rdx, rdx
setne al
test eax, eax
jne 0x140003b2d
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rax, qword [r14]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140003b49
add rax, 2
test cx, cx
jne 0x140003b33
xor eax, eax
jmp 0x140003b4e
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003b70
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x140003b7e
call fcn.140002da0
jmp 0x140003d86
lea r8, [0x140021dd0]
lea rdx, str.stop
lea rcx, [rbp - 0x21]
call fcn.1400051d0
mov rdx, qword [rax]
xor eax, eax
test rdx, rdx
setne al
test eax, eax
jne 0x140003baf
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rax, qword [r14]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140003bcb
add rax, 2
test cx, cx
jne 0x140003bb5
xor eax, eax
jmp 0x140003bd0
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003bf2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x140003c00
call fcn.140002ed0
jmp 0x140003d86
lea r8, [0x140021dd0]
lea rdx, str.linkall
lea rcx, [rbp - 0x19]
call fcn.1400051d0
mov rdx, qword [rax]
xor eax, eax
test rdx, rdx
setne al
test eax, eax
jne 0x140003c31
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rax, qword [r14]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140003c4d
add rax, 2
test cx, cx
jne 0x140003c37
xor eax, eax
jmp 0x140003c52
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003c74
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x140003c82
call fcn.140003000
jmp 0x140003d86
lea r8, [0x140021dd0]
lea rdx, [0x14001c118]
lea rcx, [rbp - 0x11]
call fcn.1400051d0
mov rdx, qword [rax]
xor eax, eax
test rdx, rdx
setne al
test eax, eax
jne 0x140003cb3
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rax, qword [r14]
sub rdx, rax
nop dword [rax]
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140003cd6
add rax, 2
test cx, cx
jne 0x140003cc0
xor eax, eax
jmp 0x140003cdb
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003cfd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
jne 0x140003d86
lea r8, [0x140021dd0]
lea rdx, str.XS_Windows
lea rcx, [rbp - 9]
call fcn.1400051d0
mov rdx, qword [rax]
xor eax, eax
test rdx, rdx
setne al
test eax, eax
jne 0x140003d36
mov ecx, 0x80004005
call fcn.1400013f0
int3
mov rax, qword [r14]
sub rdx, rax
nop dword [rax]
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140003d56
add rax, 2
test cx, cx
jne 0x140003d40
xor eax, eax
jmp 0x140003d5b
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003d7d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x140003d9c
call fcn.140003070
mov r8d, 1
lea rdx, [0x14001c114]
lea rcx, [rbp + 0xf]
call fcn.140005a20
mov rbx, qword [rbp + 0xf]
mov edx, dword [rbx - 0x10]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test rax, rax
jne 0x140003db7
call fcn.140005750
int3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
add esi, esi
mov edx, dword [rbx - 0x10]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test rax, rax
jne 0x140003ddb
call fcn.140005750
int3
mov qword [rsp + 0x20], 0
lea r9, [rbp + 0x1f]
mov r8d, esi
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
test eax, eax
mov eax, edi
jne 0x140003e56
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003e1a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003e38
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x140003e52
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x140003ea7
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003e6a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140003e88
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x140003ea2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, 1
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.140006200
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret