Function at 0x1401b07a0
Capabilities:
Check for software breakpoints
Parse credit card information

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rax, qword [r9]
mov r12d, dword [rsp + 0x80]
mov rdi, rcx
mov rbx, rdx
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
mov rbp, r8
mov rsi, r9
call sym.nghttp2_check_header_name
test eax, eax
jne 0x1401b080f
mov rax, qword [rsi]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1401b0956
mov r8, qword [rax + 0x10]
xor eax, eax
cmp byte [r8], 0x3a
je case.0x1401b0a05.56
mov dil, byte [r8 + rax]
lea edx, [rdi - 0x41]
cmp dl, 0x19
jbe case.0x1401b0a05.56
inc rax
cmp rcx, rax
jne 0x1401b07f2
jmp 0x1401b0956
mov rcx, qword [rsi + 8]
mov eax, dword [rsi + 0x10]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
cmp eax, 5
je 0x1401b087c
jg 0x1401b0838
cmp eax, 1
je 0x1401b084b
cmp eax, 3
je 0x1401b0855
test eax, eax
je 0x1401b085f
jmp 0x1401b0928
cmp eax, 0x25
je 0x1401b085f
cmp eax, 0x42
je 0x1401b08ff
jmp 0x1401b0928
call sym.nghttp2_check_method
jmp 0x1401b093d
call sym.nghttp2_check_path
jmp 0x1401b093d
cmp byte [rdi + 0xb74], 0
jne 0x1401b0872
cmp byte [rbp + 0xc], 5
jne 0x1401b0928
call sym.nghttp2_check_authority
jmp 0x1401b093d
test rdx, rdx
jne 0x1401b08ae
mov rax, qword [rsi]
cmp qword [rax + 0x18], 0
jne 0x1401b0946
mov r8d, 0x1a8
lea rdx, str.nghttp2_lib_nghttp2_http.c
lea rcx, str.nv__name__len___0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x1401b0946
mov al, byte [rcx]
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x1401b0881
add rdx, rcx
lea rax, [rcx + 1]
movabs r9, 0x3ff680000000000
cmp rdx, rax
je 0x1401b0967
mov cl, byte [rax]
mov r8d, ecx
and r8d, 0xffffffdf
sub r8d, 0x41
cmp r8b, 0x19
jbe 0x1401b08fa
cmp cl, 0x39
ja 0x1401b0881
mov r10, r9
shr r10, cl
mov rcx, r10
and cl, 1
je 0x1401b0881
inc rax
jmp 0x1401b08cb
test byte [rbx + 0xd8], 0x40
je 0x1401b0928
xor eax, eax
cmp rax, rdx
je 0x1401b0881
mov r8b, byte [rcx + rax]
cmp r8b, 0x20
je 0x1401b0923
cmp r8b, 9
jne 0x1401b0928
inc rax
jmp 0x1401b090a
test byte [rbx + 0xd8], 0x40
je 0x1401b0938
call sym.nghttp2_check_header_value
jmp 0x1401b093d
call sym.nghttp2_check_header_value_rfc9113
test eax, eax
jne 0x1401b0967
jmp 0x1401b0881
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
cmp byte [rax], 0x3a
je case.0x1401b0a05.56
or dword [rbx + 0xd4], 0x40
mov eax, 0xffffff97
jmp 0x1401b0e54
mov rax, qword [rsi]
cmp byte [rdi + 0xb74], 0
mov rax, qword [rax + 0x10]
mov cl, byte [rax]
jne 0x1401b0987
cmp byte [rbp + 0xc], 5
jne 0x1401b0ccd
xor edx, edx
jmp 0x1401b0993
xor edx, edx
cmp byte [rdi + 0xb71], 0
setne dl
cmp cl, 0x3a
jne 0x1401b09ae
test r12d, r12d
jne case.0x1401b0a05.56
test byte [rbx + 0xd4], 0x40
jne case.0x1401b0a05.56
mov eax, dword [rsi + 0x10]
cmp eax, 0x25
je 0x1401b0bcc
jg 0x1401b09eb
cmp eax, 3
je 0x1401b0ae3
jg 0x1401b09d4
test eax, eax
je 0x1401b0a07
dec eax
je 0x1401b0a12
jmp case.0x1401b0a05.57
cmp eax, 5
je 0x1401b0b3b
cmp eax, 0x1b
je 0x1401b0bd4
jmp case.0x1401b0a05.57
sub eax, 0x38
cmp eax, 0xb
ja case.0x1401b0a05.57
lea r8, [0x140279be0]
movsxd rax, dword [r8 + rax*4]
add rax, r8
jmp rax
mov r8d, 1
jmp 0x1401b0bba
mov r8d, 4
mov rdx, rsi
mov rcx, rbx
call sym.check_pseudo_header
test eax, eax
je case.0x1401b0a05.56
mov rax, qword [rsi + 8]
mov rdx, qword [rax + 0x18]
cmp rdx, 4
je 0x1401b0a44
cmp rdx, 7
je 0x1401b0a71
jmp 0x1401b0caf
mov rdx, qword [rax + 0x10]
mov r8d, 4
lea rcx, str.HEAD
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401b0caf
or dword [rbx + 0xd4], 0x100
jmp 0x1401b0caf
mov rdx, qword [rax + 0x10]
mov al, byte [rdx + 6]
cmp al, 0x53
je 0x1401b0aba
cmp al, 0x54
jne 0x1401b0caf
mov r8d, 7
lea rcx, str.CONNECT
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401b0caf
test byte [rbx + 0xa8], 1
je case.0x1401b0a05.56
or dword [rbx + 0xd4], 0x80
jmp 0x1401b0caf
mov r8d, 7
lea rcx, str.OPTIONS
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401b0caf
or dword [rbx + 0xd4], 0x200
jmp 0x1401b0caf
mov r8d, 2
mov rdx, rsi
mov rcx, rbx
call sym.check_pseudo_header
test eax, eax
je case.0x1401b0a05.56
mov rdx, qword [rsi + 8]
mov rax, qword [rdx + 0x10]
mov al, byte [rax]
cmp al, 0x2f
jne 0x1401b0b19
or dword [rbx + 0xd4], 0x800
jmp 0x1401b0caf
cmp qword [rdx + 0x18], 1
jne 0x1401b0caf
cmp al, 0x2a
jne 0x1401b0caf
or dword [rbx + 0xd4], 0x1000
jmp 0x1401b0caf
mov r8d, 8
mov rdx, rsi
mov rcx, rbx
call sym.check_pseudo_header
test eax, eax
je case.0x1401b0a05.56
mov rax, qword [rsi + 8]
mov rdx, qword [rax + 0x18]
cmp rdx, 4
jne 0x1401b0b75
mov rdx, qword [rax + 0x10]
mov r8d, 4
lea rcx, str.http
jmp 0x1401b0b90
cmp rdx, 5
jne 0x1401b0caf
mov rdx, qword [rax + 0x10]
mov r8d, 5
lea rcx, str.https
call sym.memieq
test eax, eax
je 0x1401b0caf
or dword [rbx + 0xd4], 0x2000
jmp 0x1401b0caf
test edx, edx
je case.0x1401b0a05.56
mov r8d, 0x8000
mov rdx, rsi
mov rcx, rbx
call sym.check_pseudo_header
test eax, eax
jmp 0x1401b0cad
mov r8d, 0x10
jmp 0x1401b0bba
cmp qword [rbx + 0x30], 0xffffffffffffffff
jne case.0x1401b0a05.56
mov rax, qword [rsi + 8]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rax + 0x10]
test rdx, rdx
je case.0x1401b0a05.56
call sym.parse_uint.part.0
mov qword [rbx + 0x30], rax
inc rax
jmp 0x1401b0cad
mov rax, qword [rsi + 8]
cmp qword [rax + 0x18], 8
jne case.0x1401b0a05.56
mov rdx, qword [rax + 0x10]
mov r8d, 8
lea rcx, str.trailers
call sym.memieq
jmp 0x1401b0bc5
test r12d, r12d
jne 0x1401b0caf
test byte [rbx + 0xa8], 1
je 0x1401b0caf
test byte [rbx + 0xd8], 0x10
je 0x1401b0caf
test byte [rbx + 0xd6], 2
jne 0x1401b0caf
movzx edx, byte [rbx + 0xdd]
lea r12, [rsp + 0x28]
mov rcx, r12
call sym.nghttp2_extpri_from_uint8
mov rax, qword [rsi + 8]
mov rcx, r12
mov rdx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
call sym.nghttp2_http_parse_priority
test eax, eax
jne 0x1401b0c92
mov rcx, r12
call sym.nghttp2_extpri_to_uint8
or dword [rbx + 0xd4], 0x10000
mov byte [rbx + 0xdd], al
jmp 0x1401b0caf
mov eax, dword [rbx + 0xd4]
and eax, 0xfffeffff
or eax, 0x20000
mov dword [rbx + 0xd4], eax
jmp 0x1401b0caf
cmp cl, 0x3a
je case.0x1401b0a05.56
mov rax, qword [rsi]
mov rdx, qword [rax + 0x10]
xor eax, eax
cmp byte [rdx], 0x3a
je 0x1401b0e54
or dword [rbx + 0xd4], 0x40
jmp 0x1401b0e54
cmp cl, 0x3a
jne 0x1401b0ce0
test r12d, r12d
jne case.0x1401b0a05.56
test byte [rbx + 0xd4], 0x40
jne case.0x1401b0a05.56
mov edx, dword [rsi + 0x10]
mov eax, 0xfffffded
cmp edx, 0x38
je 0x1401b0e54
jg 0x1401b0d02
cmp edx, 7
je 0x1401b0d21
cmp edx, 0x1b
je 0x1401b0d65
jmp 0x1401b0e34
cmp edx, 0x3d
je 0x1401b0e06
sub edx, 0x3e
cmp edx, 3
ja 0x1401b0e34
mov eax, 0xfffffded
jmp 0x1401b0e54
mov r8d, 0x20
mov rdx, rsi
mov rcx, rbx
call sym.check_pseudo_header
test eax, eax
je case.0x1401b0a05.56
mov rax, qword [rsi + 8]
cmp qword [rax + 0x18], 3
jne case.0x1401b0a05.56
mov rcx, qword [rax + 0x10]
mov edx, 3
call sym.parse_uint.part.0
mov word [rbx + 0xd0], ax
cmp ax, 0xffff
je case.0x1401b0a05.56
cmp ax, 0x65
jmp 0x1401b0e2d
mov eax, dword [rbx + 0xd0]
cmp ax, 0xcc
jne 0x1401b0db3
cmp qword [rbx + 0x30], 0xffffffffffffffff
jne case.0x1401b0a05.56
mov rax, qword [rsi + 8]
cmp qword [rax + 0x18], 1
jne case.0x1401b0a05.56
mov rdx, qword [rax + 0x10]
mov r8d, 1
lea rcx, [0x140279bdd]
call sym.memieq
test eax, eax
je case.0x1401b0a05.56
mov qword [rbx + 0x30], 0
mov eax, 0xffffff96
jmp 0x1401b0e54
lea edx, [rax - 0x64]
cmp dx, 0x63
jbe case.0x1401b0a05.56
sub ax, 0xc8
cmp ax, 0x63
ja 0x1401b0dd8
mov eax, 0xffffff96
test byte [rbx + 0xd4], 0x80
jne 0x1401b0e54
cmp qword [rbx + 0x30], 0xffffffffffffffff
jne case.0x1401b0a05.56
mov rax, qword [rsi + 8]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rax + 0x10]
test rdx, rdx
je case.0x1401b0a05.56
call sym.parse_uint.part.0
mov qword [rbx + 0x30], rax
inc rax
jmp 0x1401b0e2d
mov rax, qword [rsi + 8]
cmp qword [rax + 0x18], 8
jne case.0x1401b0a05.56
mov rdx, qword [rax + 0x10]
mov r8d, 8
lea rcx, str.trailers
call sym.memieq
test eax, eax
jne 0x1401b0e46
jmp case.0x1401b0a05.56
cmp cl, 0x3a
je case.0x1401b0a05.56
or dword [rbx + 0xd4], 0x40
jmp 0x1401b0e52
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
cmp byte [rax], 0x3a
jne 0x1401b0e3d
xor eax, eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret