Function at 0x1400586d4
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 0x140058cc4
mov r15, qword [rbp + 0x60]
test r15, r15
je 0x140058cc4
test r9, r9
jne 0x140058728
mov dword [r15], r12d
mov r9d, r12d
jmp 0x14005872b
mov r9d, dword [r15]
test byte [rcx + 0x298], 4
mov dword [rbp - 0x20], r9d
mov dword [rbp - 0x28], r9d
je 0x1400587b4
cmp dword [rcx + 0x1a8], r12d
je 0x1400587b4
lea r8, [rbp - 0x28]
cmp rdx, rsi
jne 0x14005879b
xor edx, edx
mov ebx, 6
call fcn.14005d7dc
test eax, eax
js 0x140058cc9
lea eax, [r13 - 6]
cmp r13d, eax
jl 0x140058791
mov r13d, eax
sub r13d, dword [rbp - 0x28]
mov dword [rbp + 0x50], r13d
cmp eax, r13d
jl 0x140058791
mov rdx, qword [rbp + 0x48]
mov r9d, dword [rbp - 0x20]
add rdx, 0xc
mov r10, qword [rbp + 0x40]
mov qword [rbp + 0x48], rdx
jmp 0x1400587b7
mov eax, 0x80004005
jmp 0x140058cc9
mov rdx, rsi
call fcn.14005d79c
test eax, eax
js 0x140058cc9
mov ebx, dword [rbp - 0x28]
mov rdx, qword [rbp + 0x48]
jmp 0x1400587b7
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 0x140058c46
movsxd r8, r12d
xor r10d, r10d
mov qword [rbp - 0x10], r8
movzx r15d, word [rdx + r8*2]
cmp r15w, 0x3f
je 0x140058c04
movsxd r11, edi
cmp r15w, 0x25
jne 0x140058c12
lea eax, [r13 - 2]
cmp r12d, eax
jge 0x140058c12
movzx ecx, word [rdx + r8*2 + 2]
call fcn.14002e39c
test eax, eax
je 0x140058c12
movzx r9d, word [rdx + r8*2 + 4]
movzx ecx, r9w
call fcn.14002e39c
test eax, eax
je 0x140058c12
movzx ecx, word [rdx + r8*2 + 2]
call fcn.14002e400
mov r13d, eax
movzx ecx, r9w
shl r13b, 4
call fcn.14002e400
add r13b, al
mov byte [rbp - 0x24], r13b
je 0x140058c12
cmp r13b, 0x7f
jbe 0x140058bc6
xor edx, edx
cmp dword [rbp - 0x28], edx
mov rdx, qword [rbp + 0x48]
je 0x140058a7b
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 0x140058a7b
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 6], r15w
jne 0x140058a7b
movzx eax, word [rdx + rax*2 + 8]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.14002e39c
test eax, eax
je 0x140058a7b
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0xa]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.14002e39c
test eax, eax
je 0x140058a7b
movzx ecx, word [rbp - 0x2e]
call fcn.14002e400
movzx ecx, word [rbp - 0x2c]
mov edx, eax
shl dl, 4
mov dword [rbp - 0x1c], edx
call fcn.14002e400
mov edx, dword [rbp - 0x1c]
add dl, al
mov cl, dl
mov dword [rbp - 0x1c], edx
and cl, 0xc0
cmp cl, 0x80
jne 0x140058a77
mov al, r13b
and al, 0xe0
cmp al, 0xc0
je 0x140058b65
mov eax, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
add eax, 0xfffffff7
cmp r12d, eax
jg 0x140058a7b
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 0xc], r15w
jne 0x140058a7b
movzx eax, word [rdx + rax*2 + 0xe]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.14002e39c
test eax, eax
je 0x140058a7b
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0x10]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.14002e39c
test eax, eax
je 0x140058a7b
movzx ecx, word [rbp - 0x2c]
call fcn.14002e400
movzx ecx, word [rbp - 0x2e]
mov r11d, eax
shl r11b, 4
call fcn.14002e400
add r11b, al
mov dword [rbp - 0x18], r11d
mov r11, r10
mov cl, byte [rbp - 0x18]
and cl, 0xc0
cmp cl, 0x80
jne 0x140058a77
mov al, r13b
and al, 0xf0
cmp al, 0xe0
je 0x140058b35
mov eax, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
add eax, 0xfffffff4
cmp r12d, eax
jg 0x140058a7b
mov rax, qword [rbp - 0x10]
cmp word [rdx + rax*2 + 0x12], r15w
jne 0x140058a7b
movzx eax, word [rdx + rax*2 + 0x14]
movzx ecx, ax
mov word [rbp - 0x2c], ax
call fcn.14002e39c
test eax, eax
je 0x140058a7b
mov rax, qword [rbp - 0x10]
movzx eax, word [rdx + rax*2 + 0x16]
movzx ecx, ax
mov word [rbp - 0x2e], ax
call fcn.14002e39c
test eax, eax
je 0x140058a7b
movzx ecx, word [rbp - 0x2c]
call fcn.14002e400
movzx ecx, word [rbp - 0x2e]
mov r11d, eax
shl r11b, 4
call fcn.14002e400
add r11b, al
mov dword [rbp - 0x2c], r11d
mov r11, r10
mov cl, byte [rbp - 0x2c]
and cl, 0xc0
cmp cl, 0x80
jne 0x140058a77
mov al, r13b
and al, 0xf8
cmp al, 0xf0
jne 0x140058a77
lea eax, [rbx + 2]
cmp eax, dword [rbp - 0x20]
jg 0x140058a77
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 0x140058acf
mov rdx, qword [rbp + 0x48]
xor r10d, r10d
test byte [rbp + 0x68], 1
mov dword [rbp - 0x28], r10d
jne 0x140058b85
cmp edi, 0xffffffff
je 0x140058c12
cmp r14d, 0xffffffff
je 0x140058c12
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 0x140058c04
mov r13d, dword [rbp + 0x50]
jmp 0x1400587f0
test rsi, rsi
je 0x140058b07
cmp ebx, dword [rbp - 0x20]
jge 0x140058b07
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 0x140058c12
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 0x140058c12
and r13b, 0x1f
and dl, 0x3f
movzx r15d, r13b
shl r15w, 6
movzx eax, dl
or r15w, ax
add r12d, 5
jmp 0x140058c12
mov r10, qword [rbp + 0x40]
mov ecx, dword [r10 + 0x2c]
lea eax, [rcx - 0x4b0]
cmp eax, 1
jbe 0x140058bc0
lea r9, [rbp - 0x14]
lea rdx, [rbp - 0x24]
call fcn.14002d2a0
test eax, eax
je 0x140058c12
movzx eax, word [rbp - 0x14]
mov r10, qword [rbp + 0x40]
test ax, ax
je 0x140058c16
movzx r15d, ax
add r12d, 2
jmp 0x140058c16
movzx r15d, r13b
jmp 0x140058bba
test byte [rbp + 0x68], 8
jne 0x140058c12
cmp byte [rbp - 0x30], r10b
je 0x140058bee
cmp r13b, 0x3d
ja 0x140058bee
movabs rcx, 0x2000084000000000
bt rcx, r13
jae 0x140058bee
test byte [rbp + 0x68], 0x40
jne 0x140058c12
cmp r13b, 0x23
jne 0x140058bfa
test byte [rbp + 0x68], 4
jne 0x140058c12
movzx r15d, r13b
add r12d, 2
jmp 0x140058c12
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 0x140058c2c
cmp ebx, r9d
jge 0x140058c2c
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 0x1400587d3
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 0x140058c8f
cmp dword [r10 + 0x1a8], edi
je 0x140058c8f
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.14005d7dc
test eax, eax
js 0x140058cc9
mov eax, dword [rbp + 0x48]
mov r9d, dword [rbp - 0x20]
jmp 0x140058c91
mov eax, edi
add ebx, eax
test rsi, rsi
je 0x140058ca4
cmp ebx, r9d
jg 0x140058ca4
movsxd rcx, ebx
mov word [rsi + rcx*2], di
mov dword [r15], ebx
test rsi, rsi
jne 0x140058cb1
lea eax, [rsi + 1]
jmp 0x140058cc9
cmp ebx, r9d
jle 0x140058cc0
mov word [rsi], di
mov eax, 0x8007007a
jmp 0x140058cc9
xor eax, eax
jmp 0x140058cc9
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