Function at 0x1402e3990
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 rbp, r9
mov rbx, r8
mov r15, rdx
mov r13, rcx
mov esi, dword [r8]
test rdx, rdx
je 0x1402e39c8
mov rcx, r15
call fcn.14033c590
mov r12, rax
and r12d, 0x3fffffff
jmp 0x1402e39cb
xor r12d, r12d
mov eax, esi
and eax, 0x40
shr eax, 6
cmp byte [0x1403f38fe], 0
setne cl
or cl, al
cmp cl, 1
jne 0x1402e3a08
cmp r12d, 5
jb 0x1402e3a08
mov eax, dword [r15]
xor eax, dword [str.file:]
mov cl, byte [r15 + 4]
xor cl, byte [0x1403bcd18]
movzx ecx, cl
or ecx, eax
je 0x1402e3b34
lea ecx, [r12 + 8]
call fcn.14022f8d0
test rax, rax
je 0x1402e3ba9
mov rdi, rax
mov dword [rax], 0
add rdi, 4
test r12d, r12d
je 0x1402e3a40
mov r14d, r12d
mov rcx, rdi
mov rdx, r15
mov r8, r14
call fcn.14031b320
jmp 0x1402e3a43
xor r14d, r14d
mov qword [rsp + 0x50], rbp
mov dword [rdi + r14], 0
and esi, 0xffffffbf
mov bpl, 1
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x1402e401c
mov rax, qword [0x1403f3968]
mov ecx, 2
call qword [case.0x140318756.0]
test rax, rax
je 0x1402e401c
mov r15, rax
mov rax, qword [0x1403f3978]
mov rcx, r15
call qword [case.0x140318756.0]
xor ebp, ebp
mov r14, qword [0x14043f790]
test r13, r13
je 0x1402e3ac0
test r14, r14
je 0x1402e3ac0
mov rdx, qword [r14 + 0x18]
mov rcx, r13
call fcn.14033bea0
test eax, eax
je 0x1402e3ac0
mov r14, qword [r14 + 0x10]
test r14, r14
jne 0x1402e3aa4
xor r14d, r14d
test bpl, bpl
jne 0x1402e3ad5
mov rax, qword [0x1403f3988]
mov rcx, r15
call qword [case.0x140318756.0]
mov rax, qword [rsp + 0x50]
mov qword [rax], r14
xor ebp, ebp
test r14, r14
jne 0x1402e3c2f
lea rcx, str.no_such_vfs:__s
mov rdx, r13
call fcn.14022ffb0
mov ebp, 1
mov rcx, qword [rsp + 0xc8]
mov qword [rcx], rax
test rdi, rdi
je 0x1402e3c2d
add rdi, 0xfffffffffffffffc
cmp byte [rdi + 3], 0
jne 0x1402e3b2f
cmp byte [rdi + 2], 0
jne 0x1402e3b2f
cmp byte [rdi + 1], 0
jne 0x1402e3b2f
cmp byte [rdi], 0
je 0x1402e3bb3
dec rdi
jmp 0x1402e3b14
or esi, 0x40
lea ecx, [r12 + 8]
mov eax, r12d
xor edx, edx
xor r8d, r8d
cmp byte [r15 + rdx], 0x26
sete r8b
add rcx, r8
inc rdx
cmp rax, rdx
jne 0x1402e3b41
call fcn.14022f8d0
test rax, rax
je 0x1402e3ba9
mov rdi, rax
mov dword [rax], 0
add rdi, 4
mov r10d, 5
cmp byte [r15 + 5], 0x2f
jne 0x1402e3c9a
cmp byte [r15 + 6], 0x2f
jne 0x1402e3c9a
xor edx, edx
movzx eax, byte [r15 + rdx + 7]
test eax, eax
je 0x1402e3c4f
cmp eax, 0x2f
je 0x1402e3c4f
inc rdx
jmp 0x1402e3b8d
mov ebp, 7
jmp 0x1402e3c3c
test rdi, rdi
je 0x1402e3c2d
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x1402e403f
mov rcx, qword [0x14043f798]
test rcx, rcx
je 0x1402e3bde
mov rax, qword [0x1403f3978]
call qword [case.0x140318756.0]
mov rax, qword [0x1403f3930]
mov rcx, rdi
call qword [case.0x140318756.0]
cdqe
sub qword [0x14043f6f0], rax
dec qword [0x14043f738]
mov rax, qword [0x1403f3920]
mov rcx, rdi
call qword [case.0x140318756.0]
mov rdi, qword [0x14043f798]
test rdi, rdi
je 0x1402e3c2d
lea rax, [0x1403f3988]
mov rax, qword [rax]
mov rcx, rdi
call qword [case.0x140318756.0]
xor edi, edi
mov rax, qword [rsp + 0xc0]
mov dword [rbx], esi
mov qword [rax], rdi
mov eax, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r10d, [rdx + 7]
cmp r10d, 7
je 0x1402e3c9a
cmp r10d, 0x10
jne 0x1402e3c7c
mov rax, qword [str.localhost]
xor rax, qword [r15 + 7]
mov cl, byte [0x1403bdba3]
xor cl, byte [r15 + 0xf]
movzx ecx, cl
or rcx, rax
je 0x1402e3c94
add r15, 7
lea rcx, str.invalid_uri_authority:__.s
mov r8, r15
call fcn.14022ffb0
jmp 0x1402e3af7
mov r10d, reloc.WS2_32.dll_recv
xor edx, edx
lea rcx, [0x1403cbc10]
xor eax, eax
mov qword [rsp + 0x38], rbx
movsxd r8, eax
mov r9d, r10d
movsxd rbx, r9d
movzx r11d, byte [r15 + rbx]
test r11d, r11d
je 0x1402e3e28
cmp r11d, 0x23
je 0x1402e3e28
lea r10, [rbx + 1]
cmp r11b, 0x25
jne 0x1402e3d88
movzx r14d, byte [r15 + r10]
test byte [r14 + rcx], 8
je 0x1402e3d88
movzx ebx, byte [rbx + r15 + 2]
test byte [rbx + rcx], 8
je 0x1402e3d88
lea r10d, [r14 + r14]
sar r10b, 7
and r10b, 9
add r10b, r14b
shl r10b, 4
add r9d, 3
lea r11d, [rbx + rbx]
sar r11b, 7
and r11b, 9
add r11b, bl
and r11b, 0xf
or r11b, r10b
jne 0x1402e3dd9
movsxd r10, r9d
add r10, r15
movzx r11d, byte [r10]
test r11d, r11d
je 0x1402e3cb0
cmp r11d, 0x23
je 0x1402e3cb0
test edx, edx
jne 0x1402e3d57
cmp r11b, 0x3f
je 0x1402e3cb0
cmp edx, 1
jne 0x1402e3d71
cmp r11d, 0x26
je 0x1402e3cb0
cmp r11d, 0x3d
jne 0x1402e3d80
jmp 0x1402e3cb0
cmp edx, 2
jne 0x1402e3d80
cmp r11b, 0x26
je 0x1402e3cb0
inc r9d
inc r10
jmp 0x1402e3d32
cmp edx, 1
jne 0x1402e3dea
cmp r11d, 0x3d
je 0x1402e3d99
cmp r11d, 0x26
jne 0x1402e3e17
cmp byte [rdi + r8 - 1], 0
jne 0x1402e3e01
movsxd r10, r10d
inc r9d
add r10, r15
movzx r11d, byte [r10]
mov edx, 1
test r11d, r11d
je 0x1402e3cb0
cmp r11d, 0x23
je 0x1402e3cb0
cmp byte [r10 - 1], 0x26
je 0x1402e3cb0
inc r9d
inc r10
jmp 0x1402e3daa
mov r10d, r9d
movsxd r8, eax
inc eax
mov byte [rdi + r8], r11b
jmp 0x1402e3caa
test edx, edx
jne 0x1402e3df4
cmp r11b, 0x3f
je 0x1402e3e10
cmp edx, 2
jne 0x1402e3ddc
cmp r11b, 0x26
je 0x1402e3e10
jmp 0x1402e3ddc
cmp r11b, 0x26
jne 0x1402e3e1e
lea eax, [r8 + 1]
mov byte [rdi + r8], 0
mov edx, 1
jmp 0x1402e3e23
mov edx, 1
jmp 0x1402e3ddc
mov edx, 2
xor r11d, r11d
jmp 0x1402e3ddc
mov qword [rsp + 0x50], rbp
cmp edx, 1
jne 0x1402e3e3b
lea eax, [r8 + 1]
mov byte [rdi + r8], 0
cdqe
mov dword [rdi + rax], 0
mov rcx, rdi
call fcn.14033c590
and eax, 0x3fffffff
cmp byte [rax + rdi + 1], 0
mov rbx, qword [rsp + 0x38]
je 0x1402e3a53
lea rbp, [rax + rdi]
inc rbp
mov dword [rsp + 0x2c], esi
mov r14d, 0
test rbp, rbp
je 0x1402e3e89
mov rcx, rbp
call fcn.14033c590
mov r14, rax
and r14d, 0x3fffffff
mov rsi, r13
mov r15d, r14d
add r15, rbp
inc r15
je 0x1402e3eab
mov rcx, r15
call fcn.14033c590
mov r13, rax
and r13d, 0x3fffffff
jmp 0x1402e3eae
xor r13d, r13d
mov r12d, r13d
cmp r14d, 5
je 0x1402e3f14
cmp r14d, 4
je 0x1402e3ee4
cmp r14d, 3
mov r13, rsi
jne 0x1402e3f30
movzx eax, word [rbp]
xor eax, 0x6676
movzx ecx, byte [rbp + 2]
xor ecx, 0x73
or cx, ax
mov esi, dword [rsp + 0x2c]
jne 0x1402e3f34
mov r13, r15
jmp 0x1402e3f34
mov eax, dword [0x1403bdb60]
cmp eax, dword [rbp]
jne 0x1402e3f2d
mov eax, dword [rsp + 0x2c]
and eax, 0x87
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x30], 0xffffff78
lea rcx, [0x1403d2e80]
lea rax, str.access
jmp 0x1402e3f68
mov eax, dword [str.cache]
xor eax, dword [rbp]
mov cl, byte [0x1403c2fa0]
xor cl, byte [rbp + 4]
movzx ecx, cl
or ecx, eax
je 0x1402e3f4a
mov r13, rsi
mov esi, dword [rsp + 0x2c]
lea rbp, [r12 + r15]
inc rbp
cmp byte [rbp], 0
jne 0x1402e3e68
jmp 0x1402e3a53
mov dword [rsp + 0x34], 0x60000
mov dword [rsp + 0x30], 0xfff9ffff
lea rcx, str.shared
lea rax, str.cache
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
mov r14, qword [rcx]
test r14, r14
je 0x1402e3ff5
mov rax, qword [rsp + 0x48]
lea rbp, [rax + 0x10]
xor ebx, ebx
mov rcx, r14
call fcn.14033c590
and eax, 0x3fffffff
cmp r13d, eax
jne 0x1402e3fa9
mov rcx, r15
mov rdx, r14
mov r8, r12
call fcn.14031b220
test eax, eax
je 0x1402e3fbb
inc rbx
mov r14, qword [rbp]
add rbp, 0x10
test r14, r14
jne 0x1402e3f85
jmp 0x1402e3ff5
mov eax, ebx
shl rax, 4
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx + rax + 8]
test eax, eax
je 0x1402e3ff5
mov ecx, eax
and ecx, 0xffffff7f
cmp ecx, dword [rsp + 0x34]
jg 0x1402e4024
mov ecx, dword [rsp + 0x30]
and ecx, dword [rsp + 0x2c]
or eax, ecx
mov rbx, qword [rsp + 0x38]
mov r13, rsi
mov esi, eax
jmp 0x1402e3f34
lea rcx, str.no_such__s_mode:__s
mov rdx, qword [rsp + 0x40]
mov r8, r15
call fcn.14022ffb0
mov ebp, 1
mov rbx, qword [rsp + 0x38]
mov esi, dword [rsp + 0x2c]
jmp 0x1402e3afc
xor r15d, r15d
jmp 0x1402e3a93
lea rcx, str._s_mode_not_allowed:__s
mov rdx, qword [rsp + 0x40]
mov r8, r15
call fcn.14022ffb0
mov ebp, 3
jmp 0x1402e400e
lea rax, [0x1403f3920]
jmp 0x1402e3c21