Function at 0x140116438
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 eax, 0x50
call fcn.14024eae0
sub rsp, rax
mov r10, rcx
mov rdi, r9
xor ecx, ecx
mov r14d, r8d
test rdx, rdx
je 0x140116b1e
mov r15, qword [rsp + 0xb0]
test r15, r15
je 0x140116b1e
test r9, r9
jne 0x140116490
mov dword [r15], ecx
test byte [r10 + 0x298], 4
mov r8d, dword [r15]
mov dword [rsp + 0x40], r8d
je 0x1401164b0
mov eax, 1
cmp dword [r10 + 0x1a8], ecx
jne 0x1401164b2
mov eax, ecx
test eax, eax
je 0x140116554
mov ebx, 6
cmp rdx, rdi
jne 0x140116528
lea r8, [rsp + 0x44]
xor edx, edx
mov rcx, r10
call fcn.14011bb88
xor ecx, ecx
test eax, eax
js 0x140116b23
lea eax, [r14 - 6]
cmp r14d, eax
jl 0x14011651e
mov r14d, eax
sub r14d, dword [rsp + 0x44]
mov dword [rsp + 0xa0], r14d
cmp eax, r14d
jl 0x14011651e
mov rdx, qword [rsp + 0x98]
mov r10, qword [rsp + 0x90]
add rdx, 0xc
mov r8d, dword [rsp + 0x40]
mov qword [rsp + 0x98], rdx
jmp 0x140116556
mov eax, 0x80004005
jmp 0x140116b23
test rdi, rdi
je 0x140116556
cmp r8d, ebx
jae 0x14011653b
mov word [r9], cx
jmp 0x140116993
movsd xmm0, qword [str.mhtml:]
movsd qword [r9], xmm0
mov eax, dword [0x1402d56c8]
mov dword [r9 + 8], eax
jmp 0x140116556
mov ebx, ecx
mov r9d, dword [rsp + 0xb8]
or esi, 0xffffffff
and r9d, 0x20
mov byte [rsp + 0x30], cl
or ebp, esi
mov dword [rsp + 0x38], r9d
mov r12d, ecx
test r14d, r14d
jle 0x140116939
mov ecx, dword [rsp + 0xa0]
movsxd r13, r12d
movzx r14d, word [rdx + r13*2]
cmp r14w, 0x3f
je 0x140116aaa
movsxd r15, esi
cmp r14w, 0x25
jne 0x1401168fa
lea eax, [rcx - 2]
cmp r12d, eax
jge 0x1401168fa
movzx ecx, word [rdx + r13*2 + 2]
call fcn.1400c4920
test eax, eax
je 0x1401168f3
movzx r8d, word [rdx + r13*2 + 4]
movzx ecx, r8w
call fcn.1400c4920
test eax, eax
je 0x1401168f3
movzx ecx, word [rdx + r13*2 + 2]
call fcn.1400c498c
mov r11d, eax
movzx ecx, r8w
shl r11b, 4
call fcn.1400c498c
add r11b, al
mov byte [rsp + 0x3c], r11b
je 0x1401168f3
cmp r11b, 0x7f
jbe 0x140116a53
mov ecx, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x98]
test r9d, r9d
je 0x140116835
cmp esi, 0xffffffff
mov eax, r12d
mov r10, r13
cmovne eax, esi
cmovne r10, r15
mov esi, eax
mov r8d, eax
cmp ebp, 0xffffffff
mov eax, ebx
mov r15, r10
cmovne eax, ebp
mov ebp, eax
mov r9d, eax
lea eax, [rcx - 6]
cmp r12d, eax
jg 0x140116835
cmp word [rdx + r13*2 + 6], r14w
jne 0x140116835
movzx eax, word [rdx + r13*2 + 8]
movzx ecx, ax
mov word [rsp + 0x32], ax
call fcn.1400c4920
test eax, eax
je 0x14011682e
movzx eax, word [rdx + r13*2 + 0xa]
movzx ecx, ax
mov word [rsp + 0x34], ax
call fcn.1400c4920
test eax, eax
je 0x14011682e
movzx ecx, word [rsp + 0x32]
call fcn.1400c498c
movzx ecx, word [rsp + 0x34]
mov edx, eax
shl dl, 4
mov dword [rsp + 0x44], edx
call fcn.1400c498c
mov ecx, dword [rsp + 0x44]
add cl, al
mov al, cl
mov dword [rsp + 0x44], ecx
and al, 0xc0
cmp al, 0x80
jne 0x140116826
mov al, r11b
and al, 0xe0
cmp al, 0xc0
je 0x1401169cc
mov ecx, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x98]
lea eax, [rcx - 9]
cmp r12d, eax
jg 0x140116835
cmp word [rdx + r13*2 + 0xc], r14w
jne 0x140116835
movzx eax, word [rdx + r13*2 + 0xe]
movzx ecx, ax
mov word [rsp + 0x34], ax
call fcn.1400c4920
test eax, eax
je 0x14011682e
movzx eax, word [rdx + r13*2 + 0x10]
movzx ecx, ax
mov word [rsp + 0x32], ax
call fcn.1400c4920
test eax, eax
je 0x14011682e
movzx ecx, word [rsp + 0x34]
call fcn.1400c498c
movzx ecx, word [rsp + 0x32]
mov edx, eax
shl dl, 4
mov dword [rsp + 0x48], edx
call fcn.1400c498c
mov ecx, dword [rsp + 0x48]
add cl, al
mov al, cl
mov dword [rsp + 0x48], ecx
and al, 0xc0
cmp al, 0x80
jne 0x140116826
mov al, r11b
and al, 0xf0
cmp al, 0xe0
je 0x14011699d
mov ecx, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x98]
lea eax, [rcx - 0xc]
cmp r12d, eax
jg 0x140116835
cmp word [rdx + r13*2 + 0x12], r14w
jne 0x140116835
movzx eax, word [rdx + r13*2 + 0x14]
movzx ecx, ax
mov word [rsp + 0x34], ax
call fcn.1400c4920
test eax, eax
je 0x14011682e
movzx eax, word [rdx + r13*2 + 0x16]
movzx ecx, ax
mov word [rsp + 0x32], ax
call fcn.1400c4920
test eax, eax
je 0x14011682e
movzx ecx, word [rsp + 0x34]
call fcn.1400c498c
movzx ecx, word [rsp + 0x32]
mov r13d, eax
shl r13b, 4
call fcn.1400c498c
add r13b, al
mov al, r13b
and al, 0xc0
cmp al, 0x80
jne 0x140116826
mov al, r11b
and al, 0xf8
cmp al, 0xf0
jne 0x140116826
lea eax, [rbx + 2]
cmp eax, dword [rsp + 0x40]
jg 0x140116826
mov edx, dword [rsp + 0x44]
movzx ecx, dl
shr ecx, 4
and ecx, 3
movzx eax, r11b
and eax, 7
shl eax, 2
or ecx, eax
dec ecx
cmp ecx, 0x10000
jl 0x140116885
mov rdx, qword [rsp + 0x98]
mov ecx, dword [rsp + 0xa0]
xor eax, eax
test byte [rsp + 0xb8], 1
mov r9d, eax
mov dword [rsp + 0x38], eax
jne 0x1401169ec
cmp esi, 0xffffffff
je 0x1401168fa
cmp ebp, 0xffffffff
je 0x1401168fa
mov r13, r15
mov r12d, esi
or r15, 0xffffffffffffffff
mov ebx, ebp
or esi, 0xffffffff
or ebp, r15d
movzx r14d, word [rdx + r13*2]
cmp r14w, 0x3f
je 0x140116aac
jmp 0x140116599
test rdi, rdi
je 0x1401168c3
cmp ebx, dword [rsp + 0x40]
jge 0x1401168c3
mov eax, 0xff60
and dl, 0xf
or cx, ax
movzx eax, dl
mov edx, dword [rsp + 0x48]
shl cx, 4
or cx, ax
mov al, dl
shr al, 4
and al, 3
shl cx, 2
movzx eax, al
or cx, ax
movsxd rax, ebx
mov word [rdi + rax*2], cx
jmp 0x1401168c7
mov edx, dword [rsp + 0x48]
and dl, 0xf
mov eax, 0xff70
and r13b, 0x3f
movzx r14d, dl
or r14w, ax
inc ebx
shl r14w, 6
movzx eax, r13b
or r14w, ax
add r12d, 0xb
mov r9d, dword [rsp + 0x38]
mov ecx, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x40]
test rdi, rdi
je 0x140116919
cmp ebx, r8d
jge 0x140116919
movsxd rax, ebx
mov word [rdi + rax*2], r14w
mov rdx, qword [rsp + 0x98]
inc r12d
inc ebx
cmp r12d, ecx
jl 0x140116583
mov r15, qword [rsp + 0xb0]
xor ecx, ecx
mov r9d, r8d
sub r9d, ebx
test byte [r10 + 0x298], 4
je 0x140116957
mov eax, 1
cmp dword [r10 + 0x1a8], ecx
jne 0x140116959
mov eax, ecx
test eax, eax
je 0x140116ae7
mov rcx, rdi
movsxd rax, ebx
neg rcx
sbb r8, r8
lea rdx, [rdi + rax*2]
and r8, rdx
mov edx, dword [r10 + 0x1a8]
lea esi, [rdx + 1]
je 0x140116ade
cmp r9d, esi
jge 0x140116ac2
xor eax, eax
mov word [r8], ax
mov eax, 0x8007007a
jmp 0x140116b23
mov edx, dword [rsp + 0x44]
and cl, 0x3f
and dl, 0x3f
movzx eax, r11b
shl ax, 6
movzx r14d, dl
or r14w, ax
movzx eax, cl
shl r14w, 6
or r14w, ax
add r12d, 8
jmp 0x1401168ee
and r11b, 0x1f
and cl, 0x3f
movzx r14d, r11b
shl r14w, 6
movzx eax, cl
or r14w, ax
add r12d, 5
jmp 0x1401168ee
mov r10, qword [rsp + 0x90]
mov r8d, dword [r10 + 0x2c]
lea eax, [r8 - 0x4b0]
cmp eax, 1
jbe 0x140116a4d
lea r9, [rsp + 0x4c]
mov ecx, r8d
lea rdx, [rsp + 0x3c]
call fcn.1400c3db8
test eax, eax
je 0x1401168ee
movzx eax, word [rsp + 0x4c]
mov ecx, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x90]
mov r9d, dword [rsp + 0x38]
test ax, ax
je 0x140116902
movzx r14d, ax
add r12d, 2
jmp 0x140116902
movzx r14d, r11b
jmp 0x140116a44
test byte [rsp + 0xb8], 8
jne 0x1401168f3
xor ecx, ecx
cmp byte [rsp + 0x30], cl
je 0x140116a89
cmp r11b, 0x3d
je 0x140116a7b
cmp r11b, 0x26
je 0x140116a7b
cmp r11b, 0x2b
jne 0x140116a89
test byte [rsp + 0xb8], 0x40
jne 0x1401168f3
cmp r11b, 0x23
jne 0x140116a9d
test byte [rsp + 0xb8], 4
jne 0x1401168f3
movzx r14d, r11b
add r12d, 2
jmp 0x1401168f3
xor eax, eax
or esi, 0xffffffff
mov dword [rsp + 0x38], eax
or ebp, esi
mov byte [rsp + 0x30], 1
mov r9d, eax
jmp 0x1401168fa
mov eax, 0x21
mov r9d, esi
mov word [r8], ax
add r8, 2
mov rcx, qword [r10 + 0x1b0]
call fcn.1400c4a6c
mov r8d, dword [rsp + 0x40]
xor ecx, ecx
jmp 0x140116ae9
mov esi, ecx
add ebx, esi
test rdi, rdi
je 0x140116b00
cmp ebx, r8d
jg 0x140116b00
movsxd rcx, ebx
xor eax, eax
mov word [rdi + rcx*2], ax
xor ecx, ecx
mov dword [r15], ebx
test rdi, rdi
jne 0x140116b0d
lea eax, [rdi + 1]
jmp 0x140116b23
cmp ebx, r8d
jle 0x140116b1a
mov word [rdi], cx
jmp 0x140116993
xor eax, eax
jmp 0x140116b23
mov eax, 0x80004003
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret