Function at 0x14004d560
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.140017f00
xor r14d, r14d
mov ebx, 0x2710
lea ecx, [r14 + 0x14]
mov dword [rsi], 0x50
mov dword [rsi + 4], 2
mov dword [rsi + 0xc], r14d
mov dword [rsi + 0x10], ebx
call fcn.14001f500
mov r12, rax
test rax, rax
jne 0x14004d5c8
xor ecx, ecx
call fcn.1400290a0
jmp 0x14004de40
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x14]
call fcn.140017f00
mov qword [rsi + 0x30], r12
mov dword [r12], 0x14
mov eax, dword [rbp + 0x1c]
mov dword [rsi + 0x1c], eax
test eax, eax
je 0x14004d62f
mov ecx, eax
shl rcx, 2
call fcn.14001f500
mov r11, rax
test rax, rax
je 0x14004d5bc
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 8]
mov dword [r11], ecx
cmp dword [rsi + 0x1c], 1
jbe 0x14004d61a
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0xc]
mov dword [r11 + 4], ecx
cmp dword [rsi + 0x1c], 2
jbe 0x14004d62b
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x10]
mov dword [r11 + 8], ecx
mov qword [rsi + 0x20], r11
movzx ecx, word [rdi]
mov qword [rsp + 0x40], r13
cmp ecx, 0x40
jg 0x14004da77
je 0x14004d914
dec ecx
je 0x14004d7de
dec ecx
je 0x14004d665
sub ecx, 6
je 0x14004d665
sub ecx, 8
je 0x14004d665
cmp ecx, 0x10
jne 0x14004daaf
mov ecx, 0x10
call fcn.14001f500
mov r13, rax
test rax, rax
je 0x14004dc78
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x10]
call fcn.140017f00
movzx r11d, word [rdi + 0x20]
mov ebp, 0x7fff
cmp r11w, bp
jle 0x14004d69d
mov edx, ebx
jmp 0x14004d6ba
movsx ecx, r11w
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 [r13], edx
movzx eax, word [rdi + 0x22]
cmp ax, bp
jle 0x14004d6cb
mov edx, ebx
jmp 0x14004d6e7
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 [r13 + 4], edx
movzx eax, word [rdi + 0x24]
mov dword [r13 + 8], eax
movzx eax, word [rdi + 0x1e]
imul eax, eax, 0x3e8
mov dword [r13 + 0xc], eax
mov dword [rsi + 0x38], 0x10
mov qword [rsi + 0x40], r13
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14004d470
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.14004d480
test eax, eax
js 0x14004de27
cmp word [rdi + 0x26], r14w
jne 0x14004d762
cmp word [rdi + 0x2a], r14w
je 0x14004de2c
movzx eax, word [rdi + 0x28]
cmp ax, bp
jbe 0x14004d76f
mov edx, ebx
jmp 0x14004d78b
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 [r12 + 4], edx
movzx eax, word [rdi + 0x26]
imul eax, eax, 0x3e8
mov dword [r12 + 8], eax
movzx eax, word [rdi + 0x2c]
cmp ax, bp
ja 0x14004d7c5
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 [r12 + 0xc], ebx
movzx eax, word [rdi + 0x2a]
imul eax, eax, 0x3e8
mov dword [r12 + 0x10], eax
jmp 0x14004de39
mov ecx, 4
call fcn.14001f500
mov r13, rax
test rax, rax
je 0x14004dc78
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 4]
call fcn.140017f00
movzx r11d, word [rdi + 0x1e]
mov ebp, 0x7fff
cmp r11w, bp
jle 0x14004d816
mov edx, ebx
jmp 0x14004d833
movsx ecx, r11w
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 [r13], edx
mov dword [rsi + 0x38], 4
mov qword [rsi + 0x40], r13
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14004d470
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.14004d480
test eax, eax
js 0x14004de27
cmp word [rdi + 0x20], r14w
jne 0x14004d898
cmp word [rdi + 0x24], r14w
je 0x14004de2c
movzx eax, word [rdi + 0x22]
cmp ax, bp
jbe 0x14004d8a5
mov edx, ebx
jmp 0x14004d8c1
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 [r12 + 4], edx
movzx eax, word [rdi + 0x20]
imul eax, eax, 0x3e8
mov dword [r12 + 8], eax
movzx eax, word [rdi + 0x26]
cmp ax, bp
ja 0x14004d8fb
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 [r12 + 0xc], ebx
movzx eax, word [rdi + 0x24]
imul eax, eax, 0x3e8
mov dword [r12 + 0x10], eax
jmp 0x14004de39
mov ecx, 8
call fcn.14001f500
mov r13, rax
test rax, rax
je 0x14004dc78
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 8]
call fcn.140017f00
movzx r11d, word [rdi + 0x1e]
mov ebp, 0x7fff
cmp r11w, bp
jle 0x14004d94c
mov edx, ebx
jmp 0x14004d969
movsx ecx, r11w
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 [r13], edx
movzx eax, word [rdi + 0x20]
cmp ax, bp
jle 0x14004d97a
mov edx, ebx
jmp 0x14004d996
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 [r13 + 4], edx
mov dword [rsi + 0x38], 8
mov qword [rsi + 0x40], r13
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14004d470
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.14004d480
test eax, eax
js 0x14004de27
cmp word [rdi + 0x22], r14w
jne 0x14004d9fb
cmp word [rdi + 0x26], r14w
je 0x14004de2c
movzx eax, word [rdi + 0x24]
cmp ax, bp
jbe 0x14004da08
mov edx, ebx
jmp 0x14004da24
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 [r12 + 4], edx
movzx eax, word [rdi + 0x22]
imul eax, eax, 0x3e8
mov dword [r12 + 8], eax
movzx eax, word [rdi + 0x28]
cmp ax, bp
ja 0x14004da5e
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 [r12 + 0xc], ebx
movzx eax, word [rdi + 0x26]
imul eax, eax, 0x3e8
mov dword [r12 + 0x10], eax
jmp 0x14004de39
cmp ecx, 0x80
je 0x14004dc60
cmp ecx, 0x100
je 0x14004dc60
cmp ecx, 0x200
je 0x14004dc60
cmp ecx, 0x400
je 0x14004dc60
cmp ecx, 0x800
je 0x14004dac0
lea rcx, str.Haptic:_Unknown_effect_type.
call fcn.140028e70
jmp 0x14004de3b
mov ecx, 0x18
call fcn.14001f500
mov r13, rax
test rax, rax
je 0x14004dc78
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x18]
call fcn.140017f00
movzx edx, byte [rdi + 0x1e]
mov dword [r13], edx
movzx eax, word [rdi + 0x20]
imul eax, eax, 0x3e8
mov dword [r13 + 4], eax
movzx eax, word [rdi + 0x22]
mov ecx, eax
mov dword [r13 + 8], eax
imul rcx, rdx
shl rcx, 2
call fcn.14001f500
mov r10d, r14d
mov ebp, 0x7fff
mov qword [r13 + 0x10], rax
movzx ecx, word [rdi + 0x22]
movzx eax, byte [rdi + 0x1e]
imul ecx, eax
test ecx, ecx
jle 0x14004db83
mov r9, r14
mov r8, r14
mov rax, qword [rdi + 0x28]
movzx ecx, word [r8 + rax]
cmp cx, bp
jbe 0x14004db44
mov edx, ebx
jmp 0x14004db60
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 [r13 + 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 0x14004db32
mov dword [rsi + 0x38], 0x18
mov qword [rsi + 0x40], r13
mov eax, dword [rdi + 0x14]
imul eax, eax, 0x3e8
mov dword [rsi + 8], eax
movzx ecx, word [rdi + 0x1a]
call fcn.14004d470
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.14004d480
test eax, eax
js 0x14004de27
cmp word [rdi + 0x30], r14w
jne 0x14004dbe4
cmp word [rdi + 0x34], r14w
je 0x14004de2c
movzx eax, word [rdi + 0x32]
cmp ax, bp
jbe 0x14004dbf1
mov edx, ebx
jmp 0x14004dc0d
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 [r12 + 4], edx
movzx eax, word [rdi + 0x30]
imul eax, eax, 0x3e8
mov dword [r12 + 8], eax
movzx eax, word [rdi + 0x36]
cmp ax, bp
ja 0x14004dc47
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 [r12 + 0xc], ebx
movzx eax, word [rdi + 0x34]
imul eax, eax, 0x3e8
mov dword [r12 + 0x10], eax
jmp 0x14004de39
mov eax, dword [rsi + 0x1c]
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.14001f500
mov r12, rax
test rax, rax
jne 0x14004dc84
xor ecx, ecx
call fcn.1400290a0
jmp 0x14004de3b
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x18]
call fcn.140017f00
mov r11d, r14d
cmp dword [rsi + 0x1c], r14d
jle 0x14004ddd7
lea r9, [r12 + 8]
lea r8, [rdi + 0x2a]
mov ebp, 0x7fff
nop dword [rax]
movzx eax, word [r8 + 0x12]
cmp ax, bp
jle 0x14004dcbe
mov edx, ebx
jmp 0x14004dcda
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 0x14004dceb
mov edx, ebx
jmp 0x14004dd07
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 0x14004dd19
mov edx, ebx
jmp 0x14004dd35
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 0x14004dd46
mov edx, ebx
jmp 0x14004dd62
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 0x14004dd74
mov edx, ebx
jmp 0x14004dd90
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 0x14004dda2
mov edx, ebx
jmp 0x14004ddbe
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 r11d
add r8, 2
add r9, 0x18
cmp r11d, dword [rsi + 0x1c]
jl 0x14004dcb0
mov eax, dword [rsi + 0x1c]
mov qword [rsi + 0x40], r12
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.14004d470
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.14004d480
test eax, eax
jns 0x14004de2c
or eax, 0xffffffff
jmp 0x14004de3b
mov rcx, qword [rsi + 0x30]
call fcn.14001f530
mov qword [rsi + 0x30], r14
xor eax, eax
mov r13, 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