Function at 0x14007c100
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r14
sub rsp, 0x20
mov rsi, rdx
xor edx, edx
mov rdi, r8
mov rbp, rcx
lea r8d, [rdx + 0x50]
mov rcx, rsi
call fcn.14001ceb0
xor r12d, r12d
mov ebx, 0x2710
lea ecx, [r12 + 0x14]
mov dword [rsi], 0x50
mov dword [rsi + 4], 2
mov dword [rsi + 0xc], r12d
mov dword [rsi + 0x10], ebx
call fcn.14003dad0
mov r14, rax
test rax, rax
jne 0x14007c169
xor ecx, ecx
call fcn.14001b9a0
jmp 0x14007c9c6
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x14]
call fcn.14001ceb0
mov qword [rsi + 0x30], r14
mov dword [r14], 0x14
mov eax, dword [rbp + 0x1c]
mov dword [rsi + 0x1c], eax
test eax, eax
je 0x14007c1cc
mov ecx, eax
shl rcx, 2
call fcn.14003dad0
mov rdx, rax
test rax, rax
je 0x14007c15d
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 8]
mov dword [rdx], ecx
cmp dword [rsi + 0x1c], 1
jbe 0x14007c1b8
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0xc]
mov dword [rdx + 4], ecx
cmp dword [rsi + 0x1c], 2
jbe 0x14007c1c8
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x10]
mov dword [rdx + 8], ecx
mov qword [rsi + 0x20], rdx
movzx ecx, word [rdi]
mov qword [rsp + 0x40], r15
cmp ecx, 0x40
jg 0x14007c5fc
je 0x14007c4a1
dec ecx
je 0x14007c373
dec ecx
je 0x14007c202
sub ecx, 6
je 0x14007c202
sub ecx, 8
je 0x14007c202
cmp ecx, 0x10
jne 0x14007c634
mov ecx, 0x10
call fcn.14003dad0
mov r15, rax
test rax, rax
je 0x14007c802
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x10]
call fcn.14001ceb0
movzx eax, word [rdi + 0x20]
mov ebp, 0x7fff
cmp ax, bp
jle 0x14007c238
mov edx, ebx
jmp 0x14007c254
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r15], edx
movzx eax, word [rdi + 0x22]
cmp ax, bp
jle 0x14007c264
mov edx, ebx
jmp 0x14007c280
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r15 + 4], edx
movzx eax, word [rdi + 0x24]
mov dword [r15 + 8], eax
movzx eax, word [rdi + 0x1e]
imul eax, eax, 0x3e8
mov dword [r15 + 0xc], eax
mov dword [rsi + 0x38], 0x10
mov qword [rsi + 0x40], r15
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14007a820
mov r8d, dword [rsi + 0x1c]
lea rdx, [rdi + 4]
mov dword [rsi + 0x14], eax
movzx eax, word [rdi + 0x1c]
mov rcx, rsi
mov dword [rsi + 0x18], eax
movzx eax, word [rdi + 0x18]
imul eax, eax, 0x3e8
mov dword [rsi + 0x48], eax
call fcn.14007c020
test eax, eax
js 0x14007c9ad
cmp word [rdi + 0x26], r12w
jne 0x14007c2fb
cmp word [rdi + 0x2a], r12w
je 0x14007c9b2
movzx eax, word [rdi + 0x28]
cmp ax, bp
jbe 0x14007c308
mov edx, ebx
jmp 0x14007c324
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r14 + 4], edx
movzx eax, word [rdi + 0x26]
imul eax, eax, 0x3e8
mov dword [r14 + 8], eax
movzx eax, word [rdi + 0x2c]
cmp ax, bp
ja 0x14007c35c
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
lea ebx, [rcx + rdx]
sar ebx, 0xe
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov dword [r14 + 0xc], ebx
movzx eax, word [rdi + 0x2a]
imul eax, eax, 0x3e8
mov dword [r14 + 0x10], eax
jmp 0x14007c9bf
mov ecx, 4
call fcn.14003dad0
mov r15, rax
test rax, rax
je 0x14007c802
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 4]
call fcn.14001ceb0
movzx eax, word [rdi + 0x1e]
mov ebp, 0x7fff
cmp ax, bp
jle 0x14007c3a9
mov edx, ebx
jmp 0x14007c3c5
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r15], edx
mov dword [rsi + 0x38], 4
mov qword [rsi + 0x40], r15
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14007a820
mov r8d, dword [rsi + 0x1c]
lea rdx, [rdi + 4]
mov dword [rsi + 0x14], eax
movzx eax, word [rdi + 0x1c]
mov rcx, rsi
mov dword [rsi + 0x18], eax
movzx eax, word [rdi + 0x18]
imul eax, eax, 0x3e8
mov dword [rsi + 0x48], eax
call fcn.14007c020
test eax, eax
js 0x14007c9ad
cmp word [rdi + 0x20], r12w
jne 0x14007c429
cmp word [rdi + 0x24], r12w
je 0x14007c9b2
movzx eax, word [rdi + 0x22]
cmp ax, bp
jbe 0x14007c436
mov edx, ebx
jmp 0x14007c452
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r14 + 4], edx
movzx eax, word [rdi + 0x20]
imul eax, eax, 0x3e8
mov dword [r14 + 8], eax
movzx eax, word [rdi + 0x26]
cmp ax, bp
ja 0x14007c48a
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
lea ebx, [rcx + rdx]
sar ebx, 0xe
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov dword [r14 + 0xc], ebx
movzx eax, word [rdi + 0x24]
imul eax, eax, 0x3e8
mov dword [r14 + 0x10], eax
jmp 0x14007c9bf
mov ecx, 8
call fcn.14003dad0
mov r15, rax
test rax, rax
je 0x14007c802
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 8]
call fcn.14001ceb0
movzx eax, word [rdi + 0x1e]
mov ebp, 0x7fff
cmp ax, bp
jle 0x14007c4d7
mov edx, ebx
jmp 0x14007c4f3
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r15], edx
movzx eax, word [rdi + 0x20]
cmp ax, bp
jle 0x14007c503
mov edx, ebx
jmp 0x14007c51f
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r15 + 4], edx
mov dword [rsi + 0x38], 8
mov qword [rsi + 0x40], r15
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14007a820
mov r8d, dword [rsi + 0x1c]
lea rdx, [rdi + 4]
mov dword [rsi + 0x14], eax
movzx eax, word [rdi + 0x1c]
mov rcx, rsi
mov dword [rsi + 0x18], eax
movzx eax, word [rdi + 0x18]
imul eax, eax, 0x3e8
mov dword [rsi + 0x48], eax
call fcn.14007c020
test eax, eax
js 0x14007c9ad
cmp word [rdi + 0x22], r12w
jne 0x14007c584
cmp word [rdi + 0x26], r12w
je 0x14007c9b2
movzx eax, word [rdi + 0x24]
cmp ax, bp
jbe 0x14007c591
mov edx, ebx
jmp 0x14007c5ad
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r14 + 4], edx
movzx eax, word [rdi + 0x22]
imul eax, eax, 0x3e8
mov dword [r14 + 8], eax
movzx eax, word [rdi + 0x28]
cmp ax, bp
ja 0x14007c5e5
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
lea ebx, [rcx + rdx]
sar ebx, 0xe
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov dword [r14 + 0xc], ebx
movzx eax, word [rdi + 0x26]
imul eax, eax, 0x3e8
mov dword [r14 + 0x10], eax
jmp 0x14007c9bf
cmp ecx, 0x80
je 0x14007c7ea
cmp ecx, 0x100
je 0x14007c7ea
cmp ecx, 0x200
je 0x14007c7ea
cmp ecx, 0x400
je 0x14007c7ea
cmp ecx, 0x800
je 0x14007c645
lea rcx, str.Haptic:_Unknown_effect_type.
call fcn.14001bc50
jmp 0x14007c9c1
mov ecx, 0x18
call fcn.14003dad0
mov r15, rax
test rax, rax
je 0x14007c802
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x18]
call fcn.14001ceb0
movzx edx, byte [rdi + 0x1e]
mov dword [r15], edx
movzx eax, word [rdi + 0x20]
imul eax, eax, 0x3e8
mov dword [r15 + 4], eax
movzx eax, word [rdi + 0x22]
mov ecx, eax
mov dword [r15 + 8], eax
imul rcx, rdx
shl rcx, 2
call fcn.14003dad0
mov r10d, r12d
mov ebp, 0x7fff
mov qword [r15 + 0x10], rax
movzx ecx, word [rdi + 0x22]
movzx eax, byte [rdi + 0x1e]
imul ecx, eax
test ecx, ecx
jle 0x14007c711
mov r9, r12
mov r8, r12
nop word [rax + rax]
mov rax, qword [rdi + 0x28]
movzx ecx, word [r8 + rax]
cmp cx, bp
jbe 0x14007c6d2
mov edx, ebx
jmp 0x14007c6ee
movzx ecx, cx
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [r15 + 0x10]
inc r10d
add r8, 2
mov dword [r9 + rax], edx
movzx ecx, word [rdi + 0x22]
movzx eax, byte [rdi + 0x1e]
imul ecx, eax
add r9, 4
cmp r10d, ecx
jl 0x14007c6c0
mov dword [rsi + 0x38], 0x18
mov qword [rsi + 0x40], r15
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14007a820
mov r8d, dword [rsi + 0x1c]
lea rdx, [rdi + 4]
mov dword [rsi + 0x14], eax
movzx eax, word [rdi + 0x1c]
mov rcx, rsi
mov dword [rsi + 0x18], eax
movzx eax, word [rdi + 0x18]
imul eax, eax, 0x3e8
mov dword [rsi + 0x48], eax
call fcn.14007c020
test eax, eax
js 0x14007c9ad
cmp word [rdi + 0x30], r12w
jne 0x14007c772
cmp word [rdi + 0x34], r12w
je 0x14007c9b2
movzx eax, word [rdi + 0x32]
cmp ax, bp
jbe 0x14007c77f
mov edx, ebx
jmp 0x14007c79b
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r14 + 4], edx
movzx eax, word [rdi + 0x30]
imul eax, eax, 0x3e8
mov dword [r14 + 8], eax
movzx eax, word [rdi + 0x36]
cmp ax, bp
ja 0x14007c7d3
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
lea ebx, [rcx + rdx]
sar ebx, 0xe
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov dword [r14 + 0xc], ebx
movzx eax, word [rdi + 0x34]
imul eax, eax, 0x3e8
mov dword [r14 + 0x10], eax
jmp 0x14007c9bf
mov eax, dword [rsi + 0x1c]
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.14003dad0
mov r14, rax
test rax, rax
jne 0x14007c80e
xor ecx, ecx
call fcn.14001b9a0
jmp 0x14007c9c1
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x18]
call fcn.14001ceb0
mov r10d, r12d
cmp dword [rsi + 0x1c], r12d
jle 0x14007c95d
lea r9, [r14 + 8]
lea r8, [rdi + 0x2a]
mov ebp, 0x7fff
movzx eax, word [r8 + 0x12]
cmp ax, bp
jle 0x14007c844
mov edx, ebx
jmp 0x14007c860
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r9 - 8], edx
movzx eax, word [r8]
cmp ax, bp
jle 0x14007c871
mov edx, ebx
jmp 0x14007c88d
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r9 - 4], edx
movzx eax, word [r8 + 6]
cmp ax, bp
jle 0x14007c89f
mov edx, ebx
jmp 0x14007c8bb
movsx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r9], edx
movzx eax, word [r8 - 0xc]
cmp ax, bp
jbe 0x14007c8cc
mov edx, ebx
jmp 0x14007c8e8
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r9 + 4], edx
movzx eax, word [r8 - 6]
cmp ax, bp
jbe 0x14007c8fa
mov edx, ebx
jmp 0x14007c916
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r9 + 8], edx
movzx eax, word [r8 + 0xc]
cmp ax, bp
jbe 0x14007c928
mov edx, ebx
jmp 0x14007c944
movzx ecx, ax
mov eax, 0x80010003
imul ecx, ecx, 0x2710
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [r9 + 0xc], edx
inc r10d
add r8, 2
add r9, 0x18
cmp r10d, dword [rsi + 0x1c]
jl 0x14007c836
mov eax, dword [rsi + 0x1c]
mov qword [rsi + 0x40], r14
lea ecx, [rax + rax*2]
shl ecx, 3
mov dword [rsi + 0x38], ecx
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14007a820
mov r8d, dword [rsi + 0x1c]
lea rdx, [rdi + 4]
mov dword [rsi + 0x14], eax
movzx eax, word [rdi + 0x1c]
mov rcx, rsi
mov dword [rsi + 0x18], eax
movzx eax, word [rdi + 0x18]
imul eax, eax, 0x3e8
mov dword [rsi + 0x48], eax
call fcn.14007c020
test eax, eax
jns 0x14007c9b2
or eax, 0xffffffff
jmp 0x14007c9c1
mov rcx, qword [rsi + 0x30]
call fcn.14003d430
mov qword [rsi + 0x30], r12
xor eax, eax
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop r12
pop rdi
ret