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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r12, qword [rcx + 0x140]
lea r13, [rcx + 0xc38]
mov rsi, qword [r8]
mov r14, r8
mov rbp, rdx
mov qword [rsp + 0x80], rsi
mov rdi, rcx
mov qword [rsp + 0x30], r12
mov r8, rsi
mov rcx, r12
mov edx, 0xa
mov r15, r12
call fcn.1402b0f90
mov esi, 1
mov rcx, rax
mov rdx, r15
test rax, rax
je 0x1402728b2
mov rax, qword [rdi + 0x140]
lea r8, [rcx + 1]
sub rax, rcx
mov rcx, r13
sub rax, rsi
add qword [r14], rax
mov qword [rdi + 0x140], r8
sub r8, r15
call fcn.14027efbc
test eax, eax
jne 0x14027277b
cmp dword [rdi + 0x138], eax
jne 0x140271eb0
mov rcx, r13
call fcn.14027f000
mov rcx, r13
mov rbx, rax
call case.0x140058a92.39
mov r8, rbx
mov rdx, rax
mov rcx, rdi
call fcn.14027353c
cmp eax, 2
je 0x14027274d
mov rcx, r13
call case.0x140058a92.39
mov r12, rax
cmp byte [rax], 0xa
je 0x1402722e6
cmp byte [rax], 0xd
je 0x1402722e6
mov edx, dword [rdi + 0x138]
mov r14d, 4
lea ecx, [rdx + 1]
mov dword [rdi + 0x138], ecx
test edx, edx
jne 0x1402721fd
mov rax, qword [rbp + 0x2e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1402720fe
mov al, byte [r12]
mov rbx, r12
jmp 0x140271f16
cmp al, 0x20
je 0x140271f11
cmp al, 9
jne 0x140271f1a
add rbx, rsi
mov al, byte [rbx]
test al, al
jne 0x140271f09
mov r8d, 5
lea rdx, str.HTTP_
mov rcx, rbx
call fcn.1402b4ea0
test eax, eax
jne 0x140271fc6
add rbx, 5
movsx edx, byte [rbx]
mov ecx, edx
sub ecx, 0x31
je 0x140272005
sub ecx, 1
je 0x140271f57
cmp ecx, 1
jne 0x1402727b6
mov al, byte [rbx + 1]
cmp al, 0x20
je 0x140271f62
cmp al, 9
jne 0x140271fc6
lea eax, [rdx - 0x30]
mov r14b, 0x30
lea r9d, [rax + rax*4]
mov al, byte [rbx + 2]
sub al, r14b
add r9d, r9d
cmp al, 9
ja 0x140271fc6
mov al, byte [rbx + 3]
sub al, r14b
cmp al, 9
ja 0x140271fc6
mov al, byte [rbx + 4]
sub al, r14b
cmp al, 9
ja 0x140271fc6
movsx eax, byte [rbx + 2]
lea ecx, [rax + rax*4]
movsx eax, byte [rbx + 3]
lea ecx, [rax + rcx*2]
movsx eax, byte [rbx + 4]
lea ecx, [rcx + rcx*4]
lea ecx, [rcx - 0xa68]
lea ecx, [rax + rcx*2]
mov dword [rdi + 0x150], ecx
mov al, byte [rbx + 5]
cmp al, 0x20
je 0x14027209e
sub al, 9
cmp al, 4
jbe 0x14027209e
mov rcx, r13
call fcn.14027f000
mov rcx, r13
mov rbx, rax
call case.0x140058a92.39
mov rdx, rax
mov r8, rbx
mov rcx, rdi
call fcn.14027353c
cmp eax, esi
jne 0x140272815
mov dword [rdi + 0x150], 0xc8
mov byte [rbp + 0x525], 0xa
jmp 0x1402721e6
add rbx, rsi
cmp byte [rbx], 0x2e
jne 0x1402727ff
mov al, byte [rbx + 1]
mov r14b, 0x30
sub al, r14b
cmp al, sil
ja 0x1402727ff
mov al, byte [rbx + 2]
cmp al, 0x20
je 0x140272032
cmp al, 9
jne 0x1402727ff
movsx r9d, byte [rbx + 1]
mov al, byte [rbx + 3]
sub r9d, 0x26
sub al, r14b
cmp al, 9
ja 0x1402727ff
mov al, byte [rbx + 4]
sub al, r14b
cmp al, 9
ja 0x1402727ff
mov al, byte [rbx + 5]
sub al, r14b
cmp al, 9
ja 0x1402727ff
movsx eax, byte [rbx + 3]
lea ecx, [rax + rax*4]
movsx eax, byte [rbx + 4]
lea ecx, [rax + rcx*2]
movsx eax, byte [rbx + 5]
lea ecx, [rcx + rcx*4]
lea ecx, [rcx - 0xa68]
lea ecx, [rax + rcx*2]
mov dword [rdi + 0x150], ecx
mov al, byte [rbx + 6]
cmp al, 0x20
je 0x14027209e
cmp al, 9
je 0x14027209e
sub al, 0xa
cmp al, 3
ja 0x1402727ff
cmp ecx, 0x64
jl 0x1402727f3
mov ecx, r9d
sub ecx, 0xa
je 0x1402720bd
sub ecx, 1
je 0x1402720bd
cmp ecx, 9
jne 0x1402727c2
mov byte [rbp + 0x525], r9b
cmp dword [rdi + 0x16c], 3
jne 0x1402720e2
cmp r9b, 0x14
je 0x1402720e2
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rdi
call fcn.14027c27c
cmp byte [rbp + 0x525], 0x14
jae 0x1402721e6
mov rax, qword [rbp + 0x4e8]
or dword [rax], 0xffffffff
jmp 0x1402721e6
bt ecx, 0x12
jae 0x140272815
mov al, byte [r12]
mov rbx, r12
jmp 0x14027211e
cmp al, 0x20
je 0x140272119
cmp al, 9
jne 0x140272122
add rbx, rsi
mov al, byte [rbx]
test al, al
jne 0x140272111
mov r8d, 5
lea rdx, str.RTSP_
mov rcx, rbx
call fcn.1402b4ea0
test eax, eax
jne 0x140272815
add rbx, 5
mov r14b, 0x30
mov al, byte [rbx]
sub al, r14b
cmp al, 9
ja 0x14027280b
add rbx, rsi
cmp byte [rbx], 0x2e
jne 0x14027280b
mov al, byte [rbx + 1]
sub al, r14b
cmp al, 9
ja 0x14027280b
mov al, byte [rbx + 2]
cmp al, 0x20
je 0x14027217c
cmp al, 9
jne 0x14027280b
mov al, byte [rbx + 3]
sub al, r14b
cmp al, 9
ja 0x14027280b
mov al, byte [rbx + 4]
sub al, r14b
cmp al, 9
ja 0x14027280b
mov al, byte [rbx + 5]
sub al, r14b
cmp al, 9
ja 0x14027280b
movsx eax, byte [rbx + 3]
lea ecx, [rax + rax*4]
movsx eax, byte [rbx + 4]
lea ecx, [rax + rcx*2]
movsx eax, byte [rbx + 5]
lea ecx, [rcx + rcx*4]
lea ecx, [rcx - 0xa68]
lea ecx, [rax + rcx*2]
mov dword [rdi + 0x150], ecx
mov al, byte [rbx + 6]
cmp al, 0x20
je 0x1402721df
cmp al, 9
je 0x1402721df
sub al, 0xa
cmp al, 3
ja 0x14027280b
mov byte [rbp + 0x525], 0xb
mov rdx, rbp
mov rcx, rdi
call fcn.1402730dc
test eax, eax
jne 0x14027277b
lea r14d, [rax + 0xc]
mov rcx, r13
call case.0x140058a92.39
mov rcx, r13
mov rbx, rax
call fcn.14027f000
mov r8, rax
xor edx, edx
mov rcx, rbx
mov rsi, rax
call fcn.1402b0f90
test rax, rax
jne 0x14027282a
mov ecx, dword [rdi + 0x138]
cmp ecx, 2
jl 0x14027225c
cmp byte [rbx], 0x20
je 0x14027223e
cmp byte [rbx], 9
jne 0x140272243
cmp ecx, 2
jg 0x14027225c
mov r8, rsi
mov edx, 0x3a
mov rcx, rbx
call fcn.1402b0f90
test rax, rax
je 0x140272821
mov r8, r12
mov rdx, rbp
mov rcx, rdi
call fcn.140270d48
test eax, eax
jne 0x14027277b
mov ebx, dword [rdi + 0x150]
mov rcx, r13
call fcn.14027f000
mov esi, 1
mov r9, rax
mov edx, esi
mov r8, r12
mov rcx, rdi
call fcn.14027c0d4
mov rcx, r13
call fcn.14027f000
mov edx, r14d
mov r9, rax
or edx, 0x20
lea eax, [rbx - 0x64]
cmp eax, 0x64
mov r8, r12
mov rcx, rdi
cmovae edx, r14d
call fcn.14027c738
test eax, eax
jne 0x14027277b
mov rcx, r13
call fcn.14027f000
mov rdx, rax
xor r8d, r8d
mov rcx, rdi
call fcn.14026f758
test eax, eax
jne 0x14027277b
jmp 0x14027271b
mov ecx, dword [rdi + 0x150]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1402723c4
sub ecx, 0x64
je 0x140272386
cmp ecx, 1
je 0x14027231c
and dword [rdi + 0x138], 0
lea rsi, [rdi + 0x1ca]
mov byte [rsi], 1
jmp 0x1402723b8
cmp dword [rdi + 0x16c], 2
jne 0x14027237a
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rdi
call fcn.14027c27c
and dword [rdi + 0x138], 0
lea rsi, [rdi + 0x1ca]
mov r9, qword [rdi + 0x140]
xor r8d, r8d
mov byte [rsi], 1
mov rdx, rbp
mov dword [rdi + 0x16c], 3
mov rcx, rdi
mov rax, qword [r14]
mov qword [rsp + 0x20], rax
call fcn.1402640b8
test eax, eax
jne 0x14027277b
and qword [r14], 0
jmp 0x1402723b8
lea rsi, [rdi + 0x1ca]
mov byte [rsi], 0
jmp 0x1402723b8
and dword [rdi + 0x138], 0
lea rsi, [rdi + 0x1ca]
cmp dword [rdi + 0x168], 0
mov byte [rsi], 1
jle 0x1402723b8
and dword [rdi + 0x168], 0
xor edx, edx
or dword [rdi + 0x154], 2
mov rcx, rdi
call fcn.14025b0ac
lea r12, [rdi + 0xf0]
jmp 0x140272446
cmp dword [rdi + 0x16c], 2
jne 0x1402723d9
mov rcx, qword [rdi + 0xd8]
call fcn.14025b250
xor eax, eax
lea rbx, [rdi + 0x1ca]
lea r12, [rdi + 0xf0]
mov byte [rbx], al
cmp qword [r12], 0xffffffffffffffff
mov rsi, rbx
jne 0x140272446
cmp byte [rdi + 0x1cf], al
jne 0x140272446
cmp byte [rbp + 0x2ce], al
jne 0x140272446
cmp byte [rbp + 0x525], 0xb
jne 0x140272446
mov rax, qword [rbp + 0x2e8]
test dword [rax + 0x84], 0x40000
jne 0x140272446
cmp byte [rdi + 0x12ea], 5
je 0x140272446
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rdi
call fcn.14027c27c
mov edx, 2
mov rcx, rbp
call fcn.14027a424
cmp byte [rsi], 0
jne 0x14027245b
mov rcx, rdi
call fcn.140273060
test eax, eax
jne 0x14027277b
cmp byte [rbp + 0x2ce], 0
je 0x1402724a2
mov eax, dword [rdi + 0x150]
cmp eax, 0x191
jne 0x14027247c
cmp dword [rbp + 0x3b0], 1
je 0x14027248c
jmp 0x1402724a2
cmp eax, 0x197
jne 0x1402724a2
cmp dword [rbp + 0x3b4], 1
jne 0x1402724a2
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rdi
call fcn.14027c27c
mov byte [rdi + 0x12f1], 1
cmp dword [rbp + 0x3b0], 3
jne 0x1402724c1
cmp dword [rdi + 0x150], 0x191
je 0x1402724c1
mov dword [rbp + 0x3b0], 4
cmp dword [rbp + 0x3b4], 3
jne 0x1402724e0
cmp dword [rdi + 0x150], 0x197
je 0x1402724e0
mov dword [rbp + 0x3b4], 4
mov eax, dword [rdi + 0x150]
mov rcx, r13
sub eax, 0x64
cmp eax, 0x64
sbb ebx, ebx
and ebx, 0x20
call fcn.14027f000
mov rcx, r13
mov r14, rax
call case.0x140058a92.39
mov r8, rax
lea edx, [rbx + 4]
mov r9, r14
mov rcx, rdi
call fcn.14027c738
test eax, eax
jne 0x14027277b
xor r8d, r8d
mov rdx, r14
mov rcx, rdi
call fcn.14026f758
test eax, eax
jne 0x14027277b
mov r8d, dword [rdi + 0x150]
mov rcx, rdi
call fcn.14027395c
test al, al
jne 0x14027289c
lea eax, [r8 - 0x64]
cmp eax, 0x63
ja 0x14027255b
mov eax, dword [rdi + 0x128]
jmp 0x14027255d
xor eax, eax
mov dword [rdi + 0x130], eax
call fcn.14026fce0
test eax, eax
jne 0x14027277b
cmp dword [rdi + 0x150], 0x12c
jl 0x14027270d
cmp byte [rbp + 0x2d8], al
jne 0x1402726e4
cmp byte [rbp + 0x2ce], al
jne 0x1402726e4
cmp byte [rdi + 0x12fe], al
jne 0x1402726ed
movzx ecx, byte [rdi + 0x12ea]
sub ecx, 1
je 0x1402725c3
sub ecx, 1
je 0x1402725c3
sub ecx, 1
je 0x1402725c3
cmp ecx, 1
jne 0x1402726e4
xor edx, edx
mov rcx, rdi
call fcn.14025b0ac
cmp byte [rdi + 0x1cc], 0
jne 0x1402726e4
cmp dword [rdi + 0x150], 0x1a1
jne 0x14027266e
cmp byte [rdi + 0x12f3], 0
je 0x14027266e
cmp qword [rdi + 0x108], 0
jne 0x140272617
cmp dword [rdi + 0x168], 1
jne 0x140272617
lea rdx, str.Got_HTTP_failure_417_while_waiting_for_a_100
mov rcx, rdi
call fcn.14027c27c
jmp 0x140272646
lea rdx, str.Got_HTTP_failure_417_while_sending_data
mov rcx, rdi
call fcn.14027c27c
mov edx, 2
mov rcx, rbp
call fcn.14027a424
mov rdx, rbp
mov rcx, rdi
call fcn.140273810
test eax, eax
jne 0x14027277b
mov rcx, qword [rdi + 0x1198]
mov byte [rdi + 0x12f4], 1
call qword [case.0x140276512.1]
mov rdx, r12
mov rcx, rdi
mov qword [rdi + 0x190], rax
call fcn.140268234
jmp 0x1402726e4
cmp byte [rdi + 0xa47], 0
mov rcx, rdi
je 0x14027269f
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.14027c27c
cmp dword [rdi + 0x168], 0
jle 0x1402726e4
and dword [rdi + 0x168], 0
or dword [rdi + 0x154], 2
jmp 0x1402726e4
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.14027c27c
mov edx, 2
mov rcx, rbp
call fcn.14027a424
mov rdx, r12
mov rcx, rdi
call fcn.140268234
test eax, eax
jne 0x14027277b
mov byte [rdi + 0x1cc], 1
cmp byte [rdi + 0x12f3], al
je 0x1402726e4
mov dword [rdi + 0x168], 3
cmp byte [rdi + 0x12fe], 0
je 0x14027270d
cmp qword [rbp + 0x310], 0xffffffffffffffff
je 0x14027270d
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rdi
call fcn.14027c27c
or dword [rdi + 0x154], 2
cmp byte [rsi], 0
je 0x140272845
mov esi, 1
mov rcx, r13
call fcn.14027f008
mov r15, qword [rdi + 0x140]
cmp byte [r15], 0
je 0x140272779
mov r14, qword [rsp + 0x90]
mov edx, 0xa
mov rcx, r15
mov r8, qword [r14]
call fcn.1402b0f90
jmp 0x140271e41
mov edx, 2
mov rcx, rbp
call fcn.14027a424
xor eax, eax
cmp byte [rdi + 0xa69], al
je 0x14027291f
mov byte [rdi + 0x1ca], al
cmp qword [r14], rax
je 0x140272793
mov dword [rdi + 0x134], esi
xor eax, eax
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, qword [rsp + 0x80]
mov dword [rdi + 0x134], 2
mov qword [r14], rax
mov rax, qword [rsp + 0x30]
mov qword [rdi + 0x140], rax
jmp 0x140272779
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x140272926
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.14027c1b0
jmp 0x14027292e
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x140272926
lea rdx, str.Unsupported_HTTP_1_subversion_in_response
jmp 0x140272926
mov eax, 8
jmp 0x14027277b
mov byte [rdi + 0x1ca], 0
jmp 0x140272779
lea rdx, str.Header_without_colon
jmp 0x140272831
lea rdx, str.Nul_byte_in_header
mov rcx, rdi
mov ebx, 8
call fcn.14027c1b0
mov eax, ebx
jmp 0x14027277b
cmp byte [rdi + 0x1d4], 0
mov rbx, qword [rsp + 0x98]
je 0x140272859
mov byte [rbx], 1
cmp qword [rdi + 0xf8], 0
jne 0x140272878
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call fcn.140263d88
test al, al
jne 0x140272878
mov byte [rbx], 1
cmp byte [rbx], 0
je 0x140272884
and dword [rdi + 0x154], 0xfffffffe
mov r9, r14
mov r8, r15
mov edx, 1
mov rcx, rdi
call fcn.14027c0d4
jmp 0x140272779
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.14027c1b0
mov eax, 0x16
jmp 0x14027277b
mov r8, qword [r14]
mov rcx, r13
call fcn.14027efbc
test eax, eax
jne 0x14027277b
cmp dword [rdi + 0x138], eax
jne 0x140272779
mov rcx, r13
call fcn.14027f000
mov rcx, r13
mov rbx, rax
call case.0x140058a92.39
mov r8, rbx
mov rdx, rax
mov rcx, rdi
call fcn.14027353c
cmp eax, 2
jne 0x140272779
mov edx, eax
mov byte [rdi + 0x1ca], 0
mov rcx, rbp
mov dword [rdi + 0x134], eax
call fcn.14027a424
cmp byte [rdi + 0xa69], 0
jne 0x140272779
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rdi
call fcn.14027c1b0
mov eax, esi
jmp 0x14027277b