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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rdi, rdx
mov rsi, rcx
mov r12, qword [rdx + 8]
mov rax, qword [rdx + 0x20]
mov rdx, qword [r12 + 0xd0]
mov ecx, dword [rdi + 0x28]
imul rcx, rcx, 0x38
lea r15, [rax + rcx]
add r15, 0xffffffffffffffc8
mov r14, r12
nop dword [rax + rax]
mov r14, qword [r14 + 0xd0]
test r14, r14
je 0x1400e16e4
cmp word [r14 + 0x10], 4
je 0x1400e16d0
mov rbp, rdx
nop word [rax + rax]
mov rbp, qword [rbp + 0xd8]
test rbp, rbp
je 0x1400e1705
cmp word [rbp + 0x10], 4
je 0x1400e16f0
jmp 0x1400e1708
mov rbp, r12
movzx eax, byte [r15 + 0x35]
xor ecx, ecx
test al, 1
mov r13d, 0xf
cmovne r13d, ecx
or al, 1
mov byte [r15 + 0x35], al
mov rax, qword [rdi + 8]
add r13d, dword [rax + 0x84]
cmp word [rbp + 0x10], 0x2f
mov qword [rsp + 0x50], rdx
mov byte [rsp + 0x47], r8b
jne 0x1400e1766
cmp dword [r15 + 0x14], 0
jne 0x1400e1766
mov eax, dword [rsi + 0x70]
mov ecx, 0xaaaaaaab
imul rcx, rax
shr rcx, 0x21
cmp dword [rdi], ecx
jbe 0x1400e175f
test byte [r15 + 0x34], 0x10
je 0x1400e1766
add r13d, dword [rsi + 0x1f0]
mov rcx, rsi
mov rdx, rdi
call fcn.1400e0990
mov r11d, eax
mov dword [rdi], eax
mov ebx, dword [rdi + 0x6c]
mov r9d, dword [rsi + 0x204]
cmp byte [r12 + 0x44], 0x3c
je 0x1400e1829
cmp byte [rsi + 0x174], 4
jne 0x1400e1825
test r14, r14
je 0x1400e1825
cmp dword [r12 + 0x7c], 0
jne 0x1400e1825
cmp word [r14 + 0x10], 0x3f
jne 0x1400e1825
mov rax, qword [rsi + 0x308]
mov rcx, qword [rax + 0x70]
mov rax, qword [rax + 0x98]
test rcx, rcx
je 0x1400e17f8
movzx r8d, word [r12 + 0x10]
lea edx, [r8 - 7]
cmp dx, 6
jae 0x1400e17dd
xor edx, edx
jmp 0x1400e17f3
mov r10d, r9d
xor edx, edx
lea r9d, [r8 - 0xd]
cmp r9d, 6
jae 0x1400e1ddf
mov r9d, r10d
cmp rdx, rcx
je 0x1400e1829
test rax, rax
je 0x1400e1825
movzx edx, word [r12 + 0x10]
lea ecx, [rdx - 7]
cmp cx, 6
jae 0x1400e1810
xor ecx, ecx
jmp 0x1400e1820
xor ecx, ecx
lea r8d, [rdx - 0xd]
cmp r8d, 6
jae 0x1400e1df6
cmp rcx, rax
je 0x1400e1829
mov dword [r15 + 0x10], r11d
movzx eax, word [rbp + 0x10]
add eax, 0xffffffe7
cmp eax, 0x2d
mov r10, qword [rsp + 0x50]
ja 0x1400e188d
movabs rcx, 0x200000000801
bt rcx, rax
jae 0x1400e188d
movzx eax, byte [rbp + 0x44]
movzx ecx, al
lea edx, [rcx - 0x3c]
cmp edx, 0x2c
ja 0x1400e1869
movabs r8, 0x100000000009
bt r8, rdx
jb 0x1400e1891
cmp ecx, 0x1e
je 0x1400e1891
cmp dword [r15 + 0x2c], 0
jne 0x1400e193d
mov eax, dword [rdi]
mov dword [r15 + 0x2c], eax
test r14, r14
jne 0x1400e1942
jmp 0x1400e195a
movzx eax, byte [rbp + 0x44]
cmp al, 0x5e
jne 0x1400e18d1
movzx ecx, byte [r15 + 0x35]
test cl, 8
jne 0x1400e191b
mov eax, dword [rbp + 0x88]
test eax, eax
je 0x1400e1936
mov rcx, qword [rdi + 0x70]
cmp dword [rcx + 0x20], 3
je 0x1400e1c54
cmp byte [rsi + 0x14c], 0
jne 0x1400e1c54
lea rcx, [r15 + 8]
jmp 0x1400e1c72
test r14, r14
je 0x1400e195a
cmp word [r14 + 0x10], 0x3d
jne 0x1400e1942
movzx eax, byte [r14 + 0x44]
cmp eax, 0x4d
je 0x1400e18f1
cmp eax, 0x1f
jne 0x1400e1942
mov eax, dword [rdi + 0x28]
cmp rax, 2
jb 0x1400e1942
mov ecx, dword [r15 + 8]
mov edx, dword [r15 + 0xc]
cmp edx, ecx
cmova ecx, edx
add ecx, dword [rsi + 0xa0]
imul rax, rax, 0x38
mov rdx, qword [rdi + 0x20]
mov dword [rax + rdx - 0x64], ecx
jmp 0x1400e1942
test cl, 4
je 0x1400e193d
mov eax, dword [rbp + 0x54]
cmp dword [r15 + 0x1c], eax
ja 0x1400e193d
add eax, dword [rdi]
mov dword [r15 + 0x1c], eax
test r14, r14
jne 0x1400e1942
jmp 0x1400e195a
and cl, 0xfb
mov byte [r15 + 0x35], cl
test r14, r14
je 0x1400e195a
movzx eax, word [r14 + 0x10]
cmp eax, 0x41
je 0x1400e1951
cmp eax, 0x3e
jne 0x1400e195a
movzx eax, byte [r15 + 0x34]
test al, 8
je 0x1400e1966
cmp byte [r10 + 0x44], 6
jne 0x1400e196c
movzx eax, byte [r15 + 0x34]
and al, 0xef
mov byte [r15 + 0x34], al
test r14, r14
je 0x1400e1998
movzx eax, byte [r14 + 0x44]
cmp eax, 0x32
je 0x1400e1987
cmp eax, 0x64
je 0x1400e1987
test byte [r14 + 0x41], 0x10
je 0x1400e198f
cmp dword [r12 + 0x7c], 0
je 0x1400e19a1
cmp word [rbp + 0x10], 0x3c
jne 0x1400e19ad
jmp 0x1400e19b5
cmp word [rbp + 0x10], 0x3c
je 0x1400e19b5
jmp 0x1400e19ba
and byte [r15 + 0x34], 0xef
cmp word [rbp + 0x10], 0x3c
je 0x1400e19b5
cmp word [r14 + 0x10], 0x3c
jne 0x1400e19ba
or byte [r15 + 0x34], 0x10
cmp byte [r12 + 0x44], 6
jne 0x1400e19cf
test byte [r12 + 0x40], 0x20
je 0x1400e19cf
and byte [r15 + 0x34], 0xef
cmp byte [rsp + 0x47], 0
jne 0x1400e1a81
mov eax, dword [rsi + 0x1b8]
inc eax
cmp word [r12 + 0x10], 0x18
mov dword [rsp + 0x48], r13d
jne 0x1400e1a0c
mov rcx, qword [r12 + 0xc8]
test rcx, rcx
je 0x1400e1a0c
cmp dword [rcx + 0xf0], 0
mov ecx, 1
cmovne eax, ecx
mov r13d, ebx
mov ecx, dword [r12 + 0x4c]
cmp eax, ecx
cmovb ecx, eax
cmp ecx, 2
mov r8d, 1
cmovae r8d, ecx
mov rax, qword [rdi + 0x70]
cmp byte [rax + 0x40], 0
je 0x1400e1a3f
mov ebx, r9d
mov ebp, r11d
cmp dword [rax + 0x20], 1
setne al
jmp 0x1400e1a47
mov ebx, r9d
mov ebp, r11d
xor eax, eax
mov rcx, qword [rsi + 0x318]
movzx edx, byte [r15 + 0x34]
and dl, 1
mov r9d, dword [rdi]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], dl
mov dword [rsp + 0x20], r9d
mov rdx, r12
call fcn.1400d1fd0
mov r10, qword [rsp + 0x50]
mov r11d, ebp
mov r9d, ebx
mov ebx, r13d
mov r13d, dword [rsp + 0x48]
cmp word [r12 + 0x10], 4
jne 0x1400e1aa5
cmp byte [r12 + 0x44], 0x40
je 0x1400e1ab9
mov rax, qword [r12 + 0xd8]
test rax, rax
je 0x1400e1ab9
cmp dword [rax + 0x4c], 0
jne 0x1400e1ab9
mov eax, dword [rdi]
mov dword [r15 + 0xc], eax
cmp word [r12 + 0x10], 0x2f
jne 0x1400e1ab9
add dword [r15 + 0xc], 3
mov eax, dword [r12 + 0x7c]
mov dword [rdi + 0x14], eax
mov eax, dword [r12 + 0x7c]
mov dword [rdi + 0x18], eax
movzx eax, byte [rsi + 0x174]
cmp eax, 1
je 0x1400e1b15
cmp eax, 6
jne 0x1400e1af4
cmp word [r12 + 0x10], 0x18
jne 0x1400e1b15
cmp dword [rdi + 0x28], 2
jb 0x1400e1b15
cmp byte [rsi + 0x1e0], 0
je 0x1400e1b5e
jmp 0x1400e1b15
cmp word [r12 + 0x10], 0x18
jne 0x1400e1b15
mov eax, dword [rdi + 0x28]
cmp rax, 2
jb 0x1400e1b15
imul rax, rax, 0x38
mov rcx, qword [rdi + 0x20]
test byte [rax + rcx - 0x3b], 0x20
jne 0x1400e1b5e
mov rax, qword [r12 + 0xc8]
test rax, rax
je 0x1400e1b28
cmp byte [rax + 0x44], 0x5c
je 0x1400e1b5e
mov rax, qword [rdi + 0x20]
mov ecx, dword [rdi + 0x28]
imul rcx, rcx, 0x38
lea rdx, [rax + rcx]
add rdx, 0xffffffffffffffc8
cmp rax, rdx
je 0x1400e1b5e
add rcx, 0xffffffffffffffc8
xor edx, edx
nop word cs:[rax + rax]
or byte [rax + rdx + 0x34], 0x10
add rdx, 0x38
cmp rcx, rdx
jne 0x1400e1b50
test r14, r14
je 0x1400e1b8c
movzx eax, word [r14 + 0x10]
movzx edx, ax
lea ecx, [rdx - 0x3d]
cmp ecx, 2
jb 0x1400e1be5
cmp edx, 0x41
jne 0x1400e1ba2
lea rcx, [r14 + 0x44]
cmp byte [r14 + 0x44], 0
jne 0x1400e1d18
jmp 0x1400e1c1c
movzx eax, byte [r15 + 0x34]
test al, 8
je 0x1400e1db9
add r15, 0x34
jmp 0x1400e1d37
movzx ecx, byte [r14 + 0x44]
cmp ecx, 0x64
je 0x1400e1bb3
test byte [r14 + 0x41], 0x10
je 0x1400e1bbb
cmp dword [r12 + 0x7c], 0
je 0x1400e1be5
cmp ecx, 0x3f
ja 0x1400e1c8e
mov r8d, ecx
mov ebp, ebx
mov ebx, r9d
movabs r9, 0x8004001000000040
bt r9, r8
mov r9d, ebx
mov ebx, ebp
jae 0x1400e1c8e
lea rcx, [r14 + 0x44]
cmp ax, 0x17
je 0x1400e1c1c
cmp byte [r14 + 0x44], 0
je 0x1400e1c1c
cmp ax, 0x2e
jne 0x1400e1c26
movzx eax, byte [rsi + 0x174]
cmp eax, 9
je 0x1400e1c1c
cmp eax, 7
jne 0x1400e1d18
cmp dword [r14 + 0x7c], 0
je 0x1400e1d01
or byte [r15 + 0x34], 2
movzx eax, word [r14 + 0x10]
cmp ax, 0x15
jne 0x1400e1d18
cmp byte [rsi + 8], 3
sete dl
movzx eax, byte [r15 + 0x34]
shl dl, 2
and al, 0xfb
or al, dl
mov byte [r15 + 0x34], al
test al, 8
jne 0x1400e1d25
jmp 0x1400e1db9
mov ecx, dword [rsi + 0xa0]
add ecx, dword [rdi + 0x6c]
mov dword [rsp + 0x4c], ecx
cmp dword [r15 + 8], ecx
lea rdx, [r15 + 8]
lea rcx, [rsp + 0x4c]
cmovae rcx, rdx
mov edx, dword [rbp + 0x54]
cmp eax, edx
cmova edx, eax
add edx, dword [rcx]
mov dword [r15 + 0x1c], edx
test r14, r14
jne 0x1400e1942
jmp 0x1400e195a
cmp byte [r12 + 0x44], 6
je 0x1400e1be5
cmp cl, 0x1f
je 0x1400e1e09
cmp ecx, 0x66
jne 0x1400e1cd3
mov r8, qword [r14 + 0x20]
cmp r8, 2
jb 0x1400e1cd3
mov ebp, ebx
mov ebx, r9d
mov r9, qword [r14 + 0x18]
movzx r8d, word [r9 + r8 - 2]
mov r9d, ebx
mov ebx, ebp
cmp r8d, 0x7b24
je 0x1400e1be5
or edx, 2
cmp edx, 0x17
je 0x1400e1be5
cmp ax, 0x13
je 0x1400e1be5
cmp cl, 0x65
je 0x1400e1be5
or byte [r15 + 0x34], 0x10
movzx eax, word [r14 + 0x10]
jmp 0x1400e1be5
mov rax, qword [r14 + 0xd0]
test rax, rax
je 0x1400e1d18
cmp word [rax + 0x10], 0x3f
je 0x1400e1c1c
movzx eax, byte [r15 + 0x34]
test al, 8
je 0x1400e1db9
add r15, 0x34
cmp byte [rcx], 0x1b
jne 0x1400e1d37
cmp byte [rsi + 0x6c], 2
sete cl
jmp 0x1400e1d39
xor ecx, ecx
movzx edx, word [r10 + 0x10]
cmp dx, 0x15
je 0x1400e1d60
cmp dx, 0x17
sete dl
cmp byte [r10 + 0x44], 6
sete r8b
or r8b, dl
or r8b, cl
cmp r8b, 1
jne 0x1400e1d9c
cmp byte [rsi + 0x29], 0
je 0x1400e1d92
cmp byte [rsi + 0x28], 0
jne 0x1400e1d76
mov rdx, qword [rdi + 0x70]
cmp byte [rdx + 0x43], 0
je 0x1400e1d9c
movzx edx, byte [rsi + 0x1e3]
cmp dl, 3
setne r8b
test r8b, cl
jne 0x1400e1d9c
cmp byte [r10 + 0x44], 0x1f
je 0x1400e1d9c
jmp 0x1400e1da8
mov rdx, qword [rdi + 0x70]
cmp byte [rdx + 0x43], 0
je 0x1400e1d66
or al, 0x10
mov byte [r15], al
movzx edx, byte [rsi + 0x1e3]
cmp dl, 3
sete al
and cl, al
cmp cl, 1
jne 0x1400e1db9
and byte [r15], 0xef
mov eax, r11d
sub eax, ebx
imul r9d, eax
xor eax, eax
cmp r11d, ebx
cmova eax, r9d
add eax, r13d
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r8d, 1
mov r9d, r10d
je 0x1400e17f3
mov rdx, qword [r12 + 8]
jmp 0x1400e17f3
cmp edx, 1
je 0x1400e1820
mov rcx, qword [r12 + 8]
jmp 0x1400e1820
cmp edx, 0x2e
ja 0x1400e1cdf
mov edx, edx
movabs r8, 0x400000a00000
bt r8, rdx
jb 0x1400e1be5
jmp 0x1400e1cdf