Function at 0x1400c27d8
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
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [r8]
mov rsi, rcx
mov rcx, qword [rcx + 0x148]
mov r14, rdx
mov qword [rbp - 0x18], rax
mov rbx, rcx
mov qword [rbp - 0x10], rcx
mov r12, rcx
lea r13, [rsi + 0xcb8]
mov r15, rax
mov rdi, rax
mov r8, rax
mov edx, 0xa
mov qword [rbp + 0x40], r12
call fcn.140101800
mov rcx, rax
mov rdx, r12
test rax, rax
je 0x1400c3158
mov rdi, qword [rbp + 0x50]
lea r8, [rcx + 1]
sub rbx, rax
mov rcx, r13
lea rax, [r15 - 1]
add rax, rbx
mov qword [rdi], rax
mov qword [rsi + 0x148], r8
sub r8, r12
call fcn.1400a8c10
xor r15d, r15d
test eax, eax
jne 0x1400c28da
cmp dword [rsi + 0x144], r15d
jne 0x1400c28f2
mov rcx, r13
call fcn.1400a8c54
mov rcx, r13
mov rbx, rax
call fcn.1400a8c5c
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c3914
lea ebx, [r15 + 2]
cmp eax, ebx
jne 0x1400c28f7
mov edx, ebx
mov rcx, r14
call fcn.1400b4598
cmp byte [rsi + 0xaf1], r15b
je 0x1400c31cc
mov byte [rsi + 0x1c1], r15b
cmp qword [rdi], r15
je 0x1400c3015
mov dword [rsi + 0x140], 1
xor eax, eax
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ebx, 2
mov rcx, r13
call fcn.1400a8c5c
mov r12, rax
cmp byte [rax], 0xa
je 0x1400c2c1a
cmp byte [rax], 0xd
je 0x1400c2c1a
mov edx, dword [rsi + 0x144]
mov r15d, ebx
lea ecx, [rdx + 1]
mov dword [rsi + 0x144], ecx
test edx, edx
jne 0x1400c2b23
mov rax, qword [r14 + 0x3e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1400c2abb
lea rax, [rbp + 0x40]
xor r15d, r15d
mov qword [rsp + 0x30], rax
lea rdi, [rsi + 0x158]
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rdi
lea r9, [rbp - 0x2c]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x28]
mov dword [rbp - 0x2c], r15d
lea rdx, str._HTTP__1d._1d_c_3d_c
mov byte [rbp + 0x40], r15b
mov rcx, r12
call fcn.1400a7a80
mov ebx, eax
cmp eax, 1
jne 0x1400c29bc
cmp dword [rbp - 0x28], 2
jl 0x1400c29bc
mov r9, rdi
lea r8, [rbp - 0x24]
lea rdx, str._HTTP__1_23___d
mov rcx, r12
call fcn.1400a7a80
cmp eax, 2
jne 0x1400c29bc
mov byte [r14 + 0x813], r15b
lea ebx, [rax + 2]
mov byte [rbp - 0x30], 0x20
jmp 0x1400c29e1
mov al, byte [rbp + 0x40]
sub al, 0x30
cmp al, 9
jbe 0x1400c306f
cmp ebx, 4
jl 0x1400c2a4d
cmp dword [rdi], 0x64
jl 0x1400c306f
cmp byte [rbp - 0x30], 0x20
jne 0x1400c3063
mov eax, dword [rbp - 0x28]
lea ecx, [rax + rax*4]
mov eax, dword [rbp - 0x2c]
lea r9d, [rax + rcx*2]
mov ecx, r9d
mov dword [rbp - 0x2c], r9d
sub ecx, 0xa
je 0x1400c2a03
cmp ecx, 1
jne 0x1400c3032
mov byte [r14 + 0x813], r9b
cmp dword [rsi + 0x174], 3
jne 0x1400c2a28
cmp r9b, 0x14
je 0x1400c2a28
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rsi
call fcn.1400b3548
cmp byte [r14 + 0x813], 0x14
jae 0x1400c2ab1
mov rax, qword [r14 + 0x7d0]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rsi
or dword [rax], 0xffffffff
call fcn.1400b3548
jmp 0x1400c2ab1
test ebx, ebx
jne 0x1400c3063
mov r8, rdi
lea rdx, str._HTTP__3d
mov rcx, r12
call fcn.1400a7a80
mov byte [r14 + 0x813], 0xa
test eax, eax
jne 0x1400c2b0c
mov rcx, r13
call fcn.1400a8c54
mov rcx, r13
mov rbx, rax
call fcn.1400a8c5c
mov rdx, rax
mov r8, rbx
mov rcx, rsi
call fcn.1400c381c
cmp eax, 1
jne 0x1400c307e
mov dword [rdi], 0xc8
mov ebx, eax
mov byte [r14 + 0x813], 0xa
test ebx, ebx
je 0x1400c307e
jmp 0x1400c2b0c
bt ecx, 0x12
jae 0x1400c307b
lea rax, [rsi + 0x158]
mov rcx, r12
mov qword [rsp + 0x28], rax
lea r9, [rbp - 0x20]
lea rax, [rbp - 0x2f]
lea r8, [rbp - 0x1c]
mov qword [rsp + 0x20], rax
lea rdx, str._RTSP__1d._1d_c_3d
call fcn.1400a7a80
cmp eax, 4
jne 0x1400c307b
cmp byte [rbp - 0x2f], 0x20
jne 0x1400c307b
mov byte [r14 + 0x813], 0xb
mov rdx, r14
mov rcx, rsi
call fcn.1400c33bc
test eax, eax
jne 0x1400c28da
lea r15d, [rax + 6]
mov rcx, r13
call fcn.1400a8c5c
mov rcx, r13
mov rbx, rax
call fcn.1400a8c54
mov r8, rax
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.140101800
test rax, rax
jne 0x1400c3093
mov ecx, dword [rsi + 0x144]
cmp ecx, 2
jl 0x1400c2b82
cmp byte [rbx], 0x20
je 0x1400c2b64
cmp byte [rbx], 9
jne 0x1400c2b69
cmp ecx, 2
jg 0x1400c2b82
mov r8, rdi
mov edx, 0x3a
mov rcx, rbx
call fcn.140101800
test rax, rax
je 0x1400c308a
mov r8, r12
mov rdx, r14
mov rcx, rsi
call fcn.1400c1784
xor ecx, ecx
test eax, eax
jne 0x1400c28da
mov ebx, dword [rsi + 0x158]
mov edi, r15d
or edi, 1
cmp byte [rsi + 0xad1], cl
mov rcx, r13
cmove edi, r15d
call fcn.1400a8c54
mov r9, rax
mov r8, r12
mov edx, 1
mov rcx, rsi
call fcn.1400b3398
mov rcx, r13
call fcn.1400a8c54
mov edx, edi
mov r9, rax
or edx, 0x10
lea eax, [rbx - 0x64]
cmp eax, 0x64
mov r8, r12
mov rcx, rsi
cmovae edx, edi
call fcn.1400b3390
test eax, eax
jne 0x1400c28da
mov rcx, r13
call fcn.1400a8c54
add qword [rsi + 0x1388], rax
mov rcx, r13
call fcn.1400a8c54
add qword [rsi + 0x108], rax
jmp 0x1400c2fe4
mov ecx, dword [rsi + 0x158]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1400c2c9a
sub ecx, 0x64
je 0x1400c2c5d
cmp ecx, 1
je 0x1400c2c45
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
jmp 0x1400c2c8e
cmp dword [rsi + 0x174], ebx
je 0x1400c30ac
lea rdi, [rsi + 0x1c1]
mov byte [rdi], r15b
jmp 0x1400c2c8e
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
cmp dword [rsi + 0x170], r15d
jle 0x1400c2c8e
or dword [rsi + 0x15c], ebx
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x170], r15d
call fcn.1400a18b4
mov rbx, rdi
lea r12, [rsi + 0xe8]
jmp 0x1400c2d09
lea rdi, [rsi + 0x1c1]
lea r12, [rsi + 0xe8]
mov byte [rdi], r15b
cmp qword [r12], 0xffffffffffffffff
mov rbx, rdi
jne 0x1400c2d0e
cmp byte [rsi + 0x1c6], r15b
jne 0x1400c2d0e
cmp byte [r14 + 0x3aa], r15b
jne 0x1400c2d0e
cmp byte [r14 + 0x813], 0xb
jne 0x1400c2d0e
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
jne 0x1400c2d0e
cmp byte [rsi + 0x11e8], 5
je 0x1400c2d0e
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rsi
call fcn.1400b3548
mov edx, 2
mov rcx, r14
call fcn.1400b4598
cmp byte [rbx], r15b
jne 0x1400c2d1e
mov rcx, rsi
call fcn.1400c3340
test eax, eax
jne 0x1400c28da
mov al, byte [r14 + 0x3aa]
mov ebx, 0x191
test al, al
je 0x1400c2db5
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c2d46
cmp dword [r14 + 0x4b0], 2
je 0x1400c2d57
cmp eax, 0x197
jne 0x1400c2d78
cmp dword [r14 + 0x4b4], 2
jne 0x1400c2d78
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b3548
mov byte [rsi + 0x130d], 1
mov al, byte [r14 + 0x3aa]
test al, al
je 0x1400c2db5
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c2d8e
cmp dword [r14 + 0x5a8], 1
je 0x1400c2d9f
jmp 0x1400c2db5
cmp eax, 0x197
jne 0x1400c2db5
cmp dword [r14 + 0x5ac], 1
jne 0x1400c2db5
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b3548
mov byte [rsi + 0x130d], 1
cmp dword [r14 + 0x5a8], 3
jne 0x1400c2dd2
cmp dword [rsi + 0x158], ebx
je 0x1400c2dd2
mov dword [r14 + 0x5a8], 4
cmp dword [r14 + 0x5ac], 3
jne 0x1400c2df3
cmp dword [rsi + 0x158], 0x197
je 0x1400c2df3
mov dword [r14 + 0x5ac], 4
mov eax, dword [rsi + 0x158]
sub eax, 0x64
cmp eax, 0x64
mov al, byte [rsi + 0xad1]
sbb ebx, ebx
and ebx, 0x10
neg al
sbb ecx, ecx
neg ecx
add ecx, 2
or ebx, ecx
mov rcx, r13
call fcn.1400a8c54
mov rcx, r13
mov r15, rax
call fcn.1400a8c5c
mov r8, rax
mov r9, r15
mov edx, ebx
mov rcx, rsi
call fcn.1400b3390
xor ebx, ebx
test eax, eax
jne 0x1400c28da
mov r9, qword [rsi + 0x108]
movsxd rcx, r15d
add qword [rsi + 0x1388], rcx
add r9, rcx
mov qword [rsi + 0x108], r9
mov rcx, rsi
mov r8d, dword [rsi + 0x158]
call fcn.1400c3e14
test al, al
jne 0x1400c3142
lea eax, [r8 - 0x64]
cmp eax, 0x63
cmova r9, rbx
mov qword [rsi + 0x110], r9
call fcn.1400c07ec
test eax, eax
jne 0x1400c28da
cmp dword [rsi + 0x158], 0x12c
jl 0x1400c2fdc
cmp byte [r14 + 0x3b4], bl
jne 0x1400c2fbd
cmp byte [r14 + 0x3aa], bl
jne 0x1400c2fbd
cmp byte [r14 + 0x3b5], bl
jne 0x1400c2fc6
movzx ecx, byte [rsi + 0x11e8]
sub ecx, 1
je 0x1400c2ee9
sub ecx, 1
je 0x1400c2ee9
sub ecx, 1
je 0x1400c2ee9
cmp ecx, 1
jne 0x1400c2fbd
xor edx, edx
mov rcx, rsi
call fcn.1400a18b4
cmp byte [rsi + 0x1c3], bl
jne 0x1400c2fbd
cmp dword [rsi + 0x158], 0x1a1
jne 0x1400c2f4a
cmp byte [rsi + 0x130f], bl
je 0x1400c2f4a
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rsi
call fcn.1400b3548
mov rcx, qword [rsi + 0x11f0]
mov byte [rsi + 0x1310], 1
call qword [fcn.14014a9a8]
mov rdx, r12
mov rcx, rsi
mov qword [rsi + 0x198], rax
call fcn.1400b9e44
jmp 0x1400c2fbd
mov rcx, rsi
cmp byte [rsi + 0xacd], bl
je 0x1400c2f78
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1400b3548
cmp dword [rsi + 0x170], ebx
jle 0x1400c2fbd
or dword [rsi + 0x15c], 2
mov dword [rsi + 0x170], ebx
jmp 0x1400c2fbd
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1400b3548
mov edx, 2
mov rcx, r14
call fcn.1400b4598
mov rdx, r12
mov rcx, rsi
call fcn.1400b9e44
test eax, eax
jne 0x1400c28da
mov byte [rsi + 0x1c3], 1
cmp byte [rsi + 0x130f], bl
je 0x1400c2fbd
mov dword [rsi + 0x170], 3
cmp byte [r14 + 0x3b5], bl
je 0x1400c2fdc
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rsi
call fcn.1400b3548
or dword [rsi + 0x15c], 2
cmp byte [rdi], bl
je 0x1400c30d8
mov rcx, r13
call fcn.1400a8c60
mov rbx, qword [rsi + 0x148]
xor eax, eax
cmp byte [rbx], al
je 0x1400c28d8
mov r15, qword [rbp + 0x50]
mov r12, rbx
mov rcx, rbx
mov r15, qword [r15]
mov rdi, r15
mov r8, r15
jmp 0x1400c2827
mov rax, qword [rbp - 0x18]
mov dword [rsi + 0x140], ebx
mov qword [rdi], rax
mov rax, qword [rbp - 0x10]
mov qword [rsi + 0x148], rax
jmp 0x1400c28d8
mov eax, 0x66666667
imul r9d
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov r8d, edx
lea ecx, [rdx + rdx*4]
add ecx, ecx
lea rdx, str.Unsupported_HTTP_version___u._d__in_response
sub r9d, ecx
mov rcx, rsi
call fcn.1400b3474
jmp 0x1400c31db
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x1400c31d3
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x1400c31d3
xor r15d, r15d
mov byte [rsi + 0x1c1], r15b
jmp 0x1400c28d8
lea rdx, str.Header_without_colon
jmp 0x1400c309a
lea rdx, str.Nul_byte_in_header
mov rcx, rsi
call fcn.1400b3474
mov eax, 8
jmp 0x1400c28da
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rsi
call fcn.1400b3548
mov dword [rsi + 0x174], 3
mov byte [rsi + 0x1c1], 1
mov dword [rsi + 0x144], r15d
jmp 0x1400c31db
cmp byte [rsi + 0xad4], bl
jne 0x1400c3103
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
je 0x1400c310c
cmp dword [rsi + 0xa20], 2
jne 0x1400c310c
cmp qword [r12], 0xffffffffffffffff
jg 0x1400c310c
mov rax, qword [rbp + 0x58]
mov byte [rax], 1
jmp 0x1400c3110
mov rax, qword [rbp + 0x58]
cmp qword [rsi + 0xf0], rbx
jne 0x1400c311e
mov byte [rax], 1
jmp 0x1400c3122
cmp byte [rax], bl
je 0x1400c3129
and dword [rsi + 0x15c], 0xfffffffe
mov r8, qword [rbp + 0x40]
mov r9, r15
mov edx, 1
mov rcx, rsi
call fcn.1400b3398
jmp 0x1400c28d8
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1400b3474
mov eax, 0x16
jmp 0x1400c28da
mov r8, rdi
mov rcx, r13
call fcn.1400a8c10
xor edi, edi
test eax, eax
jne 0x1400c28da
cmp dword [rsi + 0x144], edi
jne 0x1400c28d8
mov rcx, r13
call fcn.1400a8c54
mov rcx, r13
mov rbx, rax
call fcn.1400a8c5c
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c3914
lea ecx, [rdi + 2]
cmp eax, ecx
jne 0x1400c28d8
mov dword [rsi + 0x140], ecx
mov edx, ecx
mov rcx, r14
mov byte [rsi + 0x1c1], dil
call fcn.1400b4598
cmp byte [rsi + 0xaf1], dil
jne 0x1400c28d8
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rsi
call fcn.1400b3474
mov eax, 1
jmp 0x1400c28da