Function at 0x18001f890
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x58
xor esi, esi
mov qword [rsp + 0x50], r13
xor ebp, ebp
mov qword [rsp + 0x48], r15
mov rbx, r9
lea r10, [0x180000000]
xor r9d, r9d
mov r14, rdx
lea r12d, [rsi + 1]
mov qword [rsp + 0x90], r9
mov rdi, rcx
cmp byte [rdi], 0x22
jne 0x18001f900
mov rax, rdi
movzx edx, byte [rax + 1]
mov byte [rax], dl
lea rax, [rax + 1]
test dl, dl
jne 0x18001f8e0
test ebp, ebp
je 0x18001f8f7
cmp byte [rdi], 0x22
je 0x18001f900
xor eax, eax
test ebp, ebp
sete al
mov ebp, eax
movzx edx, byte [rdi]
cmp edx, 0x24
ja case.0x18001f920.3
movzx eax, byte [r10 + rdx + 0x1fc0c]
mov ecx, dword [r10 + rax*4 + 0x1fbfc]
add rcx, r10
jmp rcx
test ebp, ebp
je 0x18001f934
test r12d, r12d
je 0x18001fbc2
jmp 0x18001fbb1
cmp dword [sym.ProxyProtocol.dll_included], 0
jne 0x18001fbc2
mov r9, rdi
mov qword [rsp + 0x90], rdi
mov byte [rdi], 0
inc rdi
jmp 0x18001f8d8
test ebp, ebp
jne case.0x18001f920.3
mov byte [rdi], bpl
lea r12d, [rbp + 1]
test r9, r9
je 0x18001fbc2
lea r15, [r9 + 1]
xor edx, edx
mov rcx, r15
dec esi
call fcn.18003ac6c
mov r13d, eax
test eax, eax
jg 0x18001f9bc
lea ecx, [rbp + 2]
call fcn.180036240
mov rcx, rax
lea rdx, str.Failed_to_open__s_n
mov r8, r15
call sym.ProxyProtocol.dll_fprintf
mov r8d, dword [rsp + 0xa0]
lea r10, [0x180000000]
mov r9, qword [rsp + 0x90]
inc rdi
jmp 0x18001f8d8
mov rdx, qword [rsp + 0xb8]
mov r9, qword [rsp + 0xb0]
mov ecx, dword [rdx]
mov eax, ecx
sub eax, dword [r9]
cmp eax, 0xffff
jge 0x18001fa3e
lea eax, [rcx + 0xffff]
mov dword [rdx], eax
mov rcx, qword [rbx]
movsxd rdx, eax
call fcn.18002b684
mov qword [rbx], rax
test rax, rax
jne 0x18001fa36
lea ecx, [rax + 2]
call fcn.180036240
mov rcx, rax
lea rdx, str.Failed_to_allocate_memory_for__s_n
mov r8, r15
call sym.ProxyProtocol.dll_fprintf
mov ecx, r13d
call fcn.180039d0c
mov r8d, dword [rsp + 0xa0]
lea r10, [0x180000000]
mov r9, qword [rsp + 0x90]
inc rdi
jmp 0x18001f8d8
mov r9, qword [rsp + 0xb0]
movsxd rax, esi
xor ebx, ebx
mov rdx, qword [r14 + rax*8]
lea rax, [r14 + rax*8]
mov qword [rsp + 0x30], rax
cmp rdx, r15
je 0x18001fa81
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x18001fa60
movsxd rcx, dword [r9]
mov r14, qword [rsp + 0xa8]
movsxd r8, ebx
add rcx, qword [r14]
call fcn.180028440
jmp 0x18001fa89
mov r14, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xb0]
mov r8d, 0xfffe
sub r8d, ebx
mov ecx, r13d
movsxd rdx, dword [rax]
movsxd rax, ebx
add rdx, rax
add rdx, qword [r14]
call fcn.18003b67c
mov r14d, eax
test eax, eax
jg 0x18001faf4
mov rcx, r15
call fcn.1800364cc
mov ecx, r13d
call fcn.180039d0c
mov r8d, dword [rsp + 0xa0]
lea r10, [0x180000000]
mov r9, qword [rsp + 0x90]
inc rdi
mov r14, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa8]
jmp 0x18001f8d8
mov ecx, r13d
call fcn.180039d0c
mov r9, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xa8]
mov eax, dword [r9]
add eax, r14d
add eax, ebx
movsxd rcx, eax
mov rax, qword [rdx]
mov byte [rcx + rax], 0
movsxd rax, dword [r9]
mov rcx, rax
add rcx, qword [rdx]
lea r8d, [r14 + rax]
mov rax, qword [rsp + 0xb8]
inc r8d
mov qword [rsp + 0x28], rax
add r8d, ebx
mov qword [rsp + 0x20], r9
mov dword [r9], r8d
mov rbx, rdx
mov r8d, dword [rsp + 0xa0]
mov r9, rdx
mov rdx, qword [rsp + 0x30]
sub r8d, esi
inc dword [sym.ProxyProtocol.dll_included]
call sym.ProxyProtocol.dll_parsestr
dec dword [sym.ProxyProtocol.dll_included]
lea r10, [0x180000000]
mov r14, qword [rsp + 0x98]
xor r9d, r9d
mov r8d, dword [rsp + 0xa0]
add esi, eax
mov qword [rsp + 0x90], r9
inc rdi
jmp 0x18001f8d8
test r12d, r12d
je 0x18001fbc2
test ebp, ebp
je 0x18001fbb1
cmp dl, 0x22
jne 0x18001fbb1
cmp byte [rdi + 1], dl
je 0x18001fbb1
inc rdi
xor ebp, ebp
movsxd rax, esi
inc esi
mov qword [r14 + rax*8], rdi
cmp esi, r8d
jge 0x18001fbe0
xor r12d, r12d
inc rdi
jmp 0x18001f8d8
test ebp, ebp
je 0x18001fbd5
mov eax, 0xffffffff
jmp 0x18001fbe2
movsxd rax, esi
mov qword [r14 + rax*8], 0
mov eax, esi
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret