Function at 0x409048
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r15, r8
mov rdi, rdx
mov rbx, rcx
mov al, byte [0x00416011]
cmp al, 1
jne 0x4090c1
mov rsi, r15
shl r15, 4
and r15, 0xffffffffffffffc0
add r15, rdi
mov r14, rdi
cmp r14, r15
je 0x409334
lea r12, [r14 + 0x40]
cmp qword [rbx + 0x220], 0
je 0x4090b1
xor r13d, r13d
cmp r13, 0x40
je 0x4090bc
lea rdx, [r14 + r13]
mov rcx, rbx
call fcn.0040b442
add r13, 0x10
jmp 0x409099
mov rcx, rbx
mov rdx, r14
call fcn.0040bebb
mov r14, r12
jmp 0x40907f
mov eax, dword [rbx + 0x10]
mov qword [rsp + 0x30], rax
mov eax, dword [rbx + 0x14]
mov ecx, dword [rbx + 0x18]
mov edx, dword [rbx + 0x1c]
mov r8d, dword [rbx + 0x20]
mov qword [rsp + 0x68], rax
lea eax, [rax + rax*4]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x60], rcx
lea eax, [rcx + rcx*4]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x58], rdx
lea eax, [rdx + rdx*4]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x50], r8
lea eax, [r8 + r8*4]
mov qword [rsp + 0x28], rax
mov eax, dword [rbx + 0x24]
mov r12d, dword [rbx + 0x28]
mov r11d, dword [rbx + 0x2c]
mov edx, dword [rbx + 0x30]
mov r14d, dword [rbx + 0x34]
shl r15, 4
test r15, r15
je 0x409370
mov r9d, dword [rdi]
mov ecx, 0x3ffffff
and r9d, ecx
add r9d, eax
mov r10d, dword [rdi + 3]
mov eax, dword [rdi + 6]
shr r10d, 2
and r10d, ecx
add r10d, r12d
shr eax, 4
and eax, ecx
add eax, r11d
mov esi, dword [rdi + 9]
shr esi, 6
add esi, edx
mov ecx, dword [rdi + 0xc]
shr ecx, 8
lea r13d, [r14 + rcx]
add r13d, 0x1000000
mov rcx, r9
mov rbp, qword [rsp + 0x30]
imul rcx, rbp
mov r12, rbp
mov rdx, r10
mov r8, qword [rsp + 0x28]
imul rdx, r8
add rdx, rcx
mov rcx, rax
mov qword [rsp + 0x80], r15
mov r15, qword [rsp + 0x38]
imul rcx, r15
mov r14, rsi
mov r11, qword [rsp + 0x40]
imul r14, r11
add r14, rcx
add r14, rdx
mov rbp, r13
mov rcx, r13
imul rcx, qword [rsp + 0x48]
add rcx, r14
mov qword [rsp + 0x70], rcx
mov rdx, r9
mov qword [rsp + 0x78], rdi
mov rcx, qword [rsp + 0x68]
imul rdx, rcx
mov r8, rcx
mov r14, r10
mov rcx, r12
imul r14, r12
add r14, rdx
mov rdx, rax
mov rdi, qword [rsp + 0x28]
imul rdx, rdi
mov r12, rsi
imul r12, r15
add r12, rdx
add r12, r14
mov rdx, r13
imul r13, r11
add r13, r12
mov r14, r9
mov rbp, qword [rsp + 0x60]
imul r14, rbp
mov r12, r10
imul r12, r8
add r12, r14
mov r14, rax
imul r14, rcx
mov r11, rsi
imul r11, rdi
add r11, r14
add r11, r12
mov r14, rdx
mov rdi, rdx
imul r14, r15
add r14, r11
mov r11, r9
mov rcx, qword [rsp + 0x58]
imul r11, rcx
mov r12, r10
imul r12, rbp
add r12, r11
mov r11, rax
mov rdx, r8
imul r11, r8
mov r15, rsi
mov r8, qword [rsp + 0x30]
imul r15, r8
add r15, r11
add r15, r12
mov r12, rdi
imul r12, qword [rsp + 0x28]
add r12, r15
mov r15, qword [rsp + 0x80]
imul r9, qword [rsp + 0x50]
imul r10, rcx
add r10, r9
imul rax, rbp
imul rsi, rdx
add rsi, rax
add rsi, r10
imul rdi, r8
add rdi, rsi
mov rdx, qword [rsp + 0x70]
mov rax, rdx
shr rax, 0x1a
mov ecx, 0x3ffffff
and edx, ecx
mov r8, rdx
mov r9d, eax
add r9, r13
mov rdx, r9
shr rdx, 0x1a
and r9d, ecx
mov r11d, edx
add r11, r14
mov rdx, r11
shr rdx, 0x1a
mov edx, edx
add rdx, r12
mov rax, rdx
shr rax, 0x1a
mov r14d, eax
add r14, rdi
mov rax, r14
shr rax, 0x1a
lea eax, [rax + rax*4]
add eax, r8d
mov r12d, eax
shr r12d, 0x1a
add r12d, r9d
mov rcx, qword [rsp + 0x78]
lea rdi, [rcx + 0x10]
mov ecx, 0x3ffffff
and r11d, ecx
and edx, ecx
and r14d, ecx
and eax, ecx
mov dword [rbx + 0x24], eax
mov dword [rbx + 0x28], r12d
mov dword [rbx + 0x2c], r11d
mov dword [rbx + 0x30], edx
mov dword [rbx + 0x34], r14d
add r15, 0xfffffffffffffff0
jmp 0x409121
movabs rax, 0xffffffffffffffc
mov r14, rsi
and rax, rsi
shl rax, 4
add rdi, rax
and r14d, 3
shl r14, 4
test r14, r14
je 0x409370
lea rsi, [rdi + 0x10]
mov rcx, rbx
mov rdx, rdi
call fcn.0040b442
add r14, 0xfffffffffffffff0
mov rdi, rsi
jmp 0x409353
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret