Function at 0x1401b3b60
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 edi, dword [r8]
mov r13d, edi
and r13d, 0x40
mov r12, rcx
mov rsi, rdx
mov rbp, r8
mov r15, r9
test rdx, rdx
je 0x1401b3e70
mov rcx, rdx
call sym.strlen
mov r14d, eax
and r14d, 0x3fffffff
lea ebx, [r14 + 8]
movsxd rbx, ebx
test r13d, r13d
je 0x1401b3c50
cmp r14d, 4
jle 0x1401b3bc3
cmp dword [rsi], 0x656c6966
je 0x1401b3c93
mov eax, dword [0x140245cf4]
test eax, eax
jne 0x1401b3c70
call dbg.sqlite3MutexInit
test eax, eax
jne 0x1401b3c48
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x1401b3c48
mov rcx, rbx
call sym.sqlite3Malloc
test rax, rax
je 0x1401b3c48
mov dword [rax], 0
lea rbx, [rax + 4]
movsxd r13, r14d
test r14d, r14d
jne 0x1401b3c80
mov dword [rbx + r13], 0
and edi, 0xffffffbf
mov rcx, r12
xor esi, esi
call dbg.sqlite3_vfs_find
mov qword [r15], rax
test rax, rax
je 0x1401b3e82
mov rax, qword [rsp + 0xa0]
mov dword [rbp], edi
mov qword [rax], rbx
mov eax, esi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov esi, 7
jmp 0x1401b3c31
movzx eax, byte [0x140245ba6]
test al, al
jne 0x1401b3bb1
mov eax, dword [0x140245cf4]
test eax, eax
je 0x1401b3bd1
nop dword [rax]
lock or qword [rsp], 0
jmp 0x1401b3be3
mov r8, r13
mov rdx, rsi
mov rcx, rbx
call sym.memcpy
jmp 0x1401b3c02
cmp byte [rsi + 4], 0x3a
jne 0x1401b3bc3
movsxd rcx, r14d
xor r13d, r13d
or edi, 0x40
mov rax, rsi
add rcx, rsi
nop dword [rax]
xor edx, edx
cmp byte [rax], 0x26
sete dl
add rax, 1
add rbx, rdx
cmp rax, rcx
jne 0x1401b3cb0
mov edx, dword [0x140245cf4]
test edx, edx
jne 0x1401b4154
call dbg.sqlite3MutexInit
test eax, eax
jne 0x1401b3c48
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x1401b3c48
mov rcx, rbx
call sym.sqlite3Malloc
test rax, rax
je 0x1401b3c48
mov dword [rax], 0
lea rbx, [rax + 4]
movzx eax, byte [rsi + 5]
cmp al, 0x2f
je 0x1401b4172
test al, al
mov edx, 5
setne cl
cmp al, 0x23
je 0x1401b4283
test cl, cl
je 0x1401b4283
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x90], rbp
jmp 0x1401b3d8f
cmp r9d, 1
je 0x1401b3ee8
test r9d, r9d
jne 0x1401b3f15
cmp al, 0x3f
jne 0x1401b3f15
mov r9d, 1
xor eax, eax
mov byte [rbx + r10], al
add r13d, 1
mov edx, ecx
movsxd r8, r13d
movsxd rax, edx
movzx eax, byte [rsi + rax]
cmp al, 0x23
je 0x1401b3f3c
test al, al
je 0x1401b3f3c
lea ecx, [rdx + 1]
mov r10, r8
cmp al, 0x25
jne 0x1401b3d48
movsxd rdi, ecx
lea rbp, [0x14039ebe0]
movzx r14d, byte [rsi + rdi]
test byte [rbp + r14], 8
je 0x1401b3d6b
movzx edi, byte [rsi + rdi + 1]
test byte [rbp + rdi], 8
je 0x1401b3d6b
movsx r11d, r14b
lea ecx, [rdx + 3]
add edx, 2
mov eax, r11d
movsxd rdx, edx
sar eax, 6
and eax, 1
lea eax, [rax + rax*8]
add eax, r11d
movsx r11d, byte [rsi + rdx]
and eax, 0xf
mov edx, r11d
shl eax, 4
sar edx, 6
and edx, 1
lea edx, [rdx + rdx*8]
add edx, r11d
and edx, 0xf
add edx, eax
mov eax, edx
jne 0x1401b3d6b
movsxd rcx, ecx
movzx eax, byte [rsi + rcx]
cmp al, 0x23
je 0x1401b3f3c
test al, al
je 0x1401b3f3c
test r9d, r9d
mov rbp, qword [rsp + 0x90]
setne r10b
jmp 0x1401b3e4a
cmp r9d, 2
jne 0x1401b3e31
cmp al, 0x26
je 0x1401b3e63
movzx eax, byte [rsi + rcx + 1]
add rcx, 1
cmp al, 0x23
je 0x1401b428b
test al, al
je 0x1401b428b
mov edx, ecx
cmp al, 0x3f
jne 0x1401b3e59
test r10b, r10b
je 0x1401b4294
cmp r9d, 1
jne 0x1401b3e27
cmp al, 0x3d
jne 0x1401b3e2d
mov qword [rsp + 0x90], rbp
jmp 0x1401b3d78
test r13d, r13d
je 0x1401b3edc
mov ebx, 8
xor r14d, r14d
jmp 0x1401b3bc3
mov rdx, r12
lea rcx, str.no_such_vfs:__s
mov esi, 1
call dbg.sqlite3_mprintf
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xa8]
mov qword [rdx], rax
jmp 0x1401b3eb4
sub rbx, 1
cmp byte [rbx - 1], 0
jne 0x1401b3eb0
cmp byte [rbx - 2], 0
jne 0x1401b3eb0
cmp byte [rbx - 3], 0
jne 0x1401b3eb0
cmp byte [rbx - 4], 0
jne 0x1401b3eb0
lea rcx, [rbx - 4]
xor ebx, ebx
call sym.sqlite3_free
jmp 0x1401b3c23
movzx eax, byte [0x140245ba6]
jmp 0x1401b3e75
cmp al, 0x26
je 0x1401b3ef4
cmp al, 0x3d
jne 0x1401b3d6b
cmp byte [rbx + r8 - 1], 0
je 0x1401b41f4
cmp al, 0x26
je 0x1401b415f
mov r9d, 2
xor eax, eax
jmp 0x1401b3d6b
cmp r9d, 2
jne 0x1401b3d6b
cmp al, 0x26
mov edi, 1
sete dl
test dl, dl
cmovne r9d, edi
mov edi, 0
cmovne eax, edi
jmp 0x1401b3d6b
mov edi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
add r8, rbx
cmp r9d, 1
je 0x1401b4245
mov dword [r8], 0
mov rcx, rbx
call sym.strlen
and eax, 0x3fffffff
lea r13, [rbx + rax + 1]
cmp byte [r13], 0
je 0x1401b3c0d
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], r15
nop word cs:[rax + rax]
mov rcx, r13
call sym.strlen
mov r14d, eax
and r14d, 0x3fffffff
lea esi, [r14 + 1]
movsxd rsi, esi
add rsi, r13
mov rcx, rsi
call sym.strlen
mov r15d, eax
and r15d, 0x3fffffff
cmp r14d, 3
je 0x1401b40c0
cmp r14d, 5
je 0x1401b4118
cmp r14d, 4
jne 0x1401b4087
cmp dword [r13], 0x65646f6d
jne 0x1401b4087
lea rax, str.access
mov ebx, edi
mov r12d, 0x87
mov qword [rsp + 0x28], rax
and ebx, 0x87
lea rbp, [0x140244a20]
mov r14, qword [rbp]
test r14, r14
je 0x1401b40e8
movsxd r13, r15d
jmp 0x1401b4041
mov r14, qword [rbp + 0x10]
add rbp, 0x10
test r14, r14
je 0x1401b40e8
mov rcx, r14
call sym.strlen
and eax, 0x3fffffff
cmp r15d, eax
jne 0x1401b4030
mov r8, r13
mov rdx, r14
mov rcx, rsi
call sym.memcmp
test eax, eax
jne 0x1401b4030
mov r9d, dword [rbp + 8]
test r9d, r9d
je 0x1401b40e8
mov eax, r9d
and al, 0x7f
cmp eax, ebx
jg 0x1401b4258
mov eax, r12d
not eax
and eax, edi
mov edi, r9d
or edi, eax
lea edx, [r15 + 1]
movsxd rdx, edx
lea r13, [rsi + rdx]
cmp byte [r13], 0
jne 0x1401b3fa0
mov rbx, qword [rsp + 0x20]
mov r12, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x90]
mov r15, qword [rsp + 0x98]
jmp 0x1401b3c0d
cmp word [r13], 0x6676
jne 0x1401b4087
cmp byte [r13 + 2], 0x73
mov rax, rsi
cmovne rax, qword [rsp + 0x80]
mov qword [rsp + 0x80], rax
jmp 0x1401b4087
mov rdx, qword [rsp + 0x28]
mov r8, rsi
lea rcx, str.no_such__s_mode:__s
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
mov esi, 1
call dbg.sqlite3_mprintf
jmp 0x1401b3ea0
cmp dword [r13], 0x68636163
jne 0x1401b4087
cmp byte [r13 + 4], 0x65
jne 0x1401b4087
lea rax, str.cache
mov r12d, 0x60000
mov ebx, 0x60000
mov qword [rsp + 0x28], rax
lea rbp, str.shared
jmp 0x1401b401b
lock or qword [rsp], 0
jmp 0x1401b3cec
add r13d, 1
mov byte [rbx + r8], 0
xor eax, eax
movsxd r10, r13d
jmp 0x1401b3d6b
cmp byte [rsi + 6], 0x2f
mov edx, 5
jne 0x1401b3d2d
movzx eax, byte [rsi + 7]
lea r8, [rsi + 7]
test al, al
setne dl
mov ecx, edx
cmp al, 0x2f
je 0x1401b42ce
test dl, dl
je 0x1401b42ce
lea rax, [rsi + 8]
mov edx, 7
jmp 0x1401b41b0
cmp cl, 0x2f
je 0x1401b41c1
movzx ecx, byte [rax]
mov r9d, edx
add rax, 1
add edx, 1
test cl, cl
jne 0x1401b41ab
cmp edx, 0x10
jne 0x1401b41da
movabs rax, 0x736f686c61636f6c
cmp qword [rsi + 7], rax
je 0x1401b42a4
lea edx, [r9 - 6]
lea rcx, str.invalid_uri_authority:__.s
mov esi, 1
call dbg.sqlite3_mprintf
jmp 0x1401b3ea0
movsxd rax, ecx
add rax, rsi
movzx edx, byte [rax]
test dl, dl
je 0x1401b42bd
cmp dl, 0x23
je 0x1401b42bd
mov rbp, qword [rsp + 0x90]
mov edx, ecx
jmp 0x1401b4225
cmp cl, 0x23
je 0x1401b423e
cmp byte [rax - 1], 0x26
je 0x1401b3e63
movzx ecx, byte [rax + 1]
add edx, 1
add rax, 1
test cl, cl
jne 0x1401b4220
mov edi, dword [rsp + 0x20]
add r8, rbx
mov byte [r8], 0
lea r8d, [r13 + 1]
movsxd r8, r8d
add r8, rbx
jmp 0x1401b3f55
mov rdx, qword [rsp + 0x28]
mov r8, rsi
lea rcx, str._s_mode_not_allowed:__s
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
mov esi, 3
call dbg.sqlite3_mprintf
jmp 0x1401b3ea0
mov r8, rbx
jmp 0x1401b3f55
mov edi, dword [rsp + 0x20]
jmp 0x1401b3f48
mov qword [rsp + 0x90], rbp
xor r9d, r9d
jmp 0x1401b3d78
cmp byte [r8 + 8], 0x74
jne 0x1401b41da
movzx eax, byte [rsi + 0x10]
test al, al
setne cl
jmp 0x1401b3d1d
mov edi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
jmp 0x1401b4242
mov edx, 7
jmp 0x1401b3d1d