Function at 0x180028e30
Capabilities:
Check for software breakpoints

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rsi, r8
mov ebp, edx
mov rdi, rcx
test rcx, rcx
je 0x1800290a0
test r8, r8
je 0x1800290a0
cmp qword [rcx + 0x38], 0
jne 0x1800290a0
mov eax, dword [rcx + 0x128]
cmp eax, 4
je 0x180028e78
cmp eax, 9
jne 0x1800290a0
mov qword [rsp + 0x30], rbx
mov rbx, qword [rcx + 0x20]
movzx eax, byte [rbx + 0x178]
test al, al
jne 0x180029096
cmp byte [rcx + 0x160], al
jne 0x180028ed9
mov eax, dword [rbx + 0x194]
and eax, 8
test al, al
je 0x180028ed9
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [rdi + 0xa8]
je 0x180028ed9
lea rdx, str.Attempted_to_queue_response_on_wrong_thread__n
mov rcx, rbx
call fcn.180029dd0
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x180028ef7
test dword [rbx + 0x194], 0x8000
jne 0x180028ef7
lea rdx, str.Attempted_upgrade_connection_on_daemon_without_MHD_ALLOW_UPGRADE_option__n
jmp 0x180028eba
cmp ebp, 0x65
je 0x180028f0a
test rax, rax
je 0x180028f0a
lea rdx, str.Application_used_invalid_status_code_for_upgrade_response__n
jmp 0x180028eba
lea rcx, [rsi + 0x38]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [rsi + 0x88]
lea rcx, [rsi + 0x38]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r11, qword [rdi + 0x58]
xor ebx, ebx
mov qword [rdi + 0x38], rsi
mov dword [rdi + 0x130], ebp
test r11, r11
je 0x180028f92
movzx ecx, byte [r11]
lea r9, str.HEAD
test cl, cl
je 0x180028f86
mov r10, r11
sub r10, r9
nop
movzx r8d, byte [r9]
cmp cl, r8b
je 0x180028f79
lea eax, [rcx - 0x41]
movsx edx, cl
cmp al, 0x19
ja 0x180028f66
add edx, 0x20
lea eax, [r8 - 0x41]
cmp al, 0x19
movsx eax, r8b
ja 0x180028f75
add eax, 0x20
cmp dl, al
jne 0x180028f92
movzx ecx, byte [r10 + r9 + 1]
inc r9
test cl, cl
jne 0x180028f50
mov eax, ebx
cmp byte [r9], al
sete al
test eax, eax
jne 0x180028faa
cmp ebp, 0xc8
jb 0x180028faa
cmp ebp, 0xcc
je 0x180028faa
cmp ebp, 0x130
jne 0x180028fb5
mov rax, qword [rsi + 0x60]
mov qword [rdi + 0xe8], rax
cmp dword [rdi + 0x128], 4
jne 0x180029085
test r11, r11
je 0x180029085
movzx ecx, byte [r11]
lea r9, str.POST
test cl, cl
je 0x180029016
mov r10, r11
sub r10, r9
movzx r8d, byte [r9]
cmp cl, r8b
je 0x180029009
lea eax, [rcx - 0x41]
movsx edx, cl
cmp al, 0x19
ja 0x180028ff6
add edx, 0x20
lea eax, [r8 - 0x41]
cmp al, 0x19
movsx eax, r8b
ja 0x180029005
add eax, 0x20
cmp dl, al
jne 0x180029022
movzx ecx, byte [r10 + r9 + 1]
inc r9
test cl, cl
jne 0x180028fe0
mov eax, ebx
cmp byte [r9], al
sete al
test eax, eax
jne 0x180029074
movzx ecx, byte [r11]
lea r9, [0x18008b964]
test cl, cl
je 0x18002906a
sub r11, r9
movzx r8d, byte [r9]
cmp cl, r8b
je 0x18002905d
lea eax, [rcx - 0x41]
movsx edx, cl
cmp al, 0x19
ja 0x18002904a
add edx, 0x20
lea eax, [r8 - 0x41]
cmp al, 0x19
movsx eax, r8b
ja 0x180029059
add eax, 0x20
cmp dl, al
jne 0x180029085
movzx ecx, byte [r11 + r9 + 1]
inc r9
test cl, cl
jne 0x180029034
cmp byte [r9], bl
sete bl
test ebx, ebx
je 0x180029085
mov byte [rdi + 0x121], 1
mov dword [rdi + 0x128], 9
cmp byte [rdi + 0x123], 0
jne 0x180029096
mov rcx, rdi
call fcn.180028420
mov eax, 1
jmp 0x180028ec4
mov rbp, qword [rsp + 0x38]
xor eax, eax
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret