Function at 0x18003d0e0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r12
push r13
sub rsp, 0x58
mov r13d, dword [r8]
mov rdi, rdx
mov r12, rcx
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x80], 0
mov rbx, rdx
test rdx, rdx
je 0x18003d130
cmp byte [rdx], 0
je 0x18003d128
nop word [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x18003d120
sub ebx, edx
and ebx, 0x3fffffff
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r15
test r13b, 0x40
jne 0x18003d157
cmp dword [0x18010b56c], 0
je 0x18003d727
cmp ebx, 5
jl 0x18003d727
mov edx, dword [rdx]
lea r14, [0x180000000]
cmp edx, dword [r14 + 0xf0094]
jne 0x18003d182
mov dl, byte [rdi + 4]
cmp dl, byte [r14 + 0xf0098]
jne 0x18003d182
xor eax, eax
jmp 0x18003d187
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x18003d727
or r13d, 0x40
movsxd r10, ebx
xor edx, edx
xor r8d, r8d
xor ebp, ebp
xor ecx, ecx
cmp r10, 2
lea esi, [rbx + 2]
mov dword [rsp + 0x88], r13d
jl 0x18003d1e1
lea r9, [r10 - 1]
nop word [rax + rax]
xor eax, eax
cmp byte [rdi + rcx], 0x26
sete al
add edx, eax
xor eax, eax
cmp byte [rdi + rcx + 1], 0x26
sete al
add rcx, 2
add r8d, eax
cmp rcx, r9
jl 0x18003d1c0
cmp rcx, r10
jge 0x18003d1f1
xor eax, eax
cmp byte [rcx + rdi], 0x26
sete al
add esi, eax
lea eax, [rdx + r8]
add esi, eax
call sym.SQLite.Interop.dll_sqlite3_initialize
test eax, eax
jne 0x18003d777
test esi, esi
jle 0x18003d777
movsxd rcx, esi
call fcn.18002ad40
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x18003d777
cmp byte [rdi + 5], 0x2f
mov r9d, 5
jne 0x18003d2cb
cmp byte [rdi + 6], 0x2f
jne 0x18003d2cb
movzx ecx, byte [rdi + 7]
lea r8, [rdi + 7]
mov r9d, 7
test cl, cl
je 0x18003d2cb
mov rax, r8
cmp cl, 0x2f
je 0x18003d266
mov cl, byte [rax + 1]
inc rax
inc r9d
test cl, cl
jne 0x18003d254
cmp r9d, 7
je 0x18003d2cb
cmp r9d, 0x10
jne 0x18003d29d
mov rdx, qword [r14 + 0xf00a0]
mov rcx, r8
cmp rdx, qword [r8]
jne 0x18003d294
mov dl, byte [r14 + 0xf00a8]
add rcx, 8
cmp dl, byte [rcx]
jne 0x18003d294
xor eax, eax
jmp 0x18003d299
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18003d2cb
lea edx, [r9 - 7]
lea rcx, str.invalid_uri_authority:__.s
call sym.SQLite.Interop.dll_sqlite3_mprintf
mov dword [rsp + 0x80], 1
mov r11, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], r11
jmp 0x18003d6c6
movsxd rax, r9d
xor r11d, r11d
xor r10d, r10d
mov dl, byte [rax + rdi]
test dl, dl
je 0x18003d46e
nop
cmp dl, 0x23
je 0x18003d45f
inc r9d
cmp dl, 0x25
jne 0x18003d3c5
movsxd rax, r9d
movzx ecx, byte [rax + rdi]
test byte [rcx + r14 + 0xe6970], 8
je 0x18003d3c5
movzx eax, byte [rax + rdi + 1]
test byte [rax + r14 + 0xe6970], 8
je 0x18003d3c5
movsx edx, cl
inc r9d
mov ecx, edx
movsxd rax, r9d
inc r9d
movsx r8d, byte [rax + rdi]
sar ecx, 6
mov al, 7
and cl, 1
imul cl
mov ecx, r8d
sar ecx, 6
sub dl, al
and cl, 1
mov al, 7
and edx, 0xf
shl edx, 4
imul cl
mov cl, r8b
sub cl, al
and ecx, 0xf
add edx, ecx
jne 0x18003d448
movsxd rdx, r9d
movsxd rcx, r11d
movzx eax, byte [rdx + rdi]
test al, al
je 0x18003d451
add rdx, rdi
cmp al, 0x23
je 0x18003d451
test r11d, r11d
jne 0x18003d38d
cmp al, 0x3f
je 0x18003d451
jmp 0x18003d3b3
cmp rcx, 1
jne 0x18003d3a5
cmp al, 0x3d
je 0x18003d451
cmp al, 0x26
je 0x18003d451
jmp 0x18003d3b3
cmp rcx, 2
jne 0x18003d3b3
cmp al, 0x26
je 0x18003d451
mov al, byte [rdx + 1]
inc rdx
inc r9d
test al, al
jne 0x18003d376
jmp 0x18003d451
cmp r11d, 1
jne 0x18003d429
cmp dl, 0x26
je 0x18003d3d5
cmp dl, 0x3d
jne 0x18003d448
cmp byte [r10 + rsi - 1], 0
jne 0x18003d40c
movsxd rax, r9d
cmp byte [rax + rdi], 0
je 0x18003d451
movzx ecx, byte [rax + rdi]
nop word [rax + rax]
cmp cl, 0x23
je 0x18003d451
cmp byte [rax + rdi - 1], 0x26
je 0x18003d451
mov cl, byte [rax + rdi + 1]
inc rax
inc r9d
test cl, cl
jne 0x18003d3f0
jmp 0x18003d451
cmp dl, 0x26
jne 0x18003d41f
mov byte [r10 + rsi], 0
inc r10
inc ebp
xor dl, dl
jmp 0x18003d448
mov r11d, 2
xor dl, dl
jmp 0x18003d448
test r11d, r11d
jne 0x18003d435
cmp dl, 0x3f
je 0x18003d440
jmp 0x18003d448
cmp r11d, 2
jne 0x18003d448
cmp dl, 0x26
jne 0x18003d448
xor dl, dl
mov r11d, 1
mov byte [r10 + rsi], dl
inc ebp
inc r10
movsxd rax, r9d
mov dl, byte [rax + rdi]
test dl, dl
jne 0x18003d2e0
cmp r11d, 1
jne 0x18003d46e
movsxd rax, ebp
inc ebp
mov byte [rax + rsi], 0
movsxd rax, ebp
mov byte [rax + rsi], 0
mov byte [rax + rsi + 1], 0
cmp byte [rsi], 0
mov rax, rsi
je 0x18003d48a
inc rax
cmp byte [rax], 0
jne 0x18003d482
sub eax, esi
and eax, 0x3fffffff
inc eax
movsxd rdx, eax
add rdx, rsi
cmp byte [rdx], 0
je 0x18003d689
mov r15d, dword [str.mode]
nop dword [rax]
mov rcx, rdx
inc rcx
cmp byte [rcx], 0
jne 0x18003d4b3
sub ecx, edx
and ecx, 0x3fffffff
lea eax, [rcx + 1]
movsxd rbp, eax
add rbp, rdx
mov rbx, rbp
jne 0x18003d4d5
xor ebx, ebx
jmp 0x18003d4f0
cmp byte [rbp], 0
je 0x18003d4e8
nop dword [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x18003d4e0
sub ebx, ebp
and ebx, 0x3fffffff
cmp ecx, 3
jne 0x18003d52c
mov cx, word [r14 + 0xf00cc]
cmp cx, word [rdx]
jne 0x18003d512
mov cl, byte [r14 + 0xf00ce]
cmp cl, byte [rdx + 2]
jne 0x18003d512
xor eax, eax
jmp 0x18003d517
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x18003d658
mov r12, rbp
mov qword [rsp + 0x20], rbp
jmp 0x18003d672
cmp ecx, 5
jne 0x18003d570
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x18003d54a
mov cl, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x18003d54a
xor eax, eax
jmp 0x18003d54f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x18003d66d
mov r12d, 0x60000
lea rsi, str.shared
lea r14, str.cache
mov r13d, r12d
jmp 0x18003d599
cmp ecx, 4
jne 0x18003d666
cmp r15d, dword [rdx]
jne 0x18003d65f
mov r12d, 0x87
lea rsi, [0x18010d490]
lea r14, str.access
and r13d, r12d
mov rcx, qword [rsi]
xor edi, edi
test rcx, rcx
je 0x18003d5e7
mov rax, rcx
test rcx, rcx
je 0x18003d5bf
cmp byte [rcx], 0
je 0x18003d5b8
inc rax
cmp byte [rax], 0
jne 0x18003d5b0
sub eax, ecx
and eax, 0x3fffffff
cmp ebx, eax
jne 0x18003d5d5
mov rdx, rcx
movsxd r8, ebx
mov rcx, rbp
call fcn.1800081a0
test eax, eax
je 0x18003d617
inc rdi
mov rax, rdi
add rax, rax
mov rcx, qword [rsi + rax*8]
test rcx, rcx
jne 0x18003d5a3
lea rcx, str.no_such__s_mode:__s
mov r8, rbp
mov rdx, r14
call sym.SQLite.Interop.dll_sqlite3_mprintf
mov dword [rsp + 0x80], 1
mov r11, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], r11
jmp 0x18003d6c6
add rdi, rdi
mov ecx, dword [rsi + rdi*8 + 8]
test ecx, ecx
je 0x18003d5e7
mov eax, ecx
btr eax, 7
cmp eax, r13d
jg 0x18003d6fa
mov r13d, dword [rsp + 0x88]
not r12d
lea r14, [0x180000000]
and r13d, r12d
mov r12, qword [rsp + 0x20]
or r13d, ecx
mov dword [rsp + 0x88], r13d
jmp 0x18003d672
mov r12, qword [rsp + 0x20]
jmp 0x18003d672
mov r12, qword [rsp + 0x20]
jmp 0x18003d672
mov r12, qword [rsp + 0x20]
jmp 0x18003d672
mov r12, qword [rsp + 0x20]
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rbp
cmp byte [rdx], 0
jne 0x18003d4b0
mov rsi, qword [rsp + 0x28]
mov rcx, r12
call sym.SQLite.Interop.dll_sqlite3_vfs_find
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x18003d6d2
lea rcx, str.no_such_vfs:__s
mov rdx, r12
call sym.SQLite.Interop.dll_sqlite3_mprintf
mov rcx, qword [rsp + 0xa8]
mov dword [rsp + 0x80], 1
mov qword [rcx], rax
mov rcx, qword [rsp + 0x28]
call sym.SQLite.Interop.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 0x18003d77c
lea rcx, str._s_mode_not_allowed:__s
mov r8, rbp
mov rdx, r14
call sym.SQLite.Interop.dll_sqlite3_mprintf
mov dword [rsp + 0x80], 3
mov r11, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], r11
jmp 0x18003d6c6
lea esi, [rbx + 2]
call sym.SQLite.Interop.dll_sqlite3_initialize
test eax, eax
jne 0x18003d777
test esi, esi
jle 0x18003d777
movsxd rcx, esi
call fcn.18002ad40
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x18003d777
movsxd rbx, ebx
mov rdx, rdi
mov rcx, rax
mov r8, rbx
call fcn.1800011c0
and r13d, 0xffffffbf
mov byte [rbx + rsi], 0
mov dword [rsp + 0x88], r13d
mov byte [rbx + rsi + 1], 0
jmp 0x18003d689
mov eax, 7
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
pop r13
pop r12
pop rdi
pop rbx
ret