Function at 0x140315f40
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 0x1403164f0
mov rcx, rdx
call sub.msvcrt.dll_strlen
mov r15d, eax
mov rdx, rax
and r15d, 0x3fffffff
test sil, 0x40
lea r13d, [r15 + 8]
movsxd rdi, r13d
je 0x140316030
cmp r15d, 4
jle 0x140315fbf
cmp dword [rbx], 0x656c6966
je 0x1403160af
call fcn.14035b5c0
test eax, eax
jne 0x140316050
mov eax, dword [0x140398100]
test eax, eax
jne 0x140316090
mov ecx, r13d
call qword [0x140398120]
test rax, rax
je 0x140316050
mov dword [rax], 0
lea r13, [rax + 4]
test r15d, r15d
movsxd rdi, r15d
jne 0x140316508
mov dword [r13 + rdi], 0
and esi, 0xffffffbf
mov rcx, r12
xor ebx, ebx
call fcn.140367210
test rax, rax
mov qword [r14], rax
je 0x14031651b
mov rax, qword [rsp + 0xf0]
mov dword [rbp], esi
mov qword [rax], r13
jmp 0x140316055
cmp byte [0x140398106], 0
je 0x140315fbf
cmp r15d, 4
jg 0x140315fb3
jmp 0x140315fbf
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 [0x140397da0]
test rcx, rcx
je 0x1403160a2
call qword [0x140398180]
mov rcx, rdi
call fcn.140312d00
jmp 0x140315fe3
cmp byte [rbx + 4], 0x3a
jne 0x140315fbf
lea ecx, [r15 - 1]
xor eax, eax
cmp ecx, 0xe
jbe 0x140316933
mov ecx, r15d
mov rax, rbx
pxor xmm4, xmm4
pxor xmm6, xmm6
shr ecx, 4
movdqa xmm7, xmmword [0x140475950]
pxor xmm5, xmm5
pxor xmm3, xmm3
movdqa xmm8, xmmword [0x140475940]
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 0x140316100
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 0x140316348
movsxd rdx, eax
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 1]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 2]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 3]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 4]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 5]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 6]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 7]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 8]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 9]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xa]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xb]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xc]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
movzx edx, dl
add r13, rdx
lea edx, [rax + 0xd]
cmp r15d, edx
jle 0x140316348
movsxd rdx, edx
cmp byte [rbx + rdx], 0x26
sete dl
add eax, 0xe
movzx edx, dl
add r13, rdx
cmp r15d, eax
jle 0x140316348
cdqe
cmp byte [rbx + rax], 0x26
sete al
movzx eax, al
add r13, rax
nop word [rax + rax]
call fcn.14035b5c0
test eax, eax
mov edi, eax
jne 0x140316050
mov rcx, r13
call fcn.140312ca0
test rax, rax
je 0x140316050
mov dword [rax], 0
lea r13, [rax + 4]
movzx eax, byte [rbx + 5]
or esi, 0x40
cmp al, 0x2f
je 0x1403167e9
test al, al
mov r11d, 5
setne dl
cmp al, 0x23
je 0x14031694a
test dl, dl
je 0x14031694a
xor r10d, r10d
xor edx, edx
mov dword [rsp + 0x20], esi
mov qword [rsp + 0xe0], rbp
jmp 0x1403163f7
cmp edi, 1
je 0x140316578
test edi, edi
jne 0x1403165a7
cmp al, 0x3f
jne 0x1403165a7
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 0x1403165c0
cmp al, 0x23
je 0x1403165c0
movsxd rdx, r10d
mov r11d, r8d
lea r8d, [r11 + 1]
cmp al, 0x25
mov rcx, rdx
jne 0x1403163b0
lea rbp, [0x14047c4a0]
movsxd r9, r8d
movzx r15d, byte [rbx + r9]
test byte [rbp + r15], 8
mov rsi, r15
je 0x1403163d3
movzx r15d, byte [rbx + r9 + 1]
test byte [rbp + r15], 8
je 0x1403163d3
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 0x1403163d3
movzx eax, byte [rbx + r9]
cmp al, 0x23
je 0x1403169b7
test al, al
je 0x1403169b7
cmp edi, 1
je 0x14031686e
test edi, edi
mov rbp, qword [rsp + 0xe0]
setne cl
jmp 0x1403164c2
movzx eax, byte [rbx + r9 + 1]
add r9, 1
cmp al, 0x23
je 0x140316952
test al, al
je 0x140316952
cmp al, 0x3f
mov r8d, r9d
jne 0x1403164d1
test cl, cl
je 0x14031695e
cmp edi, 2
jne 0x1403164a8
cmp al, 0x26
jne 0x1403164a8
mov qword [rsp + 0xe0], rbp
jmp 0x1403163f4
mov edi, 8
mov r13d, 8
xor r15d, r15d
jmp 0x140315fbf
mov r8, rdi
mov rdx, rbx
mov rcx, r13
call sub.msvcrt.dll_memcpy
jmp 0x140315ffe
lea rcx, str.no_such_vfs:__s
mov rdx, r12
mov ebx, 1
call fcn.14035ca70
nop
mov rdx, qword [rsp + 0xf8]
mov qword [rdx], rax
jmp 0x140316544
sub r13, 1
cmp byte [r13 - 1], 0
jne 0x140316540
cmp byte [r13 - 2], 0
jne 0x140316540
cmp byte [r13 - 3], 0
jne 0x140316540
cmp byte [r13 - 4], 0
jne 0x140316540
lea rcx, [r13 - 4]
xor r13d, r13d
call fcn.14035ad80
jmp 0x140316020
cmp al, 0x26
je 0x140316584
cmp al, 0x3d
jne 0x1403163d0
cmp byte [r13 + rdx - 1], 0
je 0x1403168e6
cmp al, 0x26
je 0x1403167d2
mov edi, 2
xor eax, eax
movsxd r9, r8d
jmp 0x1403163d3
cmp edi, 2
jne 0x1403163d0
cmp al, 0x26
je 0x1403163c9
jmp 0x1403163d0
mov esi, dword [rsp + 0x20]
movsxd rcx, r10d
mov rbp, qword [rsp + 0xe0]
lea rdx, [r13 + rcx]
cmp edi, 1
je 0x1403168a9
mov dword [rdx], 0
mov rcx, r13
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
lea rdi, [r13 + rax + 1]
cmp byte [rdi], 0
je 0x14031600a
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 sub.msvcrt.dll_strlen
mov r14d, eax
and r14d, 0x3fffffff
lea ebx, [r14 + 1]
movsxd rbx, ebx
add rbx, rdi
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov r12d, eax
and r12d, 0x3fffffff
cmp r14d, 3
je 0x140316740
cmp r14d, 5
je 0x140316798
cmp r14d, 4
jne 0x140316702
cmp dword [rdi], 0x65646f6d
jne 0x140316702
lea rax, str.access
mov r15d, esi
mov r14d, 0xffffff78
and r15d, 0x87
mov qword [rsp + 0x28], rax
lea rbp, [0x140396f00]
mov r13, qword [rbp]
test r13, r13
je 0x140316768
movsxd rdi, r12d
jmp 0x1403166c1
mov r13, qword [rbp + 0x10]
add rbp, 0x10
test r13, r13
je 0x140316768
mov rcx, r13
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
cmp r12d, eax
jne 0x1403166b0
mov r8, rdi
mov rdx, r13
mov rcx, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1403166b0
mov eax, dword [rbp + 8]
test eax, eax
je 0x140316768
mov edx, eax
and dl, 0x7f
cmp edx, r15d
jg 0x1403168bb
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 0x140316620
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe0]
mov r14, qword [rsp + 0xe8]
jmp 0x14031600a
cmp word [rdi], 0x6676
jne 0x140316702
cmp byte [rdi + 2], 0x73
mov rax, rbx
cmovne rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rax
jmp 0x140316702
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 fcn.14035ca70
jmp 0x140316530
cmp dword [rdi], 0x68636163
jne 0x140316702
cmp byte [rdi + 4], 0x65
jne 0x140316702
lea rax, str.cache
mov r14d, 0xfff9ffff
mov r15d, 0x60000
mov qword [rsp + 0x28], rax
lea rbp, str.shared
jmp 0x14031669b
add r10d, 1
mov byte [r13 + rdx], 0
xor eax, eax
movsxd r9, r8d
movsxd rcx, r10d
jmp 0x1403163d3
cmp byte [rbx + 6], 0x2f
mov r11d, 5
jne 0x14031639c
movzx eax, byte [rbx + 7]
lea r8, [rbx + 7]
test al, al
setne cl
cmp al, 0x2f
mov edx, ecx
je 0x14031698b
test cl, cl
je 0x14031698b
lea rax, [rbx + 8]
mov r11d, 7
jmp 0x140316829
cmp dl, 0x2f
je 0x14031683b
movzx edx, byte [rax]
mov ecx, r11d
add rax, 1
add r11d, 1
test dl, dl
jne 0x140316824
cmp r11d, 0x10
jne 0x140316855
movabs rax, 0x736f686c61636f6c
cmp qword [rbx + 7], rax
je 0x140316972
lea edx, [rcx - 6]
mov ebx, 1
lea rcx, str.invalid_uri_authority:__.s
call fcn.14035ca70
jmp 0x140316530
mov rbp, qword [rsp + 0xe0]
jmp 0x140316884
cmp al, 0x23
je 0x1403168a2
cmp al, 0x26
je 0x1403169a7
cmp al, 0x3d
je 0x1403169a7
movzx eax, byte [rbx + r9 + 1]
add r9, 1
test al, al
jne 0x140316880
mov esi, dword [rsp + 0x20]
add rdx, r13
mov byte [rdx], 0
lea edx, [r10 + 1]
movsxd rdx, edx
add rdx, r13
jmp 0x1403165dd
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 fcn.14035ca70
jmp 0x140316530
movsxd rcx, r8d
add rcx, rbx
movzx eax, byte [rcx]
test al, al
je 0x140316996
cmp al, 0x23
je 0x140316996
mov rbp, qword [rsp + 0xe0]
jmp 0x140316928
movzx eax, byte [rcx + 1]
add r8d, 1
add rcx, 1
test al, al
je 0x1403168a2
cmp al, 0x23
je 0x1403168a2
cmp byte [rcx - 1], 0x26
jne 0x140316910
jmp 0x1403164da
xor r13d, r13d
cmp byte [rbx], 0x26
mov edx, 1
sete r13b
add r13, rdi
jmp 0x1403161db
mov rdx, r13
jmp 0x1403165dd
mov esi, dword [rsp + 0x20]
add rdx, r13
jmp 0x1403165dd
mov qword [rsp + 0xe0], rbp
xor edi, edi
mov eax, 0x3f
jmp 0x1403163f4
cmp byte [r8 + 8], 0x74
jne 0x140316855
movzx eax, byte [rbx + 0x10]
test al, al
setne dl
jmp 0x14031638c
mov r11d, 7
jmp 0x14031638c
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0xe0]
jmp 0x1403168a6
mov qword [rsp + 0xe0], rbp
mov r8d, r9d
jmp 0x1403163f4
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0xe0]
jmp 0x1403165cf