Function at 0x140057030
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, 0x70
mov rax, qword [r8]
mov rbx, rcx
mov rcx, qword [rcx + 0x148]
mov r15, r8
mov r13, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
mov rdi, rcx
lea r12, [rbx + 0xcb8]
mov r14, rcx
mov rsi, rax
mov rbp, rax
mov r8, rax
mov edx, 0xa
mov qword [rsp + 0xb0], r14
call fcn.1400cb0f0
mov rcx, rax
mov rdx, r14
test rax, rax
je 0x140057dc8
lea r8, [rcx + 1]
sub rdi, rax
lea rax, [rsi - 1]
mov rcx, r12
add rax, rdi
xor ebp, ebp
mov qword [r15], rax
mov qword [rbx + 0x148], r8
sub r8, r14
call fcn.14003c310
test eax, eax
jne 0x1400572c6
cmp dword [rbx + 0x144], eax
jne 0x140057144
mov rcx, r12
call fcn.14003c370
mov rcx, r12
mov rsi, rax
call fcn.14003c440
mov rcx, qword [r13 + 0x3e8]
mov rdx, rax
test dword [rcx + 0x84], 0x40000
je 0x14005712e
cmp rsi, 5
mov ecx, 5
mov edi, ebp
cmova rsi, rcx
setae dil
mov r8, rsi
lea rcx, str.RTSP_
call fcn.14004dd00
test eax, eax
mov ecx, 2
cmovne ecx, edi
jmp 0x14005713b
mov r8, rsi
mov rcx, rbx
call fcn.1400580a0
mov ecx, eax
cmp ecx, 2
je 0x140057bd5
mov rcx, r12
call fcn.14003c440
mov r15, rax
movzx ecx, byte [rax]
cmp cl, 0xa
je 0x14005755f
cmp cl, 0xd
je 0x14005755f
mov edx, dword [rbx + 0x144]
mov esi, 2
lea ecx, [rdx + 1]
mov dword [rbx + 0x144], ecx
test edx, edx
jne 0x14005746c
mov rax, qword [r13 + 0x3e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x14005733c
lea rax, [rsp + 0xb0]
mov byte [rsp + 0xb0], dl
mov qword [rsp + 0x30], rax
lea r14, [rbx + 0x158]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], r14
lea r9, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x48]
mov dword [rsp + 0x44], ebp
lea rdx, str._HTTP__1d._1d_c_3d_c
mov rcx, r15
call fcn.14003b860
mov edi, eax
cmp eax, 1
jne 0x140057217
cmp dword [rsp + 0x48], esi
jl 0x140057217
mov r9, r14
lea r8, [rsp + 0x4c]
lea rdx, str._HTTP__1_23___d
mov rcx, r15
call fcn.14003b860
cmp eax, esi
jne 0x140057217
mov byte [r13 + 0x813], 0
lea edi, [rsi + 2]
mov byte [rsp + 0x40], reloc.WLDAP32.dll_Ordinal_32
jmp 0x140057247
movzx eax, byte [rsp + 0xb0]
sub al, 0x30
cmp al, 9
jbe 0x140057c92
cmp edi, 4
jl 0x1400572de
cmp dword [r14], 0x64
jl 0x140057c92
cmp byte [rsp + 0x40], 0x20
jne 0x140057c79
mov eax, dword [rsp + 0x48]
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x44]
lea r8d, [rax + rcx*2]
mov ecx, r8d
mov dword [rsp + 0x44], r8d
sub ecx, 0xa
je 0x14005726c
cmp ecx, 1
jne 0x140057c2e
lea rsi, [r13 + 0x813]
mov byte [rsi], r8b
cmp dword [rbx + 0x174], 3
jne 0x140057294
cmp r8b, 0x14
je 0x140057294
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rbx
call fcn.140047410
cmp byte [rsi], 0x14
jae 0x1400572b5
mov rax, qword [r13 + 0x7d0]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rbx
mov dword [rax], 0xffffffff
call fcn.140047410
test edi, edi
jne 0x140057393
mov byte [rbx + 0x1c1], 0
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
test edi, edi
jne 0x140057c79
mov r8, r14
lea rdx, str._HTTP__3d
mov rcx, r15
call fcn.14003b860
lea rsi, [r13 + 0x813]
mov byte [rsi], 0xa
test eax, eax
jne 0x140057393
mov rcx, r12
call fcn.14003c370
mov rcx, r12
mov rdi, rax
call fcn.14003c440
mov rdx, rax
mov r8, rdi
mov rcx, rbx
call fcn.1400580a0
cmp eax, 1
jne 0x1400572bd
mov dword [r14], reloc.WLDAP32.dll_Ordinal_200
mov byte [rsi], 0xa
jmp 0x140057393
bt ecx, 0x12
jae 0x1400572bd
lea rax, [rsp + 0x41]
mov rcx, r15
lea r14, [rbx + 0x158]
mov qword [rsp + 0x28], r14
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x54]
mov qword [rsp + 0x20], rax
lea rdx, str._RTSP__1d._1d_c_3d
call fcn.14003b860
cmp eax, 4
jne 0x1400572bd
cmp byte [rsp + 0x41], 0x20
jne 0x1400572bd
lea rsi, [r13 + 0x813]
mov byte [rsi], listen
mov edx, dword [r14]
movzx ecx, byte [rbx + 0x1161]
mov dword [rbx + 0x1370], edx
movzx eax, byte [rsi]
mov dword [rbx + 0x1378], eax
movzx eax, byte [rsi]
test cl, cl
je 0x1400573b7
cmp cl, al
jbe 0x1400573bd
mov byte [rbx + 0x1161], al
cmp qword [rbx + 0x1170], 0
je 0x1400573df
cmp byte [rbx + 0x11e8], 0
jne 0x1400573df
cmp edx, 0x1a0
jne 0x1400573df
mov byte [rbx + 0x1c4], 1
movzx eax, byte [rsi]
cmp al, 0xa
jne 0x140057404
lea rdx, str.HTTP_1.0__assume_close_after_body
mov rcx, rbx
call fcn.140047410
mov edx, 1
mov rcx, r13
call fcn.140047e00
jmp 0x140057423
cmp al, 0x14
je 0x140057416
cmp dword [rbx + 0x174], 2
jne 0x140057423
cmp edx, 0x65
jne 0x140057423
mov rax, qword [r13 + 0x7d0]
mov dword [rax], 2
mov ecx, dword [r14]
lea eax, [rcx - 0x64]
cmp eax, 0x63
setbe al
mov byte [rbx + 0x1c5], al
sub ecx, 0xcc
je 0x140057452
cmp ecx, 0x64
jne 0x140057467
cmp byte [rbx + 0x568], 0
je 0x140057452
mov byte [rbx + 0x1454], 1
mov qword [rbx + 0xe8], rbp
mov qword [rbx + 0xf0], rbp
mov byte [rbx + 0x1c5], 1
mov esi, 6
mov rcx, r12
call fcn.14003c440
mov rcx, r12
mov rdi, rax
call fcn.14003c370
mov r8, rax
xor edx, edx
mov rcx, rdi
mov rbp, rax
call fcn.1400cb0f0
test rax, rax
jne 0x140057cc6
mov edx, dword [rbx + 0x144]
cmp edx, 2
jl 0x1400574ce
movzx ecx, byte [rdi]
cmp cl, 0x20
je 0x1400574b0
cmp cl, 9
jne 0x1400574b5
cmp edx, 2
jg 0x1400574ce
mov r8, rbp
mov edx, Ordinal_60
mov rcx, rdi
call fcn.1400cb0f0
test rax, rax
je 0x140057cab
mov r8, r15
mov rdx, r13
mov rcx, rbx
call fcn.140056030
test eax, eax
jne 0x1400572c6
cmp byte [rbx + 0xad1], al
je 0x1400574ef
or esi, 1
mov edi, dword [rbx + 0x158]
mov rcx, r12
call fcn.14003c370
mov r9, rax
mov r8, r15
mov edx, 1
mov rcx, rbx
call fcn.140047240
mov rcx, r12
call fcn.14003c370
mov edx, esi
mov r9, rax
or edx, 0x10
lea eax, [rdi - 0x64]
cmp eax, 0x64
mov r8, r15
mov rcx, rbx
cmovae edx, esi
call fcn.140047230
test eax, eax
jne 0x1400572c6
mov rcx, r12
call fcn.14003c370
add qword [rbx + 0x1388], rax
mov rcx, r12
call fcn.14003c370
add qword [rbx + 0x108], rax
jmp 0x140057ba1
mov ecx, dword [rbx + 0x158]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1400575f6
sub ecx, 0x64
je 0x1400575bc
cmp ecx, 1
je 0x140057598
lea r15, [rbx + 0x1c1]
mov dword [rbx + 0x144], ebp
mov byte [r15], 1
lea rsi, [rbx + 0xe8]
jmp 0x140057665
cmp dword [rbx + 0x174], 2
je 0x140057ce1
lea r15, [rbx + 0x1c1]
mov byte [r15], 0
lea rsi, [rbx + 0xe8]
jmp 0x140057665
cmp dword [rbx + 0x170], 0
lea r15, [rbx + 0x1c1]
mov byte [r15], 1
mov dword [rbx + 0x144], ebp
jle 0x1400575ed
or dword [rbx + 0x15c], 2
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x170], ebp
call fcn.140035d40
lea rsi, [rbx + 0xe8]
jmp 0x140057665
lea rdi, [rbx + 0x1c1]
lea rsi, [rbx + 0xe8]
mov byte [rdi], 0
cmp qword [rsi], 0xffffffffffffffff
mov r15, rdi
jne 0x140057665
cmp byte [rbx + 0x1c6], 0
jne 0x140057665
cmp byte [r13 + 0x3aa], 0
jne 0x140057665
cmp byte [r13 + 0x813], 0xb
jne 0x140057665
mov rax, qword [r13 + 0x3e8]
test dword [rax + 0x84], 0x40000
jne 0x140057665
cmp byte [rbx + 0x11e8], 5
je 0x140057665
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rbx
call fcn.140047410
mov edx, 2
mov rcx, r13
call fcn.140047e00
cmp byte [r15], 0
jne 0x1400576bb
cmp byte [rbx + 0x1c7], 0
jne 0x1400576ac
cmp byte [rsi + 0xde], 0
jne 0x1400576ac
mov rdx, qword [rsi]
cmp rdx, 0xffffffffffffffff
je 0x1400576bb
mov rax, qword [rbx + 0x710]
test rax, rax
je 0x14005769b
cmp rdx, rax
jg 0x140057d11
mov rcx, rbx
call fcn.140058d70
mov rax, qword [rsi]
mov qword [rsi + 8], rax
jmp 0x1400576bb
mov qword [rsi + 8], 0xffffffffffffffff
mov qword [rsi], 0xffffffffffffffff
cmp byte [r13 + 0x3aa], 0
je 0x140057753
mov eax, dword [rbx + 0x158]
cmp eax, 0x191
jne 0x1400576e2
cmp dword [r13 + 0x4b0], 2
je 0x1400576f3
jmp 0x140057709
cmp eax, 0x197
jne 0x140057709
cmp dword [r13 + 0x4b4], 2
jne 0x140057709
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rbx
call fcn.140047410
mov byte [rbx + 0x130d], 1
cmp byte [r13 + 0x3aa], 0
je 0x140057753
mov eax, dword [rbx + 0x158]
cmp eax, 0x191
jne 0x14005772c
cmp dword [r13 + 0x5a8], 1
je 0x14005773d
jmp 0x140057753
cmp eax, 0x197
jne 0x140057753
cmp dword [r13 + 0x5ac], 1
jne 0x140057753
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rbx
call fcn.140047410
mov byte [rbx + 0x130d], 1
cmp dword [r13 + 0x5a8], 3
jne 0x140057774
cmp dword [rbx + 0x158], 0x191
je 0x140057774
mov dword [r13 + 0x5a8], 4
cmp dword [r13 + 0x5ac], 3
jne 0x140057795
cmp dword [rbx + 0x158], 0x197
je 0x140057795
mov dword [r13 + 0x5ac], 4
mov eax, dword [rbx + 0x158]
mov rcx, r12
sub eax, 0x64
cmp eax, 0x64
mov eax, ebp
sbb edi, edi
and edi, 0x10
cmp byte [rbx + 0xad1], 0
setne al
add eax, 2
or edi, eax
call fcn.14003c370
lea rcx, [rbx + 0xcb8]
mov r12, rax
call fcn.14003c440
mov r8, rax
mov r9, r12
mov edx, edi
mov rcx, rbx
call fcn.140047230
test eax, eax
jne 0x1400572c6
mov rdx, qword [rbx + 0x108]
movsxd rcx, r12d
add qword [rbx + 0x1388], rcx
add rdx, rcx
mov qword [rbx + 0x108], rdx
mov rcx, rbx
mov r8d, dword [rbx + 0x158]
call fcn.1400584d0
test al, al
jne 0x140057db2
mov rsi, qword [rbx + 0x18]
lea eax, [r8 - 0x64]
cmp eax, 0x63
mov eax, 0xffffffff
cmova rdx, rbp
xor bpl, bpl
mov qword [rbx + 0x110], rdx
xor r14b, r14b
mov rcx, qword [rbx + 0x950]
xor edi, edi
test rcx, rcx
mov edx, 0xffffffbf
cmovne edx, eax
lea eax, [r8 - 0x64]
cmp eax, 0x63
jbe 0x140057a33
cmp byte [rbx + 0x130d], dil
je 0x140057876
movzx eax, byte [rbx + 0xacc]
neg al
sbb edi, edi
and edi, 0x16
jmp 0x140057a2b
cmp qword [rbx + 0x12e8], rdi
jne 0x140057884
test rcx, rcx
je 0x1400578ee
cmp r8d, 0x191
je 0x14005789f
cmp byte [rsi + 0x3b4], dil
je 0x1400578ee
cmp r8d, 0x12c
jge 0x1400578ee
lea rcx, [rbx + 0xe00]
call fcn.140058890
movzx ebp, al
test al, al
jne 0x1400578b9
mov byte [rbx + 0x130d], 1
cmp dword [rbx + 0xe04], 8
jne 0x1400578ee
cmp byte [rsi + 0x813], 0xb
jbe 0x1400578ee
lea rdx, str.Forcing_HTTP_1.1_for_NTLM
mov rcx, rbx
call fcn.140047410
mov edx, 1
mov rcx, rsi
call fcn.140047e00
mov byte [rbx + 0x1160], 2
cmp byte [rsi + 0x3a6], dil
je 0x140057934
mov eax, dword [rbx + 0x158]
cmp eax, 0x197
je 0x140057914
cmp byte [rsi + 0x3b4], dil
je 0x140057934
cmp eax, 0x12c
jge 0x140057934
lea rcx, [rbx + 0xe10]
mov edx, 0xffffffbf
call fcn.140058890
movzx r14d, al
test al, al
jne 0x140057934
mov byte [rbx + 0x130d], 1
test bpl, bpl
jne 0x1400579a5
test r14b, r14b
jne 0x1400579a5
cmp dword [rbx + 0x158], 0x12c
jge 0x140057a07
cmp byte [rbx + 0xe0c], dil
jne 0x140057a07
cmp byte [rsi + 0x3b4], dil
je 0x140057a07
movzx eax, byte [rbx + 0x11e8]
test al, al
je 0x140057a07
cmp al, 5
je 0x140057a07
mov rcx, qword [rbx + 0x11f0]
call qword [case.0x14003b839.0]
mov qword [rbx + 0x198], rax
test rax, rax
je 0x140057d2a
mov byte [rbx + 0xe0c], 1
jmp 0x140057a07
movzx eax, byte [rbx + 0x11e8]
test al, al
je 0x1400579d2
cmp al, 5
je 0x1400579d2
cmp byte [rsi + 0x3b5], dil
jne 0x1400579d2
mov rdx, rsi
mov rcx, rbx
call fcn.1400582e0
mov edi, eax
test eax, eax
jne 0x140057d2f
mov rcx, qword [rbx + 0x198]
call qword [str.03_r_]
mov rcx, qword [rbx + 0x11f0]
mov qword [rbx + 0x198], 0
call qword [case.0x14003b839.0]
mov qword [rbx + 0x198], rax
test rax, rax
je 0x140057d2a
mov rcx, rbx
call fcn.1400584d0
test al, al
je 0x140057a2b
mov r8d, dword [rbx + 0x158]
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.140047320
mov edi, reloc.WLDAP32.dll_Ordinal_22
test edi, edi
jne 0x140057d2f
cmp dword [rbx + 0x158], 0x12c
jl 0x140057b90
cmp byte [r13 + 0x3b4], 0
jne 0x140057b70
cmp byte [r13 + 0x3aa], 0
jne 0x140057b70
cmp byte [r13 + 0x3b5], 0
jne 0x140057b7a
movzx ecx, byte [rbx + 0x11e8]
sub ecx, 1
je 0x140057a8c
sub ecx, 1
je 0x140057a8c
sub ecx, 1
je 0x140057a8c
cmp ecx, 1
jne 0x140057b70
xor edx, edx
mov rcx, rbx
call fcn.140035d40
cmp byte [rbx + 0x1c3], 0
jne 0x140057b70
cmp dword [rbx + 0x158], 0x1a1
jne 0x140057af3
cmp byte [rbx + 0x130f], 0
je 0x140057af3
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rbx
call fcn.140047410
mov rcx, qword [rbx + 0x11f0]
mov byte [rbx + 0x1310], 1
call qword [case.0x14003b839.0]
lea rdx, [rbx + 0xe8]
mov rcx, rbx
mov qword [rbx + 0x198], rax
call fcn.14004f3e0
jmp 0x140057b70
cmp byte [rbx + 0xacd], 0
mov rcx, rbx
je 0x140057b27
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.140047410
cmp dword [rbx + 0x170], 0
jle 0x140057b70
or dword [rbx + 0x15c], 2
mov dword [rbx + 0x170], 0
jmp 0x140057b70
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.140047410
mov edx, 2
mov rcx, r13
call fcn.140047e00
lea rdx, [rbx + 0xe8]
mov rcx, rbx
call fcn.14004f3e0
test eax, eax
jne 0x1400572c6
mov byte [rbx + 0x1c3], 1
cmp byte [rbx + 0x130f], al
je 0x140057b70
mov dword [rbx + 0x170], 3
cmp byte [r13 + 0x3b5], 0
je 0x140057b90
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rbx
call fcn.140047410
or dword [rbx + 0x15c], 2
cmp byte [r15], 0
je 0x140057d36
lea r12, [rbx + 0xcb8]
mov rcx, r12
call fcn.14003c380
mov rdi, qword [rbx + 0x148]
cmp byte [rdi], 0
je 0x1400572c4
mov r15, qword [rsp + 0xc0]
mov r14, rdi
mov rcx, rdi
mov rsi, qword [r15]
mov rbp, rsi
mov r8, rsi
jmp 0x140057081
mov edx, 2
mov rcx, r13
call fcn.140047e00
cmp byte [rbx + 0xaf1], 0
je 0x140057e38
mov byte [rbx + 0x1c1], 0
cmp qword [r15], 0
je 0x140057c0b
mov dword [rbx + 0x140], 1
jmp 0x1400572c4
mov rax, qword [rsp + 0x58]
mov dword [rbx + 0x140], 2
mov qword [r15], rax
mov rax, qword [rsp + 0x60]
mov qword [rbx + 0x148], rax
jmp 0x1400572c4
mov r9d, r8d
mov eax, 0x66666667
imul r8d
mov eax, 0x66666667
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
imul r8d
add ecx, ecx
sar edx, 2
sub r9d, ecx
mov r8d, edx
mov rcx, rbx
shr r8d, 0x1f
add r8d, edx
lea rdx, str.Unsupported_HTTP_version___u._d__in_response
call fcn.140047320
mov eax, 1
jmp 0x1400572c6
lea rdx, str.Unsupported_HTTP_version_in_response
mov rcx, rbx
call fcn.140047320
mov eax, 1
jmp 0x1400572c6
lea rdx, str.Unsupported_response_code_in_HTTP_response
mov rcx, rbx
call fcn.140047320
mov eax, 1
jmp 0x1400572c6
lea rdx, str.Header_without_colon
mov rcx, rbx
mov edi, 8
call fcn.140047320
mov eax, edi
jmp 0x1400572c6
lea rdx, str.Nul_byte_in_header
mov rcx, rbx
mov edi, 8
call fcn.140047320
mov eax, edi
jmp 0x1400572c6
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rbx
call fcn.140047410
mov eax, 1
mov dword [rbx + 0x174], 3
mov byte [rbx + 0x1c1], 1
mov dword [rbx + 0x144], ebp
jmp 0x1400572c6
lea rdx, str.Maximum_file_size_exceeded
mov rcx, rbx
call fcn.140047320
mov eax, 0x3f
jmp 0x1400572c6
mov edi, reloc.WLDAP32.dll_Ordinal_27
mov eax, edi
jmp 0x1400572c6
cmp byte [rbx + 0xad4], 0
jne 0x140057d65
mov rax, qword [r13 + 0x3e8]
test dword [rax + 0x84], 0x40000
je 0x140057d72
cmp dword [rbx + 0xa20], 2
jne 0x140057d72
cmp qword [rbx + 0xe8], 0xffffffffffffffff
jg 0x140057d72
mov rax, qword [rsp + 0xc8]
mov byte [rax], 1
jmp 0x140057d7a
mov rax, qword [rsp + 0xc8]
cmp qword [rbx + 0xf0], 0
jne 0x140057d89
mov byte [rax], 1
jmp 0x140057d8e
cmp byte [rax], 0
je 0x140057d95
and dword [rbx + 0x15c], 0xfffffffe
mov r8, qword [rsp + 0xb0]
mov r9, r12
mov edx, 1
mov rcx, rbx
call fcn.140047240
jmp 0x1400572c4
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.140047320
mov eax, reloc.WLDAP32.dll_Ordinal_22
jmp 0x1400572c6
mov r8, rbp
mov rcx, r12
call fcn.14003c310
test eax, eax
jne 0x1400572c6
cmp dword [rbx + 0x144], eax
jne 0x1400572c4
mov rcx, r12
call fcn.14003c370
mov rcx, r12
mov rdi, rax
call fcn.14003c440
mov r8, rax
mov r9, rdi
mov rdx, r13
mov rcx, rbx
call fcn.140058170
cmp eax, 2
jne 0x1400572c4
mov edx, eax
mov byte [rbx + 0x1c1], 0
mov rcx, r13
mov dword [rbx + 0x140], eax
call fcn.140047e00
cmp byte [rbx + 0xaf1], 0
jne 0x1400572c4
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rbx
call fcn.140047320
mov eax, 1
jmp 0x1400572c6