Function at 0x18001f8d0
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 r13
push r15
sub rsp, 0x48
xor esi, esi
mov qword [rsp + 0x40], r12
xor ebp, ebp
mov qword [rsp + 0x38], r14
mov rbx, r9
lea r10, [0x180000000]
xor r9d, r9d
mov r13, rdx
lea r15d, [rsi + 1]
mov qword [rsp + 0x80], r9
mov rdi, rcx
cmp byte [rdi], 0x22
jne 0x18001f940
mov rax, rdi
movzx edx, byte [rax + 1]
mov byte [rax], dl
lea rax, [rax + 1]
test dl, dl
jne 0x18001f920
test ebp, ebp
je 0x18001f937
cmp byte [rdi], 0x22
je 0x18001f940
xor eax, eax
test ebp, ebp
sete al
mov ebp, eax
movzx edx, byte [rdi]
cmp edx, 0x24
ja case.0x18001f960.3
movzx eax, byte [r10 + rdx + 0x1fc54]
mov ecx, dword [r10 + rax*4 + 0x1fc44]
add rcx, r10
jmp rcx
test ebp, ebp
je 0x18001f974
test r15d, r15d
je 0x18001fc09
jmp 0x18001fbf7
cmp dword [sym.ProxyProtocol.dll_included], 0
jne 0x18001fc09
mov r9, rdi
mov qword [rsp + 0x80], rdi
mov byte [rdi], 0
inc rdi
jmp 0x18001f918
test ebp, ebp
jne case.0x18001f960.3
mov byte [rdi], bpl
lea r15d, [rbp + 1]
test r9, r9
je 0x18001fc09
lea r14, [r9 + 1]
xor edx, edx
mov rcx, r14
dec esi
call fcn.18003b0ac
mov r12d, eax
test eax, eax
jg 0x18001f9fc
lea ecx, [rbp + 2]
call fcn.180036680
mov rcx, rax
lea rdx, str.Failed_to_open__s_n
mov r8, r14
call sym.ProxyProtocol.dll_fprintf
mov r8d, dword [rsp + 0x90]
lea r10, [0x180000000]
mov r9, qword [rsp + 0x80]
inc rdi
jmp 0x18001f918
mov rdx, qword [rsp + 0xa8]
mov r9, qword [rsp + 0xa0]
mov ecx, dword [rdx]
mov eax, ecx
sub eax, dword [r9]
cmp eax, 0xffff
jge 0x18001fa7e
lea eax, [rcx + 0xffff]
mov dword [rdx], eax
mov rcx, qword [rbx]
movsxd rdx, eax
call fcn.18002babc
mov qword [rbx], rax
test rax, rax
jne 0x18001fa76
lea ecx, [rax + 2]
call fcn.180036680
mov rcx, rax
lea rdx, str.Failed_to_allocate_memory_for__s_n
mov r8, r14
call sym.ProxyProtocol.dll_fprintf
mov ecx, r12d
call fcn.18003a14c
mov r8d, dword [rsp + 0x90]
lea r10, [0x180000000]
mov r9, qword [rsp + 0x80]
inc rdi
jmp 0x18001f918
mov r9, qword [rsp + 0xa0]
movsxd rax, esi
xor ebx, ebx
mov rdx, qword [r13 + rax*8]
lea r13, [r13 + rax*8]
cmp rdx, r14
je 0x18001fac1
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x18001faa0
movsxd rcx, dword [r9]
mov r14, qword [rsp + 0x98]
movsxd r8, ebx
add rcx, qword [r14]
call fcn.18004cb20
jmp 0x18001fac9
mov r14, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
mov r8d, 0xfffe
sub r8d, ebx
mov ecx, r12d
movsxd rdx, dword [rax]
movsxd rax, ebx
add rdx, rax
add rdx, qword [r14]
call fcn.18003babc
mov r14d, eax
test eax, eax
jg 0x18001fb3c
mov rcx, qword [rsp + 0x80]
inc rcx
call fcn.18003690c
mov ecx, r12d
call fcn.18003a14c
mov r8d, dword [rsp + 0x90]
lea r10, [0x180000000]
mov r9, qword [rsp + 0x80]
inc rdi
mov r13, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x98]
jmp 0x18001f918
mov ecx, r12d
call fcn.18003a14c
mov r9, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x98]
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 + 0xa8]
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 + 0x90]
mov r9, rdx
inc dword [sym.ProxyProtocol.dll_included]
sub r8d, esi
mov rdx, r13
call sym.ProxyProtocol.dll_parsestr
dec dword [sym.ProxyProtocol.dll_included]
lea r10, [0x180000000]
mov r13, qword [rsp + 0x88]
xor r9d, r9d
mov r8d, dword [rsp + 0x90]
add esi, eax
mov qword [rsp + 0x80], r9
inc rdi
jmp 0x18001f918
test r15d, r15d
je 0x18001fc09
test ebp, ebp
je 0x18001fbf7
cmp dl, 0x22
jne 0x18001fbf7
cmp byte [rdi + 1], dl
je 0x18001fbf7
inc rdi
xor ebp, ebp
movsxd rax, esi
inc esi
mov qword [r13 + rax*8], rdi
cmp esi, r8d
jge 0x18001fc28
xor r15d, r15d
inc rdi
jmp 0x18001f918
test ebp, ebp
je 0x18001fc1c
mov eax, 0xffffffff
jmp 0x18001fc2a
movsxd rax, esi
mov qword [r13 + rax*8], 0
mov eax, esi
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
add rsp, 0x48
pop r15
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret