Function at 0x1800a1ab0
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 0x1800a1ae6
xor edi, edi
jmp 0x1800a1afe
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 0x1800a1b25
cmp dword [0x18023874c], 0
je 0x1800a2051
cmp edi, 5
jl 0x1800a2051
mov edx, dword [rdx]
lea rcx, [0x180000000]
cmp edx, dword [rcx + 0x216df4]
lea rcx, [rcx + 0x216df4]
jne 0x1800a1b53
movzx edx, byte [rbx + 4]
cmp dl, byte [rcx + 4]
jne 0x1800a1b53
xor eax, eax
jmp 0x1800a1b58
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a2051
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 0x1800a1bb2
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 0x1800a1b90
cmp rcx, rdi
jge 0x1800a1bc3
xor eax, eax
cmp byte [rcx + rbx], 0x26
sete al
add r12, rax
call fcn.18009e910
test eax, eax
jne 0x1800a216e
lea rcx, [rsi + rbp]
add rcx, r12
call fcn.180011e00
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1800a216e
cmp byte [rbx + 5], 0x2f
mov r8d, 5
jne 0x1800a1c9b
cmp byte [rbx + 6], 0x2f
jne 0x1800a1c9b
movzx ecx, byte [rbx + 7]
mov r8d, 7
test cl, cl
je 0x1800a1c9b
lea rax, [rbx + 7]
nop dword [rax]
cmp cl, 0x2f
je 0x1800a1c33
movzx ecx, byte [rax + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800a1c20
cmp r8d, 7
je 0x1800a1c9b
cmp r8d, 0x10
jne 0x1800a1c74
lea r11, [0x180000000]
lea rcx, [rbx + 7]
mov rdx, qword [r11 + 0x216e00]
cmp rdx, qword [rbx + 7]
jne 0x1800a1c6b
movzx edx, byte [r11 + 0x216e08]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800a1c6b
xor eax, eax
jmp 0x1800a1c70
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800a1ca2
lea edx, [r8 - 7]
lea rcx, str.invalid_uri_authority:__.s
lea r8, [rbx + 7]
call fcn.180014560
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800a20da
lea r11, [0x180000000]
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x1800a1e36
cmp dl, 0x23
je 0x1800a1e26
inc r8d
cmp dl, 0x25
jne 0x1800a1d92
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r11 + 0x20d170], 8
je 0x1800a1d92
movzx eax, byte [rax + rbx + 1]
test byte [rax + r11 + 0x20d170], 8
je 0x1800a1d92
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 0x1800a1e0d
movsxd rax, r8d
movsxd rcx, r10d
lea rdx, [rax + rbx]
movzx eax, byte [rax + rbx]
test al, al
je 0x1800a1e17
nop dword [rax]
cmp al, 0x23
je 0x1800a1e17
test r10d, r10d
jne 0x1800a1d61
cmp al, 0x3f
jmp 0x1800a1d79
cmp rcx, 1
jne 0x1800a1d71
cmp al, 0x3d
je 0x1800a1e17
jmp 0x1800a1d77
cmp rcx, 2
jne 0x1800a1d7f
cmp al, 0x26
je 0x1800a1e17
movzx eax, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x1800a1d50
jmp 0x1800a1e17
cmp r10d, 1
jne 0x1800a1dee
cmp dl, 0x26
je 0x1800a1da2
cmp dl, 0x3d
jne 0x1800a1e0d
cmp byte [r9 + rsi - 1], 0
jne 0x1800a1dd4
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x1800a1e17
movzx ecx, byte [rax + rbx]
cmp cl, 0x23
je 0x1800a1e17
cmp byte [rax + rbx - 1], 0x26
je 0x1800a1e17
movzx ecx, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800a1db7
jmp 0x1800a1e17
cmp dl, 0x26
jne 0x1800a1de6
mov byte [r9 + rsi], 0
inc r13d
inc r9
jmp 0x1800a1e0b
mov r10d, 2
jmp 0x1800a1e0b
test r10d, r10d
jne 0x1800a1dfa
cmp dl, 0x3f
je 0x1800a1e05
jmp 0x1800a1e0d
cmp r10d, 2
jne 0x1800a1e0d
cmp dl, 0x26
jne 0x1800a1e0d
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 0x1800a1cb7
cmp r10d, 1
jne 0x1800a1e36
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 0x1800a20a4
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 0x1800a1e99
xor ebp, ebp
jmp 0x1800a1eb1
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 0x1800a1eef
movzx ecx, word [r11 + 0x216e2c]
cmp cx, word [rdx]
jne 0x1800a1ed5
movzx ecx, byte [r11 + 0x216e2e]
cmp cl, byte [rdx + 2]
jne 0x1800a1ed5
xor eax, eax
jmp 0x1800a1eda
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a1ffe
mov r15, r13
mov qword [rsp + 0x20], r13
jmp 0x1800a2003
cmp r8d, 5
jne 0x1800a1f35
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x1800a1f0f
movzx ecx, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x1800a1f0f
xor eax, eax
jmp 0x1800a1f14
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a1ffe
mov r12d, 0x60000
lea rsi, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x1800a1f64
cmp r8d, 4
jne 0x1800a1ffe
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800a1ffe
mov r12d, 0x87
lea rsi, [0x18023a330]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rsi]
xor ebx, ebx
test rdx, rdx
je 0x1800a1faa
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 0x1800a1f98
movsxd r8, ebp
mov rcx, r13
call fcn.180189e30
test eax, eax
je 0x1800a1fcf
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rsi + rax*8]
test rdx, rdx
jne 0x1800a1f6e
lea rcx, str.no_such__s_mode:__s
mov r8, r13
mov rdx, r15
call fcn.180014560
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800a20da
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x1800a1faa
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x1800a2021
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 0x1800a209f
lea r11, [0x180000000]
jmp 0x1800a1e70
lea rcx, str._s_mode_not_allowed:__s
mov r8, r13
mov rdx, r15
call fcn.180014560
mov dword [rsp + 0x80], 3
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800a20e5
call fcn.18009e910
test eax, eax
jne 0x1800a216e
lea eax, [rdi + 2]
movsxd rcx, eax
call fcn.180011e00
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1800a216e
movsxd rdi, edi
mov rdx, rbx
mov rcx, rax
mov r8, rdi
call fcn.180183a80
and r14d, 0xffffffbf
mov word [rdi + rsi], 0
mov dword [rsp + 0x88], r14d
jmp 0x1800a20a4
mov rsi, qword [rsp + 0x28]
mov rcx, r15
call fcn.180011310
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x1800a2149
lea rcx, str.no_such_vfs:__s
mov rdx, r15
call fcn.180014560
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
mov dword [rsp + 0x80], 1
cmp dword [0x180238740], 0
je 0x1800a213c
mov rcx, qword [0x180242a68]
test rcx, rcx
je 0x1800a2100
call qword [0x1802387c8]
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
call qword [0x180238780]
dec qword [0x1802427b8]
movsxd rcx, eax
sub qword [0x180242770], rcx
mov rcx, rdi
call qword [0x180238770]
mov rcx, qword [0x180242a68]
test rcx, rcx
je 0x1800a2147
call qword [0x1802387d8]
jmp 0x1800a2147
mov rcx, qword [rsp + 0x28]
call qword [0x180238770]
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 0x1800a2173
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