Function at 0x140186170
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 esi, dword [r8]
mov edi, esi
mov r15, rcx
mov rbx, rdx
and edi, 0x40
test rdx, rdx
mov rbp, r8
mov r14, r9
je 0x14018647f
mov rcx, rdx
call sym.strlen
mov r13d, eax
and r13d, 0x3fffffff
test edi, edi
lea r12d, [r13 + 8]
movsxd r12, r12d
je 0x140186260
cmp r13d, 4
jle 0x1401861d0
cmp dword [rbx], 0x656c6966
je 0x1401862a3
mov eax, dword [0x140214494]
test eax, eax
jne 0x140186280
call dbg.sqlite3MutexInit
test eax, eax
jne 0x140186258
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x140186258
mov rcx, r12
call sym.sqlite3Malloc
test rax, rax
je 0x140186258
mov dword [rax], 0
lea r12, [rax + 4]
test r13d, r13d
movsxd rdi, r13d
jne 0x140186290
mov dword [r12 + rdi], 0
and esi, 0xffffffbf
mov rcx, r15
xor ebx, ebx
call dbg.sqlite3_vfs_find
test rax, rax
mov qword [r14], rax
je 0x140186491
mov rax, qword [rsp + 0xa0]
mov dword [rbp], esi
mov qword [rax], r12
mov eax, ebx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, 7
jmp 0x140186242
movzx eax, byte [0x140214346]
test al, al
jne 0x1401861be
mov eax, dword [0x140214494]
test eax, eax
je 0x1401861de
nop dword [rax]
lock or qword [rsp], 0
jmp 0x1401861f0
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call sym.memcpy
jmp 0x140186213
cmp byte [rbx + 4], 0x3a
jne 0x1401861d0
movsxd rcx, r13d
xor edi, edi
or esi, 0x40
mov rax, rbx
add rcx, rbx
nop dword [rax + rax]
xor edx, edx
cmp byte [rax], 0x26
sete dl
add rax, 1
add r12, rdx
cmp rax, rcx
jne 0x1401862c0
mov edx, dword [0x140214494]
test edx, edx
jne 0x140186762
call dbg.sqlite3MutexInit
test eax, eax
jne 0x140186258
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x140186258
mov rcx, r12
call sym.sqlite3Malloc
test rax, rax
je 0x140186258
mov dword [rax], 0
lea r12, [rax + 4]
movzx eax, byte [rbx + 5]
cmp al, 0x2f
je 0x14018677f
test al, al
mov edx, 5
setne cl
cmp al, 0x23
je 0x140186893
test cl, cl
je 0x140186893
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x90], rbp
jmp 0x14018639e
cmp r9d, 1
je 0x140186500
test r9d, r9d
jne 0x14018652d
cmp al, 0x3f
jne 0x14018652d
mov r9d, 1
xor eax, eax
add edi, 1
mov byte [r12 + r10], al
mov edx, ecx
movsxd r8, edi
movsxd rax, edx
movzx eax, byte [rbx + rax]
cmp al, 0x23
je 0x140186554
test al, al
je 0x140186554
lea ecx, [rdx + 1]
cmp al, 0x25
mov r10, r8
jne 0x140186358
lea rbp, [0x1403488c0]
movsxd rsi, ecx
movzx r13d, byte [rbx + rsi]
test byte [rbp + r13], 8
je 0x14018637b
movzx esi, byte [rbx + rsi + 1]
test byte [rbp + rsi], 8
je 0x14018637b
lea ecx, [rdx + 3]
movsx r11d, r13b
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 [rbx + rdx]
and eax, 0xf
shl eax, 4
mov edx, r11d
sar edx, 6
and edx, 1
lea edx, [rdx + rdx*8]
add edx, r11d
and edx, 0xf
add edx, eax
mov eax, edx
jne 0x14018637b
movsxd rcx, ecx
movzx eax, byte [rbx + rcx]
cmp al, 0x23
je 0x140186554
test al, al
je 0x140186554
test r9d, r9d
mov rbp, qword [rsp + 0x90]
setne r10b
jmp 0x140186459
cmp r9d, 2
jne 0x140186440
cmp al, 0x26
je 0x140186472
movzx eax, byte [rbx + rcx + 1]
add rcx, 1
cmp al, 0x23
je 0x14018689b
test al, al
je 0x14018689b
cmp al, 0x3f
mov edx, ecx
jne 0x140186468
test r10b, r10b
je 0x1401868a4
cmp r9d, 1
jne 0x140186436
cmp al, 0x3d
jne 0x14018643c
mov qword [rsp + 0x90], rbp
jmp 0x140186387
test edi, edi
je 0x1401864ee
mov r12d, 8
xor r13d, r13d
jmp 0x1401861d0
lea rcx, str.no_such_vfs:__s
mov rdx, r15
mov ebx, 1
call dbg.sqlite3_mprintf
nop dword [rax]
mov rdx, qword [rsp + 0xa8]
mov qword [rdx], rax
jmp 0x1401864bc
sub r12, 1
cmp byte [r12 - 1], 0
jne 0x1401864b8
cmp byte [r12 - 2], 0
jne 0x1401864b8
cmp byte [r12 - 3], 0
jne 0x1401864b8
cmp byte [r12 - 4], 0
jne 0x1401864b8
lea rcx, [r12 - 4]
xor r12d, r12d
call sym.sqlite3_free
jmp 0x140186234
movzx eax, byte [0x140214346]
jmp 0x140186483
cmp al, 0x26
je 0x14018650c
cmp al, 0x3d
jne 0x14018637b
cmp byte [r12 + r8 - 1], 0
je 0x140186801
cmp al, 0x26
je 0x14018676d
mov r9d, 2
xor eax, eax
jmp 0x14018637b
cmp r9d, 2
jne 0x14018637b
cmp al, 0x26
mov esi, 1
sete dl
test dl, dl
cmovne r9d, esi
mov esi, 0
cmovne eax, esi
jmp 0x14018637b
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
add r8, r12
cmp r9d, 1
je 0x140186855
mov dword [r8], 0
mov rcx, r12
call sym.strlen
and eax, 0x3fffffff
lea rdi, [r12 + rax + 1]
cmp byte [rdi], 0
je 0x14018621e
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], r14
nop dword [rax]
mov rcx, rdi
call sym.strlen
mov r13d, eax
and r13d, 0x3fffffff
lea ebx, [r13 + 1]
movsxd rbx, ebx
add rbx, rdi
mov rcx, rbx
call sym.strlen
mov r15d, eax
and r15d, 0x3fffffff
cmp r13d, 3
je 0x1401866d0
cmp r13d, 5
je 0x140186728
cmp r13d, 4
jne 0x140186695
cmp dword [rdi], 0x65646f6d
jne 0x140186695
lea rax, str.access
mov r14d, esi
mov r13d, 0x87
and r14d, 0x87
mov qword [rsp + 0x28], rax
lea rbp, [0x140213280]
mov r12, qword [rbp]
test r12, r12
je 0x1401866f8
movsxd rdi, r15d
jmp 0x140186651
mov r12, qword [rbp + 0x10]
add rbp, 0x10
test r12, r12
je 0x1401866f8
mov rcx, r12
call sym.strlen
and eax, 0x3fffffff
cmp r15d, eax
jne 0x140186640
mov r8, rdi
mov rdx, r12
mov rcx, rbx
call sym.memcmp
test eax, eax
jne 0x140186640
mov eax, dword [rbp + 8]
test eax, eax
je 0x1401866f8
mov edx, eax
and dl, 0x7f
cmp edx, r14d
jg 0x140186868
not r13d
and r13d, esi
or eax, r13d
mov esi, eax
lea r8d, [r15 + 1]
movsxd r8, r8d
lea rdi, [rbx + r8]
cmp byte [rdi], 0
jne 0x1401865b0
mov r12, qword [rsp + 0x20]
mov r15, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
jmp 0x14018621e
cmp word [rdi], 0x6676
jne 0x140186695
cmp byte [rdi + 2], 0x73
mov rax, rbx
cmovne rax, qword [rsp + 0x80]
mov qword [rsp + 0x80], rax
jmp 0x140186695
mov rdx, qword [rsp + 0x28]
lea rcx, str.no_such__s_mode:__s
mov r8, rbx
mov ebx, 1
mov r12, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
call dbg.sqlite3_mprintf
jmp 0x1401864a8
cmp dword [rdi], 0x68636163
jne 0x140186695
cmp byte [rdi + 4], 0x65
jne 0x140186695
lea rax, str.cache
mov r13d, 0x60000
mov r14d, 0x60000
mov qword [rsp + 0x28], rax
lea rbp, str.shared
jmp 0x14018662b
lock or qword [rsp], 0
jmp 0x1401862fc
add edi, 1
mov byte [r12 + r8], 0
xor eax, eax
movsxd r10, edi
jmp 0x14018637b
cmp byte [rbx + 6], 0x2f
mov edx, 5
jne 0x14018633d
movzx eax, byte [rbx + 7]
lea r8, [rbx + 7]
test al, al
setne dl
cmp al, 0x2f
mov ecx, edx
je 0x1401868de
test dl, dl
je 0x1401868de
lea rax, [rbx + 8]
mov edx, 7
jmp 0x1401867bd
cmp cl, 0x2f
je 0x1401867ce
movzx ecx, byte [rax]
mov r9d, edx
add rax, 1
add edx, 1
test cl, cl
jne 0x1401867b8
cmp edx, 0x10
jne 0x1401867e7
movabs rax, 0x736f686c61636f6c
cmp qword [rbx + 7], rax
je 0x1401868b4
lea edx, [r9 - 6]
mov ebx, 1
lea rcx, str.invalid_uri_authority:__.s
call dbg.sqlite3_mprintf
jmp 0x1401864a8
movsxd rax, ecx
add rax, rbx
movzx edx, byte [rax]
cmp dl, 0x23
je 0x1401868cd
test dl, dl
je 0x1401868cd
mov rbp, qword [rsp + 0x90]
mov edx, ecx
jmp 0x140186835
cmp cl, 0x23
je 0x14018684e
cmp byte [rax - 1], 0x26
je 0x140186472
movzx ecx, byte [rax + 1]
add edx, 1
add rax, 1
test cl, cl
jne 0x140186830
mov esi, dword [rsp + 0x20]
add r8, r12
mov byte [r8], 0
lea r8d, [rdi + 1]
movsxd r8, r8d
add r8, r12
jmp 0x14018656d
mov rdx, qword [rsp + 0x28]
lea rcx, str._s_mode_not_allowed:__s
mov r8, rbx
mov ebx, 3
mov r12, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
call dbg.sqlite3_mprintf
jmp 0x1401864a8
mov r8, r12
jmp 0x14018656d
mov esi, dword [rsp + 0x20]
jmp 0x140186560
mov qword [rsp + 0x90], rbp
xor r9d, r9d
jmp 0x140186387
cmp byte [r8 + 8], 0x74
jne 0x1401867e7
movzx eax, byte [rbx + 0x10]
test al, al
setne cl
jmp 0x14018632d
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
jmp 0x140186852
mov edx, 7
jmp 0x14018632d