Function at 0x1801f4820
Capabilities:
Check if file exists
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x8830]
mov eax, 0x8930
call fcn.1801fde20
sub rsp, rax
mov rax, qword [0x18032f0e0]
xor rax, rsp
mov qword [rbp + 0x8820], rax
mov rsi, qword [0x1803ab5a0]
mov eax, dword [rsi + 8]
cmp eax, 3
je 0x1801f4c98
xor edi, edi
test eax, eax
jne 0x1801f498e
mov rbx, qword [rsi]
movups xmm0, xmmword [str._pipediscord_ipc_0]
movups xmmword [rbp + 0x87f0], xmm0
movups xmm1, xmmword [0x1802959b0]
movups xmmword [rbp + 0x8800], xmm1
movsd xmm0, qword [0x1802959c0]
movsd qword [rbp + 0x8810], xmm0
mov eax, dword [0x1802959c8]
mov dword [rbp + 0x8818], eax
movzx eax, word [0x1802959cc]
mov word [rbp + 0x881c], ax
mov eax, 0x30
mov word [rbp + 0x881a], ax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
lea rcx, [rbp + 0x87f0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
jne 0x1801f4988
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1801f4930
movzx eax, word [rbp + 0x881a]
cmp ax, 0x39
jae 0x1801f4c98
inc ax
mov word [rbp + 0x881a], ax
jmp 0x1801f4955
cmp eax, 0xe7
jne 0x1801f4c98
mov edx, 0x2710
lea rcx, [rbp + 0x87f0]
call qword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
je 0x1801f4c98
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
lea rcx, [rbp + 0x87f0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
je 0x1801f4908
mov byte [rbx], 1
mov eax, dword [rsi + 8]
cmp eax, 1
jne 0x1801f4b0a
lea rcx, [rsp + 0x50]
call fcn.180049a50
nop
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.1801f4dc0
test al, al
je 0x1801f4acb
lea r8, [0x1802f9f34]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.180049860
mov eax, dword [rsp + 0x50]
shl rax, 5
mov rcx, qword [rsp + 0x58]
movabs r15, 0xffffffffffff
and rcx, r15
add rax, rcx
mov r12d, 0x1000
mov rcx, qword [rsp + 0x40]
cmp rcx, rax
je 0x1801f4a1a
movzx eax, word [rcx + 0x1e]
shr ax, 0xa
test al, 1
je 0x1801f4a1a
lea r14, [rcx + 0x10]
test word [r14 + 0xe], r12w
jne 0x1801f4a1d
mov r14, qword [r14 + 8]
and r14, r15
jmp 0x1801f4a1d
mov r14, rdi
lea r8, [0x180295c00]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.180049860
mov eax, dword [rsp + 0x50]
shl rax, 5
mov rcx, qword [rsp + 0x58]
and rcx, r15
add rax, rcx
mov rcx, qword [rsp + 0x40]
cmp rcx, rax
je 0x1801f4a70
movzx eax, word [rcx + 0x1e]
shr ax, 0xa
test al, 1
je 0x1801f4a70
lea rbx, [rcx + 0x10]
test word [rbx + 0xe], r12w
jne 0x1801f4a73
mov rbx, qword [rbx + 8]
and rbx, r15
jmp 0x1801f4a73
mov rbx, rdi
test r14, r14
je 0x1801f4acb
test rbx, rbx
je 0x1801f4acb
lea rdx, str.DISPATCH
mov rcx, r14
call fcn.18024ad10
test eax, eax
jne 0x1801f4acb
lea rcx, str.READY
nop word [rax + rax]
movzx eax, byte [rbx + rdi]
inc rdi
cmp al, byte [rcx + rdi - 1]
jne 0x1801f4acb
cmp rdi, 6
jne 0x1801f4aa0
mov dword [rsi + 8], 3
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1801f4acb
lea rcx, [rsp + 0x50]
call rax
nop
lea rcx, [rbp + 0x7fb8]
call fcn.1800499e0
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x1801f4af6
mov rcx, rbx
call fcn.1800499e0
mov edx, 0x28
mov rcx, rbx
call fcn.1801fcf24
mov edx, 0x810
mov rcx, qword [rsp + 0x78]
call fcn.1801fcf24
jmp 0x1801f4c98
lea r14, [rsi + 0x164]
mov dword [r14], edi
lea rcx, [rsi + 0x16c]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
movdqa xmmword [rsp + 0x70], xmm1
mov qword [rbp - 0x80], 0x800
mov dword [rbp - 0x78], 0x144
mov byte [rbp - 0x74], dil
mov qword [rbp - 0x70], rcx
lea rax, [rcx + 0xfff8]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rcx
lea rax, [rbp - 0x48]
mov qword [rbp - 0x58], rax
lea rax, [rbp + 0x7b8]
mov qword [rbp - 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.1801f71e0
mov r8d, 1
lea rdx, [0x18029f54c]
lea rcx, [rsp + 0x50]
call fcn.1801f7590
mov edx, 1
lea rcx, [rsp + 0x50]
call fcn.1801f7390
mov r8d, 9
lea rdx, str.client_id
lea rcx, [rsp + 0x50]
call fcn.1801f7590
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rsi + rax + 0x20], 0
jne 0x1801f4bc6
mov r8d, eax
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x50]
call fcn.1801f7590
sub qword [rsp + 0x70], 0x10
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
jae 0x1801f4bfd
mov byte [rcx], 0x7d
inc qword [rax + 0x10]
mov rbx, qword [rbp - 0x60]
sub rbx, qword [rbp - 0x70]
mov edx, 0x810
mov rcx, qword [rsp + 0x60]
call fcn.1801fcf24
mov dword [rsi + 0x168], ebx
mov rcx, qword [rsi]
test rcx, rcx
je 0x1801f4c5e
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x1801f4c5e
test r14, r14
je 0x1801f4c5e
add ebx, 8
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x40]
mov r8d, ebx
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, 1
jne 0x1801f4c5e
cmp dword [rsp + 0x40], ebx
jne 0x1801f4c5e
mov dword [rsi + 8], eax
jmp 0x1801f4c98
mov r8, qword [rsi + 0x18]
test r8, r8
je 0x1801f4c7d
mov eax, dword [rsi + 8]
dec eax
test eax, 0xfffffffd
jne 0x1801f4c7d
lea rdx, [rsi + 0x64]
mov ecx, dword [rsi + 0x60]
call r8
mov rbx, qword [rsi]
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], 0
mov dword [rsi + 8], edi
mov rcx, qword [rbp + 0x8820]
xor rcx, rsp
call fcn.1801fcf00
lea r11, [rsp + 0x8930]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret