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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
xor r12d, r12d
mov rsi, r9
mov r13d, r8d
mov r10, rcx
test rdx, rdx
je 0x1400cd394
mov r15, qword [rbp + 0x60]
test r15, r15
je 0x1400cd394
test r9, r9
jne 0x1400ccdf8
mov dword [r15], r12d
mov r9d, r12d
jmp 0x1400ccdfb
mov r9d, dword [r15]
test byte [rcx + 0x298], 4
mov dword [rbp - 0x20], r9d
mov dword [rbp - 0x28], r9d
je 0x1400cce84
cmp dword [rcx + 0x1a8], r12d
je 0x1400cce84
lea r8, [rbp - 0x28]
cmp rdx, rsi
jne 0x1400cce6b
xor edx, edx
mov ebx, 6
call fcn.1400d1ecc
test eax, eax
js 0x1400cd399
lea eax, [r13 - 6]
cmp r13d, eax
jl 0x1400cce61
mov r13d, eax
sub r13d, dword [rbp - 0x28]
mov dword [rbp + 0x50], r13d
cmp eax, r13d
jl 0x1400cce61
mov rdx, qword [rbp + 0x48]
mov r9d, dword [rbp - 0x20]
add rdx, 0xc
mov r10, qword [rbp + 0x40]
mov qword [rbp + 0x48], rdx
jmp 0x1400cce87
mov eax, 0x80004005
jmp 0x1400cd399
mov rdx, rsi
call fcn.1400d1e8c
test eax, eax
js 0x1400cd399
mov ebx, dword [rbp - 0x28]
mov rdx, qword [rbp + 0x48]
jmp 0x1400cce87
mov ebx, r12d
mov eax, dword [rbp + 0x68]
or edi, 0xffffffff
and eax, 0x20
mov byte [rbp - 0x30], r12b
or r14d, edi
mov dword [rbp - 0x28], eax
test r13d, r13d
jle 0x1400cd316
movsxd r8, r12d
xor r10d, r10d
mov qword [rbp - 0x10], r8
movzx r15d, word [rdx + r8*2]
cmp r15w, 0x3f
je 0x1400cd2d4
movsxd r11, edi
cmp r15w, 0x25
jne 0x1400cd2e2
lea eax, [r13 - 2]
cmp r12d, eax
jge 0x1400cd2e2
movzx ecx, word [rdx + r8*2 + 2]
call fcn.1400912ec
test eax, eax
je 0x1400cd2e2
movzx r9d, word [rdx + r8*2 + 4]
movzx ecx, r9w
call fcn.1400912ec
test eax, eax
je 0x1400cd2e2
movzx ecx, word [rdx + r8*2 + 2]
call fcn.140091350
mov r13d, eax
movzx ecx, r9w
shl r13b, 4
call fcn.140091350
add r13b, al
mov byte [rbp - 0x24], r13b
je 0x1400cd2e2
cmp r13b, 0x7f
jbe 0x1400cd296
xor edx, edx
cmp dword [rbp - 0x28], edx
mov rdx, qword [rbp + 0x48]
je 0x1400cd14b
cmp edi, 0xffffffff
mov r10, r8
mov eax, r12d
cmovne eax, edi
cmovne r10, r11
mov edi, eax
mov r8d, eax
cmp r14d, 0xffffffff
mov eax, ebx
mov r11, r10
cmovne eax, r14d
mov r14d, eax
mov r9d, eax
mov eax, dword [rbp + 0x50]
add eax, 0xfffffffa
cmp r12d, eax
jg 0x1400cd14b
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 6], r15w
jne 0x1400cd14b
movzx eax, word [rdx + rax*2 + 8]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.1400912ec
test eax, eax
je 0x1400cd14b
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0xa]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.1400912ec
test eax, eax
je 0x1400cd14b
movzx ecx, word [rbp - 0x2e]
call fcn.140091350
movzx ecx, word [rbp - 0x2c]
mov edx, eax
shl dl, 4
mov dword [rbp - 0x1c], edx
call fcn.140091350
mov edx, dword [rbp - 0x1c]
add dl, al
mov cl, dl
mov dword [rbp - 0x1c], edx
and cl, 0xc0
cmp cl, 0x80
jne 0x1400cd147
mov al, r13b
and al, 0xe0
cmp al, 0xc0
je 0x1400cd235
mov eax, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
add eax, 0xfffffff7
cmp r12d, eax
jg 0x1400cd14b
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 0xc], r15w
jne 0x1400cd14b
movzx eax, word [rdx + rax*2 + 0xe]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.1400912ec
test eax, eax
je 0x1400cd14b
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0x10]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.1400912ec
test eax, eax
je 0x1400cd14b
movzx ecx, word [rbp - 0x2c]
call fcn.140091350
movzx ecx, word [rbp - 0x2e]
mov r11d, eax
shl r11b, 4
call fcn.140091350
add r11b, al
mov dword [rbp - 0x18], r11d
mov r11, r10
mov cl, byte [rbp - 0x18]
and cl, 0xc0
cmp cl, 0x80
jne 0x1400cd147
mov al, r13b
and al, 0xf0
cmp al, 0xe0
je 0x1400cd205
mov eax, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
add eax, 0xfffffff4
cmp r12d, eax
jg 0x1400cd14b
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 0x12], r15w
jne 0x1400cd14b
movzx eax, word [rdx + rax*2 + 0x14]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.1400912ec
test eax, eax
je 0x1400cd14b
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0x16]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.1400912ec
test eax, eax
je 0x1400cd14b
movzx ecx, word [rbp - 0x2c]
call fcn.140091350
movzx ecx, word [rbp - 0x2e]
mov r11d, eax
shl r11b, 4
call fcn.140091350
add r11b, al
mov dword [rbp - 0x2c], r11d
mov r11, r10
mov cl, byte [rbp - 0x2c]
and cl, 0xc0
cmp cl, 0x80
jne 0x1400cd147
mov al, r13b
and al, 0xf8
cmp al, 0xf0
jne 0x1400cd147
lea eax, [rbx + 2]
cmp eax, dword [rbp - 0x20]
jg 0x1400cd147
mov edx, dword [rbp - 0x1c]
movzx ecx, dl
shr ecx, 4
and ecx, 3
movzx eax, r13b
and eax, 7
shl eax, 2
or ecx, eax
dec ecx
cmp ecx, 0x10000
jl 0x1400cd19f
mov rdx, qword [rbp + 0x48]
xor r10d, r10d
test byte [rbp + 0x68], 1
mov dword [rbp - 0x28], r10d
jne 0x1400cd255
cmp edi, 0xffffffff
je 0x1400cd2e2
cmp r14d, 0xffffffff
je 0x1400cd2e2
mov r8, r11
mov qword [rbp - 0x10], r11
or r11, 0xffffffffffffffff
mov r12d, edi
mov ebx, r14d
or edi, 0xffffffff
or r14d, r11d
movzx r15d, word [rdx + r8*2]
cmp r15w, 0x3f
je 0x1400cd2d4
mov r13d, dword [rbp + 0x50]
jmp 0x1400ccec0
test rsi, rsi
je 0x1400cd1d7
cmp ebx, dword [rbp - 0x20]
jge 0x1400cd1d7
mov eax, 0xff60
and dl, 0xf
or cx, ax
movzx eax, dl
shl cx, 4
or cx, ax
mov al, byte [rbp - 0x18]
shr al, 4
and al, 3
shl cx, 2
movzx eax, al
or cx, ax
movsxd rax, ebx
mov word [rsi + rax*2], cx
mov eax, dword [rbp - 0x18]
inc ebx
and al, 0xf
movzx r15d, al
mov eax, 0xff70
or r15w, ax
mov eax, dword [rbp - 0x2c]
and al, 0x3f
shl r15w, 6
movzx eax, al
or r15w, ax
add r12d, 0xb
jmp 0x1400cd2e2
mov edx, dword [rbp - 0x1c]
and dl, 0x3f
movzx eax, r13b
shl ax, 6
movzx r15d, dl
or r15w, ax
mov eax, dword [rbp - 0x18]
and al, 0x3f
shl r15w, 6
movzx eax, al
or r15w, ax
add r12d, 8
jmp 0x1400cd2e2
and r13b, 0x1f
and dl, 0x3f
movzx r15d, r13b
shl r15w, 6
movzx eax, dl
or r15w, ax
add r12d, 5
jmp 0x1400cd2e2
mov r10, qword [rbp + 0x40]
mov ecx, dword [r10 + 0x2c]
lea eax, [rcx - 0x4b0]
cmp eax, 1
jbe 0x1400cd290
lea r9, [rbp - 0x14]
lea rdx, [rbp - 0x24]
call fcn.14009059c
test eax, eax
je 0x1400cd2e2
movzx eax, word [rbp - 0x14]
mov r10, qword [rbp + 0x40]
test ax, ax
je 0x1400cd2e6
movzx r15d, ax
add r12d, 2
jmp 0x1400cd2e6
movzx r15d, r13b
jmp 0x1400cd28a
test byte [rbp + 0x68], 8
jne 0x1400cd2e2
cmp byte [rbp - 0x30], r10b
je 0x1400cd2be
cmp r13b, 0x3d
ja 0x1400cd2be
movabs rcx, 0x2000084000000000
bt rcx, r13
jae 0x1400cd2be
test byte [rbp + 0x68], 0x40
jne 0x1400cd2e2
cmp r13b, 0x23
jne 0x1400cd2ca
test byte [rbp + 0x68], 4
jne 0x1400cd2e2
movzx r15d, r13b
add r12d, 2
jmp 0x1400cd2e2
or edi, 0xffffffff
mov dword [rbp - 0x28], r10d
or r14d, edi
mov byte [rbp - 0x30], 1
mov r10, qword [rbp + 0x40]
mov r9d, dword [rbp - 0x20]
test rsi, rsi
je 0x1400cd2fc
cmp ebx, r9d
jge 0x1400cd2fc
movsxd rax, ebx
mov word [rsi + rax*2], r15w
mov r13d, dword [rbp + 0x50]
inc r12d
mov rdx, qword [rbp + 0x48]
inc ebx
cmp r12d, r13d
jl 0x1400ccea3
mov r15, qword [rbp + 0x60]
mov eax, r9d
xor edi, edi
sub eax, ebx
test byte [r10 + 0x298], 4
mov dword [rbp + 0x48], eax
je 0x1400cd35f
cmp dword [r10 + 0x1a8], edi
je 0x1400cd35f
movsxd rax, ebx
mov rcx, rsi
neg rcx
mov rcx, r10
sbb rdx, rdx
lea r8, [rsi + rax*2]
and rdx, r8
lea r8, [rbp + 0x48]
call fcn.1400d1ecc
test eax, eax
js 0x1400cd399
mov eax, dword [rbp + 0x48]
mov r9d, dword [rbp - 0x20]
jmp 0x1400cd361
mov eax, edi
add ebx, eax
test rsi, rsi
je 0x1400cd374
cmp ebx, r9d
jg 0x1400cd374
movsxd rcx, ebx
mov word [rsi + rcx*2], di
mov dword [r15], ebx
test rsi, rsi
jne 0x1400cd381
lea eax, [rsi + 1]
jmp 0x1400cd399
cmp ebx, r9d
jle 0x1400cd390
mov word [rsi], di
mov eax, 0x8007007a
jmp 0x1400cd399
xor eax, eax
jmp 0x1400cd399
mov eax, 0x80004003
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret