Function at 0x140088140
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd60
mov rbx, r9
mov r11, r8
mov r10, rdx
mov r12, rcx
mov eax, 0x10000
xor ebp, ebp
mov dword [r9 + rax*4], ebp
sub rax, 1
jns 0x140088174
movsxd r13, dword [rsp + 0xdc0]
movzx r8d, byte [rdx]
shl r8d, 8
lea edi, [r13 - 1]
movsxd r14, edi
mov rsi, r14
cmp r14, 3
jl 0x14008823f
lea rdi, [r14 + 1]
shr rdi, 2
lea r9, [rdx - 2]
add r9, r14
lea r10, [r11 - 4]
mov eax, edi
lea r10, [r10 + r14*2]
neg eax
lea r14d, [r14 + rax*4]
mov word [r10 + 4], bp
lea r10, [r10 - 8]
movzx ecx, byte [r9 + 2]
lea r9, [r9 - 4]
shl ecx, 8
sar r8d, 8
or ecx, r8d
movsxd rax, ecx
sar ecx, 8
inc dword [rbx + rax*4]
mov word [r10 + 0xa], bp
movzx edx, byte [r9 + 5]
shl edx, 8
or edx, ecx
movsxd rax, edx
sar edx, 8
inc dword [rbx + rax*4]
mov word [r10 + 8], bp
movzx ecx, byte [r9 + 4]
shl ecx, 8
or ecx, edx
movsxd rax, ecx
sar ecx, 8
inc dword [rbx + rax*4]
mov word [r10 + 6], bp
movzx r8d, byte [r9 + 3]
shl r8d, 8
or r8d, ecx
movsxd rax, r8d
inc dword [rbx + rax*4]
sub rdi, 1
jne 0x1400881c1
mov r10, qword [rsp + 0xda8]
lea edi, [r13 - 1]
movsxd rdx, r14d
test r14d, r14d
js 0x140088275
nop word [rax + rax]
mov eax, r8d
mov word [r11 + rdx*2], bp
movzx ecx, byte [rdx + r10]
sar eax, 8
shl ecx, 8
mov r8d, ecx
or r8d, eax
movsxd rax, r8d
inc dword [rbx + rax*4]
sub rdx, 1
jns 0x140088250
movzx eax, byte [r10]
mov byte [r13 + r10], al
mov word [r11 + r13*2], bp
movzx eax, byte [r10 + 1]
mov byte [r13 + r10 + 1], al
mov word [r11 + r13*2 + 2], bp
movzx eax, byte [r10 + 2]
mov byte [r13 + r10 + 2], al
mov word [r11 + r13*2 + 4], bp
movzx eax, byte [r10 + 3]
mov byte [r13 + r10 + 3], al
mov word [r11 + r13*2 + 6], bp
movzx eax, byte [r10 + 4]
mov byte [r13 + r10 + 4], al
mov word [r11 + r13*2 + 8], bp
movzx eax, byte [r10 + 5]
mov byte [r13 + r10 + 5], al
mov word [r11 + r13*2 + 0xa], bp
movzx eax, byte [r10 + 6]
mov byte [r13 + r10 + 6], al
mov word [r11 + r13*2 + 0xc], bp
movzx eax, byte [r10 + 7]
mov byte [r13 + r10 + 7], al
mov word [r11 + r13*2 + 0xe], bp
movzx eax, byte [r10 + 8]
mov byte [r13 + r10 + 8], al
mov word [r11 + r13*2 + 0x10], bp
movzx eax, byte [r10 + 9]
mov byte [r13 + r10 + 9], al
mov word [r11 + r13*2 + 0x12], bp
movzx eax, byte [r10 + 0xa]
mov byte [r13 + r10 + 0xa], al
mov word [r11 + r13*2 + 0x14], bp
movzx eax, byte [r10 + 0xb]
mov byte [r13 + r10 + 0xb], al
mov word [r11 + r13*2 + 0x16], bp
movzx eax, byte [r10 + 0xc]
mov byte [r13 + r10 + 0xc], al
mov word [r11 + r13*2 + 0x18], bp
movzx eax, byte [r10 + 0xd]
mov byte [r13 + r10 + 0xd], al
mov word [r11 + r13*2 + 0x1a], bp
movzx eax, byte [r10 + 0xe]
mov byte [r13 + r10 + 0xe], al
mov word [r11 + r13*2 + 0x1c], bp
movzx eax, byte [r10 + 0xf]
mov byte [r13 + r10 + 0xf], al
mov word [r11 + r13*2 + 0x1e], bp
movzx eax, byte [r10 + 0x10]
mov byte [r13 + r10 + 0x10], al
mov word [r11 + r13*2 + 0x20], bp
movzx eax, byte [r10 + 0x11]
mov byte [r13 + r10 + 0x11], al
mov word [r11 + r13*2 + 0x22], bp
movzx eax, byte [r10 + 0x12]
mov byte [r13 + r10 + 0x12], al
mov word [r11 + r13*2 + 0x24], bp
movzx eax, byte [r10 + 0x13]
mov byte [r13 + r10 + 0x13], al
mov word [r11 + r13*2 + 0x26], bp
movzx eax, byte [r10 + 0x14]
mov byte [r13 + r10 + 0x14], al
mov word [r11 + r13*2 + 0x28], bp
movzx eax, byte [r10 + 0x15]
mov byte [r13 + r10 + 0x15], al
mov word [r11 + r13*2 + 0x2a], bp
movzx eax, byte [r10 + 0x16]
mov byte [r13 + r10 + 0x16], al
mov word [r11 + r13*2 + 0x2c], bp
movzx eax, byte [r10 + 0x17]
mov byte [r13 + r10 + 0x17], al
mov word [r11 + r13*2 + 0x2e], bp
movzx eax, byte [r10 + 0x18]
mov byte [r13 + r10 + 0x18], al
mov word [r11 + r13*2 + 0x30], bp
movzx eax, byte [r10 + 0x19]
mov byte [r13 + r10 + 0x19], al
mov word [r11 + r13*2 + 0x32], bp
movzx eax, byte [r10 + 0x1a]
mov byte [r13 + r10 + 0x1a], al
mov word [r11 + r13*2 + 0x34], bp
movzx eax, byte [r10 + 0x1b]
lea r8, [rbx + 8]
mov byte [r13 + r10 + 0x1b], al
mov r9d, 0x4000
mov word [r11 + r13*2 + 0x36], bp
movzx eax, byte [r10 + 0x1c]
mov byte [r13 + r10 + 0x1c], al
mov word [r11 + r13*2 + 0x38], bp
movzx eax, byte [r10 + 0x1d]
mov byte [r13 + r10 + 0x1d], al
mov word [r11 + r13*2 + 0x3a], bp
movzx eax, byte [r10 + 0x1e]
mov byte [r13 + r10 + 0x1e], al
mov word [r11 + r13*2 + 0x3c], bp
movzx eax, byte [r10 + 0x1f]
mov byte [r13 + r10 + 0x1f], al
mov word [r11 + r13*2 + 0x3e], bp
movzx eax, byte [r10 + 0x20]
mov byte [r13 + r10 + 0x20], al
mov word [r11 + r13*2 + 0x40], bp
movzx eax, byte [r10 + 0x21]
mov byte [r13 + r10 + 0x21], al
mov word [r11 + r13*2 + 0x42], bp
nop dword [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 r9, 1
jne 0x1400884a0
movzx r8d, byte [r10]
mov r9d, edi
shl r8w, 8
cmp edi, 3
jl 0x14008859c
add edi, 0xfffffffe
movzx edx, r8w
lea r11, [rsi - 2]
add r11, r10
nop dword [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 0x1400884f0
test r9d, r9d
js 0x1400885df
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 0x1400885b0
movdqa xmm2, xmmword [0x1400b02e0]
lea rdx, [rsp + 0x64]
xorps xmm0, xmm0
lea r8, [rsp + 0x170]
movdqa xmmword [rsp + 0x50], xmm0
mov ecx, 8
mov r9d, dword [rsp + 0x50]
nop word [rax + rax]
mov dword [rdx - 4], r9d
lea eax, [rcx - 8]
movd xmm1, eax
lea r8, [r8 + 0x40]
pshufd xmm1, xmm1, 0
lea eax, [rcx - 4]
paddd xmm1, xmm2
mov dword [rdx], r9d
movdqu xmmword [r8 - 0x50], xmm1
mov dword [rdx + 4], r9d
movd xmm1, eax
lea eax, [rcx + 4]
pshufd xmm1, xmm1, 0
mov dword [rdx + 8], r9d
lea rdx, [rdx + 0x10]
paddd xmm1, xmm2
movdqu xmmword [r8 - 0x40], xmm1
movd xmm1, ecx
add ecx, 0x10
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movdqu xmmword [r8 - 0x30], xmm1
movd xmm1, eax
lea eax, [rcx - 8]
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movdqu xmmword [r8 - 0x20], xmm1
cmp eax, 0xff
jle 0x140088610
mov r11d, 1
nop
lea r11d, [r11 + r11*2]
inc r11d
cmp r11d, 0x100
jle 0x140088690
mov eax, 0x55555556
imul r11d
mov r11d, edx
shr r11d, 0x1f
add r11d, edx
mov r14d, r11d
cmp r11d, 0xff
jg 0x140088796
movsxd rsi, r11d
mov r10, rsi
nop dword [rax + rax]
mov r15d, dword [rsp + rsi*4 + 0x160]
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 + 0x160]
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 0x14008877b
lea ebp, [r11 - 1]
nop word [rax + rax]
mov rdx, rax
sub r9d, r11d
sub rdx, r10
mov ecx, dword [rsp + rdx*4 + 0x160]
mov dword [rsp + rax*4 + 0x160], ecx
mov rax, rdx
cmp r9d, ebp
jle 0x14008877b
mov rcx, rdx
sub rcx, r10
mov r8d, dword [rsp + rcx*4 + 0x160]
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 0x140088730
inc r14d
mov dword [rsp + rax*4 + 0x160], r15d
inc rsi
cmp r14d, 0xff
jle 0x1400886d0
cmp r11d, 1
jne 0x1400886a0
mov r14, qword [rsp + 0xda8]
xor ebp, ebp
mov r15, qword [rsp + 0xdb0]
mov qword [rsp + 0x40], rbp
nop word [rax + rax]
movsxd rax, dword [rsp + rbp*4 + 0x160]
xor edi, edi
mov dword [rsp + 0xdc0], eax
mov rbp, rax
cmp rdi, rbp
je 0x140088846
mov rax, rbp
shl rax, 8
add rax, rdi
mov ecx, dword [rbx + rax*4]
lea rsi, [rbx + rax*4]
bt ecx, 0x15
jb 0x140088840
mov eax, dword [rsi + 4]
btr ecx, 0x15
btr eax, 0x15
dec eax
cmp eax, ecx
jle 0x140088840
mov rdx, qword [rsp + 0xdd0]
mov r9d, r13d
mov qword [rsp + 0x38], rdx
mov r8, r15
mov dword [rsp + 0x30], 2
mov rdx, r14
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.140087d00
mov rax, qword [rsp + 0xdd0]
cmp dword [rax], 0
jl 0x140088ac8
or dword [rsi], 0x200000
inc rdi
cmp rdi, 0xff
jle 0x1400887d4
lea rax, [rsp + 0x60]
add rax, rbp
mov qword [rsp + 0xda8], rax
cmp byte [rax], 0
je 0x140088871
mov ecx, 0x3ee
call fcn.140003840
lea rbp, [rbp*4]
xor ecx, ecx
lea rdi, [rbx + rbp]
mov rdx, rdi
mov eax, dword [rdx]
lea rdx, [rdx + 0x400]
btr eax, 0x15
mov dword [rsp + rcx + 0x560], eax
mov eax, dword [rdx - 0x3fc]
btr eax, 0x15
dec eax
mov dword [rsp + rcx + 0x960], eax
add rcx, 4
cmp rcx, 0x3fc
jle 0x140088882
mov r11d, dword [rsp + 0xdc0]
mov eax, r11d
shl eax, 8
cdqe
mov r8d, dword [rbx + rax*4]
lea rax, [rbx + rax*4]
btr r8d, 0x15
mov qword [rsp + 0x50], rax
cmp r8d, dword [rsp + rbp + 0x560]
jge 0x140088938
movsxd rax, r8d
lea r9, [r12 + rax*4]
nop dword [rax]
mov eax, dword [r9]
lea edx, [rax - 1]
test edx, edx
jns 0x140088900
lea edx, [r13 - 1]
add edx, eax
movsxd rax, edx
movzx r10d, byte [rax + r14]
cmp byte [rsp + r10 + 0x60], 0
jne 0x140088927
movsxd rcx, dword [rsp + r10*4 + 0x560]
lea eax, [rcx + 1]
mov dword [r12 + rcx*4], edx
mov dword [rsp + r10*4 + 0x560], eax
inc r8d
add r9, 4
cmp r8d, dword [rsp + rbp + 0x560]
jl 0x1400888f0
mov ecx, dword [rsp + rbp + 0x960]
shl r11d, 8
movsxd rax, r11d
lea rsi, [rbx + rax*4]
mov r8d, dword [rsi + 0x400]
btr r8d, 0x15
dec r8d
cmp r8d, ecx
jle 0x1400889af
movsxd rax, r8d
lea r9, [r12 + rax*4]
mov eax, dword [r9]
lea edx, [rax - 1]
test edx, edx
jns 0x140088975
lea edx, [r13 - 1]
add edx, eax
movsxd rax, edx
movzx r10d, byte [rax + r14]
cmp byte [rsp + r10 + 0x60], 0
jne 0x14008899c
movsxd rcx, dword [rsp + r10*4 + 0x960]
lea eax, [rcx - 1]
mov dword [r12 + rcx*4], edx
mov dword [rsp + r10*4 + 0x960], eax
mov ecx, dword [rsp + rbp + 0x960]
dec r8d
sub r9, 4
cmp r8d, ecx
jg 0x140088965
mov edx, dword [rsp + rbp + 0x560]
lea eax, [rdx - 1]
cmp eax, ecx
je 0x1400889d3
test edx, edx
jne 0x1400889c9
lea eax, [r13 - 1]
cmp ecx, eax
je 0x1400889d3
mov ecx, 0x3ef
call fcn.140003840
mov eax, 0x80
nop dword [rax + rax]
or dword [rdi], 0x200000
or dword [rdi + 0x400], 0x200000
lea rdi, [rdi + 0x800]
sub rax, 1
jne 0x1400889e0
mov rax, qword [rsp + 0xda8]
mov rbp, qword [rsp + 0x40]
mov byte [rax], 1
cmp rbp, 0xff
jge 0x140088ab3
mov rax, qword [rsp + 0x50]
xor r10d, r10d
mov edx, dword [rsi + 0x400]
btr edx, 0x15
mov r8d, dword [rax]
btr r8d, 0x15
sub edx, r8d
cmp edx, 0xfffe
jle 0x140088a51
nop
inc r10d
mov eax, edx
mov ecx, r10d
sar eax, cl
cmp eax, 0xfffe
jg 0x140088a40
lea edi, [rdx - 1]
movsxd r9, edi
test edi, edi
js 0x140088a9c
movsxd rcx, r8d
add rcx, r9
lea r11, [r12 + rcx*4]
nop word [rax + rax]
movsxd rdx, dword [r11]
mov r8d, r9d
mov ecx, r10d
sar r8d, cl
mov word [r15 + rdx*2], r8w
cmp edx, 0x22
jge 0x140088a92
lea eax, [rdx + r13]
movsxd rdx, eax
mov word [r15 + rdx*2], r8w
sub r11, 4
sub r9d, 1
jns 0x140088a70
mov ecx, r10d
sar edi, cl
cmp edi, 0xffff
jle 0x140088ab3
mov ecx, 0x3ea
call fcn.140003840
inc rbp
mov qword [rsp + 0x40], rbp
cmp rbp, 0xff
jle 0x1400887c0
mov rbx, qword [rsp + 0xda0]
add rsp, 0xd60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret