Function at 0x180039520
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
mov rax, qword [0x1800a9e28]
xor rax, rsp
mov qword [rbp + 0x18], rax
mov r10, r9
mov qword [rsp + 0x50], r9
mov qword [rbp - 0x68], r8
mov rdi, rdx
mov qword [rbp - 0x80], rdx
mov r12, rcx
mov qword [rbp - 0x70], rcx
mov rcx, qword [rbp + 0xb8]
mov qword [rsp + 0x70], rcx
xor r9d, r9d
mov r14d, r9d
mov dword [rsp + 0x30], r9d
mov qword [rbp - 0x40], r9
mov r15d, 0xf
mov qword [rbp - 0x38], r15
mov byte [rbp - 0x50], r9b
mov edx, dword [rbp + 0xb0]
lea r11d, [rdx + 0xbb0]
mov dword [rsp + 0x24], r11d
cmp edx, r11d
jae 0x180039f7b
movabs r13, 0x6666666666666667
mov ebx, dword [rsp + 0x30]
mov esi, dword [rsp + 0x30]
movabs r15, 0x666666666666666
cmp edx, 0x214
ja 0x180039a8c
je 0x180039847
cmp edx, 0x116
ja 0x180039713
je 0x1800396f9
mov eax, edx
sub eax, 0x61
je 0x180039f31
sub eax, 0x3d
je 0x1800396c4
sub eax, 0x1b
je 0x180039640
cmp eax, 0x21
jne 0x180039694
xor r8d, r8d
lea edx, [rax + 0x4e]
xor ecx, ecx
call fcn.180077590
mov rdx, qword [0x1800a9f50]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__difftime64]
movsd qword [rbp - 0x68], xmm0
mov rdi, qword [rbp - 0x68]
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
mov rdi, qword [r10 + 8]
sub rdi, qword [r10]
sar rdi, 5
mov rcx, qword [r12 + 0x10]
sub rcx, qword [r12]
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdi, rdx
jbe 0x180039689
cmp rdi, r15
ja 0x180039ff4
mov rdx, rdi
mov rcx, r12
call fcn.180040f40
xor r9d, r9d
mov r11d, dword [rsp + 0x24]
mov edx, dword [rbp + 0xb0]
mov rcx, qword [rsp + 0x70]
mov r15, qword [rbp - 0x38]
add edx, 0xbb
mov dword [rbp + 0xb0], edx
cmp edx, r11d
jae 0x180039f7b
mov r10, qword [rsp + 0x50]
mov rdi, qword [rbp - 0x80]
mov r8, qword [rbp - 0x68]
mov r14d, dword [rsp + 0x30]
jmp 0x1800395c1
mov rax, qword [rdi]
add rax, 0x10
cmp rax, qword [r10 + 0x10]
ja 0x1800396e6
mov r8d, 0x109
mov rdx, rdi
mov rcx, r10
call fcn.180028a60
test al, al
jne 0x180039681
mov byte [rsp + 0x40], 0
mov rdi, qword [rsp + 0x40]
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
mov qword [rbp - 0x60], rcx
mov rax, qword [r8]
add rax, rcx
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x20], r9d
jmp 0x180039694
mov eax, edx
sub eax, 0x159
je 0x18003982e
sub eax, 0x1b
je 0x18003973c
mov r15, qword [rbp - 0x38]
cmp eax, 0x5d
jne 0x180039698
mov dword [rsp + 0x58], r9d
jmp 0x180039698
mov rdi, qword [r10]
mov r14, qword [r10 + 8]
cmp rdi, r14
je 0x180039694
mov r15, qword [rbp - 0x80]
mov qword [rbp - 0x20], r9
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
mov word [rbp - 0x10], r9w
mov ecx, r9d
mov dword [rbp - 0xc], ecx
lea rax, [rbp - 0x30]
cmp rax, rdi
je 0x180039791
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x180039781
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rbp - 0x30]
call fcn.180054a70
mov ecx, dword [rbp - 0xc]
movzx r8d, word [r15]
mov word [rbp - 0x10], r8w
mov rdx, qword [r12 + 8]
cmp rdx, qword [r12 + 0x10]
je 0x1800397ce
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rdx + 0x10], xmm1
mov eax, 0xf
mov byte [rbp - 0x30], 0
mov word [rdx + 0x20], r8w
mov dword [rdx + 0x24], ecx
add qword [r12 + 8], 0x28
jmp 0x1800397de
lea r8, [rbp - 0x30]
mov rcx, r12
call fcn.180001380
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x180039816
lea rdx, [rax + 1]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180039811
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180039f67
call fcn.18007de74
add rdi, 0x20
cmp rdi, r14
mov r9d, 0
jne 0x180039750
jmp 0x180039684
mov r8, rdi
mov edx, 0xa2
mov rcx, r10
call fcn.180010330
mov qword [rbp - 0x58], rax
jmp 0x180039681
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x1800396e6
mov rcx, qword [rdi]
sub rcx, rdx
mov qword [rbp + 8], r9
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
mov rax, qword [r10 + 0x10]
cmp rax, rcx
jb 0x180039fee
sub rax, rcx
mov r8, rdx
cmp rax, rdx
cmovb r8, rax
mov rax, r10
cmp qword [r10 + 0x18], 0x10
jb 0x180039892
mov rax, qword [r10]
lea rdx, [rax + rcx]
lea rcx, [rbp - 8]
call fcn.180054a70
or r14d, 1
mov dword [rsp + 0x30], r14d
lea r15, [rbp - 8]
mov r13, qword [rbp - 8]
mov r12, qword [rbp + 0x10]
cmp r12, 0x10
cmovae r15, r13
mov r14, qword [rbp + 8]
cmp r14, 0x10
jae 0x1800398d7
movups xmm7, xmmword [r15]
mov qword [rbp - 0x18], 0xf
jmp 0x180039958
mov rdi, r14
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18003992b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180039ffa
mov rcx, rax
call fcn.18007de38
mov rcx, rax
test rax, rax
je 0x180039f60
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180039939
test rcx, rcx
je 0x180039937
call fcn.18007de38
jmp 0x180039939
xor eax, eax
mov qword [rbp - 0x30], rax
lea r8, [r14 + 1]
mov rdx, r15
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp - 0x18], rdi
movups xmm7, xmmword [rbp - 0x30]
mov rdi, qword [rbp - 0x80]
mov qword [rbp - 0x20], r14
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x180039997
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180039992
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180039f60
call fcn.18007de74
movups xmmword [rbp - 0x50], xmm7
movups xmm6, xmmword [rbp - 0x20]
movups xmmword [rbp - 0x40], xmm6
cmp r12, 0x10
jb 0x1800399db
lea rdx, [r12 + 1]
mov rax, r13
cmp rdx, 0x1000
jb 0x1800399d3
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180039f67
mov rcx, r13
call fcn.18007de74
mov r8d, 0x109
mov rdx, rdi
mov rcx, qword [rsp + 0x50]
call fcn.180028a60
test al, al
je 0x1800396e6
lea rax, [rbp - 0x50]
mov r12, qword [rbp - 0x70]
cmp r12, rax
je 0x180039a61
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x180039a3f
mov rcx, qword [r12]
inc rdx
cmp rdx, 0x1000
jb 0x180039a3a
add rdx, 0x27
mov rdi, qword [rcx - 8]
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180039f67
mov rcx, rdi
call fcn.18007de74
movups xmmword [r12], xmm7
movups xmmword [r12 + 0x10], xmm6
xor r9d, r9d
mov qword [rbp - 0x40], r9
mov r15d, 0xf
mov qword [rbp - 0x38], r15
mov byte [rbp - 0x50], r9b
jmp 0x180039a68
mov r15, qword [rbp - 0x38]
xor r9d, r9d
mov byte [rsp + 0x40], 1
mov edx, dword [rbp + 0xb0]
mov rcx, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x24]
movabs r13, 0x6666666666666667
jmp 0x180039698
cmp edx, 0x402
ja 0x180039ede
je 0x180039b2b
mov eax, edx
sub eax, 0x28c
je 0x180039ae6
sub eax, 0x43
je 0x1800396eb
mov r15, qword [rbp - 0x38]
cmp eax, 0x78
jne 0x180039698
shr ebx, 4
lea esi, [rax - 0x74]
mov ecx, dword [rsp + 0x48]
mov dword [r12], ecx
mov eax, 1
shl eax, cl
mov dword [rsp + 0x78], eax
inc eax
mov dword [rsp + 0x68], eax
mov rcx, qword [rsp + 0x70]
jmp 0x180039698
cmp qword [r8], 4
jb 0x180039f24
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x69]
mov rcx, qword [rsp + 0x38]
call fcn.18001dd70
mov ebx, eax
mov ecx, eax
and ecx, 0xf
add ecx, 5
mov dword [rsp + 0x48], ecx
cmp ecx, 0xf
jbe 0x180039681
mov rdi, 0xffffffffffffffef
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
mov r15d, dword [rsp + 0x48]
inc r15d
mov dword [rsp + 0x48], r15d
mov r13d, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x20]
cmp r13d, 1
jle 0x180039eb1
nop dword [rax]
cmp r9d, dword [rdi]
ja 0x180039e9e
cmp dword [rsp + 0x58], 0
je 0x180039cf6
mov r15d, 0x91
mov r12, qword [rbp - 0x78]
nop
cmp r15d, 0x91
je 0x180039c40
cmp r15d, 0x197d
je 0x180039c24
cmp r15d, 0x3269
jne 0x180039cd3
mov r8d, dword [rsp + 0x60]
cmp r9d, r8d
jae 0x180039bc0
mov edx, r9d
mov ecx, r8d
sub ecx, r9d
mov dword [rsp + 0x20], r8d
lea rdi, [r10 + rdx*2]
xor eax, eax
movsx rax, ax
rep stosw word [rdi], ax
mov rdi, qword [rbp - 0x80]
mov rdx, qword [rbp - 0x78]
lea rax, [rdx - 7]
mov r14, qword [rsp + 0x38]
cmp r14, rax
jbe 0x180039bf1
mov eax, esi
sar eax, 3
movsxd rcx, eax
add rcx, r14
lea rax, [rdx - 4]
cmp rcx, rax
jbe 0x180039bf1
shr ebx, 2
mov r12, rdx
jmp 0x180039cd3
movsxd rax, esi
sar rax, 3
add r14, rax
mov qword [rsp + 0x38], r14
and esi, 7
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x69]
mov rcx, r14
call fcn.18001dd70
mov ebx, eax
mov ecx, esi
shr ebx, cl
mov r12, qword [rbp - 0x78]
jmp 0x180039cd3
mov eax, dword [rsp + 0x60]
cmp eax, dword [rdi]
jbe 0x180039cd3
mov rdi, 0xffffffffffffffed
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
mov r8d, r9d
cmp bx, 0xffff
jne 0x180039ca7
lea rdi, [r12 - 5]
mov r14, qword [rsp + 0x38]
nop dword [rax]
nop dword [rax + rax]
add r8d, 0x18
mov dword [rsp + 0x60], r8d
cmp r14, rdi
jae 0x180039c91
add r14, 2
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x69]
mov rcx, r14
call fcn.18001dd70
mov ebx, eax
mov ecx, esi
shr ebx, cl
mov r8d, dword [rsp + 0x60]
jmp 0x180039c97
shr ebx, 0x10
add esi, 0x10
cmp bx, 0xffff
je 0x180039c60
mov qword [rsp + 0x38], r14
mov rdi, qword [rbp - 0x80]
mov eax, ebx
and eax, 3
cmp al, 3
jne 0x180039cc3
add r8d, 3
shr ebx, 2
add esi, 2
mov eax, ebx
and eax, 3
cmp al, 3
je 0x180039cb0
mov eax, ebx
and eax, 3
add r8d, eax
mov dword [rsp + 0x60], r8d
add esi, 2
add r15d, 0x18ec
cmp r15d, 0x4ac4
mov r9d, dword [rsp + 0x20]
mov r10, qword [rsp + 0x50]
jbe 0x180039b70
mov r15d, dword [rsp + 0x48]
mov r14d, 0xbb
nop dword [rax]
mov eax, r14d
sub eax, 0xb8
je 0x180039e54
sub eax, 1
je 0x180039e0a
sub eax, 1
je 0x180039d95
cmp eax, 1
jne 0x180039e71
mov r8d, dword [rsp + 0x78]
movzx r12d, r8w
movzx edx, r8w
add dx, dx
movzx edi, dx
sub di, r13w
dec di
lea ecx, [r8 - 1]
and ecx, ebx
movsx eax, di
mov r9d, dword [rsp + 0x20]
mov r10, qword [rsp + 0x50]
cmp ecx, eax
jae 0x180039d6e
dec r12w
and r12w, bx
mov word [rsp + 0x28], r12w
dec esi
add esi, r15d
jmp 0x180039e7b
dec dx
and dx, bx
movsx r12d, dx
add esi, r15d
mov eax, r12d
sub r12w, di
cmp eax, r8d
cmovl r12w, dx
mov word [rsp + 0x28], r12w
jmp 0x180039e7b
movzx edi, word [rsp + 0x28]
dec di
mov word [rsp + 0x28], di
mov word [rsp + 0x58], di
xor r9d, r9d
mov r8d, 0x11f
lea rdx, [rsp + 0x58]
xor ecx, ecx
call fcn.180073320
movsx ecx, ax
sub r13d, ecx
mov r9d, dword [rsp + 0x20]
mov r10, qword [rsp + 0x50]
mov word [r10 + r9*2], di
inc r9d
mov dword [rsp + 0x20], r9d
xor eax, eax
test di, di
sete al
mov dword [rsp + 0x58], eax
mov r8d, dword [rsp + 0x78]
cmp r13d, r8d
jge 0x180039e7b
dec r15d
sar r8d, 1
cmp r13d, r8d
jl 0x180039df3
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x78], r8d
jmp 0x180039e7b
mov r8, qword [rbp - 0x78]
lea rax, [r8 - 7]
mov rdi, qword [rsp + 0x38]
cmp rdi, rax
jbe 0x180039e40
lea rdx, [r8 - 4]
mov eax, esi
sar eax, 3
movsxd rcx, eax
add rcx, rdi
cmp rcx, rdx
jbe 0x180039e40
sub edi, r8d
lea esi, [rsi + rdi*8]
add esi, 0x20
mov qword [rsp + 0x38], rdx
jmp 0x180039e71
movsxd rax, esi
sar rax, 3
add rdi, rax
mov qword [rsp + 0x38], rdi
and esi, 7
jmp 0x180039e71
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x69]
mov rcx, qword [rsp + 0x38]
call fcn.18001dd70
mov ebx, eax
mov ecx, esi
and ecx, 0x1f
shr ebx, cl
mov r10, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x20]
dec r14d
cmp r14d, 0xb7
ja 0x180039d00
mov dword [rsp + 0x68], r13d
cmp r13d, 1
mov rdi, qword [rbp - 0x80]
jg 0x180039b50
mov r11d, dword [rsp + 0x24]
mov edx, dword [rbp + 0xb0]
mov r12, qword [rbp - 0x70]
cmp r13d, 1
jne 0x180039f6e
lea eax, [r9 - 1]
mov dword [rdi], eax
lea eax, [rsi + 7]
movsxd rcx, eax
sar rcx, 3
add qword [rsp + 0x38], rcx
xor r9d, r9d
movabs r13, 0x6666666666666667
jmp 0x18003968f
cmp edx, 0x4bd
je 0x180039f12
cmp edx, 0x578
je 0x180039eff
cmp edx, 0x633
je 0x1800396eb
jmp 0x180039694
mov rax, qword [rsp + 0x38]
sub rax, qword [rbp - 0x60]
mov qword [rsp + 0x40], rax
jmp 0x180039694
mov rax, qword [rsp + 0x38]
sub rax, qword [rbp - 0x60]
cmp rax, qword [r8]
jbe 0x180039694
mov rdi, 0xfffffffffffffff2
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
mov dword [rsp + 0x68], 1
mov eax, dword [rdi]
mov dword [rsp + 0x30], eax
lea r9, [rsp + 0x30]
mov r8d, 0xba
mov rdx, r10
lea rcx, [rsp + 0x68]
call fcn.18003f350
mov rdi, rax
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdi, 0xffffffffffffffff
mov r15, qword [rbp - 0x38]
jmp 0x180039f80
mov rdi, qword [rsp + 0x40]
cmp r15, 0x10
jb 0x180039fbb
lea rdx, [r15 + 1]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180039fb6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180039fb6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18007de74
mov rax, rdi
mov rcx, qword [rbp + 0x18]
xor rcx, rsp
call fcn.18007e380
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x120]
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.180041150
nop
call fcn.180041130
nop
call fcn.180040fd0
int3