Function at 0x14003ba3c
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
movups xmmword [rsp + 0xb0], xmm6
movups xmmword [rsp + 0xc0], xmm7
movups xmmword [rsp + 0xd0], xmm8
xor eax, eax
mov r15, qword [rsp + 0x158]
mov dword [rsp + 0x9c], eax
mov rbx, rcx
movaps xmm6, xmm1
mov r13d, r8d
mov dword [rsp + 0x148], r9d
test rcx, rcx
jne 0x14003ba96
xor edi, edi
jmp 0x14003c5b9
call fcn.1400487b3
xor esi, esi
test eax, eax
je 0x14003bab9
lea rdx, [rsp + 0x9c]
mov rcx, rbx
xor esi, esi
call fcn.1400487c8
test eax, eax
sete sil
mov rax, qword [rbx + 8]
mov dl, byte [rax + 0x10]
cmp dl, 8
jne 0x14003bace
test esi, esi
je 0x14003ba8f
mov r12d, esi
jmp 0x14003badc
cmp dl, 0x20
jne 0x14003ba8f
xor r12d, r12d
cmp dword [rax + 0x20], 0
je 0x14003ba8f
mov edi, dword [r15 + 0xc]
mov edx, dword [r15 + 8]
lea r8d, [rdi + 2]
test r12d, r12d
je 0x14003bb43
mov eax, dword [rax]
mov r9d, 8
xor ecx, ecx
mov dword [rsp + 0x20], eax
call fcn.1400490d3
mov rdi, rax
test rax, rax
je 0x14003ba8f
mov rdx, qword [rbx + 8]
xor eax, eax
cmp qword [rdx + 8], 0
je 0x14003bb78
mov rdx, qword [rbx + 8]
mov r8, qword [rdx + 8]
mov rdx, qword [rdi + 8]
mov ecx, dword [r8]
mov rdx, qword [rdx + 8]
cmp ecx, eax
jle 0x14003bb3f
mov rcx, qword [r8 + 8]
mov rdx, qword [rdx + 8]
mov ecx, dword [rcx + rax*4]
mov dword [rdx + rax*4], ecx
inc rax
jmp 0x14003bb15
mov dword [rdx], ecx
jmp 0x14003bb78
mov ecx, dword [rax + 0x20]
mov r9d, 0x20
mov dword [rsp + 0x38], ecx
mov ecx, dword [rax + 0x1c]
mov dword [rsp + 0x30], ecx
mov ecx, dword [rax + 0x18]
mov dword [rsp + 0x28], ecx
mov eax, dword [rax + 0x14]
xor ecx, ecx
mov dword [rsp + 0x20], eax
call fcn.1400492da
mov rdi, rax
test rax, rax
je 0x14003ba8f
mov eax, dword [r15 + 0xc]
lea rdx, [rsp + 0x98]
mov rcx, rbx
mov dword [rdi + 0x14], eax
call fcn.1400489b7
dec esi
jne 0x14003bbbc
mov r8d, dword [rsp + 0x9c]
mov rcx, rdi
mov edx, 1
call fcn.14004871d
mov r8d, dword [rsp + 0x9c]
xor edx, edx
mov rcx, rdi
call fcn.1400443b4
jmp 0x14003bc25
mov eax, dword [rsp + 0x98]
test eax, eax
jne 0x14003bbd4
mov dword [rsp + 0x98], 1
jmp 0x14003bc25
sub eax, 4
and eax, 0xfffffffb
jne 0x14003bc25
xor eax, eax
mov rcx, qword [rdi + 8]
mov edx, 0xff
mov r9d, 0xff
mov dword [rsp + 0x20], eax
mov r8d, 0xff
call fcn.14004544d
xor edx, edx
mov rcx, rdi
mov r8d, eax
mov dword [rsp + 0x9c], eax
call fcn.1400443b4
mov r8d, dword [rsp + 0x9c]
mov edx, 1
mov rcx, rdi
call fcn.14004871d
mov edx, dword [rsp + 0x98]
mov rcx, rdi
call fcn.140048916
test byte [rbx], 2
je 0x14003bc41
mov rcx, rbx
call fcn.140048c97
divsd xmm6, qword [0x1401a1210]
cvttsd2si eax, xmm6
mov rsi, qword [rdi + 0x20]
movsxd rcx, dword [rdi + 0x18]
mov r9d, dword [rdi + 0x10]
cvtsi2sd xmm0, eax
ucomisd xmm6, xmm0
jp 0x14003be77
jne 0x14003be77
mov r15d, 4
cdq
idiv r15d
mov r8d, edx
test edx, edx
jns 0x14003bc82
add r8d, 4
test r12d, r12d
mov rbp, qword [rbx + 0x20]
lea rax, [rsp + 0xac]
lea rdx, [rsp + 0xa8]
lea r10, [rsp + 0xa4]
lea r11, [rsp + 0xa0]
je 0x14003bd81
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x150]
sub ecx, r9d
mov qword [rsp + 0x38], rdx
movsxd r12, ecx
mov rcx, rbx
mov r9d, dword [rsp + 0x148]
mov qword [rsp + 0x30], r10
mov edx, 1
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], eax
call fcn.14003b670
cmp dword [rsp + 0xa8], 0
jns 0x14003bcfd
mov eax, dword [rbx + 0x10]
dec eax
cdqe
add rbp, rax
cmp dword [rsp + 0xac], 0
jns 0x14003bd15
mov eax, dword [rbx + 0x14]
dec eax
imul eax, dword [rbx + 0x18]
cdqe
add rbp, rax
xor r13d, r13d
cmp r13d, dword [rdi + 0x14]
jge 0x14003be61
movsxd rax, dword [rsp + 0xa0]
movsxd r8, dword [rdi + 0x10]
cmp eax, 1
jne 0x14003bd4c
mov rdx, rbp
mov rcx, rsi
call fcn.140041662
movsxd rdx, dword [rdi + 0x10]
lea rax, [rbp + rdx]
add rsi, rdx
jmp 0x14003bd6e
lea rcx, [rsi + r8]
mov rdx, rbp
cmp rcx, rsi
je 0x14003bd67
mov r9b, byte [rdx]
inc rsi
add rdx, rax
mov byte [rsi - 1], r9b
jmp 0x14003bd53
imul rax, r8
add rax, rbp
movsxd rbp, dword [rsp + 0xa4]
add rsi, r12
inc r13d
add rbp, rax
jmp 0x14003bd18
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x150]
shl r9d, 2
mov qword [rsp + 0x38], rdx
sub ecx, r9d
mov r9d, dword [rsp + 0x148]
mov edx, 4
mov qword [rsp + 0x30], r10
movsxd r13, ecx
mov rcx, rbx
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], eax
call fcn.14003b670
cmp dword [rsp + 0xa8], 0
jns 0x14003bdd5
mov eax, dword [rbx + 0x10]
dec eax
cdqe
lea rbp, [rbp + rax*4]
cmp dword [rsp + 0xac], 0
jns 0x14003be30
mov eax, dword [rbx + 0x14]
dec eax
imul eax, dword [rbx + 0x18]
cdqe
add rbp, rax
jmp 0x14003be30
movsxd r8, dword [rdi + 0x10]
movsxd rax, dword [rsp + 0xa0]
shl r8, 2
cmp eax, 4
jne 0x14003be38
mov rcx, rsi
mov rdx, rbp
call fcn.140041662
movsxd rax, dword [rdi + 0x10]
shl rax, 2
lea r8, [rbp + rax]
add rsi, rax
movsxd rbp, dword [rsp + 0xa4]
add rsi, r13
inc r12d
add rbp, r8
cmp r12d, dword [rdi + 0x14]
jl 0x14003bdef
jmp 0x14003be61
lea rcx, [rsi + r8]
mov rdx, rbp
cmp rcx, rsi
je 0x14003be54
mov r9d, dword [rdx]
add rsi, 4
add rdx, rax
mov dword [rsi - 4], r9d
jmp 0x14003be3f
shr r8, 2
imul r8, rax
add r8, rbp
jmp 0x14003be1f
test byte [rbx], 2
je 0x14003c5b9
mov rcx, rbx
call fcn.140048cc2
jmp 0x14003c5b9
movsd xmm6, qword [0x1401a1218]
test r12d, r12d
mov ebp, dword [rbx + 0x10]
movsd xmm1, qword [rsp + 0x160]
mov r12d, dword [rbx + 0x14]
movsd xmm0, qword [rsp + 0x168]
mulsd xmm1, xmm6
mulsd xmm0, xmm6
cvttsd2si eax, xmm1
mov dword [rsp + 0x50], eax
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
je 0x14003c05f
mov rax, qword [rsp + 0x170]
movsxd r14, dword [rdi + 0x14]
mov r13d, ecx
sub r13d, r9d
imul r14, rcx
movss xmm8, dword [rax]
movss xmm7, dword [rax + 4]
mov rcx, rbx
xor eax, eax
mov dword [rsp + 0xac], eax
call fcn.1400487b3
test eax, eax
je 0x14003befe
lea rdx, [rsp + 0xac]
mov rcx, rbx
call fcn.1400487c8
cvtss2sd xmm0, xmm7
lea eax, [rbp - 1]
mov r8, r14
mov rcx, rsi
cvtss2sd xmm8, xmm8
mulsd xmm8, xmm6
mov dword [rsp + 0x58], eax
lea eax, [r12 - 1]
mulsd xmm0, xmm6
movzx edx, byte [rsp + 0xac]
mov dword [rsp + 0x5c], eax
movsxd r13, r13d
cvttsd2si ebp, xmm8
cvttsd2si r12d, xmm0
call fcn.140041675
movsd xmm4, qword [0x1401a11f8]
movsd xmm5, qword [0x1401a1220]
xor r8d, r8d
cmp r8d, dword [rdi + 0x14]
jge 0x14003be61
cvtsi2sd xmm0, dword [r15]
mov rax, qword [rsp + 0x170]
xor edx, edx
cvtsi2sd xmm3, dword [rsp + 0x50]
cvtss2sd xmm1, dword [rax]
mov eax, dword [r15 + 4]
cvtsi2sd xmm6, dword [rsp + 0x54]
addsd xmm0, xmm4
add eax, r8d
subsd xmm0, xmm1
cvtsi2sd xmm1, eax
mov rax, qword [rsp + 0x170]
cvtss2sd xmm2, dword [rax + 4]
addsd xmm1, xmm4
subsd xmm1, xmm2
movaps xmm2, xmm0
mulsd xmm2, xmm3
mulsd xmm0, xmm6
movaps xmm7, xmm1
mulsd xmm7, xmm6
mulsd xmm1, xmm3
subsd xmm2, xmm7
cvtsi2sd xmm7, ebp
addsd xmm0, xmm1
cvtsi2sd xmm1, r12d
addsd xmm2, xmm7
addsd xmm0, xmm1
subsd xmm2, xmm5
subsd xmm0, xmm5
cvttsd2si r9d, xmm2
cvttsd2si r10d, xmm0
cmp dword [rdi + 0x10], edx
jle 0x14003c050
mov ecx, r9d
sar ecx, 0x10
cmp ecx, dword [rbx + 0x10]
jae 0x14003c03d
mov eax, r10d
sar eax, 0x10
cmp eax, dword [rbx + 0x14]
jae 0x14003c03d
cmp dword [rsp + 0x148], 0
je 0x14003c015
mov r14d, dword [rsp + 0x58]
sub r14d, ecx
mov ecx, r14d
cmp dword [rsp + 0x150], 0
je 0x14003c02a
mov r11d, dword [rsp + 0x5c]
sub r11d, eax
mov eax, r11d
imul eax, dword [rbx + 0x18]
movsxd rcx, ecx
cdqe
add rax, qword [rbx + 0x20]
mov al, byte [rax + rcx]
mov byte [rsi + rdx], al
mov eax, dword [rsp + 0x50]
inc rdx
add r9d, eax
mov eax, dword [rsp + 0x54]
add r10d, eax
jmp 0x14003bfe5
add rdx, rsi
inc r8d
lea rsi, [rdx + r13]
jmp 0x14003bf53
lea eax, [rbp - 1]
shl r9d, 2
mov dword [rsp + 0x74], eax
lea eax, [r12 - 1]
sub ecx, r9d
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0x170]
cvtss2sd xmm0, dword [rax]
mulsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x170]
cvtss2sd xmm0, dword [rax + 4]
mulsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rsp + 0x80], eax
test r13d, r13d
jne 0x14003c0ca
movsd xmm4, qword [0x1401a11f8]
movsd xmm5, qword [0x1401a1220]
xor r8d, r8d
movsxd rcx, ecx
jmp 0x14003c4c6
xor r12d, r12d
movsxd rax, ecx
movsd xmm4, qword [0x1401a11f8]
movsd xmm5, qword [0x1401a1220]
mov dword [rsp + 0x68], r12d
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x68]
cmp eax, dword [rdi + 0x14]
jge 0x14003be61
cvtsi2sd xmm0, dword [r15]
mov rax, qword [rsp + 0x170]
xor r13d, r13d
cvtsi2sd xmm3, dword [rsp + 0x50]
mov dword [rsp + 0x84], r13d
cvtss2sd xmm1, dword [rax]
mov eax, dword [rsp + 0x68]
add eax, dword [r15 + 4]
cvtsi2sd xmm6, dword [rsp + 0x54]
addsd xmm0, xmm4
subsd xmm0, xmm1
cvtsi2sd xmm1, eax
mov rax, qword [rsp + 0x170]
cvtss2sd xmm2, dword [rax + 4]
addsd xmm1, xmm4
subsd xmm1, xmm2
movaps xmm2, xmm0
mulsd xmm2, xmm3
mulsd xmm0, xmm6
movaps xmm7, xmm1
mulsd xmm7, xmm6
mulsd xmm1, xmm3
subsd xmm2, xmm7
cvtsi2sd xmm7, dword [rsp + 0x7c]
addsd xmm0, xmm1
cvtsi2sd xmm1, dword [rsp + 0x80]
addsd xmm2, xmm7
addsd xmm0, xmm1
subsd xmm2, xmm5
subsd xmm0, xmm5
cvttsd2si eax, xmm2
mov dword [rsp + 0x6c], eax
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x84]
cmp eax, dword [rdi + 0x10]
jge 0x14003c482
mov ecx, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x70]
sar ecx, 0x10
sar edx, 0x10
cmp dword [rsp + 0x148], 0
je 0x14003c1c8
mov eax, dword [rsp + 0x74]
sub eax, ecx
mov ecx, eax
cmp dword [rsp + 0x150], 0
je 0x14003c1da
mov eax, dword [rsp + 0x78]
sub eax, edx
mov edx, eax
mov eax, ecx
or eax, edx
js 0x14003c462
mov eax, dword [rbx + 0x10]
dec eax
cmp ecx, eax
jge 0x14003c462
mov eax, dword [rbx + 0x14]
dec eax
cmp edx, eax
jge 0x14003c462
mov eax, dword [rbx + 0x18]
movsxd rcx, ecx
mov r11d, 4
imul edx, eax
movsxd rdx, edx
lea r9, [rdx + rcx*4]
add r9, qword [rbx + 0x20]
mov dl, byte [r9 + 2]
movzx r8d, byte [r9]
movzx ecx, byte [r9 + 1]
movzx r13d, byte [r9 + 4]
mov byte [rsp + 0x58], dl
mov dl, byte [r9 + 3]
movzx ebp, byte [r9 + 5]
mov byte [rsp + 0x5c], dl
mov dl, byte [r9 + 6]
mov byte [rsp + 0x63], dl
mov dl, byte [r9 + 7]
mov byte [rsp + 0x64], dl
cdq
idiv r11d
inc eax
cmp dword [rsp + 0x148], 0
cdqe
lea r10, [r9 + rax*4]
mov al, byte [r10 + 3]
movzx r14d, byte [r10]
movzx r12d, byte [r10 + 1]
movzx r11d, byte [r10 + 2]
movzx r9d, byte [r10 - 4]
movzx edx, byte [r10 - 3]
mov byte [rsp + 0x65], al
mov al, byte [r10 - 2]
mov r10b, byte [r10 - 1]
mov byte [rsp + 0x66], al
mov byte [rsp + 0x67], r10b
jne 0x14003c301
mov r10b, byte [rsp + 0x65]
mov al, byte [rsp + 0x67]
mov byte [rsp + 0x67], r10b
mov r10d, r11d
movzx r11d, byte [rsp + 0x66]
mov byte [rsp + 0x66], r10b
mov r10d, r12d
movzx r12d, dl
movzx edx, r10b
mov r10d, r14d
mov byte [rsp + 0x65], al
movzx r14d, r9b
mov al, byte [rsp + 0x5c]
movzx r9d, r10b
mov r10b, byte [rsp + 0x64]
mov byte [rsp + 0x64], al
mov al, byte [rsp + 0x58]
mov byte [rsp + 0x5c], r10b
mov r10b, byte [rsp + 0x63]
mov byte [rsp + 0x63], al
mov byte [rsp + 0x58], r10b
mov r10d, ebp
movzx ebp, cl
movzx ecx, r10b
mov r10d, r13d
movzx r13d, r8b
movzx r8d, r10b
cmp dword [rsp + 0x150], 0
jne 0x14003c37a
mov r10b, byte [rsp + 0x67]
mov al, byte [rsp + 0x5c]
mov byte [rsp + 0x5c], r10b
mov r10b, byte [rsp + 0x66]
mov byte [rsp + 0x67], al
mov al, byte [rsp + 0x58]
mov byte [rsp + 0x58], r10b
mov r10d, edx
movzx edx, cl
movzx ecx, r10b
mov r10d, r9d
movzx r9d, r8b
mov byte [rsp + 0x66], al
movzx r8d, r10b
mov r10b, byte [rsp + 0x65]
mov al, byte [rsp + 0x64]
mov byte [rsp + 0x64], r10b
mov r10d, r11d
movzx r11d, byte [rsp + 0x63]
mov byte [rsp + 0x65], al
mov byte [rsp + 0x63], r10b
mov r10d, r12d
movzx r12d, bpl
movzx ebp, r10b
mov r10d, r14d
movzx r14d, r13b
movzx r13d, r10b
movzx r10d, word [rsp + 0x6c]
sub r8d, r13d
sub r9d, r14d
sub edx, r12d
sub ecx, ebp
movzx eax, byte [rsp + 0x66]
imul r9d, r10d
imul r8d, r10d
sub eax, r11d
imul edx, r10d
sar r9d, 0x10
imul ecx, r10d
sar r8d, 0x10
imul eax, r10d
add r9d, r14d
add r8d, r13d
movzx r13d, r9b
sar edx, 0x10
movzx r8d, r8b
sar ecx, 0x10
add edx, r12d
sub r8d, r13d
movzx r13d, word [rsp + 0x70]
add ecx, ebp
sar eax, 0x10
movzx ecx, cl
add eax, r11d
imul r8d, r13d
sar r8d, 0x10
add r8d, r9d
mov byte [rsi], r8b
movzx r8d, dl
sub ecx, r8d
imul ecx, r13d
sar ecx, 0x10
add ecx, edx
movzx edx, byte [rsp + 0x58]
mov byte [rsi + 1], cl
movzx ecx, byte [rsp + 0x63]
sub edx, ecx
imul edx, r10d
sar edx, 0x10
add edx, ecx
movzx ecx, al
movzx edx, dl
sub edx, ecx
movzx ecx, byte [rsp + 0x5c]
imul edx, r13d
sar edx, 0x10
add edx, eax
movzx eax, byte [rsp + 0x65]
mov byte [rsi + 2], dl
movzx edx, byte [rsp + 0x67]
sub edx, eax
imul edx, r10d
sar edx, 0x10
add edx, eax
movzx eax, byte [rsp + 0x64]
sub ecx, eax
imul ecx, r10d
sar ecx, 0x10
add ecx, eax
movzx eax, dl
movzx ecx, cl
sub ecx, eax
imul ecx, r13d
sar ecx, 0x10
add ecx, edx
mov byte [rsi + 3], cl
mov ecx, dword [rsp + 0x50]
inc dword [rsp + 0x84]
add rsi, 4
add dword [rsp + 0x6c], ecx
mov ecx, dword [rsp + 0x54]
add dword [rsp + 0x70], ecx
jmp 0x14003c198
mov rax, qword [rsp + 0x88]
inc dword [rsp + 0x68]
add rsi, rax
jmp 0x14003c0ed
mov eax, r10d
sar eax, 0x10
cmp eax, dword [rbx + 0x10]
jb 0x14003c564
mov eax, dword [rsp + 0x50]
add rsi, 4
inc r9d
add r10d, eax
mov eax, dword [rsp + 0x54]
add r11d, eax
cmp r9d, dword [rdi + 0x10]
jl 0x14003c496
add rsi, rcx
inc r8d
cmp r8d, dword [rdi + 0x14]
jge 0x14003be61
cvtsi2sd xmm0, dword [r15]
mov rax, qword [rsp + 0x170]
xor r9d, r9d
cvtsi2sd xmm3, dword [rsp + 0x50]
cvtss2sd xmm1, dword [rax]
mov eax, dword [r15 + 4]
cvtsi2sd xmm6, dword [rsp + 0x54]
addsd xmm0, xmm4
add eax, r8d
subsd xmm0, xmm1
cvtsi2sd xmm1, eax
mov rax, qword [rsp + 0x170]
cvtss2sd xmm2, dword [rax + 4]
addsd xmm1, xmm4
subsd xmm1, xmm2
movaps xmm2, xmm0
mulsd xmm2, xmm3
mulsd xmm0, xmm6
movaps xmm7, xmm1
mulsd xmm7, xmm6
mulsd xmm1, xmm3
subsd xmm2, xmm7
cvtsi2sd xmm7, dword [rsp + 0x7c]
addsd xmm0, xmm1
cvtsi2sd xmm1, dword [rsp + 0x80]
addsd xmm2, xmm7
addsd xmm0, xmm1
subsd xmm2, xmm5
subsd xmm0, xmm5
cvttsd2si r10d, xmm2
cvttsd2si r11d, xmm0
jmp 0x14003c4ba
mov edx, r11d
sar edx, 0x10
cmp edx, dword [rbx + 0x14]
jae 0x14003c4a5
cmp dword [rsp + 0x148], 0
je 0x14003c588
mov r14d, dword [rsp + 0x74]
sub r14d, eax
mov eax, r14d
cmp dword [rsp + 0x150], 0
je 0x14003c59d
mov r14d, dword [rsp + 0x78]
sub r14d, edx
mov edx, r14d
imul edx, dword [rbx + 0x18]
mov rbp, qword [rbx + 0x20]
cdqe
lea rax, [rbp + rax*4]
movsxd rdx, edx
mov eax, dword [rax + rdx]
mov dword [rsi], eax
jmp 0x14003c4a5
movups xmm6, xmmword [rsp + 0xb0]
movups xmm7, xmmword [rsp + 0xc0]
mov rax, rdi
movups xmm8, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret