Function at 0x1800a9a78
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
and dword [rsp + 0x70], 0
mov r15d, dword [r8]
mov r12, rcx
mov qword [rsp + 0x28], rcx
mov rcx, rdx
mov rsi, rdx
call fcn.18002bb90
mov r13d, 1
movsxd rdi, eax
test r15b, 0x40
jne 0x1800a9acd
cmp byte [0x1801171c6], 0
je 0x1800a9f9d
cmp edi, 5
jl 0x1800a9f9d
mov edx, dword [rdx]
lea r14, [0x180000000]
cmp edx, dword [r14 + 0x101f84]
jne 0x1800a9af8
mov dl, byte [rsi + 4]
cmp dl, byte [r14 + 0x101f88]
jne 0x1800a9af8
xor eax, eax
jmp 0x1800a9afd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a9f9d
lea eax, [rdi + 8]
mov r8, rdi
xor ebp, ebp
or r15d, 0x40
xor edx, edx
mov dil, 0x26
movsxd rcx, eax
test r8, r8
jle 0x1800a9b32
xor eax, eax
cmp byte [rdx + rsi], dil
sete al
add rdx, r13
add rcx, rax
cmp rdx, r8
jl 0x1800a9b1e
call sym.WWStartupCtrl64.dll_sqlite3_malloc64
mov rbx, rax
test rax, rax
jne 0x1800a9b49
mov eax, 7
jmp 0x1800a9f50
xor eax, eax
mov dl, 0x2f
mov dword [rbx], eax
add rbx, 4
lea r9d, [rax + 5]
cmp byte [rsi + 5], dl
jne 0x1800a9bcf
cmp byte [rsi + 6], dl
jne 0x1800a9bcf
lea r8, [rsi + 7]
lea r9d, [rax + 7]
mov al, byte [r8]
test al, al
je 0x1800a9bcf
mov rcx, r8
cmp al, dl
je 0x1800a9b83
add rcx, r13
add r9d, r13d
mov al, byte [rcx]
test al, al
jne 0x1800a9b73
cmp r9d, 7
je 0x1800a9bcf
cmp r9d, 0x10
jne 0x1800a9bba
mov rdx, qword [r14 + 0x101f90]
mov rcx, r8
cmp rdx, qword [r8]
jne 0x1800a9bb1
mov dl, byte [r14 + 0x101f98]
add rcx, 8
cmp dl, byte [rcx]
jne 0x1800a9bb1
xor eax, eax
jmp 0x1800a9bb6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1800a9bcf
lea edx, [r9 - 7]
lea rcx, str.invalid_uri_authority:__.s
call sym.WWStartupCtrl64.dll_sqlite3_mprintf
jmp 0x1800a9f19
movsxd rax, r9d
xor r10d, r10d
xor r11d, r11d
mov dl, byte [rax + rsi]
test dl, dl
je 0x1800a9d61
mov r14b, 0x23
lea r12, [0x180000000]
cmp dl, r14b
je 0x1800a9d46
add r9d, r13d
cmp dl, 0x25
jne 0x1800a9cc3
movsxd rax, r9d
movzx ecx, byte [rax + rsi]
test byte [rcx + r12 + 0xf3ea0], 8
je 0x1800a9cc3
movzx eax, byte [rax + rsi + 1]
test byte [rax + r12 + 0xf3ea0], 8
je 0x1800a9cc3
movsx edx, cl
add r9d, r13d
mov ecx, edx
movsxd rax, r9d
add r9d, r13d
movsx r8d, byte [rax + rsi]
sar ecx, 6
mov al, 7
and cl, r13b
imul cl
mov ecx, r8d
sar ecx, 6
sub dl, al
and cl, r13b
mov al, 7
and edx, 0xf
shl edx, 4
imul cl
mov cl, r8b
sub cl, al
and ecx, 0xf
add edx, ecx
jne 0x1800a9d2e
movsxd rax, r9d
movsxd rdx, r10d
lea rcx, [rax + rsi]
jmp 0x1800a9cbb
cmp al, r14b
je 0x1800a9d38
test r10d, r10d
jne 0x1800a9c90
cmp al, 0x3f
je 0x1800a9d38
cmp rdx, r13
jne 0x1800a9ca6
cmp al, 0x3d
je 0x1800a9d38
cmp al, dil
je 0x1800a9d38
cmp rdx, 2
jne 0x1800a9cb5
cmp al, dil
je 0x1800a9d38
add r9d, r13d
add rcx, r13
mov al, byte [rcx]
test al, al
jne 0x1800a9c7a
jmp 0x1800a9d38
cmp r10d, r13d
jne 0x1800a9d14
cmp dl, dil
je 0x1800a9cd2
cmp dl, 0x3d
jne 0x1800a9d2e
cmp byte [r11 + rbx - 1], 0
jne 0x1800a9cfa
movsxd rax, r9d
jmp 0x1800a9cf1
cmp cl, r14b
je 0x1800a9d38
cmp byte [rax + rsi - 1], dil
je 0x1800a9d38
add r9d, r13d
add rax, r13
mov cl, byte [rax + rsi]
test cl, cl
jne 0x1800a9cdf
jmp 0x1800a9d38
cmp dl, dil
jne 0x1800a9d0c
mov byte [r11 + rbx], 0
add ebp, r13d
add r11, r13
jmp 0x1800a9d2c
mov r10d, 2
jmp 0x1800a9d2c
test r10d, r10d
jne 0x1800a9d1e
cmp dl, 0x3f
je 0x1800a9d29
cmp r10d, 2
jne 0x1800a9d2e
cmp dl, dil
jne 0x1800a9d2e
mov r10d, r13d
xor dl, dl
mov byte [r11 + rbx], dl
add ebp, r13d
add r11, r13
movsxd rax, r9d
mov dl, byte [rax + rsi]
test dl, dl
jne 0x1800a9bed
mov r12, qword [rsp + 0x28]
lea r14, [0x180000000]
cmp r10d, r13d
jne 0x1800a9d61
movsxd rax, ebp
add ebp, r13d
mov byte [rax + rbx], 0
xor ecx, ecx
movsxd rax, ebp
mov dword [rax + rbx], ecx
mov rcx, rbx
call fcn.18002bb90
add eax, r13d
movsxd rdx, eax
add rdx, rbx
cmp byte [rdx], 0
je 0x1800a9ef2
mov rcx, rdx
call fcn.18002bb90
mov r10d, eax
inc eax
movsxd rdi, eax
add rdi, rdx
mov rcx, rdi
call fcn.18002bb90
mov r9d, eax
mov dword [rsp + 0x20], eax
cmp r10d, 3
jne 0x1800a9de5
movzx r9d, word [r14 + 0x101fbc]
cmp r9w, word [rdx]
jne 0x1800a9dca
mov r9b, byte [r14 + 0x101fbe]
cmp r9b, byte [rdx + 2]
jne 0x1800a9dca
xor eax, eax
jmp 0x1800a9dcf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a9de0
mov r12, rdi
mov qword [rsp + 0x28], rdi
jmp 0x1800a9ed7
mov r9d, dword [rsp + 0x20]
xor ebp, ebp
xor r14d, r14d
xor esi, esi
xor r13d, r13d
cmp r10d, 5
jne 0x1800a9e35
lea rax, str.cache
mov r8d, dword [rax]
cmp r8d, dword [rdx]
jne 0x1800a9e12
mov r8b, byte [rax + 4]
cmp r8b, byte [rdx + 4]
jne 0x1800a9e12
xor eax, eax
jmp 0x1800a9e17
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1800a9ecb
mov esi, 0x60000
lea rbp, str.shared
lea r14, str.cache
mov r13d, esi
cmp r10d, 4
jne 0x1800a9e5e
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x1800a9e5e
mov esi, 0x87
mov r13d, r15d
lea rbp, [0x180119f20]
and r13d, esi
lea r14, str.access
test rbp, rbp
je 0x1800a9ecb
mov rdx, qword [rbp]
xor r12d, r12d
test rdx, rdx
je 0x1800a9f81
mov rcx, rdx
call fcn.18002bb90
cmp r9d, eax
jne 0x1800a9e94
movsxd r8, r9d
mov rcx, rdi
call fcn.1800ca490
test eax, eax
je 0x1800a9ea4
mov r9d, dword [rsp + 0x20]
inc r12
mov rax, r12
add rax, rax
mov rdx, qword [rbp + rax*8]
jmp 0x1800a9e6a
add r12, r12
mov ecx, dword [rbp + r12*8 + 8]
test ecx, ecx
je 0x1800a9f81
mov eax, ecx
btr eax, 7
cmp eax, r13d
jg 0x1800a9f65
not esi
and r15d, esi
or r15d, ecx
mov r12, qword [rsp + 0x28]
lea r14, [0x180000000]
mov eax, dword [rsp + 0x20]
inc eax
movsxd rdx, eax
add rdx, rdi
cmp byte [rdx], 0
jne 0x1800a9d83
mov r13d, 1
mov rcx, r12
call sym.WWStartupCtrl64.dll_sqlite3_vfs_find
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
test rax, rax
jne 0x1800a9f36
lea rcx, str.no_such_vfs:__s
mov rdx, r12
call sym.WWStartupCtrl64.dll_sqlite3_mprintf
mov dword [rsp + 0x70], r13d
mov r11, rax
mov rax, qword [rsp + 0x98]
mov rcx, rbx
mov qword [rax], r11
call sym.WWStartupCtrl64.dll_sqlite3_free_filename
xor ebx, ebx
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x90]
mov dword [rax], r15d
mov eax, dword [rsp + 0x70]
mov qword [rcx], rbx
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, str._s_mode_not_allowed:__s
mov r8, rdi
mov rdx, r14
call sym.WWStartupCtrl64.dll_sqlite3_mprintf
mov dword [rsp + 0x70], 3
jmp 0x1800a9f1e
lea rcx, str.no_such__s_mode:__s
mov r8, rdi
mov rdx, r14
call sym.WWStartupCtrl64.dll_sqlite3_mprintf
mov dword [rsp + 0x70], 1
jmp 0x1800a9f1e
lea eax, [rdi + 8]
movsxd rcx, eax
call sym.WWStartupCtrl64.dll_sqlite3_malloc64
mov rbx, rax
test rax, rax
je 0x1800a9b3f
xor eax, eax
mov dword [rbx], eax
add rbx, 4
test edi, edi
je 0x1800a9fce
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.1800bf720
xor ecx, ecx
and r15d, 0xffffffbf
mov dword [rdi + rbx], ecx
jmp 0x1800a9ef2