Function at 0x14012cd70
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r13, qword [rcx + 0x20]
lea r14, [rcx + 0xca8]
xor r15d, r15d
mov rbp, r9
mov qword [r9], r15
mov r12, r8
mov rsi, rdx
mov rdi, rcx
nop word [rax + rax]
mov r8, r12
mov edx, 0xa
mov rcx, rsi
call sub.VCRUNTIME140.dll_memchr
mov rbx, rax
mov rdx, rsi
mov rcx, r14
test rax, rax
je 0x14012e04b
sub rbx, rsi
inc rbx
mov r8, rbx
call fcn.1401071b0
test eax, eax
jne 0x14012df4b
add qword [rbp], rbx
add rsi, rbx
sub r12, rbx
mov qword [rsp + 0x78], rsi
mov ebx, dword [rdi + 0x12c]
test ebx, ebx
jne 0x14012ce1f
mov r9, qword [rdi + 0xcb0]
mov rdx, r13
mov r8, qword [r14]
mov rcx, rdi
call fcn.14012b730
cmp eax, 2
je 0x14012de2e
mov r14, qword [r14]
movzx eax, byte [r14]
cmp al, 0xa
je 0x14012d4e7
cmp al, 0xd
je 0x14012d4e7
lea eax, [rbx + 1]
mov ebp, 4
mov dword [rdi + 0x12c], eax
test ebx, ebx
jne 0x14012d386
mov rax, qword [r13 + 0x360]
mov ecx, dword [rax + 0x84]
test ecx, 0xc0000003
je 0x14012d1b1
movzx eax, byte [r14]
mov rbx, r14
test al, al
je 0x14012ce83
cmp al, 0x20
je 0x14012ce78
cmp al, 9
jne 0x14012ce83
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x14012ce70
mov r8d, 5
lea rdx, str.HTTP_
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x14012cf27
movsx edx, byte [rbx + 5]
mov ecx, edx
sub ecx, 0x31
je 0x14012cf8f
sub ecx, 1
je 0x14012cebe
cmp ecx, 1
jne 0x14012de95
movzx eax, byte [rbx + 6]
cmp al, 0x20
je 0x14012ceca
cmp al, 9
jne 0x14012cf27
movsx ecx, byte [rbx + 7]
lea eax, [rdx - 0x30]
lea r9d, [rax + rax*4]
add r9d, r9d
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14012cf27
movsx edx, byte [rbx + 8]
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14012cf27
movsx r8d, byte [rbx + 9]
lea eax, [r8 - 0x30]
cmp al, 9
ja 0x14012cf27
lea ecx, [rcx + rcx*4]
lea ecx, [rdx + rcx*2]
lea ecx, [rcx + rcx*4]
lea ecx, [rcx - 0xa68]
lea ecx, [r8 + rcx*2]
mov dword [rdi + 0x138], ecx
movzx eax, byte [rbx + 0xa]
cmp al, 0x20
je 0x14012d01a
sub al, 9
cmp al, bpl
jbe 0x14012d01a
mov r11, qword [rdi + 0xcb0]
mov esi, r15d
mov rbx, qword [rdi + 0x6f0]
cmp r11, 5
mov r10, qword [rdi + 0xca8]
setae sil
test rbx, rbx
je 0x14012d113
mov r8, qword [rbx]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [r8 + rax], 0
jne 0x14012cf60
cmp rax, r11
jae 0x14012d077
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp byte [r8 + rdx], 0
jne 0x14012cf80
jmp 0x14012d07a
cmp byte [rbx + 6], 0x2e
jne 0x14012def7
movsx ecx, byte [rbx + 7]
lea eax, [rcx - 0x30]
cmp al, 1
ja 0x14012def7
movzx eax, byte [rbx + 8]
cmp al, 0x20
je 0x14012cfb8
cmp al, 9
jne 0x14012def7
lea r9d, [rcx - 0x26]
movsx ecx, byte [rbx + 9]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14012def7
movsx edx, byte [rbx + 0xa]
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14012def7
movsx r8d, byte [rbx + 0xb]
lea eax, [r8 - 0x30]
cmp al, 9
ja 0x14012def7
lea ecx, [rcx + rcx*4]
lea ecx, [rdx + rcx*2]
lea ecx, [rcx + rcx*4]
lea ecx, [rcx - 0xa68]
lea ecx, [r8 + rcx*2]
mov dword [rdi + 0x138], ecx
movzx eax, byte [rbx + 0xc]
cmp al, 0x20
je 0x14012d01a
cmp al, 9
je 0x14012d01a
sub al, 0xa
cmp al, 3
ja 0x14012def7
cmp ecx, 0x64
jl 0x14012dee1
mov ecx, r9d
sub ecx, 0xa
je 0x14012d034
cmp ecx, 1
jne 0x14012deae
lea rbx, [r13 + 0x774]
mov byte [rbx], r9b
cmp dword [rdi + 0x154], 3
jne 0x14012d05c
cmp r9b, 0x14
je 0x14012d05c
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rdi
call fcn.140115960
cmp byte [rbx], 0x14
jae 0x14012d295
mov rax, qword [r13 + 0x740]
mov dword [rax], 0xffffffff
jmp 0x14012d295
mov rdx, r11
test r8, r8
je 0x14012d0f4
test r10, r10
je 0x14012d0fe
cmp byte [r8], 0
mov r9, r10
je 0x14012d0bd
lea rbp, [0x140269d90]
movzx eax, byte [r9]
test al, al
je 0x14012d0bd
test rdx, rdx
je 0x14012d0c2
movzx ecx, byte [r8]
movzx eax, byte [rax + rbp]
cmp byte [rcx + rbp], al
jne 0x14012d0cb
inc r8
dec rdx
inc r9
cmp byte [r8], 0
jne 0x14012d094
test rdx, rdx
jne 0x14012d0d2
mov edx, 1
test edx, edx
jmp 0x14012d0fc
mov edx, r15d
test edx, edx
jmp 0x14012d0fc
movzx ecx, byte [r8]
mov edx, r15d
movzx eax, byte [r9]
lea r8, [0x140269d90]
movzx eax, byte [rax + r8]
cmp byte [rcx + r8], al
sete dl
test edx, edx
jmp 0x14012d0fc
test r10, r10
jne 0x14012d0fe
test rdx, rdx
jne 0x14012d10d
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14012cf50
jmp 0x14012d113
cmp r11, 5
jae 0x14012d18f
cmp r11, 5
mov eax, 5
cmova r11, rax
test r10, r10
je 0x14012df0d
lea rdx, str.HTTP_
lea r8, [0x140269d90]
movzx eax, byte [r10]
test al, al
je 0x14012d160
test r11, r11
je 0x14012d165
movzx ecx, byte [rdx]
movzx eax, byte [rax + r8]
cmp byte [rcx + r8], al
jne 0x14012d16c
inc rdx
dec r11
inc r10
cmp byte [rdx], 0
jne 0x14012d137
test r11, r11
jne 0x14012d171
mov edx, 1
jmp 0x14012d187
mov edx, r15d
jmp 0x14012d187
movzx ecx, byte [rdx]
mov edx, r15d
movzx eax, byte [r10]
movzx eax, byte [rax + r8]
cmp byte [rcx + r8], al
sete dl
test edx, edx
je 0x14012df0d
cmp esi, 1
jne 0x14012df0d
lea rbx, [r13 + 0x774]
mov dword [rdi + 0x138], Ordinal_208
mov byte [rbx], 0xa
jmp 0x14012d295
bt ecx, 0x12
jae 0x14012df0d
movzx eax, byte [r14]
mov rbx, r14
test al, al
je 0x14012d1d9
cmp al, 0x20
je 0x14012d1ce
cmp al, 9
jne 0x14012d1d9
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x14012d1c6
mov r8d, 5
lea rdx, str.RTSP_
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x14012df0d
movzx eax, byte [rbx + 5]
sub al, 0x30
cmp al, 9
ja 0x14012e113
cmp byte [rbx + 6], 0x2e
jne 0x14012e113
movzx eax, byte [rbx + 7]
sub al, 0x30
cmp al, 9
ja 0x14012e113
movzx eax, byte [rbx + 8]
cmp al, 0x20
je 0x14012d22d
cmp al, 9
jne 0x14012e113
movsx ecx, byte [rbx + 9]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14012e113
movsx edx, byte [rbx + 0xa]
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14012e113
movsx r8d, byte [rbx + 0xb]
lea eax, [r8 - 0x30]
cmp al, 9
ja 0x14012e113
lea ecx, [rcx + rcx*4]
lea ecx, [rdx + rcx*2]
lea ecx, [rcx + rcx*4]
lea ecx, [rcx - 0xa68]
lea ecx, [r8 + rcx*2]
mov dword [rdi + 0x138], ecx
movzx eax, byte [rbx + 0xc]
cmp al, 0x20
je 0x14012d28b
cmp al, 9
je 0x14012d28b
sub al, 0xa
cmp al, 3
ja 0x14012e113
lea rbx, [r13 + 0x774]
mov byte [rbx], listen
mov eax, dword [rdi + 0x138]
movzx ecx, byte [rdi + 0x12f9]
mov dword [rdi + 0x1320], eax
movzx eax, byte [rbx]
mov dword [rdi + 0x1328], eax
movzx eax, byte [rbx]
test cl, cl
je 0x14012d2bc
cmp cl, al
jbe 0x14012d2c2
mov byte [rdi + 0x12f9], al
cmp qword [rdi + 0x1100], 0
je 0x14012d2e8
cmp byte [rdi + 0x12fa], 0
jne 0x14012d2e8
cmp dword [rdi + 0x138], 0x1a0
jne 0x14012d2e8
mov byte [rdi + 0x1ea], 1
movzx eax, byte [r13 + 0x774]
cmp al, 0xa
jne 0x14012d317
lea rdx, str.HTTP_1.0__assume_close_after_body
mov rcx, rdi
call fcn.140115960
cmp byte [r13 + 0x346], 1
je 0x14012d33a
mov byte [r13 + 0x346], 1
jmp 0x14012d33a
cmp al, 0x14
je 0x14012d32d
cmp dword [rdi + 0x154], 2
jne 0x14012d33a
cmp dword [rdi + 0x138], 0x65
jne 0x14012d33a
mov rax, qword [r13 + 0x740]
mov dword [rax], 2
mov ecx, dword [rdi + 0x138]
lea eax, [rcx - 0x64]
cmp eax, 0x63
setbe al
mov byte [rdi + 0x1eb], al
sub ecx, 0xcc
je 0x14012d36c
cmp ecx, 0x64
jne 0x14012d381
cmp byte [rdi + 0x540], 0
je 0x14012d36c
mov byte [rdi + 0x13fc], 1
mov qword [rdi + 0xf0], r15
mov qword [rdi + 0xf8], r15
mov byte [rdi + 0x1eb], 1
mov ebp, recv
mov rbx, qword [rdi + 0xca8]
xor edx, edx
mov rsi, qword [rdi + 0xcb0]
mov rcx, rbx
mov r8, rsi
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x14012df78
mov ecx, dword [rdi + 0x12c]
cmp ecx, 2
jl 0x14012d3de
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14012d3c0
cmp al, 9
jne 0x14012d3c5
cmp ecx, 2
jg 0x14012d3de
mov r8, rsi
mov edx, 0x3a
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14012df60
mov r8, r14
mov rdx, r13
mov rcx, rdi
call fcn.14012b960
test eax, eax
jne 0x14012df4b
mov eax, dword [rdi + 0x138]
sub eax, 0x64
cmp eax, 0x64
jae 0x14012d405
or ebp, 0x20
mov r9, qword [rdi + 0xcb0]
mov r8, r14
mov edx, 1
mov rcx, rdi
call fcn.1401156e0
cmp qword [rdi + 0x158], 0
mov rbx, qword [rdi + 0xcb0]
jne 0x14012d43d
mov rcx, rdi
call fcn.1401188a0
test eax, eax
jne 0x14012df4b
mov rdx, qword [rdi + 0x158]
test rdx, rdx
jne 0x14012d44e
lea eax, [rdx + 0x17]
jmp 0x14012d462
mov rax, qword [rdx]
mov r9, r14
mov r8d, ebp
mov qword [rsp + 0x20], rbx
mov rcx, rdi
call qword [rax + Ordinal_26]
test eax, eax
jne 0x14012df4b
mov rcx, qword [rdi + 0xcb0]
mov r9d, 0x4b000
mov r8d, dword [rdi + 0x124]
cmp rcx, r9
jae 0x14012d4bb
mov edx, dword [rdi + 0x1368]
lea eax, [rcx + r8]
add dword [rdi + 0x120], ecx
add edx, ecx
mov dword [rdi + 0x1368], edx
mov dword [rdi + 0x124], eax
cmp eax, r9d
ja 0x14012d4b6
cmp edx, 0x5dc000
jbe 0x14012d4c7
mov r9d, 0x5dc000
mov eax, edx
mov r8d, eax
jmp 0x14012d4be
add r8, rcx
test r8, r8
jne 0x14012e032
cmp qword [rdi + 0xcb0], 0
je 0x14012d4db
mov rax, qword [rdi + 0xca8]
mov byte [rax], 0
mov qword [rdi + 0xcb0], r15
jmp 0x14012de0c
mov ecx, dword [rdi + 0x138]
xor r15b, r15b
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x14012d5f7
sub ecx, 0x64
je 0x14012d5b9
cmp ecx, 1
je 0x14012d520
mov byte [rdi + 0x1e1], 1
mov dword [rdi + 0x12c], 0
jmp 0x14012d6ab
cmp byte [r13 + 0x774], 0xb
jne 0x14012df90
mov eax, dword [rdi + 0x154]
cmp eax, 2
jne 0x14012d56b
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rdi
call fcn.140115960
mov dword [rdi + 0x154], 3
mov r15b, 1
mov byte [rdi + 0x1e1], 1
mov dword [rdi + 0x12c], 0
jmp 0x14012d6ab
cmp eax, 1
jne 0x14012d5ad
mov r8, r12
mov rdx, rsi
mov rcx, rdi
call fcn.140142530
test eax, eax
jne 0x14012df4b
add qword [rbp], r12
xor r12d, r12d
mov byte [rdi + 0x1e1], r15b
cmp byte [rdi + 0xa99], r12b
je 0x14012d6ab
and dword [rdi + 0x13c], 0xfffffffe
jmp 0x14012d6ab
mov byte [rdi + 0x1e1], r15b
jmp 0x14012d6ab
cmp dword [rdi + 0x150], 0
mov byte [rdi + 0x1e1], 1
mov dword [rdi + 0x12c], 0
jle 0x14012d6ab
or dword [rdi + 0x13c], 2
xor edx, edx
mov rcx, rdi
mov dword [rdi + 0x150], 0
call fcn.140105990
jmp 0x14012d6ab
cmp dword [rdi + 0x154], 2
jne 0x14012d60e
mov rax, qword [rdi + 0xd8]
mov byte [rax + 0x1ca], 1
cmp qword [rdi + 0xf0], 0xffffffffffffffff
mov byte [rdi + 0x1e1], r15b
jne 0x14012d6ab
cmp byte [rdi + 0x1ec], r15b
jne 0x14012d6ab
cmp byte [r13 + 0x346], r15b
jne 0x14012d6ab
cmp byte [r13 + 0x774], 0xb
jne 0x14012d6ab
mov rax, qword [r13 + 0x360]
test dword [rax + 0x84], 0x40000
jne 0x14012d6ab
cmp byte [rdi + 0x12fa], 5
je 0x14012d6ab
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rdi
call fcn.140115960
mov rcx, qword [r13 + 0x250]
test rcx, rcx
je 0x14012d699
nop word [rax + rax]
mov rax, qword [rcx]
mov edx, dword [rax + 8]
test dl, 4
jne 0x14012d6ab
test dl, 3
jne 0x14012d699
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14012d680
mov al, 1
cmp al, byte [r13 + 0x346]
je 0x14012d6ab
mov byte [r13 + 0x346], al
cmp byte [rdi + 0x1e1], 0
jne 0x14012d73c
cmp byte [rdi + 0x1ed], 0
jne 0x14012d726
cmp byte [rdi + 0x1ec], 0
jne 0x14012d726
mov r8, qword [rdi + 0xf0]
cmp r8, 0xffffffffffffffff
je 0x14012d73c
mov rax, qword [rdi + 0x700]
test rax, rax
je 0x14012d6ec
cmp r8, rax
jg 0x14012dfa6
mov edx, dword [rdi + 0xb24]
xor ecx, ecx
mov eax, edx
test r8, r8
cmovns rcx, r8
and eax, 0xffffffbf
or edx, 0x40
test r8, r8
cmovs edx, eax
mov dword [rdi + 0xb24], edx
mov qword [rdi + 0xaf8], rcx
mov rax, qword [rdi + 0xf0]
mov qword [rdi + 0xf8], rax
jmp 0x14012d73c
mov qword [rdi + 0xf8], 0xffffffffffffffff
mov qword [rdi + 0xf0], 0xffffffffffffffff
cmp byte [r13 + 0x346], 0
je 0x14012d7d4
mov eax, dword [rdi + 0x138]
cmp eax, 0x191
jne 0x14012d763
cmp dword [r13 + 0x428], 2
je 0x14012d774
jmp 0x14012d78a
cmp eax, 0x197
jne 0x14012d78a
cmp dword [r13 + 0x42c], 2
jne 0x14012d78a
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rdi
call fcn.140115960
mov byte [rdi + 0x1301], 1
cmp byte [r13 + 0x346], 0
je 0x14012d7d4
mov eax, dword [rdi + 0x138]
cmp eax, 0x191
jne 0x14012d7ad
cmp dword [r13 + 0x520], 1
je 0x14012d7be
jmp 0x14012d7d4
cmp eax, 0x197
jne 0x14012d7d4
cmp dword [r13 + 0x524], 1
jne 0x14012d7d4
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rdi
call fcn.140115960
mov byte [rdi + 0x1301], 1
cmp dword [r13 + 0x520], 3
jne 0x14012d7f5
cmp dword [rdi + 0x138], 0x191
je 0x14012d7f5
mov dword [r13 + 0x520], 4
cmp dword [r13 + 0x524], 3
jne 0x14012d816
cmp dword [rdi + 0x138], 0x197
je 0x14012d816
mov dword [r13 + 0x524], 4
mov eax, dword [rdi + 0x138]
mov esi, 4
mov rbx, qword [rdi + 0xcb0]
sub eax, 0x64
mov rbp, qword [rdi + 0xca8]
cmp eax, 0x64
mov eax, 0x24
cmovb esi, eax
cmp qword [rdi + 0x158], 0
jne 0x14012d857
mov rcx, rdi
call fcn.1401188a0
test eax, eax
jne 0x14012df4b
mov rdx, qword [rdi + 0x158]
test rdx, rdx
jne 0x14012d868
lea eax, [rdx + 0x17]
jmp 0x14012d87c
mov rax, qword [rdx]
mov r9, rbp
mov r8d, esi
mov qword [rsp + 0x20], rbx
mov rcx, rdi
call qword [rax + Ordinal_26]
test eax, eax
jne 0x14012df4b
mov edx, dword [rdi + 0x124]
mov r9d, 0x4b000
cmp rbx, r9
jae 0x14012d8cc
mov ecx, dword [rdi + 0x1368]
lea eax, [rbx + rdx]
add dword [rdi + 0x120], ebx
add ecx, ebx
mov dword [rdi + 0x1368], ecx
mov dword [rdi + 0x124], eax
cmp eax, r9d
ja 0x14012d8c7
cmp ecx, 0x5dc000
jbe 0x14012d8d9
mov r9d, 0x5dc000
mov eax, ecx
mov r8d, eax
jmp 0x14012d8d0
lea r8, [rbx + rdx]
test r8, r8
jne 0x14012e032
mov rcx, rdi
call fcn.140127ca0
mov r8d, dword [rdi + 0x138]
test al, al
jne 0x14012e01c
cmp dword [rdi + 0x154], 1
je 0x14012e006
lea eax, [r8 - 0x64]
cmp eax, 0x63
ja 0x14012d90e
mov eax, dword [rdi + 0x120]
jmp 0x14012d910
xor eax, eax
mov edx, dword [rdi + 0x138]
xor bpl, bpl
mov rsi, qword [rdi + 0x20]
xor r14b, r14b
mov dword [rdi + 0x128], eax
xor ebx, ebx
mov rcx, qword [rdi + 0x930]
mov eax, 0xffffffff
test rcx, rcx
mov r9d, 0xffffffbf
cmovne r9d, eax
lea eax, [rdx - 0x64]
cmp eax, 0x63
jbe 0x14012db31
lea r8, [rdi + 0x1301]
cmp byte [r8], bl
je 0x14012d96c
movzx eax, byte [rdi + 0xaae]
neg al
sbb ebx, ebx
and ebx, 0x16
jmp 0x14012db29
mov rax, r8
cmp qword [rdi + 0x12d8], rbx
jne 0x14012d984
test rcx, rcx
je 0x14012d9f1
lea rax, [rdi + 0x1301]
cmp edx, 0x191
je 0x14012d99f
cmp byte [rdi + 0x1f1], bl
je 0x14012d9f1
mov r8, rax
cmp edx, 0x12c
jge 0x14012d9f1
lea rcx, [rdi + 0xd68]
mov edx, r9d
call fcn.1401268d0
movzx ebp, al
test al, al
jne 0x14012d9b9
mov byte [r8], 1
cmp dword [rdi + 0xd6c], 8
jne 0x14012d9f1
cmp byte [rsi + 0x774], 0xb
jbe 0x14012d9f1
lea rdx, str.Forcing_HTTP_1.1_for_NTLM
mov rcx, rdi
call fcn.140115960
cmp byte [rsi + 0x346], 1
je 0x14012d9ea
mov byte [rsi + 0x346], 1
mov byte [rdi + 0x12f8], 2
cmp byte [rsi + 0x342], bl
je 0x14012da35
mov eax, dword [rdi + 0x138]
cmp eax, 0x197
je 0x14012da15
cmp byte [rdi + 0x1f1], bl
je 0x14012da35
cmp eax, 0x12c
jge 0x14012da35
lea rcx, [rdi + 0xd78]
mov edx, 0xffffffbf
call fcn.1401268d0
movzx r14d, al
test al, al
jne 0x14012da35
mov byte [rdi + 0x1301], 1
test bpl, bpl
jne 0x14012daa4
test r14b, r14b
jne 0x14012daa4
cmp dword [rdi + 0x138], 0x12c
jge 0x14012db05
cmp byte [rdi + 0xd74], bl
jne 0x14012db05
cmp byte [rdi + 0x1f1], bl
je 0x14012db05
movzx eax, byte [rdi + 0x12fa]
test al, al
je 0x14012db05
cmp al, 5
je 0x14012db05
mov rcx, qword [rdi + 0x1198]
call qword [case.0x14010f187.0]
mov qword [rdi + 0x1c8], rax
test rax, rax
je 0x14012dfbc
mov byte [rdi + 0xd74], 1
jmp 0x14012db05
movzx eax, byte [rdi + 0x12fa]
test al, al
je 0x14012dad0
cmp al, 5
je 0x14012dad0
cmp byte [rdi + 0x1e7], bl
jne 0x14012dad0
mov rdx, rsi
mov rcx, rdi
call fcn.140126990
mov ebx, eax
test eax, eax
jne 0x14012dfc1
mov rcx, qword [rdi + 0x1c8]
call qword [fcn.14016c458]
mov rcx, qword [rdi + 0x1198]
mov qword [rdi + 0x1c8], 0
call qword [case.0x14010f187.0]
mov qword [rdi + 0x1c8], rax
test rax, rax
je 0x14012dfbc
mov rcx, rdi
call fcn.140127ca0
test al, al
je 0x14012db29
mov r8d, dword [rdi + 0x138]
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.140115830
mov ebx, socket
test ebx, ebx
jne 0x14012dfc1
cmp dword [rdi + 0x138], 0x12c
jl 0x14012ddd4
cmp byte [rdi + 0x1f1], 0
jne 0x14012ddac
cmp byte [r13 + 0x346], 0
jne 0x14012ddac
cmp byte [rdi + 0x1e7], 0
jne 0x14012ddb5
movzx ecx, byte [rdi + 0x12fa]
sub ecx, 1
je 0x14012db88
sub ecx, 1
je 0x14012db88
sub ecx, 1
je 0x14012db88
cmp ecx, 1
jne 0x14012ddac
xor edx, edx
mov rcx, rdi
call fcn.140105990
cmp byte [rdi + 0x1e8], 0
jne 0x14012ddac
cmp dword [rdi + 0x138], 0x1a1
jne 0x14012dcb8
cmp byte [rdi + 0x1303], 0
je 0x14012dcb8
cmp qword [rdi + 0x108], 0
jne 0x14012dbe0
cmp dword [rdi + 0x150], 1
jne 0x14012dbe0
lea rdx, str.Got_HTTP_failure_417_while_waiting_for_a_100
mov rcx, rdi
call fcn.140115960
jmp 0x14012dc3e
lea rdx, str.Got_HTTP_failure_417_while_sending_data
mov rcx, rdi
call fcn.140115960
mov rcx, qword [r13 + 0x250]
test rcx, rcx
je 0x14012dc19
nop dword [rax + rax]
mov rax, qword [rcx]
mov edx, dword [rax + 8]
test dl, 4
jne 0x14012dc2b
test dl, 3
jne 0x14012dc19
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14012dc00
mov al, 1
cmp al, byte [r13 + 0x346]
je 0x14012dc2b
mov byte [r13 + 0x346], al
mov rdx, r13
mov rcx, rdi
call fcn.140126990
test eax, eax
jne 0x14012df4b
mov rcx, qword [rdi + 0x1198]
mov byte [rdi + 0x1304], 1
call qword [case.0x14010f187.0]
cmp byte [rdi + 0x1e8], 0
mov qword [rdi + 0x1c8], rax
jne 0x14012ddac
mov rcx, qword [rdi + 0x168]
test rcx, rcx
je 0x14012dc99
mov rax, qword [rcx]
mov qword [rdi + 0x168], rax
mov rax, qword [rdi + 0x178]
mov qword [rcx], rax
mov qword [rdi + 0x178], rcx
mov rcx, qword [rdi + 0x168]
test rcx, rcx
jne 0x14012dc72
mov qword [rdi + 0x170], 0
mov rcx, rdi
mov byte [rdi + 0x1e9], 1
call fcn.140118160
jmp 0x14012ddac
cmp byte [rdi + 0xaaf], 0
mov rcx, rdi
je 0x14012dcf3
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.140115960
cmp dword [rdi + 0x150], 0
jle 0x14012ddac
or dword [rdi + 0x13c], 2
mov dword [rdi + 0x150], 0
jmp 0x14012ddac
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.140115960
mov rcx, qword [r13 + 0x250]
test rcx, rcx
je 0x14012dd29
nop dword [rax + rax]
mov rax, qword [rcx]
mov edx, dword [rax + 8]
test dl, 4
jne 0x14012dd3b
test dl, 3
jne 0x14012dd29
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14012dd10
mov al, 1
cmp al, byte [r13 + 0x346]
je 0x14012dd3b
mov byte [r13 + 0x346], al
cmp byte [rdi + 0x1e8], 0
jne 0x14012dd99
mov rcx, qword [rdi + 0x168]
test rcx, rcx
je 0x14012dd77
mov rax, qword [rcx]
mov qword [rdi + 0x168], rax
mov rax, qword [rdi + 0x178]
mov qword [rcx], rax
mov qword [rdi + 0x178], rcx
mov rcx, qword [rdi + 0x168]
test rcx, rcx
jne 0x14012dd50
mov qword [rdi + 0x170], 0
mov rcx, rdi
mov byte [rdi + 0x1e9], 1
call fcn.140118160
test eax, eax
jne 0x14012df4b
cmp byte [rdi + 0x1303], 0
je 0x14012ddac
mov dword [rdi + 0x150], 3
cmp byte [rdi + 0x1e7], 0
je 0x14012ddd4
cmp byte [rdi + 0x1e8], 0
jne 0x14012ddd4
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rdi
call fcn.140115960
or dword [rdi + 0x13c], 2
cmp byte [rdi + 0x1e1], 0
je 0x14012dfc5
cmp qword [rdi + 0xcb0], 0
je 0x14012ddf5
mov rax, qword [rdi + 0xca8]
mov byte [rax], 0
mov qword [rdi + 0xcb0], 0
test r15b, r15b
jne 0x14012e0fa
xor r15d, r15d
test r12, r12
je 0x14012df14
mov rsi, qword [rsp + 0x78]
lea r14, [rdi + 0xca8]
mov rbp, qword [rsp + 0x88]
jmp 0x14012cdb0
test r13, r13
je 0x14012de59
mov rcx, qword [r13 + 0x250]
test rcx, rcx
je 0x14012de59
nop
mov rax, qword [rcx]
mov edx, dword [rax + 8]
test dl, 4
jne 0x14012de6b
test dl, 3
jne 0x14012de59
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14012de40
mov al, 1
cmp al, byte [r13 + 0x346]
je 0x14012de6b
mov byte [r13 + 0x346], al
cmp byte [r13 + 0x774], 0xa
jae 0x14012e104
cmp byte [rdi + 0xad1], 0
je 0x14012e0eb
mov byte [rdi + 0x1e1], 0
mov r15b, 1
jmp 0x14012df17
lea rdx, str.Unsupported_HTTP_version_in_response
mov rcx, rdi
call fcn.140115830
mov eax, 1
jmp 0x14012df4b
mov eax, 0x66666667
mov rcx, rdi
imul r9d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov r8d, edx
lea eax, [rdx + rdx*4]
add eax, eax
lea rdx, str.Unsupported_HTTP_version___u._d__in_response
sub r9d, eax
call fcn.140115830
mov eax, 1
jmp 0x14012df4b
lea rdx, str.Unsupported_response_code_in_HTTP_response
mov rcx, rdi
call fcn.140115830
mov eax, 1
jmp 0x14012df4b
lea rdx, str.Unsupported_HTTP_1_subversion_in_response
mov rcx, rdi
call fcn.140115830
mov eax, 1
jmp 0x14012df4b
mov byte [rdi + 0x1e1], 0
xor r15b, r15b
cmp byte [rdi + 0x1e1], 0
jne 0x14012df49
test r15b, r15b
jne 0x14012df49
mov rcx, qword [rdi + 0xca8]
call qword [fcn.14016c458]
xor eax, eax
mov qword [rdi + 0xca8], rax
mov qword [rdi + 0xcb8], rax
mov qword [rdi + 0xcb0], rax
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, str.Header_without_colon
mov rcx, rdi
mov ebx, 8
call fcn.140115830
mov eax, ebx
jmp 0x14012df4b
lea rdx, str.Nul_byte_in_header
mov rcx, rdi
mov ebx, 8
call fcn.140115830
mov eax, ebx
jmp 0x14012df4b
lea rdx, str.unexpected_101_response_code
mov rcx, rdi
call fcn.140115830
mov eax, 8
jmp 0x14012df4b
lea rdx, str.Maximum_file_size_exceeded
mov rcx, rdi
call fcn.140115830
mov eax, 0x3f
jmp 0x14012df4b
mov ebx, reloc.WLDAP32.dll_Ordinal_27
mov eax, ebx
jmp 0x14012df4b
cmp byte [rdi + 0x1f0], 0
je 0x14012dfd5
mov byte [rdi + 0x1e4], 1
cmp qword [rdi + 0xf8], 0
jne 0x14012dfe6
mov byte [rdi + 0x1e4], 1
mov r9, qword [rdi + 0xcb0]
mov edx, 1
mov r8, qword [rdi + 0xca8]
mov rcx, rdi
call fcn.1401156e0
jmp 0x14012df14
lea rdx, str.Refused_WebSockets_upgrade:__d
call fcn.140115830
mov eax, socket
jmp 0x14012df4b
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.140115830
mov eax, socket
jmp 0x14012df4b
lea rdx, str.Too_large_response_headers:__zu____u
mov rcx, rdi
call fcn.140115830
mov eax, gethostname
jmp 0x14012df4b
mov r8, r12
call fcn.1401071b0
test eax, eax
jne 0x14012df4b
add qword [rbp], r12
cmp dword [rdi + 0x12c], eax
jne 0x14012df14
mov r9, qword [rdi + 0xcb0]
mov rdx, r13
mov r8, qword [rdi + 0xca8]
mov rcx, rdi
call fcn.14012b730
cmp eax, 2
jne 0x14012df14
mov byte [rdi + 0x1e1], 0
test r13, r13
je 0x14012e0be
mov rcx, qword [r13 + 0x250]
test rcx, rcx
je 0x14012e0be
mov rax, qword [rcx]
mov edx, dword [rax + 8]
test dl, 4
jne 0x14012e0d0
test dl, 3
jne 0x14012e0be
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14012e0a5
mov al, 1
cmp al, byte [r13 + 0x346]
je 0x14012e0d0
mov byte [r13 + 0x346], al
cmp byte [r13 + 0x774], 0xa
jae 0x14012e104
cmp byte [rdi + 0xad1], 0
je 0x14012e0eb
mov r15b, 1
jmp 0x14012df17
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rdi
call fcn.140115830
mov eax, 1
jmp 0x14012df4b
lea rdx, str.Invalid_status_line
mov rcx, rdi
call fcn.140115830
mov eax, 8
jmp 0x14012df4b