Function at 0x1800c6620
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 0x1800c6656
xor edi, edi
jmp 0x1800c666e
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 0x1800c6695
cmp byte [0x180172926], 0
je 0x1800c6c24
cmp edi, 5
jl 0x1800c6c24
mov edx, dword [rdx]
lea r15, [0x180000000]
cmp edx, dword [r15 + 0x1557f4]
jne 0x1800c66c1
movzx edx, byte [rbx + 4]
cmp dl, byte [r15 + 0x1557f8]
jne 0x1800c66c1
xor eax, eax
jmp 0x1800c66c6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c6c24
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 0x1800c6722
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 0x1800c6700
cmp rcx, r9
jge 0x1800c6733
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 0x1800c6cad
test rsi, rsi
je 0x1800c6cad
mov rcx, rsi
call fcn.18000be40
test rax, rax
je 0x1800c6cad
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 0x1800c6809
cmp byte [rbx + 6], 0x2f
jne 0x1800c6809
movzx eax, byte [rbx + 7]
lea r8d, [rcx + 7]
test al, al
je 0x1800c6809
lea rcx, [rbx + 7]
cmp al, 0x2f
je 0x1800c67a8
movzx eax, byte [rcx + 1]
inc rcx
inc r8d
test al, al
jne 0x1800c6796
cmp r8d, 7
je 0x1800c6809
cmp r8d, 0x10
jne 0x1800c67e2
mov rdx, qword [r15 + 0x155800]
lea rcx, [rbx + 7]
cmp rdx, qword [rbx + 7]
jne 0x1800c67d9
movzx edx, byte [r15 + 0x155808]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800c67d9
xor eax, eax
jmp 0x1800c67de
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800c6809
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 0x1800c6bbd
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x1800c699c
nop
cmp dl, 0x23
je 0x1800c698d
inc r8d
cmp dl, 0x25
jne 0x1800c68f8
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r15 + 0x144d90], 8
je 0x1800c68f8
movzx eax, byte [rax + rbx + 1]
test byte [rax + r15 + 0x144d90], 8
je 0x1800c68f8
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 0x1800c6975
movsxd rax, r8d
movsxd rcx, r10d
lea rdx, [rax + rbx]
movzx eax, byte [rax + rbx]
test al, al
je 0x1800c697e
cmp al, 0x23
je 0x1800c697e
test r10d, r10d
jne 0x1800c68c7
cmp al, 0x3f
jmp 0x1800c68df
cmp rcx, 1
jne 0x1800c68d7
cmp al, 0x3d
je 0x1800c697e
jmp 0x1800c68dd
cmp rcx, 2
jne 0x1800c68e5
cmp al, 0x26
je 0x1800c697e
movzx eax, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x1800c68b6
jmp 0x1800c697e
cmp r10d, 1
jne 0x1800c6956
cmp dl, 0x26
je 0x1800c6908
cmp dl, 0x3d
jne 0x1800c6975
cmp byte [r9 + rsi - 1], 0
jne 0x1800c693d
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x1800c697e
movzx ecx, byte [rax + rbx]
nop dword [rax]
cmp cl, 0x23
je 0x1800c697e
cmp byte [rax + rbx - 1], 0x26
je 0x1800c697e
movzx ecx, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800c6920
jmp 0x1800c697e
cmp dl, 0x26
jne 0x1800c694e
mov byte [r9 + rsi], 0
inc ebp
inc r9
jmp 0x1800c6973
mov r10d, 2
jmp 0x1800c6973
test r10d, r10d
jne 0x1800c6962
cmp dl, 0x3f
je 0x1800c696d
jmp 0x1800c6975
cmp r10d, 2
jne 0x1800c6975
cmp dl, 0x26
jne 0x1800c6975
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 0x1800c6820
cmp r10d, 1
jne 0x1800c699c
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 0x1800c69c0
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 0x1800c6b87
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 0x1800c69fb
xor ebp, ebp
jmp 0x1800c6a13
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 0x1800c6a51
movzx ecx, word [r15 + 0x15582c]
cmp cx, word [rdx]
jne 0x1800c6a37
movzx ecx, byte [r15 + 0x15582e]
cmp cl, byte [rdx + 2]
jne 0x1800c6a37
xor eax, eax
jmp 0x1800c6a3c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c6b6b
mov r12, r13
mov qword [rsp + 0x20], r13
jmp 0x1800c6b70
cmp r8d, 5
jne 0x1800c6a97
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x1800c6a71
movzx ecx, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x1800c6a71
xor eax, eax
jmp 0x1800c6a76
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c6b6b
mov r12d, 0x60000
lea rsi, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x1800c6ac6
cmp r8d, 4
jne 0x1800c6b6b
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800c6b6b
mov r12d, 0x87
lea rsi, [0x180175670]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rsi]
xor ebx, ebx
test rdx, rdx
je 0x1800c6b0c
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 0x1800c6afa
movsxd r8, ebp
mov rcx, r13
call fcn.180137910
test eax, eax
je 0x1800c6b31
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rsi + rax*8]
test rdx, rdx
jne 0x1800c6ad0
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 0x1800c6bbd
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x1800c6b0c
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x1800c6bf7
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 0x1800c69d2
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 0x1800c6c88
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 0x1800c6c86
cmp byte [rcx - 1], 0
jne 0x1800c6bf2
cmp byte [rcx - 2], 0
jne 0x1800c6bf2
cmp byte [rcx - 3], 0
jne 0x1800c6bf2
cmp byte [rcx - 4], 0
je 0x1800c6c7d
dec rcx
jmp 0x1800c6bd6
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 0x1800c6bc8
lea eax, [rdi + 8]
movsxd rsi, eax
call sym.sqlite.dll_sqlite3_initialize
test eax, eax
jne 0x1800c6cad
test rsi, rsi
je 0x1800c6cad
mov rcx, rsi
call fcn.18000be40
test rax, rax
je 0x1800c6cad
xor ecx, ecx
lea rsi, [rax + 4]
mov qword [rsp + 0x28], rsi
mov dword [rax], ecx
test edi, edi
je 0x1800c6c64
movsxd r8, edi
mov rdx, rbx
mov rcx, rsi
call fcn.180128750
xor ecx, ecx
movsxd rax, edi
and r14d, 0xffffffbf
mov dword [rax + rsi], ecx
mov dword [rsp + 0x88], r14d
jmp 0x1800c6b87
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 0x1800c6cb2
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