Function at 0x5d1d80
Capabilities:
Enumerate pe sections

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rsi, rdx
mov rax, r8
or rsi, r8
je 0x5d1dfd
mov r10, qword [rcx + 0x70]
pxor xmm0, xmm0
mov qword [r10 + 0xb8], 0
mov qword [r10 + 0xc8], 0xffffffffffffffff
movups xmmword [r10 + 0xa8], xmm0
test r8, r8
je 0x5d1e50
movsxd r11, dword [r10 + 0xc4]
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
cmp r11d, 0x10
jle 0x5d1e10
call sym.chacha_init_key
mov eax, dword [r10 + 0x2c]
mov rdx, qword [r10 + 0x24]
mov dword [r10 + 0x80], eax
mov qword [r10 + 0x78], rdx
mov eax, 1
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
mov rbx, r8
sub rbx, r11
add rbx, 0x10
cmp r11, 8
jae 0x5d1f88
test r11b, 4
jne 0x5d1fd3
test r11, r11
je 0x5d1de5
movzx esi, byte [rax]
mov byte [rbx], sil
test r11b, 2
je 0x5d1de5
movzx eax, word [rax + r11 - 2]
mov word [rbx + r11 - 2], ax
jmp 0x5d1de5
test rdx, rdx
je 0x5d1f6f
movzx eax, byte [rdx + 2]
movzx ecx, byte [rdx + 1]
shl eax, 0x10
shl ecx, 8
or eax, ecx
movzx ecx, byte [rdx]
or eax, ecx
movzx ecx, byte [rdx + 3]
shl ecx, 0x18
or eax, ecx
mov dword [r10], eax
movzx eax, byte [rdx + 5]
movzx ecx, byte [rdx + 6]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 4]
or eax, ecx
movzx ecx, byte [rdx + 7]
shl ecx, 0x18
or eax, ecx
mov dword [r10 + 4], eax
movzx eax, byte [rdx + 9]
movzx ecx, byte [rdx + 0xa]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 8]
or eax, ecx
movzx ecx, byte [rdx + 0xb]
shl ecx, 0x18
or eax, ecx
mov dword [r10 + 8], eax
movzx eax, byte [rdx + 0xd]
movzx ecx, byte [rdx + 0xe]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 0xc]
or eax, ecx
movzx ecx, byte [rdx + 0xf]
shl ecx, 0x18
or eax, ecx
mov dword [r10 + 0xc], eax
movzx eax, byte [rdx + 0x11]
movzx ecx, byte [rdx + 0x12]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 0x10]
or eax, ecx
movzx ecx, byte [rdx + 0x13]
shl ecx, 0x18
or eax, ecx
mov dword [r10 + 0x10], eax
movzx eax, byte [rdx + 0x15]
movzx ecx, byte [rdx + 0x16]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 0x14]
or eax, ecx
movzx ecx, byte [rdx + 0x17]
shl ecx, 0x18
or eax, ecx
mov dword [r10 + 0x14], eax
movzx eax, byte [rdx + 0x19]
movzx ecx, byte [rdx + 0x1a]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 0x18]
or eax, ecx
movzx ecx, byte [rdx + 0x1b]
shl ecx, 0x18
or eax, ecx
mov dword [r10 + 0x18], eax
movzx eax, byte [rdx + 0x1d]
movzx ecx, byte [rdx + 0x1e]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rdx + 0x1c]
movzx edx, byte [rdx + 0x1f]
or eax, ecx
shl edx, 0x18
or eax, edx
mov dword [r10 + 0x1c], eax
mov eax, 1
mov dword [r10 + 0x70], 0
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
mov rsi, qword [rax]
mov qword [rbx], rsi
mov rsi, qword [rax + r11 - 8]
mov qword [rbx + r11 - 8], rsi
lea rsi, [rbx + 8]
and rsi, 0xfffffffffffffff8
sub rbx, rsi
add r11, rbx
sub rax, rbx
and r11, 0xfffffffffffffff8
cmp r11, 8
jb 0x5d1de5
and r11, 0xfffffffffffffff8
xor ebx, ebx
mov rdi, qword [rax + rbx]
mov qword [rsi + rbx], rdi
add rbx, 8
cmp rbx, r11
jb 0x5d1fbd
jmp 0x5d1de5
mov esi, dword [rax]
mov dword [rbx], esi
mov eax, dword [rax + r11 - 4]
mov dword [rbx + r11 - 4], eax
jmp 0x5d1de5