Function at 0x140039830
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, r8
mov rdi, rdx
mov rsi, rcx
nop dword [rax]
mov eax, dword [0x141dc4f08]
xor eax, dword [0x141dc4f0c]
xor eax, 0x225bbba4
imul eax, eax, 0x9d13c85
xor eax, 0xb81ff7d
cmp eax, 0x7d143476
ja 0x140039850
test r14, r14
js 0x14003a0d5
nop dword [rax]
mov eax, dword [0x141dc4f10]
xor eax, dword [0x141dc4f14]
add eax, 0x2df23dcc
or eax, 0x80b6d401
and eax, 0x9af6d551
cmp eax, 0x27ef2015
jb 0x140039880
test r14, r14
mov qword [rsp + 0x40], rsi
je 0x140039935
mov eax, dword [0x141dc4f18]
xor eax, dword [0x141dc4f1c]
or eax, 0x93b24f52
cmp eax, 0x7b934abe
jne 0x1400398d0
movzx eax, byte [0x141ddb278]
nop
mov eax, dword [0x141dc4f20]
sub eax, dword [0x141dc4f24]
imul eax, eax, 0x5bb4ed65
xor eax, 0x4501da3a
imul rax, rax, 0x30304c13
shr rax, 0x3d
movzx ecx, byte [0x141ddb278]
cmp eax, 0x210ba5d1
ja 0x1400398d0
xor ecx, ecx
mov rdx, r14
call fcn.1400c0180
test rax, rax
je 0x14003a0d5
mov rbx, rax
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f28]
and eax, dword [0x141dc4f2c]
cmp eax, 0x333f16e5
je 0x140039920
jmp 0x14003993a
mov ebx, 1
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], 0
lea rbp, [rdi + r14*2]
lea r14, [rsp + 0x28]
mov esi, 0xd9411e2f
xor r12d, r12d
jmp 0x140039968
inc r12
mov qword [rsp + 0x38], r12
mov eax, dword [0x141dc4f40]
or eax, dword [0x141dc4f44]
xor eax, 0xa4a01040
and eax, 0xa5b1bc56
cmp eax, 0x1aaf8d71
je 0x140039968
cmp rdi, rbp
je 0x140039fbd
mov eax, dword [0x141dc4f48]
xor edx, edx
div dword [0x141dc4f4c]
imul eax, eax, 0xef6cba17
cmp eax, 0x4b028d01
je 0x14003998e
lea rax, [rdi + 2]
mov ecx, dword [0x141dc4f50]
or ecx, dword [0x141dc4f54]
or ecx, 0x672809c2
and ecx, 0xe72c0bd2
cmp ecx, 0xfcf8c902
ja 0x1400399ad
movzx ecx, word [rdi]
mov edx, ecx
and edx, 0xf800
movzx edx, dx
cmp edx, 0xd800
jne 0x140039af0
nop word [rax + rax]
mov edx, dword [0x141dc4f68]
or edx, dword [0x141dc4f6c]
imul edx, edx, 0x63fdea78
add edx, 0xd6c02508
cmp edx, 0xb8354ddb
ja 0x1400399f0
cmp ecx, 0xdc00
setae r8b
cmp rax, rbp
sete dl
or dl, r8b
nop word cs:[rax + rax]
mov r8d, dword [0x141dc4f70]
and r8d, dword [0x141dc4f74]
imul r8d, r8d, 0x74516393
and r8d, 0xdae0eea8
cmp r8d, 0x6f1b20e8
je 0x140039a30
test dl, dl
jne 0x140039fd8
movzx eax, word [rax]
lea edx, [rax + 0x2000]
nop word cs:[rax + rax]
mov r8d, dword [0x141dc4f78]
imul r8d, dword [0x141dc4f7c]
or r8d, 0xb7aa1b1e
and r8d, 0xb7aa9b5e
cmp r8d, 0x7610235f
je 0x140039a70
movzx edx, dx
cmp edx, 0xfc00
jb 0x140039fd8
add rdi, 4
and ecx, 0x3ff
and eax, 0x3ff
shl rcx, 0x1a
movabs rdx, 0x100000000
add rcx, rdx
shl rax, 0x10
nop dword [rax]
mov edx, dword [0x141dc4f80]
xor edx, dword [0x141dc4f84]
imul edx, edx, 0x9dc8aa64
cmp edx, 0xede507d3
je 0x140039ad0
or rcx, rax
jmp 0x140039b44
mov edx, dword [0x141dc4f58]
xor edx, dword [0x141dc4f5c]
xor edx, 0xba235147
add edx, 0x3265414f
cmp edx, 0x419625a5
jb 0x140039af0
shl rcx, 0x10
nop word cs:[rax + rax]
mov edx, dword [0x141dc4f60]
imul edx, dword [0x141dc4f64]
add edx, 0x95bbdd5d
or edx, 0xa1ca2ea7
cmp edx, 0xb68be9b9
je 0x140039b20
mov rdi, rax
mov eax, dword [0x141dc4f88]
or eax, dword [0x141dc4f8c]
add eax, 0x726ddb0a
or eax, 0x2579b825
cmp eax, 0xbb8791e4
je 0x140039b44
mov r15, rcx
shr r15, 0x10
cmp r15d, 0x80
jae 0x140039ba0
cmp r12, qword [rsp + 0x28]
jne 0x140039f40
mov eax, dword [0x141dc5000]
sub eax, dword [0x141dc5004]
cmp eax, 0x68c456c5
jne 0x140039f00
jmp 0x140039f2c
mov dword [rsp + 0x24], 0
nop dword [rax + rax]
mov eax, dword [0x141dc4f90]
xor eax, dword [0x141dc4f94]
xor eax, 0x80440284
or eax, 0x7fbbcc7a
add eax, 0xa8170228
cmp eax, 0x126e9334
jb 0x140039bb0
cmp r15d, 0x800
jae 0x140039c43
mov eax, dword [0x141dc4fc8]
xor edx, edx
div dword [0x141dc4fcc]
nop dword [rax]
mov eax, dword [0x141dc4fd0]
or eax, dword [0x141dc4fd4]
or eax, 0x466c062
xor eax, 0x21038062
or eax, 0xda881d9d
cmp eax, 0xa014c218
jb 0x140039bf0
shr ecx, 0x16
or cl, 0xc0
mov eax, dword [0x141dc4fd8]
and eax, dword [0x141dc4fdc]
or eax, 0x17cd026f
add eax, 0xb5d62da0
or eax, 0xe7deb666
cmp eax, 0x73f8355e
jne 0x140039df0
jmp 0x140039eb5
cmp r15d, 0x10000
jae 0x140039c80
mov eax, dword [0x141dc4fb8]
add eax, dword [0x141dc4fbc]
imul eax, eax, 0x17f793fb
add eax, 0xc337d85e
and eax, 0xb928d293
cmp eax, 0xbc680736
jbe 0x140039d94
jmp 0x140039de1
mov eax, dword [0x141dc4f98]
imul eax, dword [0x141dc4f9c]
imul eax, eax, 0x62334a28
or eax, 0x471b2e84
imul eax, eax, 0x3682255e
cmp eax, 0x11b51096
je 0x140039c80
mov rax, rcx
shr rax, 0x22
xor edx, edx
test dl, dl
je 0x140039cd0
lea edx, [rax - 0x10]
mov byte [rsp + 0x24], dl
mov rdx, rcx
shr rdx, 0x1c
and dl, 0x3f
or dl, 0x80
mov byte [rsp + 0x25], dl
nop word [rax + rax]
mov edx, dword [0x141dc4fa0]
xor edx, dword [0x141dc4fa4]
xor edx, 0xf5812738
add edx, 0x506749e0
imul r8, rdx, 0x1276b67f
shr r8, 0x20
sub edx, r8d
shr edx, 1
add edx, r8d
shr edx, 0x1e
lea r8d, [rax - 0x10]
mov r9, rcx
shr r9, 0x1c
and r9b, 0x3f
or r9b, 0x80
mov byte [rsp + 0x24], r8b
mov byte [rsp + 0x25], r9b
cmp edx, 0x3ae4c48b
ja 0x140039cd0
shr ecx, 0x16
and cl, 0x3f
or cl, 0x80
mov eax, dword [0x141dc4fa8]
xor eax, dword [0x141dc4fac]
imul eax, eax, 0xa8997538
add eax, 0xe2b2b96a
shr eax, 1
mov edx, 0xa0570305
imul rax, rdx
shr rax, 0x3c
cmp eax, 0x7bcf9bf
jbe 0x140039d60
mov byte [rsp + 0x26], cl
nop dword [rax]
mov eax, dword [0x141dc4fb0]
xor eax, dword [0x141dc4fb4]
add eax, 0xfedda21a
imul rax, rsi
shr rax, 0x3d
mov byte [rsp + 0x26], cl
cmp eax, 0x96da760d
ja 0x140039d60
mov r13d, 4
mov eax, 3
jmp 0x140039e21
mov eax, dword [0x141dc4fc0]
xor edx, edx
div dword [0x141dc4fc4]
and eax, 0x2a382200
or eax, 0x14c3dc8c
imul eax, eax, 0x8ea0da4e
mov rdx, rcx
shr rdx, 0x1c
or dl, 0xe0
mov byte [rsp + 0x24], dl
cmp eax, 0x8eb1bc25
jb 0x140039de1
shr ecx, 0x16
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x25], cl
mov r13d, 3
mov eax, 2
jmp 0x140039e21
mov rax, rcx
shr rax, 0x1c
or al, 0xe0
mov byte [rsp + 0x24], al
jmp 0x140039d94
mov eax, dword [0x141dc4fe0]
sub eax, dword [0x141dc4fe4]
or eax, 0xa39cc1b8
imul eax, eax, 0x7b20b908
mov byte [rsp + 0x24], cl
cmp eax, 0xbbc0ab79
je 0x140039eb5
mov r13d, 2
mov eax, 1
mov ecx, dword [0x141dc4fe8]
sub ecx, dword [0x141dc4fec]
xor ecx, 0x6f1f8cb1
imul rcx, rcx, 0x13dd2dd9
shr rcx, 0x3c
or ecx, 0xfc7cb1ea
cmp ecx, 0xd52930f7
jae 0x140039e60
mov ecx, r15d
and cl, 0x3f
or cl, 0x80
mov byte [rsp + rax + 0x24], cl
nop dword [rax]
mov edx, dword [str.__i9]
and edx, dword [0x141dc4ff4]
and edx, 0x35217816
mov r8d, r15d
and r8b, 0x3f
or r8b, 0x80
mov rcx, qword [rsp + 0x28]
mov byte [rsp + rax + 0x24], r8b
cmp edx, 0xf3cc8b3
je 0x140039e60
sub rcx, r12
cmp rcx, r13
jb 0x140039ebe
lea rcx, [rbx + r12]
lea rdx, [rsp + 0x24]
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
add r12, r13
mov qword [rsp + 0x38], r12
jmp 0x140039968
mov byte [rsp + 0x24], cl
jmp 0x140039df0
mov rcx, r14
mov rdx, r12
mov r8, r13
call fcn.1400f2f80
mov rbx, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
nop word cs:[rax + rax]
mov eax, dword [0x141dc4ff8]
or eax, dword [str.B_r]
imul eax, eax, 0xdf2abd38
cmp eax, 0xac35ce42
je 0x140039ee0
jmp 0x140039e97
mov eax, dword [0x141dc5008]
xor edx, edx
div dword [0x141dc500c]
mov ebx, eax
or ebx, 0x10800004
and ebx, 0x11882834
mov rcx, r14
call fcn.1400393f0
cmp ebx, 0x2c11dbbe
jbe 0x140039f40
mov rcx, r14
call fcn.1400393f0
jmp 0x140039f00
mov eax, dword [0x141dc5010]
imul eax, dword [0x141dc5014]
and eax, 0x61ad2081
add eax, 0x9fb3c649
xor eax, 0x8cc9ea2a
cmp eax, 0xb38695d3
ja 0x140039f40
mov eax, dword [0x141dc5018]
or eax, dword [0x141dc501c]
mov rbx, qword [rsp + 0x30]
or eax, 0xb779e5a3
add eax, 0x9dbf6649
cmp eax, 0xeb6afa76
ja 0x140039fb7
nop word cs:[rax + rax]
mov eax, dword [0x141dc5020]
xor edx, edx
div dword [0x141dc5024]
xor eax, 0xafc06eb5
add eax, 0xeda75d39
mov byte [rbx + r12], r15b
cmp eax, 0x5328bea7
jae 0x140039960
mov byte [rbx + r12], r15b
jmp 0x140039f90
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rcx], xmm0
jmp 0x14003a0c4
movabs rax, 0x8000000000000000
mov rcx, qword [rsp + 0x40]
mov qword [rcx], rax
cmp qword [rsp + 0x28], 0
je 0x14003a0c4
mov eax, dword [0x141dc5028]
sub eax, dword [0x141dc502c]
cmp eax, 0xeec92443
jne 0x14003a010
mov rax, qword [0x141ddb260]
mov eax, dword [0x141dc5030]
add eax, dword [0x141dc5034]
xor eax, 0xbc04ba1f
add eax, 0x240b350f
mov rsi, qword [0x141ddb260]
cmp eax, 0x492c978a
jb 0x14003a010
mov eax, dword [0x141dc5038]
xor eax, dword [0x141dc503c]
xor eax, 0x6b65081f
add eax, 0x9a33f7a7
cmp eax, 0x2937625b
jae 0x14003a05f
mov rcx, rsi
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov eax, dword [0x141dc5040]
or eax, dword [0x141dc5044]
imul ebp, eax, 0xdc7f0b55
or ebp, 0xb1fb97b7
mov rcx, rsi
xor edx, edx
mov r8, rbx
call rdi
cmp ebp, 0xe998b967
je 0x14003a070
nop word [rax + rax]
mov eax, dword [0x141dc5048]
imul eax, dword [0x141dc504c]
and eax, 0xe589db
imul eax, eax, 0xf539e165
add eax, 0x97f11522
cmp eax, 0x6bf8d503
ja 0x14003a0a0
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dc4f30]
imul eax, dword [0x141dc4f34]
and eax, 0x2a08dabc
imul eax, eax, 0x8f1ded12
add eax, 0xb697404
cmp eax, 0xe08f3336
jbe 0x14003a100
ud2
mov eax, dword [0x141dc4f38]
xor edx, edx
div dword [0x141dc4f3c]
add eax, 0xc1edebaf
xor eax, 0xc3dcfa88
ud2