Function at 0x1800a6a30
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r14
push r15
sub rsp, 0x58
mov r14d, dword [r8]
mov rbx, rdx
mov r15, rcx
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x80], 0
test rdx, rdx
jne 0x1800a6a66
xor edi, edi
jmp 0x1800a6a7e
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
and edi, 0x3fffffff
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r13
test r14b, 0x40
jne 0x1800a6aa5
cmp dword [0x1802e7f8c], 0
je 0x1800a6fd1
cmp edi, 5
jl 0x1800a6fd1
mov edx, dword [rdx]
lea rcx, [0x180000000]
cmp edx, dword [rcx + 0x2bf7f4]
lea rcx, [rcx + 0x2bf7f4]
jne 0x1800a6ad3
movzx edx, byte [rbx + 4]
cmp dl, byte [rcx + 4]
jne 0x1800a6ad3
xor eax, eax
jmp 0x1800a6ad8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a6fd1
lea eax, [rdi + 2]
or r14d, 0x40
movsxd rdi, edi
xor esi, esi
xor ebp, ebp
xor r13d, r13d
xor ecx, ecx
movsxd r12, eax
mov dword [rsp + 0x88], r14d
cmp rdi, 2
jl 0x1800a6b32
lea rdx, [rdi - 1]
nop dword [rax + rax]
xor eax, eax
cmp byte [rbx + rcx], 0x26
sete al
add rsi, rax
xor eax, eax
cmp byte [rbx + rcx + 1], 0x26
sete al
add rcx, 2
add rbp, rax
cmp rcx, rdx
jl 0x1800a6b10
cmp rcx, rdi
jge 0x1800a6b43
xor eax, eax
cmp byte [rcx + rbx], 0x26
sete al
add r12, rax
call fcn.1800a38c0
test eax, eax
jne 0x1800a70ee
lea rcx, [rsi + rbp]
add rcx, r12
call fcn.180016e00
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1800a70ee
cmp byte [rbx + 5], 0x2f
mov r8d, 5
jne 0x1800a6c1b
cmp byte [rbx + 6], 0x2f
jne 0x1800a6c1b
movzx ecx, byte [rbx + 7]
mov r8d, 7
test cl, cl
je 0x1800a6c1b
lea rax, [rbx + 7]
nop dword [rax]
cmp cl, 0x2f
je 0x1800a6bb3
movzx ecx, byte [rax + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800a6ba0
cmp r8d, 7
je 0x1800a6c1b
cmp r8d, 0x10
jne 0x1800a6bf4
lea r11, [0x180000000]
lea rcx, [rbx + 7]
mov rdx, qword [r11 + 0x2bf800]
cmp rdx, qword [rbx + 7]
jne 0x1800a6beb
movzx edx, byte [r11 + 0x2bf808]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800a6beb
xor eax, eax
jmp 0x1800a6bf0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800a6c22
lea edx, [r8 - 7]
lea rcx, str.invalid_uri_authority:__.s
lea r8, [rbx + 7]
call fcn.180019560
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800a705a
lea r11, [0x180000000]
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x1800a6db6
cmp dl, 0x23
je 0x1800a6da6
inc r8d
cmp dl, 0x25
jne 0x1800a6d12
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r11 + 0x2b5590], 8
je 0x1800a6d12
movzx eax, byte [rax + rbx + 1]
test byte [rax + r11 + 0x2b5590], 8
je 0x1800a6d12
movsx edx, cl
inc r8d
mov ecx, edx
movsxd rax, r8d
inc r8d
movsx edi, byte [rax + rbx]
sar ecx, 6
mov al, 7
and cl, 1
imul cl
mov ecx, edi
sar ecx, 6
sub dl, al
and cl, 1
mov al, 7
and edx, 0xf
shl edx, 4
imul cl
movzx ecx, dil
sub cl, al
and ecx, 0xf
add edx, ecx
jne 0x1800a6d8d
movsxd rax, r8d
movsxd rcx, r10d
lea rdx, [rax + rbx]
movzx eax, byte [rax + rbx]
test al, al
je 0x1800a6d97
nop dword [rax]
cmp al, 0x23
je 0x1800a6d97
test r10d, r10d
jne 0x1800a6ce1
cmp al, 0x3f
jmp 0x1800a6cf9
cmp rcx, 1
jne 0x1800a6cf1
cmp al, 0x3d
je 0x1800a6d97
jmp 0x1800a6cf7
cmp rcx, 2
jne 0x1800a6cff
cmp al, 0x26
je 0x1800a6d97
movzx eax, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x1800a6cd0
jmp 0x1800a6d97
cmp r10d, 1
jne 0x1800a6d6e
cmp dl, 0x26
je 0x1800a6d22
cmp dl, 0x3d
jne 0x1800a6d8d
cmp byte [r9 + rsi - 1], 0
jne 0x1800a6d54
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x1800a6d97
movzx ecx, byte [rax + rbx]
cmp cl, 0x23
je 0x1800a6d97
cmp byte [rax + rbx - 1], 0x26
je 0x1800a6d97
movzx ecx, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800a6d37
jmp 0x1800a6d97
cmp dl, 0x26
jne 0x1800a6d66
mov byte [r9 + rsi], 0
inc r13d
inc r9
jmp 0x1800a6d8b
mov r10d, 2
jmp 0x1800a6d8b
test r10d, r10d
jne 0x1800a6d7a
cmp dl, 0x3f
je 0x1800a6d85
jmp 0x1800a6d8d
cmp r10d, 2
jne 0x1800a6d8d
cmp dl, 0x26
jne 0x1800a6d8d
mov r10d, 1
xor dl, dl
mov byte [r9 + rsi], dl
inc r13d
inc r9
movsxd rax, r8d
movzx edx, byte [rax + rbx]
test dl, dl
jne 0x1800a6c37
cmp r10d, 1
jne 0x1800a6db6
movsxd rax, r13d
inc r13d
mov byte [rax + rsi], 0
or rcx, 0xffffffffffffffff
movsxd rax, r13d
mov rdi, rsi
mov word [rax + rsi], 0
xor eax, eax
repne scasb al, byte [rdi]
not rcx
lea rax, [rcx - 1]
and eax, 0x3fffffff
inc eax
movsxd rdx, eax
add rdx, rsi
cmp byte [rdx], 0
je 0x1800a7024
nop word [rax + rax]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
and r8d, 0x3fffffff
lea eax, [r8 + 1]
movsxd r13, eax
add r13, rdx
jne 0x1800a6e19
xor ebp, ebp
jmp 0x1800a6e31
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
lea rbp, [rcx - 1]
and ebp, 0x3fffffff
cmp r8d, 3
jne 0x1800a6e6f
movzx ecx, word [r11 + 0x2bf82c]
cmp cx, word [rdx]
jne 0x1800a6e55
movzx ecx, byte [r11 + 0x2bf82e]
cmp cl, byte [rdx + 2]
jne 0x1800a6e55
xor eax, eax
jmp 0x1800a6e5a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a6f7e
mov r15, r13
mov qword [rsp + 0x20], r13
jmp 0x1800a6f83
cmp r8d, 5
jne 0x1800a6eb5
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x1800a6e8f
movzx ecx, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x1800a6e8f
xor eax, eax
jmp 0x1800a6e94
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a6f7e
mov r12d, 0x60000
lea rsi, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x1800a6ee4
cmp r8d, 4
jne 0x1800a6f7e
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800a6f7e
mov r12d, 0x87
lea rsi, [0x1802e9b70]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rsi]
xor ebx, ebx
test rdx, rdx
je 0x1800a6f2a
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
and ecx, 0x3fffffff
cmp ebp, ecx
jne 0x1800a6f18
movsxd r8, ebp
mov rcx, r13
call fcn.1800bd270
test eax, eax
je 0x1800a6f4f
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rsi + rax*8]
test rdx, rdx
jne 0x1800a6eee
lea rcx, str.no_such__s_mode:__s
mov r8, r13
mov rdx, r15
call fcn.180019560
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800a705a
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x1800a6f2a
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x1800a6fa1
mov r14d, dword [rsp + 0x88]
not r12d
and r14d, r12d
or r14d, ecx
mov dword [rsp + 0x88], r14d
mov r15, qword [rsp + 0x20]
lea eax, [rbp + 1]
movsxd rdx, eax
add rdx, r13
cmp byte [rdx], 0
je 0x1800a701f
lea r11, [0x180000000]
jmp 0x1800a6df0
lea rcx, str._s_mode_not_allowed:__s
mov r8, r13
mov rdx, r15
call fcn.180019560
mov dword [rsp + 0x80], 3
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800a7065
call fcn.1800a38c0
test eax, eax
jne 0x1800a70ee
lea eax, [rdi + 2]
movsxd rcx, eax
call fcn.180016e00
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1800a70ee
movsxd rdi, edi
mov rdx, rbx
mov rcx, rax
mov r8, rdi
call fcn.1800acfd0
and r14d, 0xffffffbf
mov word [rdi + rsi], 0
mov dword [rsp + 0x88], r14d
jmp 0x1800a7024
mov rsi, qword [rsp + 0x28]
mov rcx, r15
call fcn.180016310
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x1800a70c9
lea rcx, str.no_such_vfs:__s
mov rdx, r15
call fcn.180019560
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
mov dword [rsp + 0x80], 1
cmp dword [0x1802e7f80], 0
je 0x1800a70bc
mov rcx, qword [0x1802f0c18]
test rcx, rcx
je 0x1800a7080
call qword [0x1802e8008]
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
call qword [0x1802e7fc0]
dec qword [0x1802f0968]
movsxd rcx, eax
sub qword [0x1802f0920], rcx
mov rcx, rdi
call qword [0x1802e7fb0]
mov rcx, qword [0x1802f0c18]
test rcx, rcx
je 0x1800a70c7
call qword [0x1802e8018]
jmp 0x1800a70c7
mov rcx, qword [rsp + 0x28]
call qword [0x1802e7fb0]
xor esi, esi
mov rcx, qword [rsp + 0x90]
mov eax, dword [rsp + 0x88]
mov dword [rcx], eax
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x80]
mov qword [rcx], rsi
jmp 0x1800a70f3
mov eax, 7
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
pop r15
pop r14
pop rdi
pop rbx
ret