// File: /workspace/github_c_makefile_star2_O0/howerj[P]eweb/eweb.c
// Function: eweb_get_header
eweb_http_header_t eweb_get_header(const char *name, const char *request, const long max_len) {
	assert(name);
	assert(request);
	eweb_http_header_t retval = { .name = { 0 } };
	size_t x = 0;
	char *ptr = strstr(request, name);
	char * const end = ptr + max_len;
	strncpy(retval.name, name, sizeof(retval.name) - 1);
	retval.name[sizeof(retval.name) - 1] = 0;

	if (!ptr) {
		retval.value[0] = 0;
		return retval;
	}

	while (*ptr++ != ':' && ptr <= end) ; // !?
	while (isblank(*++ptr) && ptr <= end) ; // !?
	while (x < (sizeof(retval.value) - 1)/*!!*/ && *ptr != '\r' && *ptr != '\n' && ptr <= end)
		retval.value[x++] = *ptr++;
	retval.value[x] = 0;
	return retval;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x40(%rbp)
movq %rdi, -0x38(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x3ad5
jmp 0x3af4
leaq 0x4282(%rip), %rdi      # 0x7d5e
leaq 0x3e65(%rip), %rsi      # 0x7948
movl $0xd3, %edx
leaq 0x4274(%rip), %rcx      # 0x7d63
callq 0x2100
cmpq $0x0, -0x10(%rbp)
je 0x3afd
jmp 0x3b1c
leaq 0x3b1e(%rip), %rdi      # 0x7622
leaq 0x3e3d(%rip), %rsi      # 0x7948
movl $0xd4, %edx
leaq 0x424c(%rip), %rcx      # 0x7d63
callq 0x2100
movq -0x40(%rbp), %rdi
xorl %esi, %esi
movl $0x131, %edx            # imm = 0x131
callq 0x2130
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0x2320
movq -0x40(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rsi
movl $0x31, %edx
callq 0x2060
movq -0x40(%rbp), %rax
movb $0x0, 0x31(%rax)
cmpq $0x0, -0x28(%rbp)
jne 0x3b7f
movq -0x40(%rbp), %rax
movb $0x0, 0x32(%rax)
jmp 0x3c81
jmp 0x3b81
movq -0x28(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x28(%rbp)
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x3a, %ecx
movb %al, -0x41(%rbp)
je 0x3bab
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
setbe %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x3bb4
jmp 0x3bb6
jmp 0x3b81
jmp 0x3bb8
callq 0x2330
movq (%rax), %rax
movq -0x28(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x1, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x42(%rbp)
je 0x3bf5
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
setbe %al
movb %al, -0x42(%rbp)
movb -0x42(%rbp), %al
testb $0x1, %al
jne 0x3bfe
jmp 0x3c00
jmp 0x3bb8
jmp 0x3c02
xorl %eax, %eax
cmpq $0xfe, -0x20(%rbp)
movb %al, -0x43(%rbp)
jae 0x3c41
movq -0x28(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xd, %ecx
movb %al, -0x43(%rbp)
je 0x3c41
movq -0x28(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xa, %ecx
movb %al, -0x43(%rbp)
je 0x3c41
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
setbe %al
movb %al, -0x43(%rbp)
movb -0x43(%rbp), %al
testb $0x1, %al
jne 0x3c4a
jmp 0x3c74
movq -0x40(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movb (%rcx), %dl
movq -0x20(%rbp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, -0x20(%rbp)
movb %dl, 0x32(%rax,%rcx)
jmp 0x3c02
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movb $0x0, 0x32(%rax,%rcx)
movq -0x38(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)