Function at 0x1400a99bc
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 0x1400a9fac
mov r15, qword [rbp + 0x60]
test r15, r15
je 0x1400a9fac
test r9, r9
jne 0x1400a9a10
mov dword [r15], r12d
mov r9d, r12d
jmp 0x1400a9a13
mov r9d, dword [r15]
test byte [rcx + 0x298], 4
mov dword [rbp - 0x20], r9d
mov dword [rbp - 0x28], r9d
je 0x1400a9a9c
cmp dword [rcx + 0x1a8], r12d
je 0x1400a9a9c
lea r8, [rbp - 0x28]
cmp rdx, rsi
jne 0x1400a9a83
xor edx, edx
mov ebx, 6
call fcn.1400aeaac
test eax, eax
js 0x1400a9fb1
lea eax, [r13 - 6]
cmp r13d, eax
jl 0x1400a9a79
mov r13d, eax
sub r13d, dword [rbp - 0x28]
mov dword [rbp + 0x50], r13d
cmp eax, r13d
jl 0x1400a9a79
mov rdx, qword [rbp + 0x48]
mov r9d, dword [rbp - 0x20]
add rdx, 0xc
mov r10, qword [rbp + 0x40]
mov qword [rbp + 0x48], rdx
jmp 0x1400a9a9f
mov eax, 0x80004005
jmp 0x1400a9fb1
mov rdx, rsi
call fcn.1400aea6c
test eax, eax
js 0x1400a9fb1
mov ebx, dword [rbp - 0x28]
mov rdx, qword [rbp + 0x48]
jmp 0x1400a9a9f
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 0x1400a9f2e
movsxd r8, r12d
xor r10d, r10d
mov qword [rbp - 0x10], r8
movzx r15d, word [rdx + r8*2]
cmp r15w, 0x3f
je 0x1400a9eec
movsxd r11, edi
cmp r15w, 0x25
jne 0x1400a9efa
lea eax, [r13 - 2]
cmp r12d, eax
jge 0x1400a9efa
movzx ecx, word [rdx + r8*2 + 2]
call fcn.1400153bc
test eax, eax
je 0x1400a9efa
movzx r9d, word [rdx + r8*2 + 4]
movzx ecx, r9w
call fcn.1400153bc
test eax, eax
je 0x1400a9efa
movzx ecx, word [rdx + r8*2 + 2]
call fcn.140015420
mov r13d, eax
movzx ecx, r9w
shl r13b, 4
call fcn.140015420
add r13b, al
mov byte [rbp - 0x24], r13b
je 0x1400a9efa
cmp r13b, 0x7f
jbe 0x1400a9eae
xor edx, edx
cmp dword [rbp - 0x28], edx
mov rdx, qword [rbp + 0x48]
je 0x1400a9d63
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 0x1400a9d63
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 6], r15w
jne 0x1400a9d63
movzx eax, word [rdx + rax*2 + 8]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.1400153bc
test eax, eax
je 0x1400a9d63
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0xa]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.1400153bc
test eax, eax
je 0x1400a9d63
movzx ecx, word [rbp - 0x2e]
call fcn.140015420
movzx ecx, word [rbp - 0x2c]
mov edx, eax
shl dl, 4
mov dword [rbp - 0x1c], edx
call fcn.140015420
mov edx, dword [rbp - 0x1c]
add dl, al
mov cl, dl
mov dword [rbp - 0x1c], edx
and cl, 0xc0
cmp cl, 0x80
jne 0x1400a9d5f
mov al, r13b
and al, 0xe0
cmp al, 0xc0
je 0x1400a9e4d
mov eax, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
add eax, 0xfffffff7
cmp r12d, eax
jg 0x1400a9d63
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 0xc], r15w
jne 0x1400a9d63
movzx eax, word [rdx + rax*2 + 0xe]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.1400153bc
test eax, eax
je 0x1400a9d63
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0x10]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.1400153bc
test eax, eax
je 0x1400a9d63
movzx ecx, word [rbp - 0x2c]
call fcn.140015420
movzx ecx, word [rbp - 0x2e]
mov r11d, eax
shl r11b, 4
call fcn.140015420
add r11b, al
mov dword [rbp - 0x18], r11d
mov r11, r10
mov cl, byte [rbp - 0x18]
and cl, 0xc0
cmp cl, 0x80
jne 0x1400a9d5f
mov al, r13b
and al, 0xf0
cmp al, 0xe0
je 0x1400a9e1d
mov eax, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
add eax, 0xfffffff4
cmp r12d, eax
jg 0x1400a9d63
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 0x12], r15w
jne 0x1400a9d63
movzx eax, word [rdx + rax*2 + 0x14]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.1400153bc
test eax, eax
je 0x1400a9d63
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0x16]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.1400153bc
test eax, eax
je 0x1400a9d63
movzx ecx, word [rbp - 0x2c]
call fcn.140015420
movzx ecx, word [rbp - 0x2e]
mov r11d, eax
shl r11b, 4
call fcn.140015420
add r11b, al
mov dword [rbp - 0x2c], r11d
mov r11, r10
mov cl, byte [rbp - 0x2c]
and cl, 0xc0
cmp cl, 0x80
jne 0x1400a9d5f
mov al, r13b
and al, 0xf8
cmp al, 0xf0
jne 0x1400a9d5f
lea eax, [rbx + 2]
cmp eax, dword [rbp - 0x20]
jg 0x1400a9d5f
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 0x1400a9db7
mov rdx, qword [rbp + 0x48]
xor r10d, r10d
test byte [rbp + 0x68], 1
mov dword [rbp - 0x28], r10d
jne 0x1400a9e6d
cmp edi, 0xffffffff
je 0x1400a9efa
cmp r14d, 0xffffffff
je 0x1400a9efa
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 0x1400a9eec
mov r13d, dword [rbp + 0x50]
jmp 0x1400a9ad8
test rsi, rsi
je 0x1400a9def
cmp ebx, dword [rbp - 0x20]
jge 0x1400a9def
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 0x1400a9efa
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 0x1400a9efa
and r13b, 0x1f
and dl, 0x3f
movzx r15d, r13b
shl r15w, 6
movzx eax, dl
or r15w, ax
add r12d, 5
jmp 0x1400a9efa
mov r10, qword [rbp + 0x40]
mov ecx, dword [r10 + 0x2c]
lea eax, [rcx - 0x4b0]
cmp eax, 1
jbe 0x1400a9ea8
lea r9, [rbp - 0x14]
lea rdx, [rbp - 0x24]
call fcn.140013d40
test eax, eax
je 0x1400a9efa
movzx eax, word [rbp - 0x14]
mov r10, qword [rbp + 0x40]
test ax, ax
je 0x1400a9efe
movzx r15d, ax
add r12d, 2
jmp 0x1400a9efe
movzx r15d, r13b
jmp 0x1400a9ea2
test byte [rbp + 0x68], 8
jne 0x1400a9efa
cmp byte [rbp - 0x30], r10b
je 0x1400a9ed6
cmp r13b, 0x3d
ja 0x1400a9ed6
movabs rcx, 0x2000084000000000
bt rcx, r13
jae 0x1400a9ed6
test byte [rbp + 0x68], 0x40
jne 0x1400a9efa
cmp r13b, 0x23
jne 0x1400a9ee2
test byte [rbp + 0x68], 4
jne 0x1400a9efa
movzx r15d, r13b
add r12d, 2
jmp 0x1400a9efa
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 0x1400a9f14
cmp ebx, r9d
jge 0x1400a9f14
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 0x1400a9abb
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 0x1400a9f77
cmp dword [r10 + 0x1a8], edi
je 0x1400a9f77
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.1400aeaac
test eax, eax
js 0x1400a9fb1
mov eax, dword [rbp + 0x48]
mov r9d, dword [rbp - 0x20]
jmp 0x1400a9f79
mov eax, edi
add ebx, eax
test rsi, rsi
je 0x1400a9f8c
cmp ebx, r9d
jg 0x1400a9f8c
movsxd rcx, ebx
mov word [rsi + rcx*2], di
mov dword [r15], ebx
test rsi, rsi
jne 0x1400a9f99
lea eax, [rsi + 1]
jmp 0x1400a9fb1
cmp ebx, r9d
jle 0x1400a9fa8
mov word [rsi], di
mov eax, 0x8007007a
jmp 0x1400a9fb1
xor eax, eax
jmp 0x1400a9fb1
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