Function at 0x1401d6670
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r12d, dword [r8]
mov qword [rsp + 0x80], rcx
mov rcx, rdx
mov rsi, rdx
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], r9
call sym.sqlite3Strlen30
test r12d, 0x40
lea ebx, [rax + 8]
mov ebp, eax
jne 0x1401d66c1
cmp byte [0x1402173e6], 0
je 0x1401d69ae
cmp ebp, 4
jle 0x1401d69ae
lea rdx, str.file:
mov r8d, 5
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
mov edi, eax
jne 0x1401d69ae
movsxd rcx, ebx
or r12d, 0x40
xor eax, eax
xor edx, edx
cmp byte [rsi + rax], 0x26
sete dl
inc rax
add rcx, rdx
cmp ebp, eax
jg 0x1401d66f2
call sym.sqlite3_malloc64
test rax, rax
mov r13, rax
jne 0x1401d671c
mov esi, 7
jmp 0x1401d6b37
lea rbx, [rax + 4]
xor r9d, r9d
mov ebp, 5
mov dword [rax], r9d
cmp byte [rsi + 5], 0x2f
je 0x1401d6749
xor r9d, r9d
mov r11d, 1
xor r14d, r14d
lea r10, [0x1402fd1c0]
jmp 0x1401d681d
cmp byte [rsi + 6], 0x2f
jne 0x1401d6731
mov eax, 7
mov dl, byte [rsi + rax]
mov r15, rax
inc rax
test dl, dl
je 0x1401d6766
cmp dl, 0x2f
jne 0x1401d6754
cmp r15d, 7
mov ebp, r15d
je 0x1401d6731
lea r14, [rsi + 7]
cmp r15d, 0x10
jne 0x1401d6792
lea rcx, str.localhost
mov r8d, 9
mov rdx, r14
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1401d6731
lea edx, [r15 - 7]
mov r8, r14
lea rcx, str.invalid_uri_authority:__.s
call sym.sqlite3_mprintf
jmp 0x1401d6a16
test r8b, r8b
je 0x1401d68e9
lea edx, [rbp + 1]
cmp r8b, 0x25
jne 0x1401d685a
movsxd rax, edx
movzx r15d, byte [rsi + rax]
test byte [r10 + r15], 8
je 0x1401d685a
movzx eax, byte [rsi + rax + 1]
test byte [r10 + rax], 8
je 0x1401d685a
lea edx, [rbp + 3]
add ebp, 2
movsx ecx, r15b
call sym.sqlite3HexToInt
movsxd rbp, ebp
movsx ecx, byte [rsi + rbp]
movzx r8d, al
shl r8d, 4
call sym.sqlite3HexToInt
movzx eax, al
add eax, r8d
mov r8d, eax
jne 0x1401d68d1
movsxd rdx, edx
mov al, byte [rsi + rdx]
mov ebp, edx
cmp al, 0x23
jne 0x1401d682f
movsxd rax, ebp
mov r8b, byte [rsi + rax]
cmp r8b, 0x23
jne 0x1401d67aa
jmp 0x1401d68e9
test al, al
je 0x1401d681d
test edi, edi
jne 0x1401d683f
cmp al, 0x3f
je 0x1401d68e2
cmp edi, 1
jne 0x1401d684a
cmp al, 0x3d
jne 0x1401d6854
jmp 0x1401d681d
cmp edi, 2
je 0x1401d6854
inc rdx
jmp 0x1401d6814
cmp al, 0x26
jne 0x1401d684f
jmp 0x1401d681d
cmp edi, 1
jne 0x1401d68a0
cmp r8b, 0x26
je 0x1401d686b
cmp r8b, 0x3d
jne 0x1401d68d1
movsxd rax, r9d
cmp byte [rbx + rax - 1], 0
jne 0x1401d6891
movsxd rdx, edx
mov al, byte [rsi + rdx]
mov ebp, edx
test al, al
je 0x1401d681d
cmp al, 0x23
je 0x1401d681d
inc rdx
cmp byte [rsi + rdx - 2], 0x26
jne 0x1401d6878
jmp 0x1401d681d
cmp r8b, 0x26
jne 0x1401d68c2
inc r9d
mov byte [rbx + rax], 0
jmp 0x1401d68ce
test edi, edi
jne 0x1401d68aa
cmp r8b, 0x3f
je 0x1401d68c9
cmp edi, 2
jne 0x1401d68d1
cmp r8b, 0x26
sete al
test al, al
cmovne edi, r11d
cmovne r8d, r14d
jmp 0x1401d68d1
mov edi, 2
jmp 0x1401d68ce
mov edi, 1
xor r8d, r8d
movsxd rax, r9d
mov ebp, edx
inc r9d
mov byte [rbx + rax], r8b
jmp 0x1401d681d
xor edi, edi
jmp 0x1401d681d
dec edi
jne 0x1401d68f9
movsxd rax, r9d
inc r9d
mov byte [r13 + rax + 4], 0
movsxd r9, r9d
xor r8d, r8d
mov rcx, rbx
mov dword [rbx + r9], r8d
call sym.sqlite3Strlen30
cdqe
lea rdx, [rbx + rax + 1]
cmp byte [rdx], 0
je 0x1401d69df
mov rcx, rdx
mov qword [rsp + 0x20], rdx
call sym.sqlite3Strlen30
mov rdx, qword [rsp + 0x20]
mov ebp, eax
cdqe
lea rdi, [rdx + rax + 1]
mov rcx, rdi
call sym.sqlite3Strlen30
cmp ebp, 3
mov rdx, qword [rsp + 0x20]
movsxd rsi, eax
jne 0x1401d6975
lea rcx, [0x1402eed94]
mov r8d, 3
call sub.msvcrt.dll_memcmp
test eax, eax
mov rax, rdi
cmovne rax, qword [rsp + 0x80]
mov qword [rsp + 0x80], rax
jmp 0x1401d69a4
cmp ebp, 5
jne 0x1401d6ab5
lea rcx, str.cache
mov r8d, 5
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1401d6af7
jmp 0x1401d69a4
not ebp
and ebp, r12d
or eax, ebp
mov r12d, eax
lea rdx, [rdi + rsi + 1]
jmp 0x1401d6912
movsxd rcx, ebx
call sym.sqlite3_malloc64
test rax, rax
je 0x1401d6712
lea rbx, [rax + 4]
xor ecx, ecx
test ebp, ebp
mov dword [rax], ecx
movsxd rax, ebp
je 0x1401d69d6
mov rdi, rbx
mov rcx, rax
rep movsb byte [rdi], byte [rsi]
xor edx, edx
and r12d, 0xffffffbf
mov dword [rbx + rax], edx
mov rcx, qword [rsp + 0x80]
xor esi, esi
call sym.sqlite3_vfs_find
mov rdi, qword [rsp + 0x98]
test rax, rax
mov qword [rdi], rax
jne 0x1401d6a9a
mov rdx, qword [rsp + 0x80]
lea rcx, str.no_such_vfs:__s
call sym.sqlite3_mprintf
mov esi, 1
jmp 0x1401d6a85
add r15, 0x10
mov rdx, qword [r15]
test rdx, rdx
je 0x1401d6b20
mov rcx, rdx
mov qword [rsp + 0x28], rdx
call sym.sqlite3Strlen30
mov rdx, qword [rsp + 0x28]
cmp esi, eax
jne 0x1401d6a1d
mov r8, qword [rsp + 0x20]
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401d6a1d
mov eax, dword [r15 + 8]
test eax, eax
je 0x1401d6b20
mov edx, eax
and dl, 0x7f
cmp edx, r13d
jle 0x1401d699a
mov r8, rdi
mov rdx, r14
mov esi, 3
lea rcx, str._s_mode_not_allowed:__s
call sym.sqlite3_mprintf
mov rdx, qword [rsp + 0xa8]
mov rcx, rbx
xor ebx, ebx
mov qword [rdx], rax
call sym.sqlite3_free_filename
mov rax, qword [rsp + 0x90]
mov dword [rax], r12d
mov rax, qword [rsp + 0xa0]
mov qword [rax], rbx
jmp 0x1401d6b37
cmp ebp, 4
jne 0x1401d69a4
lea rcx, str.mode
mov r8d, 4
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401d69a4
lea r14, str.access
mov r13d, r12d
mov ebp, 0x87
lea r9, str.8Y__
and r13d, 0x87
jmp 0x1401d6b10
mov r13d, 0x60000
mov ebp, 0x60000
lea r14, str.cache
lea r9, str.BY__
movsxd rax, esi
mov r15, r9
mov qword [rsp + 0x20], rax
jmp 0x1401d6a21
lea rcx, str.no_such__s_mode:__s
mov r8, rdi
mov rdx, r14
call sym.sqlite3_mprintf
jmp 0x1401d6a16
mov eax, esi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret