Function at 0x164c87080
Capabilities:
Enumerate pe sections

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xd68
mov eax, 0x10000
xor r15d, r15d
mov rbx, r9
nop
mov dword [rbx + rax*4], r15d
sub rax, 1
jns 0x164c870b0
mov r10, qword [rsp + 0xda8]
movsxd r13, dword [rsp + 0xdc0]
mov r8, qword [rsp + 0xdb0]
mov qword [rsp + 0xd60], rsi
movzx edx, byte [r10]
lea r9d, [r13 - 1]
shl edx, 8
movsxd r14, r9d
mov qword [rsp + 0xd58], rdi
mov rbp, r14
cmp r14, 3
jl 0x164c8718e
lea rsi, [r14 + 1]
shr rsi, 2
lea r11, [r10 - 2]
add r11, r14
lea rdi, [r8 - 4]
mov eax, esi
lea rdi, [rdi + r14*2]
neg eax
lea r14d, [r14 + rax*4]
nop dword [rax]
mov word [rdi + 4], r15w
lea rdi, [rdi - 8]
movzx ecx, byte [r11 + 2]
lea r11, [r11 - 4]
sar edx, 8
shl ecx, 8
or ecx, edx
movsxd rax, ecx
sar ecx, 8
inc dword [rbx + rax*4]
mov word [rdi + 0xa], r15w
movzx edx, byte [r11 + 5]
shl edx, 8
or edx, ecx
movsxd rax, edx
sar edx, 8
inc dword [rbx + rax*4]
mov word [rdi + 8], r15w
movzx ecx, byte [r11 + 4]
shl ecx, 8
or ecx, edx
movsxd rax, ecx
sar ecx, 8
inc dword [rbx + rax*4]
mov word [rdi + 6], r15w
movzx edx, byte [r11 + 3]
shl edx, 8
or edx, ecx
movsxd rax, edx
inc dword [rbx + rax*4]
sub rsi, 1
jne 0x164c87120
movsxd r11, r14d
test r14d, r14d
js 0x164c871c2
nop word [rax + rax]
mov eax, edx
mov word [r8 + r11*2], r15w
movzx ecx, byte [r11 + r10]
sar eax, 8
shl ecx, 8
mov edx, ecx
or edx, eax
movsxd rax, edx
inc dword [rbx + rax*4]
sub r11, 1
jns 0x164c871a0
movzx eax, byte [r10]
mov byte [r13 + r10], al
mov word [r8 + r13*2], r15w
movzx eax, byte [r10 + 1]
mov byte [r13 + r10 + 1], al
mov word [r8 + r13*2 + 2], r15w
movzx eax, byte [r10 + 2]
mov byte [r13 + r10 + 2], al
mov word [r8 + r13*2 + 4], r15w
movzx eax, byte [r10 + 3]
mov byte [r13 + r10 + 3], al
mov word [r8 + r13*2 + 6], r15w
movzx eax, byte [r10 + 4]
mov byte [r13 + r10 + 4], al
mov word [r8 + r13*2 + 8], r15w
movzx eax, byte [r10 + 5]
mov byte [r13 + r10 + 5], al
mov word [r8 + r13*2 + 0xa], r15w
movzx eax, byte [r10 + 6]
mov byte [r13 + r10 + 6], al
mov word [r8 + r13*2 + 0xc], r15w
movzx eax, byte [r10 + 7]
mov byte [r13 + r10 + 7], al
mov word [r8 + r13*2 + 0xe], r15w
movzx eax, byte [r10 + 8]
mov byte [r13 + r10 + 8], al
mov word [r8 + r13*2 + 0x10], r15w
movzx eax, byte [r10 + 9]
mov byte [r13 + r10 + 9], al
mov word [r8 + r13*2 + 0x12], r15w
movzx eax, byte [r10 + 0xa]
mov byte [r13 + r10 + 0xa], al
mov word [r8 + r13*2 + 0x14], r15w
movzx eax, byte [r10 + 0xb]
mov byte [r13 + r10 + 0xb], al
mov word [r8 + r13*2 + 0x16], r15w
movzx eax, byte [r10 + 0xc]
mov byte [r13 + r10 + 0xc], al
mov word [r8 + r13*2 + 0x18], r15w
movzx eax, byte [r10 + 0xd]
mov byte [r13 + r10 + 0xd], al
mov word [r8 + r13*2 + 0x1a], r15w
movzx eax, byte [r10 + 0xe]
mov byte [r13 + r10 + 0xe], al
mov word [r8 + r13*2 + 0x1c], r15w
movzx eax, byte [r10 + 0xf]
mov byte [r13 + r10 + 0xf], al
mov word [r8 + r13*2 + 0x1e], r15w
movzx eax, byte [r10 + 0x10]
mov byte [r13 + r10 + 0x10], al
mov word [r8 + r13*2 + 0x20], r15w
movzx eax, byte [r10 + 0x11]
mov byte [r13 + r10 + 0x11], al
mov word [r8 + r13*2 + 0x22], r15w
movzx eax, byte [r10 + 0x12]
mov byte [r13 + r10 + 0x12], al
mov word [r8 + r13*2 + 0x24], r15w
movzx eax, byte [r10 + 0x13]
mov byte [r13 + r10 + 0x13], al
mov word [r8 + r13*2 + 0x26], r15w
movzx eax, byte [r10 + 0x14]
mov byte [r13 + r10 + 0x14], al
mov word [r8 + r13*2 + 0x28], r15w
movzx eax, byte [r10 + 0x15]
mov byte [r13 + r10 + 0x15], al
mov word [r8 + r13*2 + 0x2a], r15w
movzx eax, byte [r10 + 0x16]
mov byte [r13 + r10 + 0x16], al
mov word [r8 + r13*2 + 0x2c], r15w
movzx eax, byte [r10 + 0x17]
mov byte [r13 + r10 + 0x17], al
mov word [r8 + r13*2 + 0x2e], r15w
movzx eax, byte [r10 + 0x18]
mov byte [r13 + r10 + 0x18], al
mov word [r8 + r13*2 + 0x30], r15w
movzx eax, byte [r10 + 0x19]
mov byte [r13 + r10 + 0x19], al
mov word [r8 + r13*2 + 0x32], r15w
movzx eax, byte [r10 + 0x1a]
mov byte [r13 + r10 + 0x1a], al
mov word [r8 + r13*2 + 0x34], r15w
movzx eax, byte [r10 + 0x1b]
mov r11d, 0x4000
mov byte [r13 + r10 + 0x1b], al
mov word [r8 + r13*2 + 0x36], r15w
movzx eax, byte [r10 + 0x1c]
mov byte [r13 + r10 + 0x1c], al
mov word [r8 + r13*2 + 0x38], r15w
movzx eax, byte [r10 + 0x1d]
mov byte [r13 + r10 + 0x1d], al
mov word [r8 + r13*2 + 0x3a], r15w
movzx eax, byte [r10 + 0x1e]
mov byte [r13 + r10 + 0x1e], al
mov word [r8 + r13*2 + 0x3c], r15w
movzx eax, byte [r10 + 0x1f]
mov byte [r13 + r10 + 0x1f], al
mov word [r8 + r13*2 + 0x3e], r15w
movzx eax, byte [r10 + 0x20]
mov byte [r13 + r10 + 0x20], al
mov word [r8 + r13*2 + 0x40], r15w
movzx eax, byte [r10 + 0x21]
mov byte [r13 + r10 + 0x21], al
mov word [r8 + r13*2 + 0x42], r15w
lea r8, [rbx + 8]
nop word [rax + rax]
mov ecx, dword [r8 + 4]
mov eax, dword [r8 - 8]
add dword [r8 - 4], eax
mov edx, dword [r8 - 4]
add edx, dword [r8]
mov dword [r8], edx
lea r8, [r8 + 0x10]
add ecx, edx
add dword [r8 - 8], ecx
mov dword [r8 - 0xc], ecx
sub r11, 1
jne 0x164c873f0
movzx r8d, byte [r10]
mov r12, qword [rsp + 0xda0]
shl r8w, 8
cmp r9d, 3
jl 0x164c874fc
lea r11, [r10 - 2]
movzx edx, r8w
add r11, rbp
lea edi, [r9 - 2]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r11 + 2]
lea r11, [r11 - 4]
shl ax, 8
movzx ecx, ax
shr rdx, 8
or rdx, rcx
ror cx, 8
mov eax, dword [rbx + rdx*4]
dec eax
mov dword [rbx + rdx*4], eax
cdqe
mov dword [r12 + rax*4], r9d
sub r9d, 4
movzx eax, byte [r11 + 5]
shl ax, 8
movzx edx, ax
movzx eax, cx
or rax, rdx
ror dx, 8
mov ecx, dword [rbx + rax*4]
dec ecx
mov dword [rbx + rax*4], ecx
lea eax, [rdi + 1]
movsxd rcx, ecx
mov dword [r12 + rcx*4], eax
movzx eax, byte [r11 + 4]
shl ax, 8
movzx r8d, ax
movzx eax, dx
or rax, r8
ror r8w, 8
mov ecx, dword [rbx + rax*4]
dec ecx
mov dword [rbx + rax*4], ecx
movsxd rax, ecx
mov dword [r12 + rax*4], edi
movzx eax, byte [r11 + 3]
shl ax, 8
or r8w, ax
movzx edx, r8w
mov eax, dword [rbx + rdx*4]
dec eax
mov dword [rbx + rdx*4], eax
movsxd rcx, eax
lea eax, [rdi - 1]
sub edi, 4
mov dword [r12 + rcx*4], eax
cmp r9d, 3
jge 0x164c87450
test r9d, r9d
js 0x164c8753f
movsxd rdx, r9d
add rdx, r10
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
shl ax, 8
shr r8w, 8
or ax, r8w
movzx r8d, ax
mov ecx, dword [rbx + r8*4]
dec ecx
movsxd rax, ecx
mov dword [rbx + r8*4], ecx
mov dword [r12 + rax*4], r9d
sub r9d, 1
jns 0x164c87510
mov ecx, r15d
mov rax, r15
nop word [rax + rax]
cmp rax, 0x100
jae 0x164c87963
mov dword [rsp + rax*4 + 0x150], ecx
inc ecx
mov byte [rsp + rax + 0x50], r15b
inc rax
cmp ecx, 0xff
jle 0x164c87550
mov r11d, 1
nop dword [rax + rax]
lea r11d, [r11 + r11*2]
inc r11d
cmp r11d, 0x100
jle 0x164c87580
mov eax, 0x55555556
imul r11d
mov r11d, edx
shr r11d, 0x1f
add r11d, edx
mov r14d, r11d
cmp r11d, 0xff
jg 0x164c87686
movsxd rsi, r11d
mov r10, rsi
nop dword [rax + rax]
mov r15d, dword [rsp + rsi*4 + 0x150]
mov r9d, r14d
mov ecx, r15d
mov rax, rsi
shl ecx, 8
movsxd rdx, ecx
mov ecx, r15d
shl ecx, 8
movsxd rcx, ecx
mov edi, dword [rbx + rdx*4 + 0x400]
sub edi, dword [rbx + rcx*4]
mov rcx, rsi
sub rcx, r10
mov r8d, dword [rsp + rcx*4 + 0x150]
mov ecx, r8d
shl ecx, 8
movsxd rdx, ecx
shl r8d, 8
movsxd rcx, r8d
mov edx, dword [rbx + rdx*4 + 0x400]
sub edx, dword [rbx + rcx*4]
cmp edx, edi
jbe 0x164c8766b
lea ebp, [r11 - 1]
nop word [rax + rax]
mov rdx, rax
sub r9d, r11d
sub rdx, r10
mov ecx, dword [rsp + rdx*4 + 0x150]
mov dword [rsp + rax*4 + 0x150], ecx
mov rax, rdx
cmp r9d, ebp
jle 0x164c8766b
mov rcx, rdx
sub rcx, r10
mov r8d, dword [rsp + rcx*4 + 0x150]
mov ecx, r8d
shl ecx, 8
movsxd rdx, ecx
shl r8d, 8
movsxd rcx, r8d
mov edx, dword [rbx + rdx*4 + 0x400]
sub edx, dword [rbx + rcx*4]
cmp edx, edi
ja 0x164c87620
inc r14d
mov dword [rsp + rax*4 + 0x150], r15d
inc rsi
cmp r14d, 0xff
jle 0x164c875c0
cmp r11d, 1
jne 0x164c87590
mov r14, qword [rsp + 0xda8]
xor esi, esi
mov r15, qword [rsp + 0xdb0]
mov qword [rsp + 0x48], rsi
nop word [rax + rax]
movsxd rax, dword [rsp + rsi*4 + 0x150]
xor edi, edi
mov rbp, rax
nop dword [rax]
cmp rdi, rbp
je 0x164c8772a
mov rax, rbp
shl rax, 8
add rax, rdi
mov ecx, dword [rbx + rax*4]
lea rsi, [rbx + rax*4]
bt ecx, 0x15
jb 0x164c87724
mov eax, dword [rsi + 4]
btr ecx, 0x15
btr eax, 0x15
dec eax
cmp eax, ecx
jle 0x164c87724
mov rdx, qword [rsp + 0xdd0]
mov r9d, r13d
mov qword [rsp + 0x38], rdx
mov r8, r15
mov dword [rsp + 0x28], eax
mov rdx, r14
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.164c86c80
mov rax, qword [rsp + 0xdd0]
cmp dword [rax], 0
jl 0x164c87941
or dword [rsi], 0x200000
inc rdi
cmp rdi, 0xff
jle 0x164c876c0
lea rdx, [rbx + rbp*4]
xor ecx, ecx
mov r8, rdx
nop
mov eax, dword [r8]
lea r8, [r8 + 0x400]
btr eax, 0x15
mov dword [rsp + rcx + 0x550], eax
mov eax, dword [r8 - 0x3fc]
btr eax, 0x15
dec eax
mov dword [rsp + rcx + 0x950], eax
add rcx, 4
cmp rcx, 0x3fc
jle 0x164c87740
mov eax, ebp
mov edi, ebp
shl eax, 8
cdqe
mov r9d, dword [rbx + rax*4]
lea rax, [rbx + rax*4]
btr r9d, 0x15
mov qword [rsp + 0x40], rax
cmp r9d, dword [rsp + rbp*4 + 0x550]
jge 0x164c877ed
movsxd rax, r9d
lea r10, [r12 + rax*4]
mov eax, dword [r10]
lea r8d, [rax - 1]
test r8d, r8d
jns 0x164c877b5
lea r8d, [r13 - 1]
add r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r14]
cmp byte [rsp + r11 + 0x50], 0
jne 0x164c877dc
movsxd rcx, dword [rsp + r11*4 + 0x550]
lea eax, [rcx + 1]
mov dword [r12 + rcx*4], r8d
mov dword [rsp + r11*4 + 0x550], eax
inc r9d
add r10, 4
cmp r9d, dword [rsp + rbp*4 + 0x550]
jl 0x164c877a2
shl edi, 8
movsxd rax, edi
lea rdi, [rbx + rax*4]
mov r9d, dword [rdi + 0x400]
btr r9d, 0x15
dec r9d
cmp r9d, dword [rsp + rbp*4 + 0x950]
jle 0x164c8786b
movsxd rax, r9d
lea r10, [r12 + rax*4]
nop word [rax + rax]
mov eax, dword [r10]
lea r8d, [rax - 1]
test r8d, r8d
jns 0x164c87833
lea r8d, [r13 - 1]
add r8d, eax
movsxd rax, r8d
movzx r11d, byte [rax + r14]
cmp byte [rsp + r11 + 0x50], 0
jne 0x164c8785a
movsxd rcx, dword [rsp + r11*4 + 0x950]
lea eax, [rcx - 1]
mov dword [r12 + rcx*4], r8d
mov dword [rsp + r11*4 + 0x950], eax
dec r9d
sub r10, 4
cmp r9d, dword [rsp + rbp*4 + 0x950]
jg 0x164c87820
mov eax, 0x80
or dword [rdx], 0x200000
or dword [rdx + 0x400], 0x200000
lea rdx, [rdx + 0x800]
sub rax, 1
jne 0x164c87870
mov rsi, qword [rsp + 0x48]
mov byte [rsp + rbp + 0x50], 1
cmp rsi, 0xff
jge 0x164c8792c
mov rax, qword [rsp + 0x40]
xor r9d, r9d
mov r8d, dword [rdi + 0x400]
btr r8d, 0x15
mov edx, dword [rax]
btr edx, 0x15
sub r8d, edx
cmp r8d, 0xfffe
jle 0x164c878e2
nop word [rax + rax]
inc r9d
mov eax, r8d
mov ecx, r9d
sar eax, cl
cmp eax, 0xfffe
jg 0x164c878d0
sub r8d, 1
js 0x164c8792c
movsxd rcx, r8d
movsxd rax, edx
add rcx, rax
lea r11, [r12 + rcx*4]
nop word [rax + rax]
movsxd r10, dword [r11]
mov edx, r8d
mov ecx, r9d
sar edx, cl
mov word [r15 + r10*2], dx
cmp r10d, 0x22
jge 0x164c87922
lea eax, [r10 + r13]
movsxd rcx, eax
mov word [r15 + rcx*2], dx
sub r11, 4
sub r8d, 1
jns 0x164c87900
inc rsi
mov qword [rsp + 0x48], rsi
cmp rsi, 0xff
jle 0x164c876b0
mov rdi, qword [rsp + 0xd58]
mov rsi, qword [rsp + 0xd60]
add rsp, 0xd68
pop r15
pop r14
pop r13
pop r12
pop rbp
pop rbx
ret
call fcn.164c8f034
int3