Function at 0x18003e7f0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
lea eax, [r8 + 0xc]
movaps xmmword [rsp + 0x40], xmm6
mov dword [rsp + 0x28], eax
mov r11, r9
mov r13d, r8d
mov rsi, rdx
mov r12, rcx
cmp r8d, eax
jae 0x18003f113
movss xmm6, dword [rsp + 0xa0]
movabs r8, 0xaaaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x38]
mov r15d, dword [rsp + 0xa0]
mov r14d, dword [rsp + 0xa0]
mov ebp, dword [rsp + 0xa0]
lea eax, [r13 - 0xc]
lea rdx, [0x180000000]
cmp eax, 0x18
ja case.0x18003e87d.15
mov ecx, dword [rdx + rax*4 + 0x3f16c]
add rcx, rdx
jmp rcx
mov r8d, 2
lea rcx, [rsi + 0xd7e0]
sub r8d, dword [rsp + 0x20]
mov r9, rcx
mov r10d, 3
nop word [rax + rax]
movd xmm0, dword [r9]
lea eax, [r8 - 2]
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm0, xmm0
movd xmm2, eax
lea eax, [r8 - 1]
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm2, xmm2
movd xmm1, eax
mov eax, r8d
cdq
mulss xmm2, xmm0
xor eax, edx
movd xmm0, dword [r9 + 4]
sub eax, edx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
addss xmm2, xmm6
mulss xmm1, xmm0
movd xmm0, dword [r9 + 8]
cvtdq2ps xmm0, xmm0
movaps xmm6, xmm2
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 1]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0xc]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 2]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x10]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 3]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x14]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 4]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x18]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 5]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x1c]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
addss xmm6, xmm1
movd xmm0, dword [r9 + 0x20]
lea eax, [r8 + 6]
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
lea eax, [r8 + 7]
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x24]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 8]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x28]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 9]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x2c]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0xa]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x30]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0xb]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x34]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0xc]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x38]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0xd]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x3c]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0xe]
mulss xmm1, xmm0
addss xmm6, xmm1
movd xmm0, dword [r9 + 0x40]
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
lea eax, [r8 + 0xf]
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x44]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x10]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x48]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x11]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x4c]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x12]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x50]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x13]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x54]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x14]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x58]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x15]
cdq
xor eax, edx
sub eax, edx
mulss xmm1, xmm0
movd xmm0, dword [r9 + 0x5c]
cvtdq2ps xmm0, xmm0
addss xmm6, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
lea eax, [r8 + 0x16]
cdq
mulss xmm1, xmm0
addss xmm6, xmm1
movd xmm0, dword [r9 + 0x60]
xor eax, edx
sub eax, edx
add r8d, 0x19
cvtdq2ps xmm0, xmm0
add r9, 0x64
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
addss xmm6, xmm1
sub r10, 1
jne 0x18003e8a0
movd xmm0, dword [rsp + 0xa0]
movaps xmm1, xmm6
cvtdq2ps xmm0, xmm0
xor edx, edx
mov r8d, 0x12c
divss xmm1, xmm0
addss xmm1, dword [0x180072adc]
cvttss2si eax, xmm1
imul eax, dword [rsp + 0x24]
mov dword [r11], eax
call sub.VCRUNTIME140.dll_memset
mov r11, qword [rsp + 0xa8]
movabs r8, 0xaaaaaaaaaaaaaaab
jmp case.0x18003e87d.15
cmp dword [rsi + 0xd90c], 0
je 0x18003f163
mov eax, dword [rsi + 0xd908]
add eax, dword [rsi + 0xd904]
add eax, dword [rsi + 0xd900]
add eax, dword [rsi + 0xd8fc]
add eax, dword [rsi + 0xd8f8]
add eax, dword [rsi + 0xd8f4]
add eax, dword [rsi + 0xd8f0]
add eax, dword [rsi + 0xd8ec]
add eax, dword [rsi + 0xd8e8]
add eax, dword [rsi + 0xd8e4]
add eax, dword [rsi + 0xd8e0]
add eax, dword [rsi + 0xd8dc]
add eax, dword [rsi + 0xd8d8]
add eax, dword [rsi + 0xd8d4]
add eax, dword [rsi + 0xd8d0]
add eax, dword [rsi + 0xd8cc]
add eax, dword [rsi + 0xd8c8]
add eax, dword [rsi + 0xd8c4]
add eax, dword [rsi + 0xd8c0]
add eax, dword [rsi + 0xd8bc]
add eax, dword [rsi + 0xd8b8]
add eax, dword [rsi + 0xd8b4]
add eax, dword [rsi + 0xd8b0]
add eax, dword [rsi + 0xd8ac]
add eax, dword [rsi + 0xd8a8]
add eax, dword [rsi + 0xd8a4]
add eax, dword [rsi + 0xd8a0]
add eax, dword [rsi + 0xd89c]
add eax, dword [rsi + 0xd898]
add eax, dword [rsi + 0xd894]
add eax, dword [rsi + 0xd890]
add eax, dword [rsi + 0xd88c]
add eax, dword [rsi + 0xd888]
add eax, dword [rsi + 0xd884]
add eax, dword [rsi + 0xd880]
add eax, dword [rsi + 0xd87c]
add eax, dword [rsi + 0xd878]
add eax, dword [rsi + 0xd874]
add eax, dword [rsi + 0xd870]
add eax, dword [rsi + 0xd86c]
add eax, dword [rsi + 0xd868]
add eax, dword [rsi + 0xd864]
add eax, dword [rsi + 0xd860]
add eax, dword [rsi + 0xd85c]
add eax, dword [rsi + 0xd858]
add eax, dword [rsi + 0xd854]
add eax, dword [rsi + 0xd850]
add eax, dword [rsi + 0xd84c]
add eax, dword [rsi + 0xd848]
add eax, dword [rsi + 0xd844]
add eax, dword [rsi + 0xd840]
add eax, dword [rsi + 0xd83c]
add eax, dword [rsi + 0xd838]
add eax, dword [rsi + 0xd834]
add eax, dword [rsi + 0xd830]
add eax, dword [rsi + 0xd82c]
add eax, dword [rsi + 0xd828]
add eax, dword [rsi + 0xd824]
add eax, dword [rsi + 0xd820]
add eax, dword [rsi + 0xd81c]
add eax, dword [rsi + 0xd818]
add eax, dword [rsi + 0xd814]
add eax, dword [rsi + 0xd810]
add eax, dword [rsi + 0xd80c]
add eax, dword [rsi + 0xd808]
add eax, dword [rsi + 0xd804]
add eax, dword [rsi + 0xd800]
add eax, dword [rsi + 0xd7fc]
add eax, dword [rsi + 0xd7f8]
add eax, dword [rsi + 0xd7f4]
add eax, dword [rsi + 0xd7f0]
add eax, dword [rsi + 0xd7ec]
add eax, dword [rsi + 0xd7e8]
add eax, dword [rsi + 0xd7e4]
add eax, dword [rsi + 0xd7e0]
add dword [rsp + 0xa0], eax
jne case.0x18003e87d.15
mov ecx, 0xa9
nop dword [rax + rax]
mov eax, ecx
sub eax, 0xa8
je 0x18003f137
cmp eax, 1
jne 0x18003ee3a
mov dword [r12], 0xffffffff
dec ecx
cmp ecx, 0xa7
ja 0x18003ee20
jmp case.0x18003e87d.15
mov dword [rsp + 0xa0], 0
jmp case.0x18003e87d.15
mov rcx, qword [rsi + 0x10]
mov rax, r8
add rcx, 2
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x30], rax
jmp case.0x18003e87d.15
mov edx, dword [rsp + 0xa0]
lea rax, [rsi + 0xd7e0]
sar edx, 1
xor r8d, r8d
xor ecx, ecx
sub edx, dword [rax]
js 0x18003eeab
inc r8d
inc rcx
add rax, 4
cmp rcx, 0x4b
jl 0x18003ee90
mov r8d, dword [rsp + 0x20]
jmp 0x18003eeb0
mov dword [rsp + 0x20], r8d
lea eax, [r8 - 0xf]
mov r13d, 0x1d
imul eax, dword [rsp + 0x24]
movabs r8, 0xaaaaaaaaaaaaaaab
mov dword [r12], eax
jmp case.0x18003e87d.15
mov rdx, qword [rsp + 0x30]
xor r8d, r8d
mov rcx, r12
call fcn.18004d050
cmp qword [rsi + 0x18], 0x10
mov rdi, rsi
jb 0x18003eeef
mov rdi, qword [rsi]
cmp qword [r12 + 0x18], 0x10
mov rbx, r12
jb 0x18003eefe
mov rbx, qword [r12]
mov r11, qword [rsp + 0xa8]
movabs r8, 0xaaaaaaaaaaaaaaab
mov rax, r8
mul qword [rsi + 0x10]
shr rdx, 1
lea rax, [rdx + rdx*2]
mov qword [rsp + 0x38], rax
jmp case.0x18003e87d.15
mov rax, qword [rsp + 0x38]
xor r9d, r9d
test rax, rax
je 0x18003efff
lea rcx, [rax - 1]
mov rax, r8
mul rcx
shr rdx, 1
inc rdx
lea r9, [rdx + rdx*2]
nop dword [rax]
mov r8d, 0x2e
mov eax, r8d
sub eax, 0x2c
je 0x18003efda
sub eax, 1
je 0x18003efc1
cmp eax, 1
jne 0x18003efde
mov rax, qword [0x180079ad8]
movzx ecx, byte [rdi]
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
movzx ecx, byte [rdi]
movzx eax, byte [rdi + 1]
and ecx, 3
shl ecx, 4
shr eax, 4
add ecx, eax
mov rax, qword [0x180079ad8]
movzx ecx, byte [rcx + rax]
mov byte [rbx + 1], cl
movzx ecx, byte [rdi + 1]
movzx eax, byte [rdi + 2]
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x180079ad8]
movzx ecx, byte [rcx + rax]
mov byte [rbx + 2], cl
add rbx, 3
jmp 0x18003efde
movzx ecx, byte [rdi + 2]
mov rax, qword [0x180079ad8]
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
inc rbx
jmp 0x18003efde
add rdi, 3
dec r8d
cmp r8d, 0x2b
ja 0x18003ef56
sub rdx, 1
jne 0x18003ef50
movabs r8, 0xaaaaaaaaaaaaaaab
cmp r9, qword [rsi + 0x10]
jae case.0x18003e87d.15
mov edx, 0x6b
nop
mov eax, edx
sub eax, 0x6b
je 0x18003f0ca
sub eax, 1
je 0x18003f0b6
sub eax, 1
je 0x18003f09a
sub eax, 1
je 0x18003f042
cmp eax, 1
jne 0x18003f0ce
mov byte [rbx], 0x3d
inc rbx
jmp 0x18003f0ce
mov ecx, r14d
mov eax, ebp
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [0x180079ad8]
movzx ecx, byte [rcx + rax]
lea rax, [r9 + 1]
mov byte [rbx], cl
cmp rax, qword [rsi + 0x10]
jae 0x18003f08d
mov ecx, ebp
mov eax, r15d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x180079ad8]
movzx r8d, byte [rcx + rax]
mov byte [rbx + 1], r8b
add rbx, 2
jmp 0x18003f0ce
mov r8b, 0x3d
mov byte [rbx + 1], r8b
add rbx, 2
jmp 0x18003f0ce
mov rax, qword [0x180079ad8]
xor r15d, r15d
mov ecx, r14d
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
inc rbx
jmp 0x18003f0ce
lea rax, [r9 + 1]
cmp rax, qword [rsi + 0x10]
jae 0x18003f0c6
movzx ebp, byte [rdi + 1]
jmp 0x18003f0ce
xor ebp, ebp
jmp 0x18003f0ce
movzx r14d, byte [rdi]
inc edx
cmp edx, 0x70
jb 0x18003f010
movabs r8, 0xaaaaaaaaaaaaaaab
jmp case.0x18003e87d.15
mov ecx, dword [rsi + 0xd6b4]
mov eax, 0x40
shl ecx, 3
cdq
idiv ecx
mov dword [rsp + 0x20], 0
xorps xmm6, xmm6
mov dword [rsp + 0x24], eax
inc r13d
cmp r13d, dword [rsp + 0x28]
jb 0x18003e85f
mov eax, dword [rsp + 0xa0]
mov rbx, qword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov dword [r11], 0xffffffff
xor eax, eax
jmp 0x18003f11a
mov ecx, 0x6618
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsi], rax
test rax, rax
je 0x18003f163
mov dword [rax + 0xc20], 0
xor eax, eax
jmp 0x18003f11a
mov eax, 0xffffffff
jmp 0x18003f11a