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

Disassembly:
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x18], r8d
mov qword [rsp + 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 r15, r9
mov ebx, r8d
mov r14, rdx
mov rsi, rcx
test rdx, rdx
jne 0x140065eaf
mov eax, 0x80004003
jmp 0x1400664a0
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x140065ea5
test r15, r15
jne 0x140065ec0
mov dword [rax], r12d
test byte [rcx + 0x298], 4
mov r13d, dword [rax]
mov dword [rbp - 0x30], r13d
mov dword [rbp + 0x48], r13d
je 0x140065f52
add rcx, 0x150
call fcn.1400477f0
test eax, eax
je 0x140065f52
lea r8, [rbp + 0x48]
mov rcx, rsi
cmp r14, r15
jne 0x140065f3d
xor edx, edx
call fcn.1400606e0
test eax, eax
js 0x1400664a0
lea r8, [rbp - 0x20]
xor edx, edx
mov rcx, rsi
call fcn.140060720
test eax, eax
js 0x1400664a0
movsxd rdi, dword [rbp + 0x48]
mov eax, ebx
sub eax, edi
cmp ebx, eax
jge 0x140065f2b
mov eax, 0x80004005
jmp 0x1400664a0
mov ebx, eax
sub ebx, dword [rbp - 0x20]
mov dword [rbp + 0x50], ebx
cmp eax, ebx
jl 0x140065f21
lea r14, [r14 + rdi*2]
jmp 0x140065f55
mov rdx, r15
call fcn.1400606e0
test eax, eax
js 0x1400664a0
mov edi, dword [rbp + 0x48]
jmp 0x140065f55
mov edi, r12d
mov r9d, dword [rbp + 0x68]
or edx, 0xffffffff
or dword [rbp - 0x28], edx
and r9d, 0x20
xor eax, eax
mov dword [rbp - 0x14], r9d
mov dword [rbp - 0x2c], edx
mov byte [rbp - 0x24], r12b
test ebx, ebx
jle 0x140066319
mov ecx, r13d
movsxd rsi, r12d
movzx r13d, word [r14 + rsi*2]
cmp r13w, 0x3f
je 0x140066396
movsxd rax, edx
mov qword [rbp - 0x10], rax
cmp r13w, 0x25
jne 0x140066459
lea eax, [rbx - 2]
cmp r12d, eax
jge 0x140066459
movzx ecx, word [r14 + rsi*2 + 2]
call fcn.1400312c8
test eax, eax
je 0x1400662e5
movzx ecx, word [r14 + rsi*2 + 4]
call fcn.1400312c8
test eax, eax
je 0x1400662e5
movzx ecx, word [r14 + rsi*2 + 2]
call fcn.140031328
movzx ecx, word [r14 + rsi*2 + 4]
mov ebx, eax
shl bl, 4
call fcn.140031328
mov edx, eax
add dl, bl
mov byte [rbp + 0x48], dl
je 0x1400662e5
cmp dl, 0x7f
jbe 0x14006640d
xor ebx, ebx
cmp dword [rbp - 0x14], ebx
je 0x140066262
cmp dword [rbp - 0x2c], 0xffffffff
jne 0x14006601c
mov dword [rbp - 0x2c], r12d
mov qword [rbp - 0x10], rsi
mov r8d, dword [rbp - 0x28]
cmp r8d, 0xffffffff
mov eax, dword [rbp + 0x50]
cmove r8d, edi
add eax, 0xfffffffa
mov dword [rbp - 0x28], r8d
cmp r12d, eax
jg 0x140066266
cmp word [r14 + rsi*2 + 6], 0x25
jne 0x140066266
movzx ecx, word [r14 + rsi*2 + 8]
call fcn.1400312c8
test eax, eax
je 0x14006625f
movzx ecx, word [r14 + rsi*2 + 0xa]
call fcn.1400312c8
test eax, eax
je 0x14006625f
movzx ecx, word [r14 + rsi*2 + 8]
call fcn.140031328
movzx ecx, word [r14 + rsi*2 + 0xa]
mov ebx, eax
shl bl, 4
call fcn.140031328
add al, bl
mov cl, al
mov dword [rbp - 0x20], eax
and cl, 0xc0
cmp cl, 0x80
jne 0x14006625f
mov dl, byte [rbp + 0x48]
mov cl, dl
and cl, 0xe0
cmp cl, 0xc0
je 0x140066373
mov ecx, dword [rbp + 0x50]
add ecx, 0xfffffff7
cmp r12d, ecx
jg 0x140066262
cmp word [r14 + rsi*2 + 0xc], 0x25
jne 0x140066262
movzx ecx, word [r14 + rsi*2 + 0xe]
call fcn.1400312c8
test eax, eax
je 0x14006625f
movzx ecx, word [r14 + rsi*2 + 0x10]
call fcn.1400312c8
test eax, eax
je 0x14006625f
movzx ecx, word [r14 + rsi*2 + 0xe]
call fcn.140031328
movzx ecx, word [r14 + rsi*2 + 0x10]
mov ebx, eax
shl bl, 4
call fcn.140031328
mov r8d, eax
add r8b, bl
mov cl, r8b
mov dword [rbp - 0x18], r8d
and cl, 0xc0
cmp cl, 0x80
jne 0x14006625f
mov dl, byte [rbp + 0x48]
mov cl, dl
and cl, 0xf0
cmp cl, 0xe0
je 0x1400662bb
mov ecx, dword [rbp + 0x50]
add ecx, 0xfffffff4
cmp r12d, ecx
jg 0x140066262
cmp word [r14 + rsi*2 + 0x12], 0x25
jne 0x140066262
movzx ecx, word [r14 + rsi*2 + 0x14]
call fcn.1400312c8
test eax, eax
je 0x14006625f
movzx ecx, word [r14 + rsi*2 + 0x16]
call fcn.1400312c8
test eax, eax
je 0x14006625f
movzx ecx, word [r14 + rsi*2 + 0x14]
call fcn.140031328
movzx ecx, word [r14 + rsi*2 + 0x16]
mov ebx, eax
shl bl, 4
call fcn.140031328
mov r9d, eax
add r9b, bl
mov cl, r9b
and cl, 0xc0
cmp cl, 0x80
jne 0x14006625f
mov dl, byte [rbp + 0x48]
mov cl, dl
and cl, 0xf8
cmp cl, 0xf0
jne 0x140066262
mov r10d, dword [rbp - 0x30]
lea ecx, [rdi + 2]
cmp ecx, r10d
jg 0x140066262
mov ecx, dword [rbp - 0x20]
movzx r8d, cl
shr r8d, 4
and r8d, 3
movzx eax, dl
and eax, 7
shl eax, 2
or r8d, eax
dec r8d
cmp r8d, 0x10000
jge 0x140066262
mov edx, dword [rbp - 0x18]
test r15, r15
je 0x14006622c
cmp edi, r10d
jge 0x14006622c
mov eax, 0xff60
and cl, 0xf
or r8w, ax
movzx ecx, cl
mov al, dl
shl r8w, 4
shr al, 4
or cx, r8w
and al, 3
shl cx, 2
movzx eax, al
or cx, ax
movsxd rax, edi
mov word [r15 + rax*2], cx
mov rsi, qword [rbp + 0x40]
and dl, 0xf
mov eax, 0xff70
movzx r13d, dl
or r13w, ax
and r9b, 0x3f
shl r13w, 6
inc edi
movzx eax, r9b
mov ecx, r10d
or r13w, ax
add r12d, 0xb
jmp 0x1400662ec
mov dl, byte [rbp + 0x48]
mov r8d, dword [rbp - 0x28]
xor ecx, ecx
test byte [rbp + 0x68], 1
mov dword [rbp - 0x14], ecx
jne 0x1400663af
mov edx, dword [rbp - 0x2c]
cmp edx, 0xffffffff
je 0x140066459
cmp r8d, 0xffffffff
je 0x140066459
mov rsi, qword [rbp - 0x10]
mov r12d, edx
or qword [rbp - 0x10], 0xffffffffffffffff
or edx, 0xffffffff
or dword [rbp - 0x28], edx
mov edi, r8d
mov dword [rbp - 0x2c], edx
movzx r13d, word [r14 + rsi*2]
cmp r13w, 0x3f
je 0x140066391
mov ebx, dword [rbp + 0x50]
jmp 0x140065f95
mov ecx, dword [rbp - 0x20]
and r8b, 0x3f
and cl, 0x3f
movzx eax, dl
shl ax, 6
movzx r13d, cl
or r13w, ax
movzx eax, r8b
shl r13w, 6
or r13w, ax
add r12d, 8
mov rsi, qword [rbp + 0x40]
mov ecx, dword [rbp - 0x30]
mov edx, dword [rbp - 0x2c]
xor eax, eax
test r15, r15
je 0x140066304
cmp edi, ecx
jge 0x140066304
movsxd rax, edi
mov word [r15 + rax*2], r13w
xor eax, eax
mov ebx, dword [rbp + 0x50]
inc r12d
inc edi
cmp r12d, ebx
jl 0x140065f7b
mov r13d, dword [rbp - 0x30]
mov eax, r13d
sub eax, edi
test byte [rsi + 0x298], 4
mov dword [rbp + 0x48], eax
je 0x140066465
lea rcx, [rsi + 0x150]
call fcn.1400477f0
xor ebx, ebx
test eax, eax
je 0x140066467
movsxd rax, edi
mov rcx, r15
neg rcx
mov rcx, rsi
sbb rdx, rdx
lea r8, [r15 + rax*2]
and rdx, r8
lea r8, [rbp + 0x48]
call fcn.140060720
test eax, eax
js 0x1400664a0
mov eax, dword [rbp + 0x48]
jmp 0x140066469
and dl, 0x1f
and al, 0x3f
movzx r13d, dl
shl r13w, 6
movzx eax, al
or r13w, ax
add r12d, 5
jmp 0x1400662e5
mov ecx, dword [rbp - 0x30]
xor eax, eax
mov rsi, qword [rbp + 0x40]
or edx, 0xffffffff
or dword [rbp - 0x28], edx
mov dword [rbp - 0x2c], edx
mov dword [rbp - 0x14], eax
mov byte [rbp - 0x24], 1
jmp 0x1400662ef
mov rsi, qword [rbp + 0x40]
mov ecx, dword [rsi + 0x2c]
lea eax, [rcx - 0x4b0]
cmp eax, 1
jbe 0x140066407
mov rax, qword [rsi + 8]
lea r9, [rbp - 0x1c]
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0x48]
mov r8d, 1
mov dword [rsp + 0x20], 1
call fcn.14002d6c0
test eax, eax
je 0x1400662e9
movzx eax, word [rbp - 0x1c]
test ax, ax
je 0x1400662e9
movzx r13d, ax
add r12d, 2
jmp 0x1400662e9
movzx r13d, dl
jmp 0x1400663fe
test byte [rbp + 0x68], 8
jne 0x1400662e5
xor ecx, ecx
cmp byte [rbp - 0x24], cl
je 0x14006643d
cmp dl, 0x3d
ja 0x14006643d
movabs rcx, 0x2000084000000000
bt rcx, rdx
jae 0x14006643d
test byte [rbp + 0x68], 0x40
jne 0x1400662e5
cmp dl, 0x23
jne 0x14006644c
test byte [rbp + 0x68], 4
jne 0x1400662e5
movzx r13d, dl
add r12d, 2
jmp 0x1400662e5
mov rsi, qword [rbp + 0x40]
mov ecx, dword [rbp - 0x30]
jmp 0x1400662ef
xor ebx, ebx
mov eax, ebx
add edi, eax
test r15, r15
je 0x14006647d
cmp edi, r13d
jg 0x14006647d
movsxd rcx, edi
mov word [r15 + rcx*2], bx
mov rcx, qword [rbp + 0x60]
mov dword [rcx], edi
test r15, r15
jne 0x14006648e
lea eax, [r15 + 1]
jmp 0x1400664a0
cmp edi, r13d
jle 0x14006649e
mov word [r15], bx
mov eax, 0x8007007a
jmp 0x1400664a0
xor eax, eax
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret