Function at 0x140020640
Capabilities:
Read file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x200
mov ebx, r8d
mov rdi, rdx
mov r15, rcx
test rdx, rdx
jne 0x14002066c
test ebx, ebx
jne 0x14002066c
xor eax, eax
add rsp, 0x200
pop r15
pop rdi
pop rbx
ret
mov qword [rsp + 0x220], rbp
mov edx, 0x19
mov qword [rsp + 0x1f8], rsi
mov qword [rsp + 0x1f0], r12
mov qword [rsp + 0x1e8], r13
mov qword [rsp + 0x1e0], r14
call fcn.1400137f0
mov dword [rsp + 0x238], eax
mov ebp, eax
test eax, eax
je 0x140020853
mov rcx, qword [r15 + 0x40]
movzx eax, byte [rcx + 0x341]
mov qword [rsp + 0x38], rax
cmp byte [rcx + rax*8 + 0x22], 0
je 0x1400206dc
lea rdx, str.fragmented_basic_auth_header_not_allowed_n
mov ecx, 1
call fcn.140011130
jmp 0x140020853
mov r9d, 0x19
lea rdx, [rsp + 0xc0]
mov r8d, LoadRegTypeLib
mov rcx, r15
call fcn.140013540
cmp eax, 7
jge 0x140020718
lea rdx, str.b64_auth_too_long_n
mov ecx, 1
call fcn.140011130
mov eax, 2
jmp 0x140020858
lea rdx, str.Basic
mov byte [rsp + 0xc5], 0
lea rcx, [rsp + 0xc0]
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x14002075b
lea r8, [rsp + 0xc0]
mov ecx, 1
lea rdx, str.auth_missing_basic:__s_n
call fcn.140011130
mov eax, 2
jmp 0x140020858
mov r8d, 0x77
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xc6]
call fcn.14002d040
mov esi, eax
mov dword [rsp + 0x228], esi
test eax, eax
jns 0x14002079b
lea rdx, str.plain_auth_too_long_n
mov ecx, 1
call fcn.140011130
mov eax, 2
jmp 0x140020858
movsxd r13, esi
lea rcx, [rsp + 0x40]
mov edx, 0x3a
mov byte [rsp + r13 + 0x40], 0
call sub.msvcrt.dll_strchr
mov qword [rsp + 0x30], rax
mov r14, rax
test rax, rax
jne 0x1400207d8
lea rdx, str.basic_auth_format_broken_n
lea ecx, [rax + 1]
call fcn.140011130
lea eax, [r14 + 2]
jmp 0x140020858
test ebx, ebx
je 0x14002080f
cmp ebx, 0x10000000
jne 0x140020853
mov r10, qword [r15 + 0x10]
lea r9, [rsp + 0x40]
mov r8, qword [r15 + 0x3d8]
mov edx, 0x66
mov rcx, r15
mov qword [rsp + 0x20], rsi
call qword [r10 + reloc.WS2_32.dll_htonl]
test eax, eax
jne 0x140020937
jmp 0x140020853
xor ebx, ebx
xor edx, edx
mov rcx, rdi
mov esi, ebx
mov ebp, ebx
mov r14d, ebx
call fcn.140014ee0
mov r12d, eax
test eax, eax
jns 0x14002088c
mov r8, rdi
lea rdx, str.cant_open_auth_file:__s_n
lea ecx, [rbx + 1]
call fcn.140011130
lea r8, str.lws_check_basic_auth
mov ecx, 1
lea rdx, str._s:_basic_auth_lookup_failed_n
call fcn.140011130
mov eax, 1
mov r13, qword [rsp + 0x1e8]
mov r12, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x1f8]
mov rbp, qword [rsp + 0x220]
mov r14, qword [rsp + 0x1e0]
add rsp, 0x200
pop r15
pop rdi
pop rbx
ret
mov r8, rbx
mov rdi, rbx
cmp ebp, r14d
jne 0x1400208b9
mov r8d, 0x80
lea rdx, [rsp + 0x160]
mov ecx, r12d
call sub.msvcrt.dll__read
mov r14d, eax
test eax, eax
jle 0x14002090a
mov ebp, ebx
mov r8, rbx
lea rcx, [rsp + 0x160]
cmp rdi, r13
jne 0x1400208da
movzx edx, byte [rcx + r8]
cmp dl, 0xd
je 0x140020916
cmp dl, 0xa
je 0x140020916
mov esi, ebx
mov rdi, rbx
movzx eax, byte [rcx + r8]
movzx ecx, byte [rsp + rdi + 0x40]
cmp al, cl
jne 0x1400208f9
inc rdi
inc ebp
inc r8
inc esi
cmp al, cl
cmovne esi, ebx
jmp 0x140020892
inc ebp
inc r8
inc esi
mov rdi, rbx
cmp al, cl
cmovne esi, ebx
jmp 0x140020892
cmp esi, dword [rsp + 0x228]
sete bl
jmp 0x14002091b
mov ebx, 1
mov ecx, r12d
call sub.msvcrt.dll__close
test ebx, ebx
je 0x14002083b
mov r14, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x238]
movzx ecx, byte [rsp + 0x38]
lea rax, [rsp + 0x40]
mov byte [r14], 0
mov edx, 0x19
sub r14w, ax
mov rax, qword [r15 + 0x40]
mov word [rax + rcx*8 + 0x20], r14w
mov rcx, r15
call fcn.1400137c0
lea r8d, [rbp - 1]
mov rcx, rax
lea rdx, [rsp + 0x40]
mov rbx, rax
call sub.msvcrt.dll_strncpy
movsxd rcx, ebp
xor eax, eax
mov byte [rcx + rbx - 1], 0
jmp 0x140020858