Function at 0x1801dd8a0
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.180210030
mov r8, rax
mov rdx, r12
test rax, rax
je 0x1801de141
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.1801c4f90
test eax, eax
jne 0x1801ddb26
cmp dword [rbx + 0x5c], eax
jne 0x1801dd9ad
mov rcx, r13
call fcn.1801c4ff0
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 0x1801dd995
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 0x1801dd9a2
mov r8, rsi
mov rcx, rbp
call fcn.1801de810
mov ecx, eax
cmp ecx, 2
je 0x1801ddfd5
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 0x1801ddca6
cmp cl, 0xd
je 0x1801ddca6
mov ecx, dword [rbx + 0x5c]
mov edi, 2
lea eax, [rcx + 1]
mov dword [rbx + 0x5c], eax
test ecx, ecx
jne 0x1801ddc05
mov rax, qword [r14 + 0x370]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1801ddb9d
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.1801c44b0
mov edi, eax
cmp eax, 1
jne 0x1801dda7a
cmp dword [rsp + 0x48], 2
jl 0x1801dda7a
mov r9, rsi
lea r8, [rsp + 0x4c]
lea rdx, str._HTTP__1_23___d
mov rcx, r15
call fcn.1801c44b0
cmp eax, 2
jne 0x1801dda7a
mov byte [r14 + 0x55f], 0
lea edi, [rax + 2]
mov byte [rsp + 0x40], reloc.WLDAP32.dll_Ordinal_32
jmp 0x1801ddaa9
movzx eax, byte [rsp + 0xb0]
sub al, 0x30
cmp al, 9
jbe 0x1801de074
cmp edi, 4
jl 0x1801ddb3d
cmp dword [rsi], 0x64
jl 0x1801de074
cmp byte [rsp + 0x40], 0x20
jne 0x1801ddb3d
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 0x1801de025
mov byte [r14 + 0x55f], r9b
cmp dword [rbx + 0x8c], 3
jne 0x1801ddaef
cmp r9b, 0x14
je 0x1801ddaef
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rbp
call fcn.1801d0780
cmp byte [r14 + 0x55f], 0x14
jae 0x1801ddb15
mov rax, qword [r14 + 0x520]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rbp
mov dword [rax], 0xffffffff
call fcn.1801d0780
test edi, edi
jne 0x1801ddbef
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 0x1801de05b
mov r8, rsi
lea rdx, str._HTTP__3d
mov rcx, r15
call fcn.1801c44b0
mov byte [r14 + 0x55f], 0xa
test eax, eax
jne 0x1801ddbef
mov rcx, r13
call fcn.1801c4ff0
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.1801de810
cmp eax, 1
jne 0x1801ddb1d
mov dword [rsi], reloc.WLDAP32.dll_Ordinal_200
mov byte [r14 + 0x55f], 0xa
jmp 0x1801ddbef
bt ecx, 0x12
jae 0x1801ddb1d
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.1801c44b0
cmp eax, 4
jne 0x1801ddb1d
cmp byte [rsp + 0x41], 0x20
jne 0x1801ddb1d
mov byte [r14 + 0x55f], 0xb
mov rdx, r14
mov rcx, rbp
call fcn.1801de3e0
test eax, eax
jne 0x1801ddb26
lea edi, [rax + 6]
mov rcx, rbp
call fcn.1801df120
test eax, eax
jne 0x1801ddb26
mov r8, r15
mov rdx, r14
mov rcx, rbp
call fcn.1801dc7c0
test eax, eax
jne 0x1801ddb26
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.1801c4ff0
mov r9, rax
mov r8, r15
mov edx, 1
mov rcx, rbp
call fcn.1801d0510
mov rcx, r13
call fcn.1801c4ff0
mov edx, esi
mov r9, rax
or edx, 0x10
mov r8, r15
cmp edi, 0x64
mov rcx, rbp
cmovae edx, esi
call fcn.1801d0500
test eax, eax
jne 0x1801ddb26
mov rcx, r13
call fcn.1801c4ff0
add qword [rbp + 0x13a8], rax
mov rcx, r13
call fcn.1801c4ff0
add qword [rbp + 0x108], rax
jmp 0x1801ddfb1
mov ecx, dword [rbx + 0x70]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1801ddd0c
sub ecx, 0x64
je 0x1801ddce3
cmp ecx, 1
je 0x1801ddcca
mov byte [rbx + 0xd9], 1
mov dword [rbx + 0x5c], esi
jmp 0x1801ddd6e
cmp dword [rbx + 0x8c], 2
je 0x1801de08d
mov byte [rbx + 0xd9], 0
jmp 0x1801ddd6e
cmp dword [rbx + 0x88], 0
mov byte [rbx + 0xd9], 1
mov dword [rbx + 0x5c], esi
jle 0x1801ddd6e
or dword [rbx + 0x74], 2
xor edx, edx
mov rcx, rbp
mov dword [rbx + 0x88], esi
call fcn.1801be0a0
jmp 0x1801ddd6e
cmp qword [rbx], 0xffffffffffffffff
mov byte [rbx + 0xd9], 0
jne 0x1801ddd6e
cmp byte [rbx + 0xde], 0
jne 0x1801ddd6e
cmp byte [r14 + 0x336], 0
jne 0x1801ddd6e
cmp byte [r14 + 0x55f], 0xb
jne 0x1801ddd6e
mov rax, qword [r14 + 0x370]
test dword [rax + 0x84], 0x40000
jne 0x1801ddd6e
cmp byte [rbp + 0x1208], 5
je 0x1801ddd6e
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rbp
call fcn.1801d0780
mov edx, 2
mov rcx, r14
call fcn.1801d17a0
cmp byte [rbx + 0xd9], 0
jne 0x1801ddd87
mov rcx, rbp
call fcn.1801de350
test eax, eax
jne 0x1801ddb26
cmp byte [r14 + 0x336], 0
je 0x1801dddcf
mov eax, dword [rbp + 0x158]
cmp eax, 0x191
jne 0x1801ddda8
cmp dword [r14 + 0x3d0], 2
je 0x1801dddb9
cmp eax, 0x197
jne 0x1801dddcf
cmp dword [r14 + 0x3d4], 2
jne 0x1801dddcf
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rbp
call fcn.1801d0780
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.1801c4ff0
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.1801d0500
test eax, eax
jne 0x1801ddb26
movsxd rax, esi
mov rcx, rbp
add qword [rbp + 0x13a8], rax
add qword [rbp + 0x108], rax
call fcn.1801dece0
test al, al
jne 0x1801de127
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.1801db760
test eax, eax
jne 0x1801ddb26
cmp dword [rbx + 0x70], 0x12c
jl 0x1801ddfa4
cmp byte [r14 + 0x340], al
jne 0x1801ddf7e
cmp byte [r14 + 0x336], al
jne 0x1801ddf7e
cmp byte [rbp + 0x133c], al
jne 0x1801ddf87
movzx eax, byte [rbp + 0x1208]
dec al
cmp al, 3
ja 0x1801ddf7e
xor edx, edx
mov rcx, rbp
call fcn.1801be0a0
cmp byte [rbx + 0xdb], 0
jne 0x1801ddf7e
cmp dword [rbx + 0x70], 0x1a1
jne 0x1801ddf08
cmp byte [rbp + 0x132f], 0
je 0x1801ddf08
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rbp
call fcn.1801d0780
mov rcx, qword [rbp + 0x1210]
mov byte [rbp + 0x1330], 1
call qword [case.0x1801c4485.0]
mov rdx, rbx
mov rcx, rbp
mov qword [rbp + 0x198], rax
call fcn.1801df300
jmp 0x1801ddf7e
cmp byte [rbp + 0xac6], 0
mov rcx, rbp
je 0x1801ddf39
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1801d0780
cmp dword [rbx + 0x88], 0
jle 0x1801ddf7e
or dword [rbx + 0x74], 2
mov dword [rbx + 0x88], 0
jmp 0x1801ddf7e
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1801d0780
mov edx, 2
mov rcx, r14
call fcn.1801d17a0
mov rdx, rbx
mov rcx, rbp
call fcn.1801df300
test eax, eax
jne 0x1801ddb26
mov byte [rbx + 0xdb], 1
cmp byte [rbp + 0x132f], al
je 0x1801ddf7e
mov dword [rbx + 0x88], 3
cmp byte [rbp + 0x133c], 0
je 0x1801ddfa4
cmp qword [r14 + 0x398], 0xffffffffffffffff
je 0x1801ddfa4
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rbp
call fcn.1801d0780
or dword [rbx + 0x74], 2
cmp byte [rbx + 0xd9], 0
je 0x1801de0ba
mov rcx, r13
call fcn.1801c5010
mov r12, qword [rbx + 0x60]
cmp byte [r12], 0
je 0x1801ddb24
mov rdi, qword [rsp + 0xc0]
jmp 0x1801dd8e1
mov edx, 2
mov rcx, r14
call fcn.1801d17a0
cmp byte [rbp + 0xae9], 0
je 0x1801de1b7
mov byte [rbx + 0xd9], 0
cmp qword [rdi], 0
je 0x1801de008
mov dword [rbx + 0x58], 1
jmp 0x1801ddb24
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 0x1801ddb24
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.1801d05f0
mov eax, 1
jmp 0x1801ddb26
lea rdx, str.Unsupported_HTTP_version_in_response
mov rcx, rbp
call fcn.1801d05f0
mov eax, 1
jmp 0x1801ddb26
lea rdx, str.Unsupported_response_code_in_HTTP_response
mov rcx, rbp
call fcn.1801d05f0
mov eax, 1
jmp 0x1801ddb26
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rbp
call fcn.1801d0780
mov eax, 1
mov dword [rbx + 0x8c], 3
mov byte [rbx + 0xd9], 1
mov dword [rbx + 0x5c], esi
jmp 0x1801ddb26
cmp byte [rbp + 0x1cb], 0
je 0x1801de0cd
mov rax, qword [rsp + 0xc8]
jmp 0x1801de0f7
mov rax, qword [r14 + 0x370]
test dword [rax + 0x84], 0x40000
mov rax, qword [rsp + 0xc8]
je 0x1801de0fa
cmp dword [rbp + 0xa18], 2
jne 0x1801de0fa
cmp qword [rbx], 0xffffffffffffffff
jg 0x1801de0fa
mov byte [rax], 1
cmp qword [rbx + 8], 0
jne 0x1801de106
mov byte [rax], 1
jmp 0x1801de10b
cmp byte [rax], 0
je 0x1801de10f
and dword [rbx + 0x74], 0xfffffffe
mov r9, rsi
mov r8, r12
mov edx, 1
mov rcx, rbp
call fcn.1801d0510
jmp 0x1801ddb24
mov r8d, dword [rbx + 0x70]
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1801d05f0
mov eax, reloc.WLDAP32.dll_Ordinal_22
jmp 0x1801ddb26
mov r8, qword [rdi]
lea rcx, [rbp + 0xcb0]
call fcn.1801c4f90
test eax, eax
jne 0x1801ddb26
cmp dword [rbx + 0x5c], eax
jne 0x1801ddb24
lea rcx, [rbp + 0xcb0]
call fcn.1801c4ff0
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.1801de8e0
cmp eax, 2
jne 0x1801ddb24
mov edx, eax
mov byte [rbx + 0xd9], 0
mov rcx, r14
mov dword [rbx + 0x58], eax
call fcn.1801d17a0
cmp byte [rbp + 0xae9], 0
jne 0x1801ddb24
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rbp
call fcn.1801d05f0
mov eax, 1
jmp 0x1801ddb26