Function at 0x14000178f
Capabilities:
Read file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
lea rax, str.___________________________BOUNDARY123
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x20]
lea rdx, [0x14000f087]
mov rcx, rax
call sub.msvcrt.dll_fopen
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
jne 0x1400017fd
mov ecx, 2
mov rax, qword [fcn.14000d6c0]
call rax
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rax
lea rax, str.Error_opening_file__s_n
mov rdx, rax
call fcn.140001450
mov eax, 0
jmp 0x140001a12
mov rax, qword [rbp - 0x10]
mov r8d, 2
mov edx, 0
mov rcx, rax
call sub.msvcrt.dll_fseek
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sub.msvcrt.dll_ftell
mov dword [rbp - 0x14], eax
mov rax, qword [rbp - 0x10]
mov r8d, 0
mov edx, 0
mov rcx, rax
call sub.msvcrt.dll_fseek
mov eax, dword [rbp - 0x14]
cdqe
mov rcx, rax
call sub.msvcrt.dll_malloc
mov qword [rbp - 0x20], rax
cmp qword [rbp - 0x20], 0
jne 0x140001888
mov ecx, 2
mov rax, qword [fcn.14000d6c0]
call rax
mov rcx, rax
lea rax, [0x14000f040]
mov rdx, rax
call fcn.140001450
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sub.msvcrt.dll_fclose
mov eax, 0
jmp 0x140001a12
mov eax, dword [rbp - 0x14]
movsxd rdx, eax
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x20]
mov r9, rcx
mov r8, rdx
mov edx, 1
mov rcx, rax
call sub.msvcrt.dll_fread
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sub.msvcrt.dll_fclose
mov eax, dword [rbp - 0x14]
cdqe
cmp qword [rbp - 0x28], rax
je 0x1400018e9
lea rax, str.Error_reading_file
mov rcx, rax
call sub.msvcrt.dll_perror
mov rax, qword [rbp - 0x20]
mov rcx, rax
call sub.msvcrt.dll_free
mov eax, 0
jmp 0x140001a12
mov eax, dword [rbp - 0x14]
add eax, 0x400
mov dword [rbp - 0x2c], eax
mov eax, dword [rbp - 0x2c]
cdqe
mov rcx, rax
call sub.msvcrt.dll_malloc
mov rdx, rax
mov rax, qword [rbp + 0x10]
mov qword [rax], rdx
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
test rax, rax
jne 0x14000194d
mov ecx, 2
mov rax, qword [fcn.14000d6c0]
call rax
mov rcx, rax
lea rax, str.Memory_allocation_failed_for_multipart_body_n
mov rdx, rax
call fcn.140001450
mov rax, qword [rbp - 0x20]
mov rcx, rax
call sub.msvcrt.dll_free
mov eax, 0
jmp 0x140001a12
mov eax, dword [rbp - 0x2c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov r8, qword [rbp - 8]
mov rcx, qword [rbp + 0x18]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rbp - 8]
mov qword [rsp + 0x28], rcx
lea rcx, [0x14001a040]
mov qword [rsp + 0x20], rcx
mov r9, r8
lea r8, str.___s_r_nContent_Disposition:_form_data__name_id__r_n_r_n_s_r_n___s_r_nContent_Disposition:_form_data__name_file___filename__s__r_nContent_Type:_application_octet_stream_r_n_r_n
mov rcx, rax
call fcn.1400014e7
mov dword [rbp - 0x30], eax
mov eax, dword [rbp - 0x14]
movsxd r8, eax
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax]
mov eax, dword [rbp - 0x30]
cdqe
lea rcx, [rdx + rax]
mov rax, qword [rbp - 0x20]
mov rdx, rax
call sub.msvcrt.dll_memcpy
mov eax, dword [rbp - 0x14]
add dword [rbp - 0x30], eax
mov eax, dword [rbp - 0x2c]
sub eax, dword [rbp - 0x30]
cdqe
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rdx]
mov edx, dword [rbp - 0x30]
movsxd rdx, edx
add rcx, rdx
mov rdx, qword [rbp - 8]
mov r9, rdx
lea r8, str._r_n___s___r_n
mov rdx, rax
call fcn.1400014e7
add dword [rbp - 0x30], eax
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov rdx, rax
lea rax, str.Multipart_body:_n_s
mov rcx, rax
call fcn.140001493
mov rax, qword [rbp - 0x20]
mov rcx, rax
call sub.msvcrt.dll_free
mov eax, dword [rbp - 0x30]
add rsp, 0x70
pop rbp
ret