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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x70
mov r15, qword [r8]
lea rbx, [rcx + 0xe8]
mov r12, qword [rbx + 0x60]
mov rdi, r8
mov qword [rsp + 0x60], r12
mov r14, rdx
mov rbp, rcx
mov qword [rsp + 0x58], r15
mov qword [rsp + 0xb8], r13
mov r8, qword [rdi]
xor esi, esi
mov rcx, r12
mov r15d, 5
lea edx, [rsi + 0xa]
call fcn.18020d5b0
mov r8, rax
mov rdx, r12
test rax, rax
je 0x1801db6d1
mov rax, qword [rbx + 0x60]
lea r13, [rbp + 0xcb0]
sub rax, r8
mov rcx, r13
dec rax
add qword [rdi], rax
inc r8
mov qword [rbx + 0x60], r8
sub r8, r12
call fcn.1801c2510
test eax, eax
jne 0x1801db0b6
cmp dword [rbx + 0x5c], eax
jne 0x1801daf3d
mov rcx, r13
call fcn.1801c2570
mov rcx, r13
mov rsi, rax
call sym.gcm64.dll_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
mov rdx, rax
mov rax, qword [r14 + 0x370]
test dword [rax + 0x84], 0x40000
je 0x1801daf25
xor edi, edi
lea rcx, str.RTSP_
cmp rsi, r15
setae dil
cmp rsi, r15
cmova rsi, r15
mov r8, rsi
call sym.gcm64.dll_curl_strnequal
test eax, eax
mov ecx, 2
cmovne ecx, edi
mov rdi, qword [rsp + 0xc0]
jmp 0x1801daf32
mov r8, rsi
mov rcx, rbp
call fcn.1801dbda0
mov ecx, eax
cmp ecx, 2
je 0x1801db565
xor esi, esi
mov rcx, r13
call sym.gcm64.dll_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
mov r15, rax
movzx ecx, byte [rax]
cmp cl, 0xa
je 0x1801db236
cmp cl, 0xd
je 0x1801db236
mov ecx, dword [rbx + 0x5c]
mov edi, 2
lea eax, [rcx + 1]
mov dword [rbx + 0x5c], eax
test ecx, ecx
jne 0x1801db195
mov rax, qword [r14 + 0x370]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1801db12d
lea rax, [rsp + 0xb0]
mov dword [rsp + 0x44], esi
mov qword [rsp + 0x30], rax
lea rsi, [rbx + 0x70]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rsi
lea r9, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x48]
mov byte [rsp + 0xb0], 0
lea rdx, str._HTTP__1d._1d_c_3d_c
mov rcx, r15
call fcn.1801c1a20
mov edi, eax
cmp eax, 1
jne 0x1801db00a
cmp dword [rsp + 0x48], 2
jl 0x1801db00a
mov r9, rsi
lea r8, [rsp + 0x4c]
lea rdx, str._HTTP__1_23___d
mov rcx, r15
call fcn.1801c1a20
cmp eax, 2
jne 0x1801db00a
mov byte [r14 + 0x55f], 0
lea edi, [rax + 2]
mov byte [rsp + 0x40], reloc.WLDAP32.dll_Ordinal_32
jmp 0x1801db039
movzx eax, byte [rsp + 0xb0]
sub al, 0x30
cmp al, 9
jbe 0x1801db604
cmp edi, 4
jl 0x1801db0cd
cmp dword [rsi], 0x64
jl 0x1801db604
cmp byte [rsp + 0x40], 0x20
jne 0x1801db0cd
mov eax, dword [rsp + 0x48]
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x44]
lea r9d, [rax + rcx*2]
lea eax, [r9 - 0xa]
mov dword [rsp + 0x44], r9d
cmp eax, 1
ja 0x1801db5b5
mov byte [r14 + 0x55f], r9b
cmp dword [rbx + 0x8c], 3
jne 0x1801db07f
cmp r9b, 0x14
je 0x1801db07f
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rbp
call fcn.1801cdd00
cmp byte [r14 + 0x55f], 0x14
jae 0x1801db0a5
mov rax, qword [r14 + 0x520]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rbp
mov dword [rax], 0xffffffff
call fcn.1801cdd00
test edi, edi
jne 0x1801db17f
mov byte [rbx + 0xd9], 0
xor eax, eax
mov r13, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
test edi, edi
jne 0x1801db5eb
mov r8, rsi
lea rdx, str._HTTP__3d
mov rcx, r15
call fcn.1801c1a20
mov byte [r14 + 0x55f], 0xa
test eax, eax
jne 0x1801db17f
mov rcx, r13
call fcn.1801c2570
mov rcx, r13
mov rdi, rax
call sym.gcm64.dll_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
mov rdx, rax
mov r8, rdi
mov rcx, rbp
call fcn.1801dbda0
cmp eax, 1
jne 0x1801db0ad
mov dword [rsi], reloc.WLDAP32.dll_Ordinal_200
mov byte [r14 + 0x55f], 0xa
jmp 0x1801db17f
bt ecx, 0x12
jae 0x1801db0ad
lea rax, [rbx + 0x70]
mov rcx, r15
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x50]
lea rax, [rsp + 0x41]
lea r8, [rsp + 0x54]
mov qword [rsp + 0x20], rax
lea rdx, str._RTSP__1d._1d_c_3d
call fcn.1801c1a20
cmp eax, 4
jne 0x1801db0ad
cmp byte [rsp + 0x41], 0x20
jne 0x1801db0ad
mov byte [r14 + 0x55f], 0xb
mov rdx, r14
mov rcx, rbp
call fcn.1801db970
test eax, eax
jne 0x1801db0b6
lea edi, [rax + 6]
mov rcx, rbp
call fcn.1801dc6b0
test eax, eax
jne 0x1801db0b6
mov r8, r15
mov rdx, r14
mov rcx, rbp
call fcn.1801d9d50
test eax, eax
jne 0x1801db0b6
mov esi, edi
mov rcx, r13
or esi, 1
cmp byte [rbp + 0xaca], al
cmove esi, edi
mov edi, dword [rbx + 0x70]
sub edi, 0x64
call fcn.1801c2570
mov r9, rax
mov r8, r15
mov edx, 1
mov rcx, rbp
call fcn.1801cda90
mov rcx, r13
call fcn.1801c2570
mov edx, esi
mov r9, rax
or edx, 0x10
mov r8, r15
cmp edi, 0x64
mov rcx, rbp
cmovae edx, esi
call fcn.1801cda80
test eax, eax
jne 0x1801db0b6
mov rcx, r13
call fcn.1801c2570
add qword [rbp + 0x13a8], rax
mov rcx, r13
call fcn.1801c2570
add qword [rbp + 0x108], rax
jmp 0x1801db541
mov ecx, dword [rbx + 0x70]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1801db29c
sub ecx, 0x64
je 0x1801db273
cmp ecx, 1
je 0x1801db25a
mov byte [rbx + 0xd9], 1
mov dword [rbx + 0x5c], esi
jmp 0x1801db2fe
cmp dword [rbx + 0x8c], 2
je 0x1801db61d
mov byte [rbx + 0xd9], 0
jmp 0x1801db2fe
cmp dword [rbx + 0x88], 0
mov byte [rbx + 0xd9], 1
mov dword [rbx + 0x5c], esi
jle 0x1801db2fe
or dword [rbx + 0x74], 2
xor edx, edx
mov rcx, rbp
mov dword [rbx + 0x88], esi
call fcn.1801bb620
jmp 0x1801db2fe
cmp qword [rbx], 0xffffffffffffffff
mov byte [rbx + 0xd9], 0
jne 0x1801db2fe
cmp byte [rbx + 0xde], 0
jne 0x1801db2fe
cmp byte [r14 + 0x336], 0
jne 0x1801db2fe
cmp byte [r14 + 0x55f], 0xb
jne 0x1801db2fe
mov rax, qword [r14 + 0x370]
test dword [rax + 0x84], 0x40000
jne 0x1801db2fe
cmp byte [rbp + 0x1208], 5
je 0x1801db2fe
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rbp
call fcn.1801cdd00
mov edx, 2
mov rcx, r14
call fcn.1801ced20
cmp byte [rbx + 0xd9], 0
jne 0x1801db317
mov rcx, rbp
call fcn.1801db8e0
test eax, eax
jne 0x1801db0b6
cmp byte [r14 + 0x336], 0
je 0x1801db35f
mov eax, dword [rbp + 0x158]
cmp eax, 0x191
jne 0x1801db338
cmp dword [r14 + 0x3d0], 2
je 0x1801db349
cmp eax, 0x197
jne 0x1801db35f
cmp dword [r14 + 0x3d4], 2
jne 0x1801db35f
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rbp
call fcn.1801cdd00
mov byte [rbp + 0x132d], 1
mov eax, dword [rbx + 0x70]
mov rcx, r13
sub eax, 0x64
cmp eax, 0x64
mov eax, esi
sbb edi, edi
and edi, 0x10
cmp byte [rbp + 0xaca], 0
setne al
add eax, 2
or edi, eax
call fcn.1801c2570
mov rcx, r13
mov rsi, rax
call sym.gcm64.dll_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
mov r8, rax
mov r9, rsi
mov edx, edi
mov rcx, rbp
call fcn.1801cda80
test eax, eax
jne 0x1801db0b6
movsxd rax, esi
mov rcx, rbp
add qword [rbp + 0x13a8], rax
add qword [rbp + 0x108], rax
call fcn.1801dc270
test al, al
jne 0x1801db6b7
mov eax, dword [rbx + 0x70]
xor ecx, ecx
sub eax, 0x64
cmp eax, 0x63
cmovbe rcx, qword [rbp + 0x108]
mov qword [rbp + 0x110], rcx
mov rcx, rbp
call fcn.1801d8cf0
test eax, eax
jne 0x1801db0b6
cmp dword [rbx + 0x70], 0x12c
jl 0x1801db534
cmp byte [r14 + 0x340], al
jne 0x1801db50e
cmp byte [r14 + 0x336], al
jne 0x1801db50e
cmp byte [rbp + 0x133c], al
jne 0x1801db517
movzx eax, byte [rbp + 0x1208]
dec al
cmp al, 3
ja 0x1801db50e
xor edx, edx
mov rcx, rbp
call fcn.1801bb620
cmp byte [rbx + 0xdb], 0
jne 0x1801db50e
cmp dword [rbx + 0x70], 0x1a1
jne 0x1801db498
cmp byte [rbp + 0x132f], 0
je 0x1801db498
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rbp
call fcn.1801cdd00
mov rcx, qword [rbp + 0x1210]
mov byte [rbp + 0x1330], 1
call qword [case.0x1801c19f5.0]
mov rdx, rbx
mov rcx, rbp
mov qword [rbp + 0x198], rax
call fcn.1801dc890
jmp 0x1801db50e
cmp byte [rbp + 0xac6], 0
mov rcx, rbp
je 0x1801db4c9
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1801cdd00
cmp dword [rbx + 0x88], 0
jle 0x1801db50e
or dword [rbx + 0x74], 2
mov dword [rbx + 0x88], 0
jmp 0x1801db50e
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1801cdd00
mov edx, 2
mov rcx, r14
call fcn.1801ced20
mov rdx, rbx
mov rcx, rbp
call fcn.1801dc890
test eax, eax
jne 0x1801db0b6
mov byte [rbx + 0xdb], 1
cmp byte [rbp + 0x132f], al
je 0x1801db50e
mov dword [rbx + 0x88], 3
cmp byte [rbp + 0x133c], 0
je 0x1801db534
cmp qword [r14 + 0x398], 0xffffffffffffffff
je 0x1801db534
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rbp
call fcn.1801cdd00
or dword [rbx + 0x74], 2
cmp byte [rbx + 0xd9], 0
je 0x1801db64a
mov rcx, r13
call fcn.1801c2580
mov r12, qword [rbx + 0x60]
cmp byte [r12], 0
je 0x1801db0b4
mov rdi, qword [rsp + 0xc0]
jmp 0x1801dae71
mov edx, 2
mov rcx, r14
call fcn.1801ced20
cmp byte [rbp + 0xae9], 0
je 0x1801db747
mov byte [rbx + 0xd9], 0
cmp qword [rdi], 0
je 0x1801db598
mov dword [rbx + 0x58], 1
jmp 0x1801db0b4
mov rax, qword [rsp + 0x58]
mov dword [rbx + 0x58], 2
mov qword [rdi], rax
mov rax, qword [rsp + 0x60]
mov qword [rbx + 0x60], rax
jmp 0x1801db0b4
mov eax, 0x66666667
mov rcx, rbp
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.1801cdb70
mov eax, 1
jmp 0x1801db0b6
lea rdx, str.Unsupported_HTTP_version_in_response
mov rcx, rbp
call fcn.1801cdb70
mov eax, 1
jmp 0x1801db0b6
lea rdx, str.Unsupported_response_code_in_HTTP_response
mov rcx, rbp
call fcn.1801cdb70
mov eax, 1
jmp 0x1801db0b6
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rbp
call fcn.1801cdd00
mov eax, 1
mov dword [rbx + 0x8c], 3
mov byte [rbx + 0xd9], 1
mov dword [rbx + 0x5c], esi
jmp 0x1801db0b6
cmp byte [rbp + 0x1cb], 0
je 0x1801db65d
mov rax, qword [rsp + 0xc8]
jmp 0x1801db687
mov rax, qword [r14 + 0x370]
test dword [rax + 0x84], 0x40000
mov rax, qword [rsp + 0xc8]
je 0x1801db68a
cmp dword [rbp + 0xa18], 2
jne 0x1801db68a
cmp qword [rbx], 0xffffffffffffffff
jg 0x1801db68a
mov byte [rax], 1
cmp qword [rbx + 8], 0
jne 0x1801db696
mov byte [rax], 1
jmp 0x1801db69b
cmp byte [rax], 0
je 0x1801db69f
and dword [rbx + 0x74], 0xfffffffe
mov r9, rsi
mov r8, r12
mov edx, 1
mov rcx, rbp
call fcn.1801cda90
jmp 0x1801db0b4
mov r8d, dword [rbx + 0x70]
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1801cdb70
mov eax, reloc.WLDAP32.dll_Ordinal_22
jmp 0x1801db0b6
mov r8, qword [rdi]
lea rcx, [rbp + 0xcb0]
call fcn.1801c2510
test eax, eax
jne 0x1801db0b6
cmp dword [rbx + 0x5c], eax
jne 0x1801db0b4
lea rcx, [rbp + 0xcb0]
call fcn.1801c2570
lea rcx, [rbp + 0xcb0]
mov rdi, rax
call sym.gcm64.dll_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
mov r8, rax
mov r9, rdi
mov rdx, r14
mov rcx, rbp
call fcn.1801dbe70
cmp eax, 2
jne 0x1801db0b4
mov edx, eax
mov byte [rbx + 0xd9], 0
mov rcx, r14
mov dword [rbx + 0x58], eax
call fcn.1801ced20
cmp byte [rbp + 0xae9], 0
jne 0x1801db0b4
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rbp
call fcn.1801cdb70
mov eax, 1
jmp 0x1801db0b6