Function at 0x1400a9840
Capabilities:
Enumerate pe sections

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x258]
sub rsp, 0x318
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
mov r12, rcx
xor r15d, r15d
lea edi, [r15 + 8]
xorps xmm13, xmm13
cmp dword [rcx + 0x70], r15d
jge 0x1400a9973
mov dword [rbp + 0x10], 0xffffffff
mov qword [rbp + 0x14], r15
mov dword [rbp + 0x1c], r15d
mov qword [rbp + 0x20], r15
mov dword [rbp + 8], 0x80000000
mov dword [rbp + 0xc], 0x20002
mov r8d, dword [rcx + 0x54]
mov ecx, dword [rcx + 0x50]
cmp ecx, r8d
jne 0x1400a9944
lea ebx, [rcx + 1]
test r8d, r8d
je 0x1400a98f0
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x1400a98f2
mov eax, edi
cmp eax, ebx
cmovg ebx, eax
cmp ebx, r8d
jle 0x1400a9944
movsxd rcx, ebx
shl rcx, 5
call fcn.14000d710
mov rdi, rax
mov rdx, qword [r12 + 0x58]
test rdx, rdx
je 0x1400a9930
movsxd r8, dword [r12 + 0x50]
shl r8, 5
mov rcx, rax
call fcn.14007b250
mov rcx, qword [r12 + 0x58]
call fcn.14000d9c0
mov qword [r12 + 0x58], rdi
mov dword [r12 + 0x54], ebx
mov ecx, dword [r12 + 0x50]
mov edi, 8
movsxd rcx, ecx
shl rcx, 5
mov rax, qword [r12 + 0x58]
movups xmm0, xmmword [rbp + 8]
movups xmmword [rcx + rax], xmm0
movups xmm1, xmmword [rbp + 0x18]
movups xmmword [rcx + rax + 0x10], xmm1
mov ecx, dword [r12 + 0x50]
lea eax, [rcx + 1]
mov dword [r12 + 0x50], eax
mov dword [r12 + 0x70], ecx
mov qword [r12 + 8], r15
mov qword [r12 + 0x28], r15
mov qword [r12 + 0x30], r15
mov qword [r12 + 0x38], r15
mov rcx, qword [r12 + 0x18]
test rcx, rcx
je 0x1400a9996
call fcn.14000d9c0
mov rcx, qword [r12 + 0x20]
test rcx, rcx
je 0x1400a99a5
call fcn.14000d9c0
mov qword [r12 + 0x18], r15
mov qword [r12 + 0x20], r15
mov qword [rbp + 0x68], r15
mov rsi, r15
mov qword [rsp + 0x60], r15
mov qword [rbp + 0x70], r15
mov qword [rbp - 0x50], r15
mov r13, r15
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x48], r15
mov r14d, dword [r12 + 0x60]
mov dword [rbp + 0x268], r14d
test r14d, r14d
jle 0x1400a9a0c
mov ebx, r14d
cmp r14d, 8
cmovl ebx, edi
test ebx, ebx
jle 0x1400a9a0c
movsxd rax, ebx
imul rcx, rax, 0x108
call fcn.14000d710
mov rsi, rax
mov qword [rsp + 0x60], rax
mov qword [rbp + 0x70], rax
mov dword [rbp + 0x6c], ebx
mov dword [rbp + 0x68], r14d
mov edi, dword [r12 + 0x40]
mov dword [rbp + 0x278], edi
test edi, edi
jle 0x1400a9a4b
mov ebx, edi
cmp edi, 8
mov ecx, 8
cmovl ebx, ecx
test ebx, ebx
jle 0x1400a9a4b
movsxd rcx, ebx
shl rcx, 5
call fcn.14000d710
mov r13, rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x4c], ebx
mov dword [rbp - 0x50], edi
imul ecx, r14d, 0x108
movsxd r8, ecx
xor edx, edx
mov rcx, rsi
call fcn.14007b900
mov ecx, edi
shl ecx, 5
movsxd r8, ecx
xor edx, edx
mov rcx, r13
call fcn.14007b900
mov dword [rbp - 0x60], 0xff0020
mov word [rbp - 0x5c], r15w
mov dword [rbp - 0x18], 0xff0020
mov dword [rbp - 0x14], 0x206f2000
mov dword [rbp - 0x10], 0x30ff3000
mov dword [rbp - 0xc], 0x31ff31f0
mov dword [rbp - 8], 0xffefff00
mov dword [rbp - 4], 0x9faf4e00
mov word [rbp], r15w
mov dword [rbp - 0x30], 0xff0020
mov dword [rbp - 0x2c], 0x52f0400
mov dword [rbp - 0x28], 0x2dff2de0
mov dword [rbp - 0x24], 0xa69fa640
mov word [rbp - 0x20], r15w
cmp dword [r12 + 0x60], 0
jle 0x1400a9bf3
xor edi, edi
lea rbx, [rsi + 0xdc]
nop word [rax + rax]
mov rsi, qword [r12 + 0x68]
mov dword [rbx - 4], 0xffffffff
xor edx, edx
cmp dword [r12 + 0x40], edx
jle 0x1400a9fbf
mov eax, 0xffffffff
xor r8d, r8d
cmp eax, 0xffffffff
jne 0x1400a9b46
mov rax, qword [r12 + 0x48]
mov rcx, qword [r8 + rax]
cmp qword [rdi + rsi + 0x48], rcx
jne 0x1400a9b2d
mov dword [rbx - 4], edx
mov eax, edx
jmp 0x1400a9b30
mov eax, dword [rbx - 4]
inc edx
add r8, 8
cmp edx, dword [r12 + 0x40]
jl 0x1400a9b11
cmp eax, 0xffffffff
je 0x1400a9fbf
mov edx, dword [rdi + rsi + 0xc]
mov rcx, qword [rdi + rsi]
call fcn.1400a3a30
mov r8d, eax
mov rdx, qword [rdi + rsi]
lea rcx, [rbx - 0xdc]
call fcn.1400a3d40
test eax, eax
je 0x1400a9fbf
movsxd r8, dword [rbx - 4]
shl r8, 5
add r8, r13
movzx eax, byte [rdi + rsi + 0x30]
test al, al
jne 0x1400a9b88
lea rdx, [rbp - 0x60]
jmp 0x1400a9b96
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x30]
cmp al, 2
cmovne rdx, rcx
mov qword [rbx - 0xc], rdx
cmp word [rdx], 0
je 0x1400a9bbc
movzx eax, word [rdx + 2]
test ax, ax
je 0x1400a9bbc
mov ecx, eax
cmp dword [rbx], eax
cmovge ecx, dword [rbx]
mov dword [rbx], ecx
add rdx, 4
cmp word [rdx], 0
jne 0x1400a9ba0
inc dword [r8]
mov ecx, dword [rbx]
cmp dword [r8 + 4], ecx
cmovge ecx, dword [r8 + 4]
mov dword [r8 + 4], ecx
inc r15d
add rbx, 0x108
add rdi, 0x50
cmp r15d, dword [r12 + 0x60]
jl 0x1400a9af0
mov r14d, dword [rbp + 0x268]
mov rsi, qword [rsp + 0x60]
xor r15d, r15d
mov r13d, r15d
mov dword [rbp + 0x270], r15d
test r14d, r14d
jle 0x1400a9d9e
lea r14, [rsi + 0xe0]
mov ebx, dword [rbp + 0x268]
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
movsxd r15, dword [r14 - 8]
shl r15, 5
add r15, qword [rsp + 0x78]
mov edx, dword [r14 - 4]
inc edx
lea rcx, [r14 + 8]
call fcn.14001f440
lea rcx, [r15 + 0x10]
cmp dword [rcx], 0
jne 0x1400a9c50
mov edx, dword [r15 + 4]
inc edx
call fcn.14001f440
mov r12, qword [r14 - 0x10]
movzx eax, word [r12]
test ax, ax
je 0x1400a9cf1
movzx ecx, word [r12 + 2]
test cx, cx
je 0x1400a9cec
movzx ebx, ax
cmp ebx, ecx
ja 0x1400a9cda
nop dword [rax]
nop dword [rax + rax]
mov edx, ebx
sar edx, 5
mov ecx, ebx
and ecx, 0x1f
mov esi, 1
shl esi, cl
movsxd rdi, edx
mov rax, qword [r15 + 0x18]
test dword [rax + rdi*4], esi
jne 0x1400a9cc7
lea rcx, [r14 - 0xe0]
mov edx, ebx
call fcn.1400a4570
test eax, eax
je 0x1400a9cc7
inc dword [r14]
inc dword [r15 + 8]
mov rax, qword [r14 + 0x10]
or dword [rax + rdi*4], esi
mov rax, qword [r15 + 0x18]
or dword [rax + rdi*4], esi
inc r13d
inc ebx
movzx eax, word [r12 + 2]
cmp ebx, eax
jle 0x1400a9c80
mov dword [rbp + 0x270], r13d
add r12, 4
movzx eax, word [r12]
test ax, ax
jne 0x1400a9c62
mov rbx, qword [rsp + 0x70]
add r14, 0x108
sub rbx, 1
mov qword [rsp + 0x70], rbx
jne 0x1400a9c20
mov rbx, qword [rsp + 0x60]
add rbx, 0x100
xor r13d, r13d
movsxd rdi, dword [rbx - 0x20]
cmp edi, dword [rbx - 4]
jle 0x1400a9d54
mov rcx, rdi
shl rcx, 2
call fcn.14000d710
mov rsi, rax
mov rdx, qword [rbx]
test rdx, rdx
je 0x1400a9d4e
movsxd r8, dword [rbx - 8]
shl r8, 2
mov rcx, rax
call fcn.14007b250
mov rcx, qword [rbx]
call fcn.14000d9c0
mov qword [rbx], rsi
mov dword [rbx - 4], edi
lea rdx, [rbx - 8]
lea rcx, [rbx - 0x18]
call fcn.140022240
mov rcx, qword [rbx - 0x10]
test rcx, rcx
je 0x1400a9d77
mov qword [rbx - 0x18], r13
call fcn.14000d9c0
mov qword [rbx - 0x10], r13
add rbx, 0x108
sub qword [rsp + 0x68], 1
jne 0x1400a9d16
mov r13d, dword [rbp + 0x270]
mov r12, qword [rbp + 0x260]
mov r14d, dword [rbp + 0x268]
xor r15d, r15d
mov eax, dword [rbp + 0x278]
test eax, eax
jle 0x1400a9dd5
mov rbx, qword [rsp + 0x78]
add rbx, 0x18
mov edi, eax
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400a9dcb
mov qword [rbx - 8], 0
call fcn.14000d9c0
mov qword [rbx], r15
add rbx, 0x20
sub rdi, 1
jne 0x1400a9db3
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1400a9dfb
mov qword [rbp - 0x50], 0
mov rcx, rax
call fcn.14000d9c0
mov rax, r15
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], 0
mov rdi, r15
mov qword [rsp + 0x68], r15
mov qword [rbp - 0x38], r15
mov qword [rbp + 8], 0
mov rsi, r15
mov qword [rsp + 0x70], r15
mov qword [rbp + 0x10], r15
mov eax, 8
test r13d, r13d
jle 0x1400a9e5e
mov ebx, r13d
cmp r13d, eax
cmovl ebx, eax
test ebx, ebx
jle 0x1400a9e5e
movsxd rax, ebx
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.14000d710
mov rdi, rax
mov qword [rsp + 0x68], rax
mov qword [rbp - 0x38], rax
mov dword [rbp - 0x3c], ebx
mov eax, 8
mov dword [rbp - 0x40], r13d
test r13d, r13d
jle 0x1400a9e90
mov ebx, r13d
cmp r13d, 8
cmovl ebx, eax
test ebx, ebx
jle 0x1400a9e90
movsxd rax, ebx
imul rcx, rax, 0x1c
call fcn.14000d710
mov rsi, rax
mov qword [rsp + 0x70], rax
mov qword [rbp + 0x10], rax
mov dword [rbp + 0xc], ebx
mov dword [rbp + 8], r13d
lea ecx, [r13*2]
add ecx, r13d
shl ecx, 3
movsxd r8, ecx
xor edx, edx
mov rcx, rdi
call fcn.14007b900
imul ecx, r13d, 0x1c
movsxd r8, ecx
xor edx, edx
mov rcx, rsi
call fcn.14007b900
mov edx, r15d
mov dword [rbp + 0x278], edx
mov r9d, r15d
mov r10d, r15d
test r14d, r14d
jle 0x1400aa344
mov rbx, qword [rsp + 0x60]
add rbx, 0xc8
mov r13d, r14d
mov qword [rbp - 0x68], r13
nop dword [rax + rax]
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x1400aa328
movsxd rax, r9d
lea rcx, [rax + rax*2]
lea rax, [rdi + rcx*8]
mov qword [rbx - 8], rax
movsxd rax, r10d
imul rdx, rax, 0x1c
add rdx, rsi
mov qword [rbx], rdx
add r9d, r8d
mov dword [rbp - 0x7c], r9d
add r10d, r8d
mov dword [rbp - 0x78], r10d
mov rsi, qword [r12 + 0x68]
mov qword [rbp + 0x78], rsi
mov eax, dword [r15 + rsi + 0x10]
mov dword [rbx - 0x30], eax
mov dword [rbx - 0x2c], 0
mov rax, qword [rbx + 0x38]
mov qword [rbx - 0x28], rax
mov edi, dword [rbx + 0x30]
mov dword [rbx - 0x20], edi
mov qword [rbx - 0x18], rdx
movzx eax, byte [r15 + rsi + 0x14]
mov byte [rbx - 0x10], al
movzx eax, byte [r15 + rsi + 0x18]
mov byte [rbx - 0xf], al
movss xmm8, dword [r15 + rsi + 0x10]
comiss xmm8, xmm13
jbe 0x1400a9fc6
movsxd r11, dword [rbx - 0xac]
mov r10, qword [rbx - 0xc8]
movzx edx, byte [r11 + r10 + 6]
mov r14d, 0x100
movsx ecx, r14w
imul edx, ecx
movzx eax, byte [r11 + r10 + 7]
add dx, ax
movsx r9d, dx
movzx r8d, byte [r11 + r10 + 5]
movzx eax, byte [r11 + r10 + 4]
movsx ecx, r14w
imul eax, ecx
add ax, r8w
cwde
sub eax, r9d
movd xmm0, eax
jmp 0x1400a9ff7
xor bl, bl
jmp 0x1400aac60
movaps xmm0, xmm8
call fcn.14002fc10
movaps xmm8, xmm0
movsxd rcx, dword [rbx - 0xb4]
mov rax, qword [rbx - 0xc8]
movzx edx, byte [rcx + rax + 0x13]
movzx eax, byte [rcx + rax + 0x12]
shl eax, 8
add edx, eax
movd xmm0, edx
mov edi, dword [rbx + 0x30]
cvtdq2ps xmm0, xmm0
divss xmm8, xmm0
mov eax, dword [r12 + 0x14]
mov dword [rbp - 0x58], eax
xor r14d, r14d
mov dword [rbp - 0x80], r14d
test edi, edi
jle 0x1400aa310
xor edi, edi
mov r13d, edi
mov ecx, edi
mov qword [rbp - 0x70], rcx
jmp 0x1400aa032
xor edi, edi
mov rax, qword [rbx + 0x38]
mov edx, dword [rax + rcx]
lea rcx, [rbx - 0xc8]
call fcn.1400a4570
movd xmm7, dword [r15 + rsi + 0x18]
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm8
mov r11d, dword [r15 + rsi + 0x14]
movd xmm6, r11d
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm8
mov edx, eax
lea rcx, [rbx - 0xc8]
cmp dword [rbx - 0x84], 0
je 0x1400aa0c2
mov qword [rbp + 0x28], 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x40], xmm1
mov qword [rbp + 0x50], rdi
mov dword [rbp + 0x58], edi
lea r8, [rbp + 0x28]
call fcn.1400a5c70
mov r11d, edi
test eax, eax
cmovne r11d, dword [rbp + 0x40]
mov r14d, edi
cmovne r14d, dword [rbp + 0x48]
cmovne edi, dword [rbp + 0x44]
xor esi, esi
test eax, eax
cmovne esi, dword [rbp + 0x4c]
jmp 0x1400aa14c
call fcn.1400a4900
test eax, eax
jns 0x1400aa0d7
mov eax, edi
mov r8d, edi
xor edx, edx
jmp 0x1400aa292
movsxd r10, eax
mov r9, qword [rbx - 0xc8]
movzx edx, byte [r9 + r10 + 2]
mov esi, 0x100
movsx ecx, si
imul edx, ecx
movzx eax, byte [r9 + r10 + 3]
add dx, ax
movsx r11d, dx
movzx edx, byte [r9 + r10 + 4]
movsx ecx, si
imul edx, ecx
movzx eax, byte [r9 + r10 + 5]
add dx, ax
movsx r14d, dx
movzx r8d, byte [r9 + r10 + 7]
movzx edx, byte [r9 + r10 + 6]
movsx ecx, si
imul edx, ecx
add r8w, dx
movsx edi, r8w
movzx r8d, byte [r9 + r10 + 9]
movzx edx, byte [r9 + r10 + 8]
movsx ecx, si
imul edx, ecx
add r8w, dx
movsx esi, r8w
movd xmm0, r11d
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
addss xmm0, xmm13
call fcn.14000e230
cvttss2si eax, xmm0
mov dword [rbp + 0x60], eax
movd xmm0, esi
cvtdq2ps xmm0, xmm0
call fcn.14002fc10
mulss xmm0, xmm7
addss xmm0, xmm13
call fcn.14000e230
cvttss2si eax, xmm0
mov dword [rbp + 0x64], eax
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
addss xmm0, xmm13
movss dword [rbp + 0x270], xmm0
mov eax, dword [rbp + 0x270]
mov ecx, eax
shr ecx, 0x17
movzx ecx, cl
sub ecx, 0x7f
cmp ecx, 0x17
jge 0x1400aa1fd
test ecx, ecx
js 0x1400aa1e1
mov edx, 0x7fffff
sar edx, cl
test eax, edx
je 0x1400aa1fd
test eax, eax
js 0x1400aa1cd
add eax, edx
not edx
and eax, edx
mov dword [rbp + 0x270], eax
movss xmm0, dword [rbp + 0x270]
jmp 0x1400aa1fd
test eax, eax
jns 0x1400aa1ec
mov ecx, 0x80000000
jmp 0x1400aa1f8
test eax, 0x7fffffff
je 0x1400aa1fd
mov ecx, 0x3f800000
call fcn.14002fc40
cvttss2si edi, xmm0
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
call fcn.14002fc10
mulss xmm0, xmm7
addss xmm0, xmm13
movss dword [rbp + 0x270], xmm0
mov eax, dword [rbp + 0x270]
mov ecx, eax
shr ecx, 0x17
movzx ecx, cl
sub ecx, 0x7f
cmp ecx, 0x17
jge 0x1400aa27a
test ecx, ecx
js 0x1400aa25e
mov edx, 0x7fffff
sar edx, cl
test eax, edx
je 0x1400aa27a
test eax, eax
js 0x1400aa24a
add eax, edx
not edx
and eax, edx
mov dword [rbp + 0x270], eax
movss xmm0, dword [rbp + 0x270]
jmp 0x1400aa27a
test eax, eax
jns 0x1400aa269
mov ecx, 0x80000000
jmp 0x1400aa275
test eax, 0x7fffffff
je 0x1400aa27a
mov ecx, 0x3f800000
call fcn.14002fc40
cvttss2si edx, xmm0
mov rsi, qword [rbp + 0x78]
mov r11d, dword [r15 + rsi + 0x14]
mov eax, dword [rbp + 0x60]
mov r8d, dword [rbp + 0x64]
mov r14d, dword [rbp - 0x80]
sub r11d, eax
add r11d, edi
mov r9d, dword [rbp - 0x58]
lea ecx, [r9 - 1]
add ecx, r11d
mov rax, qword [rbx - 8]
mov dword [rax + r13 + 0xc], ecx
mov eax, dword [r15 + rsi + 0x18]
sub eax, r8d
add eax, edx
lea ecx, [r9 - 1]
add ecx, eax
mov rax, qword [rbx - 8]
mov dword [rax + r13 + 0x10], ecx
mov rcx, qword [rbx - 8]
mov eax, dword [rcx + r13 + 0x10]
imul eax, dword [rcx + r13 + 0xc]
mov edx, dword [rbp + 0x278]
add edx, eax
mov dword [rbp + 0x278], edx
inc r14d
mov dword [rbp - 0x80], r14d
mov rcx, qword [rbp - 0x70]
add rcx, 4
mov qword [rbp - 0x70], rcx
add r13, 0x18
cmp r14d, dword [rbx + 0x30]
jl 0x1400aa030
mov r12, qword [rbp + 0x260]
mov r13, qword [rbp - 0x68]
jmp 0x1400aa316
mov edx, dword [rbp + 0x278]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov r10d, dword [rbp - 0x78]
mov r9d, dword [rbp - 0x7c]
add rbx, 0x108
add r15, 0x50
sub r13, 1
mov qword [rbp - 0x68], r13
jne 0x1400a9ef0
xor r15d, r15d
movd xmm0, edx
cvtdq2ps xmm0, xmm0
call fcn.14000e180
movaps xmm6, xmm0
mov ecx, 0x3f800000
call fcn.14002fc40
cvttss2si eax, xmm6
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
cvttss2si ecx, xmm0
mov dword [r12 + 0x2c], r15d
mov eax, dword [r12 + 0x10]
test eax, eax
jg 0x1400aa3cb
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
mov ecx, 0x45333333
call fcn.14002fc40
comiss xmm6, xmm0
jb 0x1400aa39b
mov eax, 0x1000
jmp 0x1400aa3cb
mov ecx, 0x44b33333
call fcn.14002fc40
comiss xmm6, xmm0
jb 0x1400aa3b1
mov eax, 0x800
jmp 0x1400aa3cb
mov ecx, 0x44333333
call fcn.14002fc40
mov eax, 0x200
comiss xmm6, xmm0
mov ecx, 0x400
cmovae eax, ecx
mov dword [r12 + 0x28], eax
mov rsi, r15
mov qword [rbp + 0x28], r15
mov dword [rbp + 0x30], r15d
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x38], xmm0
mov qword [rbp + 0x48], r15
mov r13, r15
mov qword [rbp + 0x58], r15
mov r14d, dword [r12 + 0x14]
mov r15d, dword [r12 + 0x28]
mov ecx, 0x14
call fcn.14000d710
mov rbx, rax
mov edi, r15d
sub edi, r14d
movsxd rcx, edi
call fcn.14000d710
test rbx, rbx
je 0x1400aa468
test rax, rax
je 0x1400aa463
mov dword [rbp + 0x30], r15d
mov rsi, rbx
mov qword [rbp + 0x28], rbx
mov r13, rax
mov qword [rbp + 0x58], rax
mov dword [rbp + 0x3c], r14d
mov dword [rbp + 0x38], r15d
mov dword [rbp + 0x44], 1
mov dword [rbp + 0x48], 1
xor r15d, r15d
mov dword [rbp + 0x40], r15d
mov dword [rbx], edi
mov eax, 0x8000
sub eax, r14d
mov dword [rbx + 4], eax
mov qword [rbx + 8], r15
mov dword [rbx + 0x10], r15d
jmp 0x1400aa478
mov rcx, rbx
jmp 0x1400aa470
test rax, rax
je 0x1400aa475
mov rcx, rax
call fcn.14000d9c0
xor r15d, r15d
mov qword [rbp + 0x78], 0
mov rdi, r15
mov qword [rbp + 0x80], r15
mov ebx, dword [r12 + 0x50]
test ebx, ebx
jle 0x1400aa4b6
mov eax, ebx
cmp ebx, 8
mov ecx, 8
cmovl eax, ecx
test eax, eax
jle 0x1400aa4b6
cdqe
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.14000d710
mov rdi, rax
lea ecx, [rbx + rbx*2]
shl ecx, 3
movsxd r8, ecx
xor edx, edx
mov rcx, rdi
call fcn.14007b900
mov r9d, r15d
cmp dword [r12 + 0x50], 0
jle 0x1400aa50d
mov rdx, r15
lea r8, [rdi + 0x10]
nop dword [rax + rax]
mov rax, qword [r12 + 0x58]
movzx ecx, word [rdx + rax + 4]
mov dword [r8 - 4], ecx
mov rax, qword [r12 + 0x58]
movzx ecx, word [rdx + rax + 6]
mov dword [r8], ecx
inc r9d
lea rdx, [rdx + 0x20]
lea r8, [r8 + 0x18]
cmp r9d, dword [r12 + 0x50]
jl 0x1400aa4e0
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
call fcn.1400a9030
test ebx, ebx
jle 0x1400aa576
mov r8, r15
lea rdx, [rdi + 4]
mov r9, rbx
nop dword [rax]
cmp dword [rdx + 0x10], 0
je 0x1400aa568
movzx ecx, word [rdx - 4]
mov rax, qword [r12 + 0x58]
mov word [r8 + rax + 8], cx
movzx ecx, word [rdx]
mov rax, qword [r12 + 0x58]
mov word [r8 + rax + 0xa], cx
mov ecx, dword [rdx]
add ecx, dword [rdx + 0xc]
cmp dword [r12 + 0x2c], ecx
cmovge ecx, dword [r12 + 0x2c]
mov dword [r12 + 0x2c], ecx
add r8, 0x20
add rdx, 0x18
sub r9, 1
jne 0x1400aa530
test rdi, rdi
je 0x1400aa584
mov rcx, rdi
call fcn.14000d9c0
nop
mov edi, dword [rbp + 0x268]
mov r14, qword [rsp + 0x60]
test edi, edi
jle 0x1400aa602
lea rbx, [r14 + 0xe0]
nop word [rax + rax]
mov r8d, dword [rbx]
test r8d, r8d
je 0x1400aa5ef
mov rdx, qword [rbx - 0x20]
mov rcx, rsi
call fcn.1400a9030
mov r8d, r15d
cmp dword [rbx], 0
jle 0x1400aa5ef
mov rdx, r15
nop
mov rax, qword [rbx - 0x20]
cmp dword [rdx + rax + 0x14], 0
je 0x1400aa5e3
mov ecx, dword [rdx + rax + 0x10]
add ecx, dword [rdx + rax + 4]
cmp dword [r12 + 0x2c], ecx
cmovge ecx, dword [r12 + 0x2c]
mov dword [r12 + 0x2c], ecx
inc r8d
add rdx, 0x18
cmp r8d, dword [rbx]
jl 0x1400aa5c0
add rbx, 0x108
sub rdi, 1
jne 0x1400aa5a0
mov edi, dword [rbp + 0x268]
mov eax, dword [r12 + 0x2c]
test byte [r12 + 4], 1
jne 0x1400aa634
lea ecx, [rax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
inc eax
mov dword [r12 + 0x2c], eax
mov ecx, 0x3f800000
call fcn.14002fc40
movaps xmm6, xmm0
movd xmm1, dword [r12 + 0x2c]
cvtdq2ps xmm1, xmm1
divss xmm6, xmm1
mov ebx, dword [r12 + 0x28]
mov ecx, 0x3f800000
call fcn.14002fc40
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
movss dword [r12 + 0x30], xmm0
movss dword [r12 + 0x34], xmm6
imul ebx, dword [r12 + 0x2c]
movsxd rcx, ebx
call fcn.14000d710
mov qword [r12 + 0x18], rax
mov ecx, dword [r12 + 0x28]
imul ecx, dword [r12 + 0x2c]
movsxd r8, ecx
xor edx, edx
mov rcx, rax
call fcn.14007b900
mov rax, qword [r12 + 0x18]
mov qword [rbp + 0x50], rax
mov eax, dword [r12 + 0x2c]
mov dword [rbp + 0x34], eax
test edi, edi
jle 0x1400aa81f
mov r13d, edi
nop word [rax + rax]
mov rbx, qword [r12 + 0x68]
cmp dword [r14 + 0xe0], 0
je 0x1400aa7fc
lea r8, [r14 + 0x98]
mov rax, qword [r14 + 0xc0]
mov qword [rsp + 0x20], rax
mov rdx, r14
lea rcx, [rbp + 0x28]
call fcn.1400a9100
movss xmm6, dword [r15 + rbx + 0x44]
mov ecx, 0x3f800000
call fcn.14002fc40
ucomiss xmm6, xmm0
jp 0x1400aa71e
je 0x1400aa7f1
movss xmm1, dword [r15 + rbx + 0x44]
xor r8d, r8d
lea r9, [rbp + 0x90]
mov r10d, 0xff
nop word [rax + rax]
mov eax, r8d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm1
cvttss2si rcx, xmm0
mov edx, r10d
movzx eax, cl
cmp ecx, r10d
cmovbe edx, eax
mov byte [r9], dl
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x100
jb 0x1400aa740
mov rbx, qword [r14 + 0xc0]
xor esi, esi
cmp dword [r14 + 0xe0], esi
jle 0x1400aa7f1
cmp dword [rbx + 0x14], 0
je 0x1400aa7e2
movsxd rdx, dword [r12 + 0x28]
mov r10d, dword [rbx + 0x10]
mov eax, dword [rbx + 4]
imul eax, edx
cdqe
movsxd r9, dword [rbx]
add rax, qword [r12 + 0x18]
add r9, rax
movsxd r11, dword [rbx + 0xc]
test r10d, r10d
jle 0x1400aa7e2
mov rdi, rdx
test r11, r11
jle 0x1400aa7d7
mov rdx, r9
mov r8, r11
nop
movzx eax, byte [rdx]
movzx ecx, byte [rbp + rax + 0x90]
mov byte [rdx], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x1400aa7c0
dec r10d
add r9, rdi
test r10d, r10d
jg 0x1400aa7b3
inc esi
add rbx, 0x18
cmp esi, dword [r14 + 0xe0]
jl 0x1400aa785
mov qword [r14 + 0xc0], 0
add r15, 0x50
add r14, 0x108
sub r13, 1
jne 0x1400aa6d0
mov r13, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x28]
mov edi, dword [rbp + 0x268]
mov rcx, r13
call fcn.14000d9c0
mov rcx, rsi
call fcn.14000d9c0
mov rax, qword [rsp + 0x68]
xor ebx, ebx
test rax, rax
je 0x1400aa850
mov qword [rbp - 0x40], rbx
mov rcx, rax
call fcn.14000d9c0
mov qword [rsp + 0x68], rbx
mov qword [rbp - 0x38], rbx
test edi, edi
jle 0x1400aac31
mov rdi, rbx
mov qword [rbp - 0x68], rbx
mov r15, qword [rsp + 0x60]
add r15, 0xe0
mov eax, dword [rbp + 0x268]
mov qword [rbp - 0x58], rax
mov r14d, eax
mov qword [rbp - 0x70], rax
nop dword [rax]
cmp dword [r15], 0
je 0x1400aabdd
mov r13, qword [r12 + 0x68]
add r13, rdi
mov rsi, qword [r13 + 0x48]
movsxd r10, dword [r15 - 0xc4]
mov r9, qword [r15 - 0xe0]
movzx r8d, byte [r10 + r9 + 7]
movzx edx, byte [r10 + r9 + 6]
mov r11d, 0x100
movsx ecx, r11w
imul edx, ecx
add r8w, dx
movsx ebx, r8w
movzx r8d, byte [r10 + r9 + 5]
movzx edx, byte [r10 + r9 + 4]
movsx ecx, r11w
imul edx, ecx
add r8w, dx
movsx ecx, r8w
mov eax, ecx
sub eax, ebx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm7, dword [r13 + 0x10]
divss xmm7, xmm0
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
mov ecx, 0xbf800000
comiss xmm6, xmm13
mov eax, 0x3f800000
cmova ecx, eax
call fcn.14002fc40
movaps xmm1, xmm7
mulss xmm1, xmm6
addss xmm0, xmm1
call fcn.14000e230
movaps xmm8, xmm0
movd xmm6, ebx
cvtdq2ps xmm6, xmm6
mov ecx, 0xbf800000
comiss xmm6, xmm13
mov eax, 0x3f800000
cmova ecx, eax
call fcn.14002fc40
mulss xmm7, xmm6
addss xmm0, xmm7
call fcn.14000e230
movaps xmm6, xmm0
xor ebx, ebx
cmp byte [r13 + 0x3c], bl
jne 0x1400aa9ca
mov qword [rsi + 0x10], rbx
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x1400aa975
mov qword [rsi + 0x28], rbx
call fcn.14000d9c0
mov qword [rsi + 0x30], rbx
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x1400aa98a
mov qword [rsi], rbx
call fcn.14000d9c0
mov qword [rsi + 8], rbx
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1400aa9a0
mov qword [rsi + 0x18], rbx
call fcn.14000d9c0
mov qword [rsi + 0x20], rbx
mov qword [rsi + 0x38], rbx
mov qword [rsi + 0x48], rbx
mov byte [rsi + 0x64], 1
mov qword [rsi + 0x5c], rbx
mov eax, dword [r13 + 0x10]
mov dword [rsi + 0x14], eax
mov qword [rsi + 0x50], r13
mov qword [rsi + 0x48], r12
movss dword [rsi + 0x5c], xmm8
movss dword [rsi + 0x60], xmm6
inc word [rsi + 0x58]
movss xmm11, dword [r13 + 0x28]
mov ecx, 0x3f000000
call fcn.14002fc40
addss xmm0, dword [rsi + 0x5c]
cvttss2si eax, xmm0
movd xmm12, eax
cvtdq2ps xmm12, xmm12
addss xmm12, dword [r13 + 0x2c]
mov dword [rbp + 0x260], ebx
cmp dword [r15], 0
jle 0x1400aabdd
mov qword [rbp + 0x278], rbx
xor ecx, ecx
mov qword [rbp + 0x270], rcx
nop word [rax + rax]
mov rax, qword [r15 + 0x20]
mov eax, dword [rcx + rax]
mov dword [rbp + 0x268], eax
mov r14, qword [r15 - 0x18]
movss xmm0, dword [r14 + rbx + 0x10]
movss xmm10, dword [r13 + 0x34]
comiss xmm10, xmm0
ja 0x1400aaa4f
movss xmm10, dword [r13 + 0x38]
minss xmm10, xmm0
movaps xmm9, xmm11
ucomiss xmm0, xmm10
jp 0x1400aaa5b
je 0x1400aaa9e
movaps xmm6, xmm10
subss xmm6, xmm0
mov ecx, 0x3f000000
cmp byte [r13 + 0x1c], 0
je 0x1400aaa87
call fcn.14002fc40
mulss xmm0, xmm6
cvttss2si eax, xmm0
movd xmm9, eax
cvtdq2ps xmm9, xmm9
jmp 0x1400aaa95
call fcn.14002fc40
movaps xmm9, xmm0
mulss xmm9, xmm6
addss xmm9, xmm11
mov r14, qword [r15 - 0x18]
mov edi, dword [r12 + 0x2c]
mov ebx, dword [r12 + 0x28]
mov ecx, 0x3f800000
call fcn.14002fc40
movaps xmm6, xmm0
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
divss xmm6, xmm1
mov ecx, 0x3f800000
call fcn.14002fc40
movd xmm1, edi
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
mov rbx, qword [rbp + 0x278]
movzx eax, word [r14 + rbx]
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm6
movzx eax, word [r14 + rbx + 2]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm0
movzx eax, word [r14 + rbx + 4]
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm5, xmm6
movzx eax, word [r14 + rbx + 6]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movss xmm4, dword [r14 + rbx + 0x18]
addss xmm4, xmm13
addss xmm4, xmm12
movss xmm0, dword [r14 + rbx + 0x14]
addss xmm0, xmm13
addss xmm0, xmm9
movss xmm3, dword [r14 + rbx + 0xc]
addss xmm3, xmm13
addss xmm3, xmm12
movss xmm2, dword [r14 + rbx + 8]
addss xmm2, xmm13
addss xmm2, xmm9
movss dword [rsp + 0x50], xmm10
movss dword [rsp + 0x48], xmm1
movss dword [rsp + 0x40], xmm5
movss dword [rsp + 0x38], xmm7
movss dword [rsp + 0x30], xmm8
movss dword [rsp + 0x28], xmm4
movss dword [rsp + 0x20], xmm0
movzx edx, word [rbp + 0x268]
mov rcx, rsi
call fcn.1400224f0
mov edx, dword [rbp + 0x260]
inc edx
mov dword [rbp + 0x260], edx
mov rcx, qword [rbp + 0x270]
add rcx, 4
mov qword [rbp + 0x270], rcx
add rbx, 0x1c
mov qword [rbp + 0x278], rbx
cmp edx, dword [r15]
jl 0x1400aaa20
mov rdi, qword [rbp - 0x68]
mov r14, qword [rbp - 0x70]
add r15, 0x108
add rdi, 0x50
mov qword [rbp - 0x68], rdi
sub r14, 1
mov qword [rbp - 0x70], r14
jne 0x1400aa880
mov rbx, qword [rsp + 0x60]
add rbx, 0xf0
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1400aac15
call fcn.14000d9c0
nop
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400aac23
call fcn.14000d9c0
nop
add rbx, 0x108
sub qword [rbp - 0x58], 1
jne 0x1400aac06
mov rcx, r12
call fcn.1400aacd0
mov bl, 1
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400aac4b
call fcn.14000d9c0
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400aac5b
call fcn.14000d9c0
nop
mov r13, qword [rsp + 0x78]
test r13, r13
je 0x1400aac6e
mov rcx, r13
call fcn.14000d9c0
nop
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1400aac81
mov rcx, rax
call fcn.14000d9c0
nop
movzx eax, bl
lea r11, [rsp + 0x318]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret