Function at 0x12016deb0
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rbx, rdx
mov qword [rsp + 0x28], rcx
mov rdx, qword [rcx]
mov r8d, dword [rbx]
mov rcx, qword [rbx + 0x10]
lea rax, [rcx + 1]
test r8d, r8d
je 0x1200a4640
mov r12, qword [rdx + 0x10]
mov r14, qword [rdx + 8]
sub rax, 1
mov qword [rbx + 0x10], rax
cmp r14, r12
je 0x1200a4533
mov rbx, r12
mov r8d, 0x3f
mov rdx, r12
mov rcx, r14
sub rbx, r14
mov rax, rbx
sar rax, 3
bsr rax, rax
xor rax, 0x3f
sub r8d, eax
movsxd r8, r8d
add r8, r8
call fcn.12016f790
cmp rbx, 0x80
jle 0x1200a4520
lea rsi, [r14 + 0x80]
mov rcx, r14
lea rdi, [rsp + 0x38]
mov rdx, rsi
lea rbp, [rsp + 0x3c]
call fcn.12016d6b0
cmp r12, rsi
jne 0x1200a44cf
jmp 0x1200a452b
mov rdx, rbx
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1200a4518
cmp r13, 4
seta al
test al, al
jne 0x1200a45d3
mov rax, qword [rsp + 0x38]
add rsi, 8
mov qword [r15], rax
cmp r12, rsi
je 0x1200a452b
mov rax, qword [rsi]
mov rbx, rsi
mov qword [rsp + 0x38], rax
nop word [rax + rax]
lea r14, [rbx - 4]
mov r15, rbx
sub rbx, 8
mov r8d, 4
mov r13, r14
sub r13, rbx
cmp r13, 3
ja 0x1200a44a0
test r13, r13
je 0x1200a44af
mov r8, r13
mov rdx, rbx
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1200a44af
nop dword [rax]
shr eax, 0x1f
jmp 0x1200a44b6
mov rdx, r12
mov rcx, r14
call fcn.12016d6b0
mov rax, qword [rsp + 0x28]
mov rdx, qword [rax]
mov r12, qword [rdx + 0x28]
mov r13, qword [rdx + 0x20]
cmp r13, r12
je 0x1200a45a1
mov rbx, r12
mov r8d, 0x3f
mov rdx, r12
mov rcx, r13
sub rbx, r13
mov rax, rbx
sar rax, 5
bsr rax, rax
xor rax, 0x3f
sub r8d, eax
movsxd r8, r8d
add r8, r8
call fcn.120170ed0
cmp rbx, 0x200
jle 0x1200a45b8
lea rbx, [r13 + 0x200]
mov rcx, r13
mov rdx, rbx
call 0x12016deb0
cmp r12, rbx
je 0x1200a45a1
nop
mov rcx, rbx
add rbx, 0x20
call fcn.120175c10
cmp r12, rbx
jne 0x1200a4590
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r12
mov rcx, r13
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x12016deb0
mov r13, r15
mov r8d, 4
sub r13, r14
cmp r13, 3
jbe 0x1200a4610
mov rdx, r14
mov rcx, rbp
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1200a4630
cmp r13, 4
jbe 0x1200a44be
mov rax, qword [rbx]
mov qword [rbx + 8], rax
jmp 0x1200a44e0
test r13, r13
je 0x1200a44be
mov r8, r13
mov rdx, r14
mov rcx, rbp
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1200a45f4
nop dword [rax + rax]
js 0x1200a45fe
jmp 0x1200a44be
add rcx, 2
add rdx, 8
mov qword [rbx + 0x10], rcx
mov rcx, rbx
call fcn.12003aa10
mov rax, qword [rbx + 0x10]
mov rsi, qword [rsp + 0x28]
mov ecx, dword [rbx]
mov rdx, qword [rsi]
sub rax, 1
test ecx, ecx
jne 0x1200a441f
add rdx, 0x20
mov rcx, rbx
call fcn.12003abe0
mov rax, qword [rbx + 0x10]
mov rdx, qword [rsi]
sub rax, 1
jmp 0x1200a441f
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
cmp rcx, rdx
je 0x12016e0d7
lea rax, [rcx + 0x20]
mov qword [rsp + 0x48], rax
cmp rdx, rax
je 0x12016e0d7
lea rbx, [rcx + 0x10]
mov rsi, rax
lea rdi, [rcx + 0x40]
mov r12, rax
sub rsi, rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0xa8], rdx
mov rax, rsi
mov rsi, rcx
mov rbp, rax
nop word [rax + rax]
lea rcx, [r12 + 0x10]
mov r8, rsi
mov rax, r12
jmp 0x12016df2f
ja 0x12016e0fb
add rax, 2
add r8, 2
cmp rcx, rax
je 0x12016e0f0
movzx edx, word [r8]
cmp word [rax], dx
jae 0x12016df18
mov rax, rdi
lea r8, [rcx + rbp]
mov rbx, rdi
sub rax, rcx
cmp rax, rbp
mov rax, qword [rsp + 0x30]
cmovle r8, rdi
cmp rcx, r8
jne 0x12016df77
jmp 0x12016e110
ja 0x12016e0fb
add rcx, 2
add rax, 2
cmp r8, rcx
je 0x12016e110
movzx edx, word [rax]
cmp word [rcx], dx
jae 0x12016df60
movzx eax, word [r12 + 6]
movzx r11d, word [r12]
movzx r10d, word [r12 + 2]
movzx r9d, word [r12 + 4]
mov word [rsp + 0x20], ax
movzx eax, word [r12 + 0xa]
movzx r15d, word [r12 + 8]
movzx r14d, word [r12 + 0x1a]
mov word [rsp + 0x22], ax
movzx eax, word [r12 + 0xc]
movzx r13d, word [r12 + 0x1c]
mov word [rsp + 0x24], ax
movzx eax, word [r12 + 0xe]
mov word [rsp + 0x26], ax
movzx eax, word [r12 + 0x10]
mov word [rsp + 0x28], ax
movzx eax, word [r12 + 0x12]
mov word [rsp + 0x2a], ax
movzx eax, word [r12 + 0x14]
mov word [rsp + 0x2c], ax
movzx eax, word [r12 + 0x16]
mov word [rsp + 0x2e], ax
movzx eax, word [r12 + 0x18]
mov word [rsp + 0x38], ax
movzx eax, word [r12 + 0x1e]
mov word [rsp + 0x3a], ax
cmp rsi, r12
je 0x12016e04a
mov eax, 0x20
mov r8, r12
mov rdx, rsi
mov dword [rsp + 0x44], r9d
sub r8, rsi
lea rcx, [rsi + rax]
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x3c], r11d
call sub.msvcrt.dll_memmove
mov r9d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x40]
mov r11d, dword [rsp + 0x3c]
movzx eax, word [rsp + 0x20]
mov word [rsi], r11w
mov word [rsi + 2], r10w
mov word [rsi + 6], ax
movzx eax, word [rsp + 0x22]
mov word [rsi + 4], r9w
mov word [rsi + 0xa], ax
movzx eax, word [rsp + 0x24]
mov word [rsi + 8], r15w
mov word [rsi + 0xc], ax
movzx eax, word [rsp + 0x26]
mov word [rsi + 0x1a], r14w
mov word [rsi + 0xe], ax
movzx eax, word [rsp + 0x28]
mov word [rsi + 0x1c], r13w
mov word [rsi + 0x10], ax
movzx eax, word [rsp + 0x2a]
mov word [rsi + 0x12], ax
movzx eax, word [rsp + 0x2c]
mov word [rsi + 0x14], ax
movzx eax, word [rsp + 0x2e]
mov word [rsi + 0x16], ax
movzx eax, word [rsp + 0x38]
mov word [rsi + 0x18], ax
movzx eax, word [rsp + 0x3a]
mov word [rsi + 0x1e], ax
add r12, 0x20
add rdi, 0x20
cmp qword [rsp + 0xa8], rbx
jne 0x12016df08
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x30], r8
jne 0x12016df38
mov rcx, r12
mov rbx, rdi
call fcn.120175c10
jmp 0x12016e0c1
cmp qword [rsp + 0x48], rax
jne 0x12016df7f
mov rcx, r12
mov rbx, rdi
call fcn.120175c10
jmp 0x12016e0c1