Function at 0x1800c5680
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r12
push r14
sub rsp, 0x58
mov r14d, dword [r8]
mov rbx, rdx
mov r12, rcx
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x80], 0
test rdx, rdx
jne 0x1800c56b6
xor edi, edi
jmp 0x1800c56ce
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], r13
mov qword [rsp + 0x38], r15
test r14b, 0x40
jne 0x1800c56f5
cmp byte [0x180171926], 0
je 0x1800c5c84
cmp edi, 5
jl 0x1800c5c84
mov edx, dword [rdx]
lea r15, [0x180000000]
cmp edx, dword [r15 + 0x1544f4]
jne 0x1800c5721
movzx edx, byte [rbx + 4]
cmp dl, byte [r15 + 0x1544f8]
jne 0x1800c5721
xor eax, eax
jmp 0x1800c5726
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c5c84
or r14d, 0x40
lea eax, [rdi + 8]
movsxd r9, edi
xor edx, edx
xor r8d, r8d
xor ebp, ebp
xor ecx, ecx
movsxd rsi, eax
mov dword [rsp + 0x88], r14d
cmp r9, 2
jl 0x1800c5782
lea rdi, [r9 - 1]
nop word [rax + rax]
xor eax, eax
cmp byte [rbx + rcx], 0x26
sete al
add rdx, rax
xor eax, eax
cmp byte [rbx + rcx + 1], 0x26
sete al
add rcx, 2
add r8, rax
cmp rcx, rdi
jl 0x1800c5760
cmp rcx, r9
jge 0x1800c5793
xor eax, eax
cmp byte [rcx + rbx], 0x26
sete al
add rsi, rax
lea rax, [rdx + r8]
add rsi, rax
call sym.sqlite.dll_sqlite3_initialize
test eax, eax
jne 0x1800c5d0d
test rsi, rsi
je 0x1800c5d0d
mov rcx, rsi
call fcn.18000af90
test rax, rax
je 0x1800c5d0d
xor ecx, ecx
lea rsi, [rax + 4]
mov dword [rax], ecx
cmp byte [rbx + 5], 0x2f
mov qword [rsp + 0x28], rsi
lea r8d, [rcx + 5]
jne 0x1800c5869
cmp byte [rbx + 6], 0x2f
jne 0x1800c5869
movzx eax, byte [rbx + 7]
lea r8d, [rcx + 7]
test al, al
je 0x1800c5869
lea rcx, [rbx + 7]
cmp al, 0x2f
je 0x1800c5808
movzx eax, byte [rcx + 1]
inc rcx
inc r8d
test al, al
jne 0x1800c57f6
cmp r8d, 7
je 0x1800c5869
cmp r8d, 0x10
jne 0x1800c5842
mov rdx, qword [r15 + 0x154500]
lea rcx, [rbx + 7]
cmp rdx, qword [rbx + 7]
jne 0x1800c5839
movzx edx, byte [r15 + 0x154508]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800c5839
xor eax, eax
jmp 0x1800c583e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800c5869
lea edx, [r8 - 7]
lea rcx, str.invalid_uri_authority:__.s
lea r8, [rbx + 7]
call sym.sqlite.dll_sqlite3_mprintf
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800c5c1d
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x1800c59fc
nop
cmp dl, 0x23
je 0x1800c59ed
inc r8d
cmp dl, 0x25
jne 0x1800c5958
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r15 + 0x143a90], 8
je 0x1800c5958
movzx eax, byte [rax + rbx + 1]
test byte [rax + r15 + 0x143a90], 8
je 0x1800c5958
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 0x1800c59d5
movsxd rax, r8d
movsxd rcx, r10d
lea rdx, [rax + rbx]
movzx eax, byte [rax + rbx]
test al, al
je 0x1800c59de
cmp al, 0x23
je 0x1800c59de
test r10d, r10d
jne 0x1800c5927
cmp al, 0x3f
jmp 0x1800c593f
cmp rcx, 1
jne 0x1800c5937
cmp al, 0x3d
je 0x1800c59de
jmp 0x1800c593d
cmp rcx, 2
jne 0x1800c5945
cmp al, 0x26
je 0x1800c59de
movzx eax, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x1800c5916
jmp 0x1800c59de
cmp r10d, 1
jne 0x1800c59b6
cmp dl, 0x26
je 0x1800c5968
cmp dl, 0x3d
jne 0x1800c59d5
cmp byte [r9 + rsi - 1], 0
jne 0x1800c599d
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x1800c59de
movzx ecx, byte [rax + rbx]
nop dword [rax]
cmp cl, 0x23
je 0x1800c59de
cmp byte [rax + rbx - 1], 0x26
je 0x1800c59de
movzx ecx, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800c5980
jmp 0x1800c59de
cmp dl, 0x26
jne 0x1800c59ae
mov byte [r9 + rsi], 0
inc ebp
inc r9
jmp 0x1800c59d3
mov r10d, 2
jmp 0x1800c59d3
test r10d, r10d
jne 0x1800c59c2
cmp dl, 0x3f
je 0x1800c59cd
jmp 0x1800c59d5
cmp r10d, 2
jne 0x1800c59d5
cmp dl, 0x26
jne 0x1800c59d5
mov r10d, 1
xor dl, dl
mov byte [r9 + rsi], dl
inc ebp
inc r9
movsxd rax, r8d
movzx edx, byte [rax + rbx]
test dl, dl
jne 0x1800c5880
cmp r10d, 1
jne 0x1800c59fc
movsxd rax, ebp
inc ebp
mov byte [rax + rsi], 0
xor ecx, ecx
movsxd rax, ebp
mov dword [rax + rsi], ecx
test rsi, rsi
je 0x1800c5a20
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
dec rcx
and ecx, 0x3fffffff
lea eax, [rcx + 1]
movsxd rdx, eax
add rdx, rsi
cmp byte [rdx], 0
je 0x1800c5be7
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 0x1800c5a5b
xor ebp, ebp
jmp 0x1800c5a73
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 0x1800c5ab1
movzx ecx, word [r15 + 0x15452c]
cmp cx, word [rdx]
jne 0x1800c5a97
movzx ecx, byte [r15 + 0x15452e]
cmp cl, byte [rdx + 2]
jne 0x1800c5a97
xor eax, eax
jmp 0x1800c5a9c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c5bcb
mov r12, r13
mov qword [rsp + 0x20], r13
jmp 0x1800c5bd0
cmp r8d, 5
jne 0x1800c5af7
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x1800c5ad1
movzx ecx, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x1800c5ad1
xor eax, eax
jmp 0x1800c5ad6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c5bcb
mov r12d, 0x60000
lea rsi, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x1800c5b26
cmp r8d, 4
jne 0x1800c5bcb
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800c5bcb
mov r12d, 0x87
lea rsi, [0x180174670]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rsi]
xor ebx, ebx
test rdx, rdx
je 0x1800c5b6c
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 0x1800c5b5a
movsxd r8, ebp
mov rcx, r13
call fcn.180136a90
test eax, eax
je 0x1800c5b91
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rsi + rax*8]
test rdx, rdx
jne 0x1800c5b30
lea rcx, str.no_such__s_mode:__s
mov r8, r13
mov rdx, r15
call sym.sqlite.dll_sqlite3_mprintf
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800c5c1d
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x1800c5b6c
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x1800c5c57
mov r14d, dword [rsp + 0x88]
not r12d
lea r15, [0x180000000]
and r14d, r12d
or r14d, ecx
mov dword [rsp + 0x88], r14d
mov r12, qword [rsp + 0x20]
lea eax, [rbp + 1]
movsxd rdx, eax
add rdx, r13
cmp byte [rdx], 0
jne 0x1800c5a32
mov rsi, qword [rsp + 0x28]
mov rcx, r12
call sym.sqlite.dll_sqlite3_vfs_find
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x1800c5ce8
lea rcx, str.no_such_vfs:__s
mov rdx, r12
call sym.sqlite.dll_sqlite3_mprintf
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
mov dword [rsp + 0x80], 1
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1800c5ce6
cmp byte [rcx - 1], 0
jne 0x1800c5c52
cmp byte [rcx - 2], 0
jne 0x1800c5c52
cmp byte [rcx - 3], 0
jne 0x1800c5c52
cmp byte [rcx - 4], 0
je 0x1800c5cdd
dec rcx
jmp 0x1800c5c36
lea rcx, str._s_mode_not_allowed:__s
mov r8, r13
mov rdx, r15
call sym.sqlite.dll_sqlite3_mprintf
mov dword [rsp + 0x80], 3
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x1800c5c28
lea eax, [rdi + 8]
movsxd rsi, eax
call sym.sqlite.dll_sqlite3_initialize
test eax, eax
jne 0x1800c5d0d
test rsi, rsi
je 0x1800c5d0d
mov rcx, rsi
call fcn.18000af90
test rax, rax
je 0x1800c5d0d
xor ecx, ecx
lea rsi, [rax + 4]
mov qword [rsp + 0x28], rsi
mov dword [rax], ecx
test edi, edi
je 0x1800c5cc4
movsxd r8, edi
mov rdx, rbx
mov rcx, rsi
call fcn.1801278d0
xor ecx, ecx
movsxd rax, edi
and r14d, 0xffffffbf
mov dword [rax + rsi], ecx
mov dword [rsp + 0x88], r14d
jmp 0x1800c5be7
add rcx, 0xfffffffffffffffc
call sym.sqlite.dll_sqlite3_free
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 0x1800c5d12
mov eax, 7
mov r15, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rbx
ret