Function at 0x140312fd0
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x40], xmm7
movaps xmmword [rsp + 0x50], xmm8
movaps xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x70], xmm10
mov esi, dword [r8]
test rdx, rdx
mov r12, rcx
mov rbx, rdx
mov rbp, r8
mov r14, r9
je 0x140313580
mov rcx, rdx
call sym.strlen
mov r15d, eax
mov rdx, rax
and r15d, 0x3fffffff
test sil, 0x40
lea r13d, [r15 + 8]
movsxd rdi, r13d
je 0x1403130c0
cmp r15d, 4
jle 0x14031304f
cmp dword [rbx], 0x656c6966
je 0x14031313f
call sym.sqlite3_initialize
test eax, eax
jne 0x1403130e0
mov eax, dword [0x140395120]
test eax, eax
jne 0x140313120
mov ecx, r13d
call qword [0x140395140]
test rax, rax
je 0x1403130e0
mov dword [rax], 0
lea r13, [rax + 4]
test r15d, r15d
movsxd rdi, r15d
jne 0x140313598
mov dword [r13 + rdi], 0
and esi, 0xffffffbf
mov rcx, r12
xor ebx, ebx
call sym.sqlite3_vfs_find
test rax, rax
mov qword [r14], rax
je 0x1403135ab
mov rax, qword [rsp + 0xf0]
mov dword [rbp], esi
mov qword [rax], r13
jmp 0x1403130e5
cmp byte [0x140395126], 0
je 0x14031304f
cmp r15d, 4
jg 0x140313043
jmp 0x14031304f
mov ebx, 7
movaps xmm6, xmmword [rsp + 0x30]
mov eax, ebx
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [0x140394dc0]
test rcx, rcx
je 0x140313132
call qword [0x1403951a0]
mov rcx, rdi
call sym.sqlite3Malloc.part.0
jmp 0x140313073
cmp byte [rbx + 4], 0x3a
jne 0x14031304f
lea ecx, [r15 - 1]
xor eax, eax
cmp ecx, 0xe
jbe 0x1403139c3
mov ecx, r15d
mov rax, rbx
pxor xmm4, xmm4
pxor xmm6, xmm6
shr ecx, 4
movdqa xmm7, xmmword [0x140478520]
pxor xmm5, xmm5
pxor xmm3, xmm3
movdqa xmm8, xmmword [0x140478510]
shl rcx, 4
add rcx, rbx
nop dword [rax]
movdqu xmm0, xmmword [rax]
add rax, 0x10
cmp rcx, rax
pcmpeqb xmm0, xmm8
pand xmm0, xmm7
movdqa xmm2, xmm0
punpckhbw xmm0, xmm6
movdqa xmm9, xmm0
punpcklbw xmm2, xmm6
movdqa xmm1, xmm2
punpckhwd xmm2, xmm5
punpckhwd xmm0, xmm5
punpcklwd xmm1, xmm5
movdqa xmm10, xmm1
punpckldq xmm1, xmm3
punpcklwd xmm9, xmm5
punpckhdq xmm10, xmm3
paddq xmm1, xmm10
movdqa xmm10, xmm2
punpckldq xmm2, xmm3
punpckhdq xmm10, xmm3
paddq xmm2, xmm10
paddq xmm1, xmm2
movdqa xmm2, xmm9
punpckldq xmm9, xmm3
punpckhdq xmm2, xmm3
paddq xmm9, xmm2
movdqa xmm2, xmm0
punpckldq xmm0, xmm3
paddq xmm1, xmm9
punpckhdq xmm2, xmm3
paddq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm4, xmm0
jne 0x140313190
movdqa xmm0, xmm4
mov eax, edx
psrldq xmm0, 8
and eax, 0x3ffffff0
paddq xmm4, xmm0
movq r13, xmm4
add r13, rdi
cmp r15d, eax
je 0x1403133d8
movsxd rdx, eax
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 1]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 2]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 3]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 4]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 5]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 6]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 7]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 8]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 9]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xa]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xb]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xc]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xd]
cmp r15d, edx
jle 0x1403133d8
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
add eax, 0xe
movzx edx, dl
add r13, rdx
cmp r15d, eax
jle 0x1403133d8
cdqe
cmp byte [rbx + rax], 0x26
sete al
movzx eax, al
add r13, rax
nop word [rax + rax]
call sym.sqlite3_initialize
test eax, eax
mov edi, eax
jne 0x1403130e0
mov rcx, r13
call sym.sqlite3Malloc
test rax, rax
je 0x1403130e0
mov dword [rax], 0
lea r13, [rax + 4]
movzx eax, byte [rbx + 5]
or esi, 0x40
cmp al, 0x2f
je 0x140313879
test al, al
mov r11d, 5
setne dl
cmp al, 0x23
je 0x1403139da
test dl, dl
je 0x1403139da
xor r10d, r10d
xor edx, edx
mov dword [rsp + 0x20], esi
mov qword [rsp + 0xe0], rbp
jmp 0x140313487
cmp edi, 1
je 0x140313608
test edi, edi
jne 0x140313637
cmp al, 0x3f
jne 0x140313637
mov edi, 1
xor eax, eax
movsxd r9, r8d
mov byte [r13 + rcx], al
movzx eax, byte [rbx + r9]
add r10d, 1
test al, al
je 0x140313650
cmp al, 0x23
je 0x140313650
movsxd rdx, r10d
mov r11d, r8d
lea r8d, [r11 + 1]
cmp al, 0x25
mov rcx, rdx
jne 0x140313440
lea rbp, [0x14047ec80]
movsxd r9, r8d
movzx r15d, byte [rbx + r9]
test byte [rbp + r15], 8
mov rsi, r15
je 0x140313463
movzx r15d, byte [rbx + r9 + 1]
test byte [rbp + r15], 8
je 0x140313463
lea r9d, [r11 + 2]
movsx esi, sil
lea r8d, [r11 + 3]
mov eax, esi
movsxd r9, r9d
sar eax, 6
and eax, 1
lea eax, [rax + rax*8]
add eax, esi
movsx esi, byte [rbx + r9]
and eax, 0xf
shl eax, 4
mov r9d, esi
sar r9d, 6
and r9d, 1
lea r11d, [r9 + r9*8]
movsxd r9, r8d
add r11d, esi
and r11d, 0xf
add r11d, eax
mov eax, r11d
jne 0x140313463
movzx eax, byte [rbx + r9]
cmp al, 0x23
je 0x140313a47
test al, al
je 0x140313a47
cmp edi, 1
je 0x1403138fe
test edi, edi
mov rbp, qword [rsp + 0xe0]
setne cl
jmp 0x140313552
movzx eax, byte [rbx + r9 + 1]
add r9, 1
cmp al, 0x23
je 0x1403139e2
test al, al
je 0x1403139e2
cmp al, 0x3f
mov r8d, r9d
jne 0x140313561
test cl, cl
je 0x1403139ee
cmp edi, 2
jne 0x140313538
cmp al, 0x26
jne 0x140313538
mov qword [rsp + 0xe0], rbp
jmp 0x140313484
mov edi, 8
mov r13d, 8
xor r15d, r15d
jmp 0x14031304f
mov r8, rdi
mov rdx, rbx
mov rcx, r13
call sym.memcpy
jmp 0x14031308e
lea rcx, str.no_such_vfs:__s
mov rdx, r12
mov ebx, 1
call sym.sqlite3_mprintf
nop
mov rdx, qword [rsp + 0xf8]
mov qword [rdx], rax
jmp 0x1403135d4
sub r13, 1
cmp byte [r13 - 1], 0
jne 0x1403135d0
cmp byte [r13 - 2], 0
jne 0x1403135d0
cmp byte [r13 - 3], 0
jne 0x1403135d0
cmp byte [r13 - 4], 0
jne 0x1403135d0
lea rcx, [r13 - 4]
xor r13d, r13d
call sym.sqlite3_free
jmp 0x1403130b0
cmp al, 0x26
je 0x140313614
cmp al, 0x3d
jne 0x140313460
cmp byte [r13 + rdx - 1], 0
je 0x140313976
cmp al, 0x26
je 0x140313862
mov edi, 2
xor eax, eax
movsxd r9, r8d
jmp 0x140313463
cmp edi, 2
jne 0x140313460
cmp al, 0x26
je 0x140313459
jmp 0x140313460
mov esi, dword [rsp + 0x20]
movsxd rcx, r10d
mov rbp, qword [rsp + 0xe0]
lea rdx, [r13 + rcx]
cmp edi, 1
je 0x140313939
mov dword [rdx], 0
mov rcx, r13
call sym.strlen
and eax, 0x3fffffff
lea rdi, [r13 + rax + 1]
cmp byte [rdi], 0
je 0x14031309a
mov qword [rsp + 0x20], r13
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xe0], rbp
mov qword [rsp + 0xe8], r14
nop dword [rax + rax]
mov rcx, rdi
call sym.strlen
mov r14d, eax
and r14d, 0x3fffffff
lea ebx, [r14 + 1]
movsxd rbx, ebx
add rbx, rdi
mov rcx, rbx
call sym.strlen
mov r12d, eax
and r12d, 0x3fffffff
cmp r14d, 3
je 0x1403137d0
cmp r14d, 5
je 0x140313828
cmp r14d, 4
jne 0x140313792
cmp dword [rdi], 0x65646f6d
jne 0x140313792
lea rax, str.access
mov r15d, esi
mov r14d, 0xffffff78
and r15d, 0x87
mov qword [rsp + 0x28], rax
lea rbp, str.VpG_
mov r13, qword [rbp]
test r13, r13
je 0x1403137f8
movsxd rdi, r12d
jmp 0x140313751
mov r13, qword [rbp + 0x10]
add rbp, 0x10
test r13, r13
je 0x1403137f8
mov rcx, r13
call sym.strlen
and eax, 0x3fffffff
cmp r12d, eax
jne 0x140313740
mov r8, rdi
mov rdx, r13
mov rcx, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140313740
mov eax, dword [rbp + 8]
test eax, eax
je 0x1403137f8
mov edx, eax
and dl, 0x7f
cmp edx, r15d
jg 0x14031394b
and r14d, esi
or eax, r14d
mov esi, eax
lea r8d, [r12 + 1]
movsxd r8, r8d
lea rdi, [rbx + r8]
cmp byte [rdi], 0
jne 0x1403136b0
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe0]
mov r14, qword [rsp + 0xe8]
jmp 0x14031309a
cmp word [rdi], 0x6676
jne 0x140313792
cmp byte [rdi + 2], 0x73
mov rax, rbx
cmovne rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rax
jmp 0x140313792
mov rdx, qword [rsp + 0x28]
lea rcx, str.no_such__s_mode:__s
mov r8, rbx
mov ebx, 1
mov r13, qword [rsp + 0x20]
mov rbp, qword [rsp + 0xe0]
call sym.sqlite3_mprintf
jmp 0x1403135c0
cmp dword [rdi], 0x68636163
jne 0x140313792
cmp byte [rdi + 4], 0x65
jne 0x140313792
lea rax, str.cache
mov r14d, 0xfff9ffff
mov r15d, 0x60000
mov qword [rsp + 0x28], rax
lea rbp, str.shared
jmp 0x14031372b
add r10d, 1
mov byte [r13 + rdx], 0
xor eax, eax
movsxd r9, r8d
movsxd rcx, r10d
jmp 0x140313463
cmp byte [rbx + 6], 0x2f
mov r11d, 5
jne 0x14031342c
movzx eax, byte [rbx + 7]
lea r8, [rbx + 7]
test al, al
setne cl
cmp al, 0x2f
mov edx, ecx
je 0x140313a1b
test cl, cl
je 0x140313a1b
lea rax, [rbx + 8]
mov r11d, 7
jmp 0x1403138b9
cmp dl, 0x2f
je 0x1403138cb
movzx edx, byte [rax]
mov ecx, r11d
add rax, 1
add r11d, 1
test dl, dl
jne 0x1403138b4
cmp r11d, 0x10
jne 0x1403138e5
movabs rax, 0x736f686c61636f6c
cmp qword [rbx + 7], rax
je 0x140313a02
lea edx, [rcx - 6]
mov ebx, 1
lea rcx, str.invalid_uri_authority:__.s
call sym.sqlite3_mprintf
jmp 0x1403135c0
mov rbp, qword [rsp + 0xe0]
jmp 0x140313914
cmp al, 0x23
je 0x140313932
cmp al, 0x26
je 0x140313a37
cmp al, 0x3d
je 0x140313a37
movzx eax, byte [rbx + r9 + 1]
add r9, 1
test al, al
jne 0x140313910
mov esi, dword [rsp + 0x20]
add rdx, r13
mov byte [rdx], 0
lea edx, [r10 + 1]
movsxd rdx, edx
add rdx, r13
jmp 0x14031366d
mov rdx, qword [rsp + 0x28]
lea rcx, str._s_mode_not_allowed:__s
mov r8, rbx
mov ebx, 3
mov r13, qword [rsp + 0x20]
mov rbp, qword [rsp + 0xe0]
call sym.sqlite3_mprintf
jmp 0x1403135c0
movsxd rcx, r8d
add rcx, rbx
movzx eax, byte [rcx]
test al, al
je 0x140313a26
cmp al, 0x23
je 0x140313a26
mov rbp, qword [rsp + 0xe0]
jmp 0x1403139b8
movzx eax, byte [rcx + 1]
add r8d, 1
add rcx, 1
test al, al
je 0x140313932
cmp al, 0x23
je 0x140313932
cmp byte [rcx - 1], 0x26
jne 0x1403139a0
jmp 0x14031356a
xor r13d, r13d
cmp byte [rbx], 0x26
mov edx, 1
sete r13b
add r13, rdi
jmp 0x14031326b
mov rdx, r13
jmp 0x14031366d
mov esi, dword [rsp + 0x20]
add rdx, r13
jmp 0x14031366d
mov qword [rsp + 0xe0], rbp
xor edi, edi
mov eax, 0x3f
jmp 0x140313484
cmp byte [r8 + 8], 0x74
jne 0x1403138e5
movzx eax, byte [rbx + 0x10]
test al, al
setne dl
jmp 0x14031341c
mov r11d, 7
jmp 0x14031341c
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0xe0]
jmp 0x140313936
mov qword [rsp + 0xe0], rbp
mov r8d, r9d
jmp 0x140313484
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0xe0]
jmp 0x14031365f