Function at 0x1800c58f0
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 0x1800c5926
xor edi, edi
jmp 0x1800c593e
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 0x1800c5965
cmp byte [0x180171926], 0
je 0x1800c5ef4
cmp edi, 5
jl 0x1800c5ef4
mov edx, dword [rdx]
lea r15, [0x180000000]
cmp edx, dword [r15 + 0x154544]
jne 0x1800c5991
movzx edx, byte [rbx + 4]
cmp dl, byte [r15 + 0x154548]
jne 0x1800c5991
xor eax, eax
jmp 0x1800c5996
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c5ef4
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 0x1800c59f2
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 0x1800c59d0
cmp rcx, r9
jge 0x1800c5a03
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 0x1800c5f7d
test rsi, rsi
je 0x1800c5f7d
mov rcx, rsi
call fcn.18000b130
test rax, rax
je 0x1800c5f7d
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 0x1800c5ad9
cmp byte [rbx + 6], 0x2f
jne 0x1800c5ad9
movzx eax, byte [rbx + 7]
lea r8d, [rcx + 7]
test al, al
je 0x1800c5ad9
lea rcx, [rbx + 7]
cmp al, 0x2f
je 0x1800c5a78
movzx eax, byte [rcx + 1]
inc rcx
inc r8d
test al, al
jne 0x1800c5a66
cmp r8d, 7
je 0x1800c5ad9
cmp r8d, 0x10
jne 0x1800c5ab2
mov rdx, qword [r15 + 0x154550]
lea rcx, [rbx + 7]
cmp rdx, qword [rbx + 7]
jne 0x1800c5aa9
movzx edx, byte [r15 + 0x154558]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800c5aa9
xor eax, eax
jmp 0x1800c5aae
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800c5ad9
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 0x1800c5e8d
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x1800c5c6c
nop
cmp dl, 0x23
je 0x1800c5c5d
inc r8d
cmp dl, 0x25
jne 0x1800c5bc8
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r15 + 0x143ae0], 8
je 0x1800c5bc8
movzx eax, byte [rax + rbx + 1]
test byte [rax + r15 + 0x143ae0], 8
je 0x1800c5bc8
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 0x1800c5c45
movsxd rax, r8d
movsxd rcx, r10d
lea rdx, [rax + rbx]
movzx eax, byte [rax + rbx]
test al, al
je 0x1800c5c4e
cmp al, 0x23
je 0x1800c5c4e
test r10d, r10d
jne 0x1800c5b97
cmp al, 0x3f
jmp 0x1800c5baf
cmp rcx, 1
jne 0x1800c5ba7
cmp al, 0x3d
je 0x1800c5c4e
jmp 0x1800c5bad
cmp rcx, 2
jne 0x1800c5bb5
cmp al, 0x26
je 0x1800c5c4e
movzx eax, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x1800c5b86
jmp 0x1800c5c4e
cmp r10d, 1
jne 0x1800c5c26
cmp dl, 0x26
je 0x1800c5bd8
cmp dl, 0x3d
jne 0x1800c5c45
cmp byte [r9 + rsi - 1], 0
jne 0x1800c5c0d
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x1800c5c4e
movzx ecx, byte [rax + rbx]
nop dword [rax]
cmp cl, 0x23
je 0x1800c5c4e
cmp byte [rax + rbx - 1], 0x26
je 0x1800c5c4e
movzx ecx, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x1800c5bf0
jmp 0x1800c5c4e
cmp dl, 0x26
jne 0x1800c5c1e
mov byte [r9 + rsi], 0
inc ebp
inc r9
jmp 0x1800c5c43
mov r10d, 2
jmp 0x1800c5c43
test r10d, r10d
jne 0x1800c5c32
cmp dl, 0x3f
je 0x1800c5c3d
jmp 0x1800c5c45
cmp r10d, 2
jne 0x1800c5c45
cmp dl, 0x26
jne 0x1800c5c45
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 0x1800c5af0
cmp r10d, 1
jne 0x1800c5c6c
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 0x1800c5c90
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 0x1800c5e57
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 0x1800c5ccb
xor ebp, ebp
jmp 0x1800c5ce3
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 0x1800c5d21
movzx ecx, word [r15 + 0x15457c]
cmp cx, word [rdx]
jne 0x1800c5d07
movzx ecx, byte [r15 + 0x15457e]
cmp cl, byte [rdx + 2]
jne 0x1800c5d07
xor eax, eax
jmp 0x1800c5d0c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c5e3b
mov r12, r13
mov qword [rsp + 0x20], r13
jmp 0x1800c5e40
cmp r8d, 5
jne 0x1800c5d67
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x1800c5d41
movzx ecx, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x1800c5d41
xor eax, eax
jmp 0x1800c5d46
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800c5e3b
mov r12d, 0x60000
lea rsi, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x1800c5d96
cmp r8d, 4
jne 0x1800c5e3b
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800c5e3b
mov r12d, 0x87
lea rsi, [0x180174670]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rsi]
xor ebx, ebx
test rdx, rdx
je 0x1800c5ddc
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 0x1800c5dca
movsxd r8, ebp
mov rcx, r13
call fcn.180134af0
test eax, eax
je 0x1800c5e01
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rsi + rax*8]
test rdx, rdx
jne 0x1800c5da0
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 0x1800c5e8d
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x1800c5ddc
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x1800c5ec7
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 0x1800c5ca2
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 0x1800c5f58
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 0x1800c5f56
cmp byte [rcx - 1], 0
jne 0x1800c5ec2
cmp byte [rcx - 2], 0
jne 0x1800c5ec2
cmp byte [rcx - 3], 0
jne 0x1800c5ec2
cmp byte [rcx - 4], 0
je 0x1800c5f4d
dec rcx
jmp 0x1800c5ea6
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 0x1800c5e98
lea eax, [rdi + 8]
movsxd rsi, eax
call sym.sqlite.dll_sqlite3_initialize
test eax, eax
jne 0x1800c5f7d
test rsi, rsi
je 0x1800c5f7d
mov rcx, rsi
call fcn.18000b130
test rax, rax
je 0x1800c5f7d
xor ecx, ecx
lea rsi, [rax + 4]
mov qword [rsp + 0x28], rsi
mov dword [rax], ecx
test edi, edi
je 0x1800c5f34
movsxd r8, edi
mov rdx, rbx
mov rcx, rsi
call fcn.180127c70
xor ecx, ecx
movsxd rax, edi
and r14d, 0xffffffbf
mov dword [rax + rsi], ecx
mov dword [rsp + 0x88], r14d
jmp 0x1800c5e57
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 0x1800c5f82
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