Function at 0x1800c6630
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 0x1800c6666
xor edi, edi
jmp 0x1800c667e
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 0x1800c66a5
cmp byte [0x180172926], 0
je 0x1800c6c34
cmp edi, 5
jl 0x1800c6c34
mov edx, dword [rdx]
lea r15, [0x180000000]
cmp edx, dword [r15 + 0x1557e4]
jne 0x1800c66d1
movzx edx, byte [rbx + 4]
cmp dl, byte [r15 + 0x1557e8]
jne 0x1800c66d1
xor eax, eax
jmp 0x1800c66d6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c6c34
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 0x1800c6732
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 0x1800c6710
cmp rcx, r9
jge 0x1800c6743
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 0x1800c6cbd
test rsi, rsi
je 0x1800c6cbd
mov rcx, rsi
call fcn.18000be40
test rax, rax
je 0x1800c6cbd
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 0x1800c6819
cmp byte [rbx + 6], 0x2f
jne 0x1800c6819
movzx eax, byte [rbx + 7]
lea r8d, [rcx + 7]
test al, al
je 0x1800c6819
lea rcx, [rbx + 7]
cmp al, 0x2f
je 0x1800c67b8
movzx eax, byte [rcx + 1]
inc rcx
inc r8d
test al, al
jne 0x1800c67a6
cmp r8d, 7
je 0x1800c6819
cmp r8d, 0x10
jne 0x1800c67f2
mov rdx, qword [r15 + 0x1557f0]
lea rcx, [rbx + 7]
cmp rdx, qword [rbx + 7]
jne 0x1800c67e9
movzx edx, byte [r15 + 0x1557f8]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800c67e9
xor eax, eax
jmp 0x1800c67ee
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800c6819
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 0x1800c6bcd
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x1800c69ac
nop
cmp dl, 0x23
je 0x1800c699d
inc r8d
cmp dl, 0x25
jne 0x1800c6908
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r15 + 0x144d80], 8
je 0x1800c6908
movzx eax, byte [rax + rbx + 1]
test byte [rax + r15 + 0x144d80], 8
je 0x1800c6908
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 0x1800c6985
movsxd rax, r8d
movsxd rcx, r10d
lea rdx, [rax + rbx]
movzx eax, byte [rax + rbx]
test al, al
je 0x1800c698e
cmp al, 0x23
je 0x1800c698e
test r10d, r10d
jne 0x1800c68d7
cmp al, 0x3f
jmp 0x1800c68ef
cmp rcx, 1
jne 0x1800c68e7
cmp al, 0x3d
je 0x1800c698e
jmp 0x1800c68ed
cmp rcx, 2
jne 0x1800c68f5
cmp al, 0x26
je 0x1800c698e
movzx eax, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x1800c68c6
jmp 0x1800c698e
cmp r10d, 1
jne 0x1800c6966
cmp dl, 0x26
je 0x1800c6918
cmp dl, 0x3d
jne 0x1800c6985
cmp byte [r9 + rsi - 1], 0
jne 0x1800c694d
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x1800c698e
movzx ecx, byte [rax + rbx]
nop dword [rax]
cmp cl, 0x23
je 0x1800c698e
cmp byte [rax + rbx - 1], 0x26
je 0x1800c698e
movzx ecx, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800c6930
jmp 0x1800c698e
cmp dl, 0x26
jne 0x1800c695e
mov byte [r9 + rsi], 0
inc ebp
inc r9
jmp 0x1800c6983
mov r10d, 2
jmp 0x1800c6983
test r10d, r10d
jne 0x1800c6972
cmp dl, 0x3f
je 0x1800c697d
jmp 0x1800c6985
cmp r10d, 2
jne 0x1800c6985
cmp dl, 0x26
jne 0x1800c6985
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 0x1800c6830
cmp r10d, 1
jne 0x1800c69ac
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 0x1800c69d0
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 0x1800c6b97
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 0x1800c6a0b
xor ebp, ebp
jmp 0x1800c6a23
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 0x1800c6a61
movzx ecx, word [r15 + 0x15581c]
cmp cx, word [rdx]
jne 0x1800c6a47
movzx ecx, byte [r15 + 0x15581e]
cmp cl, byte [rdx + 2]
jne 0x1800c6a47
xor eax, eax
jmp 0x1800c6a4c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c6b7b
mov r12, r13
mov qword [rsp + 0x20], r13
jmp 0x1800c6b80
cmp r8d, 5
jne 0x1800c6aa7
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x1800c6a81
movzx ecx, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x1800c6a81
xor eax, eax
jmp 0x1800c6a86
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c6b7b
mov r12d, 0x60000
lea rsi, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x1800c6ad6
cmp r8d, 4
jne 0x1800c6b7b
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800c6b7b
mov r12d, 0x87
lea rsi, [0x180175670]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rsi]
xor ebx, ebx
test rdx, rdx
je 0x1800c6b1c
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 0x1800c6b0a
movsxd r8, ebp
mov rcx, r13
call fcn.180137900
test eax, eax
je 0x1800c6b41
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rsi + rax*8]
test rdx, rdx
jne 0x1800c6ae0
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 0x1800c6bcd
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x1800c6b1c
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x1800c6c07
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 0x1800c69e2
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 0x1800c6c98
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 0x1800c6c96
cmp byte [rcx - 1], 0
jne 0x1800c6c02
cmp byte [rcx - 2], 0
jne 0x1800c6c02
cmp byte [rcx - 3], 0
jne 0x1800c6c02
cmp byte [rcx - 4], 0
je 0x1800c6c8d
dec rcx
jmp 0x1800c6be6
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 0x1800c6bd8
lea eax, [rdi + 8]
movsxd rsi, eax
call sym.sqlite.dll_sqlite3_initialize
test eax, eax
jne 0x1800c6cbd
test rsi, rsi
je 0x1800c6cbd
mov rcx, rsi
call fcn.18000be40
test rax, rax
je 0x1800c6cbd
xor ecx, ecx
lea rsi, [rax + 4]
mov qword [rsp + 0x28], rsi
mov dword [rax], ecx
test edi, edi
je 0x1800c6c74
movsxd r8, edi
mov rdx, rbx
mov rcx, rsi
call fcn.180128740
xor ecx, ecx
movsxd rax, edi
and r14d, 0xffffffbf
mov dword [rax + rsi], ecx
mov dword [rsp + 0x88], r14d
jmp 0x1800c6b97
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 0x1800c6cc2
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