// File: /workspace/github_cpp_makefile_star2_O3/logicx24[P]RayTracer/raytracer.cpp
// Function: parseSceneFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, float, int, int)
Scene* parseSceneFile(string fileName, float eps, int width, int height) {
    float sp;
    vec3 eye, ll, lr, ul, ur, ka, kd, ks, kr;

    mat4 currTrans = identity3D();

    Film film = Film(width, height);
    Camera pcam;
    Scene *scene;

    Material curMat;
    vector<Polygon*> sceneObjects;
    vector<Light*> sceneLights;
    vector<vec3> vertices;
    vector<mat4> transforms;
    transforms.push_back(identity3D());

    int index = 0;
    string argument;
    string curline;
    ifstream myfile (fileName);
    if (myfile.is_open()){
        while (getline (myfile, curline)) {
            istringstream iss;
            iss.str(curline);
            iss >> argument;

            if (curline.empty()){
                continue;
            } else if (argumentMatches(argument, "cam")) {
                float args[15];
                parseArgs(args, &iss, 15, "Incorrect number of arguments for camera");
                eye = vec3(args[0], args[1], args[2]);
                ll = vec3(args[3], args[4], args[5]);
                lr = vec3(args[6], args[7], args[8]);
                ul = vec3(args[9], args[10], args[11]);
                ur = vec3(args[12], args[13], args[14]);

                pcam = Camera(eye, ul, ur, ll, lr, width, height);
                scene = new Scene(pcam, film, eps, width, height);

            } else if (argumentMatches(argument, "mat")) {
                float args[13];
                parseArgs(args, &iss, 13, "Incorrect number of arguments for material.");
                ka = vec3(args[0],args[1],args[2]);
                kd = vec3(args[3],args[4],args[5]);
                ks = vec3(args[6],args[7],args[8]);
                sp = args[9];
                kr = vec3(args[10],args[11],args[12]);
                curMat = Material(ka,kd,ks, kr,sp);

            } else if (argumentMatches(argument, "sph")) {
                float args[4];
                parseArgs(args, &iss, 4, "Incorrect number of arguments for sphere.");
                vec3 sphereCenter = vec3(args[0],args[1],args[2]);
                mat4 currentTransform = reduceTransforms(&transforms);
                sceneObjects.push_back(new Sphere(sphereCenter, args[3], curMat, currentTransform));
            } else if (argumentMatches(argument, "tri")) {
                float args[9];
                parseArgs(args, &iss, 9, "Incorrect number of arguments for triangle.");
                vec3 v1 = vec3(args[0],args[1],args[2]);
                vec3 v2 = vec3(args[3],args[4],args[5]);
                vec3 v3 = vec3(args[6],args[7],args[8]);
                mat4 currentTransform = reduceTransforms(&transforms);
                sceneObjects.push_back(new Triangle(v1, v2, v3, curMat, currentTransform));
            } else if (argumentMatches(argument, "ltp")) {
                float args[6];
                int falloff = 0;
                string temp;
                int index = 0;
                while (iss >> temp){
                    if (index == 6){
                        falloff = atoi(temp.c_str());
                    } else {
                        args[index] = atof(temp.c_str());
                    }
                    index++;
                }
                if (index > 7 || index < 6){
                    cerr << "Incorrect number of arguments for point light." << endl;
                }
                vec3 color = vec3(args[3],args[4],args[5]);
                vec3 pos = vec3(args[0],args[1],args[2]);
                sceneLights.push_back(new Light(color, pos, falloff, true));

            } else if (argumentMatches(argument, "ltd")) {
                float args[6];
                parseArgs(args, &iss, 6, "Incorrect number of arguments for direct light.");
                vec3 color = vec3(args[3],args[4],args[5]);
                vec3 pos = vec3(args[0],args[1],args[2]);
                sceneLights.push_back(new Light(color, pos, 0, false));
            } else if (argumentMatches(argument, "lta")) {
                float args[3];
                parseArgs(args, &iss, 3, "Incorrect number of arguments for ambient light.");
                vec3 ambientColor = vec3(args[0], args[1], args[2]);
                Light ambientLight = Light(ambientColor);
                scene->addAmbientLight(ambientLight);
            } else if (argumentMatches(argument, "obj")) {
                string temp;
                iss >> temp;
                parseObj(temp.c_str(), &sceneObjects, &transforms, curMat);
            } else if (argumentMatches(argument, "xfs")) {
                float args[3];
                parseArgs(args, &iss, 3, "Incorrect number of arguments for scaling transformation.");
                vec3 transformation = vec3(args[0], args[1], args[2]);
                transforms.push_back(scaling3D(transformation));
            } else if (argumentMatches(argument, "xft")) {
                float args[3];
                parseArgs(args, &iss, 3, "Incorrect number of arguments for translation transformation.");
                vec3 transformation = vec3(args[0], args[1], args[2]);
                transforms.push_back(translation3D(transformation));
            } else if (argumentMatches(argument, "xfr")) {
                float args[3];
                parseArgs(args, &iss, 3, "Incorrect number of arguments for rotation transformation.");
                vec3 transformation = vec3(args[0], args[1], args[2]);
                transforms.push_back(rotation3D(transformation, magnitude(transformation)));
            } else if (argumentMatches(argument, "xfz")) {
                transforms.clear();
                transforms.push_back(identity3D());
            }
        }

        for (int i = 0; i < sceneObjects.size(); i++){
            scene->addObject(sceneObjects[i]);
        }
        for (int i = 0; i < sceneLights.size(); i++) {
            scene->addLight(sceneLights[i]);
        }

        myfile.close();

    } else {
        cerr << "No scene file found." << endl;
        exit(0);
    }
    return scene;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa48, %rsp            # imm = 0xA48
movss %xmm0, -0x184(%rbp)
movq %rdi, %rbx
leaq -0x520(%rbp), %rdi
movl %esi, -0x11c(%rbp)
movq %rdx, -0x190(%rbp)
callq 0x6e06
xorps %xmm0, %xmm0
movaps %xmm0, -0x2f0(%rbp)
movaps %xmm0, -0x300(%rbp)
movaps %xmm0, -0x310(%rbp)
movaps %xmm0, -0x320(%rbp)
movaps %xmm0, -0x330(%rbp)
movaps %xmm0, -0x340(%rbp)
movl $0x0, -0x2e0(%rbp)
xorl %eax, %eax
movq %rax, -0x150(%rbp)
movaps %xmm0, -0x160(%rbp)
movq %rax, -0x170(%rbp)
movaps %xmm0, -0x180(%rbp)
leaq -0x140(%rbp), %rdi
movq %rax, 0x10(%rdi)
movaps %xmm0, (%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
leaq -0xa70(%rbp), %rsi
movq %rax, (%rsi)
movups %xmm0, 0x8(%rsi)
movups %xmm0, 0x18(%rsi)
movq %rax, 0x28(%rsi)
movups %xmm0, 0x30(%rsi)
movups %xmm0, 0x40(%rsi)
movq %rax, 0x50(%rsi)
movups %xmm0, 0x58(%rsi)
movups %xmm0, 0x68(%rsi)
movq %rax, 0x78(%rsi)
callq 0xa3c0
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
xorl %eax, %eax
movq %rax, -0x8(%r14)
movb %al, (%r14)
leaq -0x2b8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xa70(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movl $0x8, %edx
callq 0x33d0
leaq -0x9f8(%rbp), %rdi
callq 0x30a0
testb %al, %al
je 0x64b5
movl -0x11c(%rbp), %eax
movq -0x190(%rbp), %rcx
shlq $0x20, %rcx
orq %rax, %rcx
movq %rcx, -0x2d0(%rbp)
leaq -0x2c8(%rbp), %r15
movq -0xa70(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x3490
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x636b
leaq -0x868(%rbp), %rdi
callq 0x3190
leaq -0x858(%rbp), %rdi
movq %r15, %rbx
movq %r15, %rsi
callq 0x3370
leaq -0x868(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x32c0
cmpq $0x0, -0x2c0(%rbp)
je 0x5ddd
leaq -0x4f0(%rbp), %rax
movq %rax, -0x500(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x500(%rbp), %rdi
callq 0x9e20
movq %r12, %r15
movq -0x500(%rbp), %r13
movq %r13, %rdi
leaq 0x120a6(%rip), %rsi     # 0x1714f
callq 0x3300
movl %eax, %r12d
leaq -0x4f0(%rbp), %rax
cmpq %rax, %r13
je 0x50cf
movq -0x4f0(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x55a8
leaq -0x4d0(%rbp), %rax
movq %rax, -0x4e0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4e0(%rbp), %rdi
callq 0x9e20
movq -0x4e0(%rbp), %r13
movq %r13, %rdi
leaq 0x1206e(%rip), %rsi     # 0x1717c
callq 0x3300
movl %eax, %r12d
leaq -0x4d0(%rbp), %rax
cmpq %rax, %r13
je 0x5134
movq -0x4d0(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x5758
leaq -0x4b0(%rbp), %rax
movq %rax, -0x4c0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4c0(%rbp), %rdi
callq 0x9e20
movq -0x4c0(%rbp), %r13
movq %r13, %rdi
leaq 0x12039(%rip), %rsi     # 0x171ac
callq 0x3300
movl %eax, %r12d
leaq -0x4b0(%rbp), %rax
cmpq %rax, %r13
je 0x5199
movq -0x4b0(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x58a5
leaq -0x490(%rbp), %rax
movq %rax, -0x4a0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4a0(%rbp), %rdi
callq 0x9e20
movq -0x4a0(%rbp), %r13
movq %r13, %rdi
leaq 0x12002(%rip), %rsi     # 0x171da
callq 0x3300
movl %eax, %r12d
leaq -0x490(%rbp), %rax
cmpq %rax, %r13
je 0x51fe
movq -0x490(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x5a64
leaq -0x470(%rbp), %rax
movq %rax, -0x480(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x480(%rbp), %rdi
callq 0x9e20
movq -0x480(%rbp), %r13
movq %r13, %rdi
leaq 0x11fcd(%rip), %rsi     # 0x1720a
callq 0x3300
movl %eax, %r12d
leaq -0x470(%rbp), %rax
cmpq %rax, %r13
je 0x5263
movq -0x470(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x5c39
leaq -0x450(%rbp), %rax
movq %rax, -0x460(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x460(%rbp), %rdi
callq 0x9e20
movq -0x460(%rbp), %r13
movq %r13, %rdi
leaq 0x11f9b(%rip), %rsi     # 0x1723d
callq 0x3300
movl %eax, %r12d
leaq -0x450(%rbp), %rax
cmpq %rax, %r13
je 0x52c8
movq -0x450(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x5e04
leaq -0x430(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x440(%rbp), %rdi
callq 0x9e20
movq -0x440(%rbp), %r13
movq %r13, %rdi
leaq 0x11f6a(%rip), %rsi     # 0x17271
callq 0x3300
movl %eax, %r12d
leaq -0x430(%rbp), %rax
cmpq %rax, %r13
je 0x532d
movq -0x430(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x5f3e
leaq -0x410(%rbp), %rax
movq %rax, -0x420(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x420(%rbp), %rdi
callq 0x9e20
movq -0x420(%rbp), %r13
movq %r13, %rdi
leaq 0x11f3a(%rip), %rsi     # 0x172a6
callq 0x3300
movl %eax, %r12d
leaq -0x410(%rbp), %rax
cmpq %rax, %r13
je 0x5392
movq -0x410(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x5ff7
leaq -0x3f0(%rbp), %rax
movq %rax, -0x400(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x400(%rbp), %rdi
callq 0x9e20
movq -0x400(%rbp), %r13
movq %r13, %rdi
leaq 0x11ed9(%rip), %rsi     # 0x172aa
callq 0x3300
movl %eax, %r12d
leaq -0x3f0(%rbp), %rax
cmpq %rax, %r13
je 0x53f7
movq -0x3f0(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x60b4
leaq -0x3d0(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3e0(%rbp), %rdi
callq 0x9e20
movq -0x3e0(%rbp), %r13
movq %r13, %rdi
leaq 0x11eb2(%rip), %rsi     # 0x172e8
callq 0x3300
movl %eax, %r12d
leaq -0x3d0(%rbp), %rax
cmpq %rax, %r13
je 0x545c
movq -0x3d0(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x6190
leaq -0x3b0(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3c0(%rbp), %rdi
callq 0x9e20
movq -0x3c0(%rbp), %r13
movq %r13, %rdi
leaq 0x11e8f(%rip), %rsi     # 0x1732a
callq 0x3300
movl %eax, %r12d
leaq -0x3b0(%rbp), %rax
cmpq %rax, %r13
je 0x54c1
movq -0x3b0(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
je 0x628c
leaq -0x390(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3a0(%rbp), %rdi
callq 0x9e20
movq -0x3a0(%rbp), %r13
movq %r13, %rdi
leaq 0x11e69(%rip), %rsi     # 0x17369
callq 0x3300
movl %eax, %r12d
leaq -0x390(%rbp), %rax
cmpq %rax, %r13
je 0x5526
movq -0x390(%rbp), %rsi
incq %rsi
movq %r13, %rdi
callq 0x3220
testl %r12d, %r12d
jne 0x5dda
movq -0x140(%rbp), %rax
cmpq %rax, -0x138(%rbp)
movq %r15, %r12
je 0x5549
movq %rax, -0x138(%rbp)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, -0x100(%rbp)
xorps %xmm0, %xmm0
leaq -0xf8(%rbp), %rcx
movups %xmm0, 0x10(%rcx)
movups %xmm0, (%rcx)
movq %rax, -0xd8(%rbp)
movups %xmm0, 0x38(%rcx)
movups %xmm0, 0x28(%rcx)
movq %rax, -0xb0(%rbp)
movups %xmm0, 0x60(%rcx)
movups %xmm0, 0x50(%rcx)
movq %rax, -0x88(%rbp)
leaq -0x140(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xa3c0
jmp 0x5ddd
leaq -0x370(%rbp), %r14
movq %r14, -0x380(%rbp)
leaq -0x380(%rbp), %r13
movq %r13, %rdi
leaq 0x11b8c(%rip), %rsi     # 0x17153
leaq 0x11bad(%rip), %rdx     # 0x1717b
callq 0xa0b6
movq %r15, %r12
leaq -0x100(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0xf, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x380(%rbp), %rdi
cmpq %r14, %rdi
je 0x560f
movq -0x370(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x100(%rbp), %xmm0
cvtss2sd -0xfc(%rbp), %xmm1
cvtss2sd -0xf8(%rbp), %xmm2
cvtss2sd -0xf4(%rbp), %xmm3
cvtss2sd -0xf0(%rbp), %xmm4
cvtss2sd -0xec(%rbp), %xmm5
cvtss2sd -0xe8(%rbp), %xmm6
cvtss2sd -0xe4(%rbp), %xmm7
cvtss2sd -0xe0(%rbp), %xmm8
cvtss2sd -0xdc(%rbp), %xmm9
cvtss2sd -0xd8(%rbp), %xmm10
cvtss2sd -0xd4(%rbp), %xmm11
cvtss2sd -0xd0(%rbp), %xmm12
cvtss2sd -0xcc(%rbp), %xmm13
cvtss2sd -0xc8(%rbp), %xmm14
movsd %xmm0, -0x5e8(%rbp)
movsd %xmm1, -0x5e0(%rbp)
movsd %xmm2, -0x5d8(%rbp)
movsd %xmm9, -0x5d0(%rbp)
movsd %xmm10, -0x5c8(%rbp)
movsd %xmm11, -0x5c0(%rbp)
movsd %xmm12, -0x5b8(%rbp)
movsd %xmm13, -0x5b0(%rbp)
movsd %xmm14, -0x5a8(%rbp)
movsd %xmm3, -0x5a0(%rbp)
movsd %xmm4, -0x598(%rbp)
movsd %xmm5, -0x590(%rbp)
movsd %xmm6, -0x588(%rbp)
movsd %xmm7, -0x580(%rbp)
movsd %xmm8, -0x578(%rbp)
movq -0x2d0(%rbp), %rax
movq %rax, -0x570(%rbp)
movl $0x118, %edi            # imm = 0x118
callq 0x3210
movq %rax, %r14
movq %rax, %rdi
leaq -0x5e8(%rbp), %rsi
leaq -0x520(%rbp), %rdx
movss -0x184(%rbp), %xmm0
movl -0x11c(%rbp), %ecx
movq -0x190(%rbp), %r8
callq 0x6e92
jmp 0x5de0
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x2a8(%rbp), %r13
movq %r13, %rdi
leaq 0x11a09(%rip), %rsi     # 0x17180
leaq 0x11a2d(%rip), %rdx     # 0x171ab
callq 0xa0b6
movq %r15, %r12
leaq -0x100(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0xd, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x57c6
movq -0x298(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x100(%rbp), %xmm0
cvtss2sd -0xfc(%rbp), %xmm1
cvtss2sd -0xf8(%rbp), %xmm2
cvtss2sd -0xf4(%rbp), %xmm3
cvtss2sd -0xf0(%rbp), %xmm4
cvtss2sd -0xec(%rbp), %xmm5
cvtss2sd -0xe8(%rbp), %xmm6
cvtss2sd -0xe4(%rbp), %xmm7
cvtss2sd -0xe0(%rbp), %xmm8
cvtss2sd -0xd8(%rbp), %xmm9
cvtss2sd -0xd4(%rbp), %xmm10
movss -0xdc(%rbp), %xmm11
cvtss2sd -0xd0(%rbp), %xmm12
movsd %xmm0, -0x340(%rbp)
movsd %xmm1, -0x338(%rbp)
movsd %xmm2, -0x330(%rbp)
movsd %xmm3, -0x328(%rbp)
movsd %xmm4, -0x320(%rbp)
movsd %xmm5, -0x318(%rbp)
movsd %xmm6, -0x310(%rbp)
movsd %xmm7, -0x308(%rbp)
movsd %xmm8, -0x300(%rbp)
movsd %xmm9, -0x2f8(%rbp)
movsd %xmm10, -0x2f0(%rbp)
movsd %xmm12, -0x2e8(%rbp)
movss %xmm11, -0x2e0(%rbp)
jmp 0x5de0
leaq -0x278(%rbp), %rax
movq %rax, -0x288(%rbp)
leaq -0x288(%rbp), %r12
movq %r12, %rdi
leaq 0x118ec(%rip), %rsi     # 0x171b0
leaq 0x1190e(%rip), %rdx     # 0x171d9
callq 0xa0b6
leaq -0x70(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x4, %edx
movq %r12, %rcx
callq 0x3925
movq -0x288(%rbp), %rdi
leaq -0x278(%rbp), %rax
cmpq %rax, %rdi
je 0x590a
movq -0x278(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x70(%rbp), %xmm0
movsd %xmm0, -0x118(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x6c(%rbp), %xmm0
movsd %xmm0, -0x110(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x68(%rbp), %xmm0
movsd %xmm0, -0x108(%rbp)
leaq -0x100(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b2a
movl $0x210, %edi            # imm = 0x210
callq 0x3210
movq %rax, %r13
movss -0x64(%rbp), %xmm0
movss %xmm0, -0x4c(%rbp)
movups -0x100(%rbp), %xmm0
movups -0xf0(%rbp), %xmm1
movups -0xe0(%rbp), %xmm2
movups -0xd0(%rbp), %xmm3
movups %xmm0, -0x6e8(%rbp)
movups %xmm1, -0x6d8(%rbp)
movups %xmm2, -0x6c8(%rbp)
movups %xmm3, -0x6b8(%rbp)
movups -0xc0(%rbp), %xmm0
movups %xmm0, -0x6a8(%rbp)
movups -0xb0(%rbp), %xmm0
movups %xmm0, -0x698(%rbp)
movups -0xa0(%rbp), %xmm0
movups %xmm0, -0x688(%rbp)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x678(%rbp)
movsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x670(%rbp)
movq %rax, %rdi
leaq -0x6e8(%rbp), %rsi
leaq -0x340(%rbp), %rdx
callq 0x7422
leaq 0x18308(%rip), %rax     # 0x1dd08
movq %rax, (%r13)
movsd -0x118(%rbp), %xmm0
movsd %xmm0, 0x1f0(%r13)
movsd -0x110(%rbp), %xmm0
movsd %xmm0, 0x1f8(%r13)
movsd -0x108(%rbp), %xmm0
movsd %xmm0, 0x200(%r13)
movss -0x4c(%rbp), %xmm0
movss %xmm0, 0x208(%r13)
movq %r13, -0x1a8(%rbp)
leaq -0x160(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa2a2
jmp 0x5dda
leaq -0x258(%rbp), %rax
movq %rax, -0x268(%rbp)
leaq -0x268(%rbp), %r12
movq %r12, %rdi
leaq 0x1175b(%rip), %rsi     # 0x171de
leaq 0x1177f(%rip), %rdx     # 0x17209
callq 0xa0b6
leaq -0x70(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x9, %edx
movq %r12, %rcx
callq 0x3925
movq -0x268(%rbp), %rdi
leaq -0x258(%rbp), %rax
cmpq %rax, %rdi
je 0x5ac9
movq -0x258(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x70(%rbp), %xmm0
cvtss2sd -0x6c(%rbp), %xmm1
cvtss2sd -0x68(%rbp), %xmm2
movsd %xmm0, -0x1a8(%rbp)
movsd %xmm1, -0x1a0(%rbp)
movsd %xmm2, -0x198(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x64(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd -0x60(%rbp), %xmm1
xorps %xmm2, %xmm2
cvtss2sd -0x5c(%rbp), %xmm2
movsd %xmm0, -0x568(%rbp)
movsd %xmm1, -0x560(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x58(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd -0x54(%rbp), %xmm1
cvtss2sd -0x50(%rbp), %xmm3
movsd %xmm2, -0x558(%rbp)
movsd %xmm0, -0x550(%rbp)
movsd %xmm1, -0x548(%rbp)
movsd %xmm3, -0x540(%rbp)
leaq -0x100(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b2a
movl $0x2b8, %edi            # imm = 0x2B8
callq 0x3210
movq %rax, %r13
movsd -0x100(%rbp), %xmm0
movsd %xmm0, -0x668(%rbp)
movups -0xf8(%rbp), %xmm0
movups %xmm0, -0x660(%rbp)
movups -0xe8(%rbp), %xmm0
movups %xmm0, -0x650(%rbp)
movups -0xd8(%rbp), %xmm0
movups %xmm0, -0x640(%rbp)
movups -0xc8(%rbp), %xmm0
movups %xmm0, -0x630(%rbp)
movups -0xb8(%rbp), %xmm0
movups %xmm0, -0x620(%rbp)
movups -0xa8(%rbp), %xmm0
movups %xmm0, -0x610(%rbp)
movups -0x98(%rbp), %xmm0
movups %xmm0, -0x600(%rbp)
movsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x5f0(%rbp)
movq %rax, %rdi
leaq -0x1a8(%rbp), %rsi
leaq -0x568(%rbp), %rdx
leaq -0x550(%rbp), %rcx
leaq -0x340(%rbp), %r8
leaq -0x668(%rbp), %r9
callq 0x6d00
movq %r13, -0x2d8(%rbp)
leaq -0x160(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0xa2a2
jmp 0x5dda
leaq -0xf0(%rbp), %rax
movq %rax, -0x100(%rbp)
movq $0x0, -0xf8(%rbp)
movb $0x0, -0xf0(%rbp)
xorl %r12d, %r12d
xorl %r13d, %r13d
leaq -0x100(%rbp), %rsi
leaq -0x868(%rbp), %rdi
callq 0x32c0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5cac
movq -0x100(%rbp), %rdi
cmpq $0x6, %r12
jne 0x5c97
callq 0x33b0
movl %eax, %r13d
jmp 0x5ca7
callq 0x32a0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x70(%rbp,%r12,4)
incq %r12
jmp 0x5c5f
addl $-0x8, %r12d
cmpl $-0x3, %r12d
ja 0x5d00
movl $0x2e, %edx
movq 0x1832e(%rip), %rdi     # 0x1dff0
leaq 0x11545(%rip), %rsi     # 0x1720e
callq 0x3260
movq 0x1831b(%rip), %rcx     # 0x1dff0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x31e0
movsbl %al, %esi
movq 0x182fd(%rip), %rdi     # 0x1dff0
callq 0x3040
movq %rax, %rdi
callq 0x3170
movss -0x64(%rbp), %xmm0
movss %xmm0, -0x118(%rbp)
movss -0x60(%rbp), %xmm0
movss %xmm0, -0x110(%rbp)
movss -0x5c(%rbp), %xmm0
movss %xmm0, -0x108(%rbp)
movss -0x70(%rbp), %xmm0
movss %xmm0, -0x4c(%rbp)
movss -0x6c(%rbp), %xmm0
movss %xmm0, -0x78(%rbp)
movss -0x68(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movl $0x38, %edi
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd -0x74(%rbp), %xmm0
cvtss2sd -0x78(%rbp), %xmm1
cvtss2sd -0x4c(%rbp), %xmm2
cvtss2sd -0x108(%rbp), %xmm3
cvtss2sd -0x110(%rbp), %xmm4
cvtss2sd -0x118(%rbp), %xmm5
movsd %xmm5, (%rax)
movsd %xmm4, 0x8(%rax)
movsd %xmm3, 0x10(%rax)
movsd %xmm2, 0x18(%rax)
movsd %xmm1, 0x20(%rax)
movsd %xmm0, 0x28(%rax)
movl %r13d, 0x30(%rax)
movb $0x1, 0x34(%rax)
movq %rax, -0x1a8(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa6ee
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x5dda
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x3220
movq %r15, %r12
movq %rbx, %r15
leaq -0x868(%rbp), %rdi
movq 0x181da(%rip), %rsi     # 0x1dfc8
callq 0x3320
leaq -0x7f0(%rbp), %rdi
callq 0x30d0
jmp 0x4ffc
leaq -0x238(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x248(%rbp), %r13
movq %r13, %rdi
leaq 0x1141e(%rip), %rsi     # 0x17241
leaq 0x11446(%rip), %rdx     # 0x17270
callq 0xa0b6
movq %r15, %r12
leaq -0x100(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x6, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x248(%rbp), %rdi
leaq -0x238(%rbp), %rax
cmpq %rax, %rdi
je 0x5e72
movq -0x238(%rbp), %rsi
incq %rsi
callq 0x3220
movss -0xf4(%rbp), %xmm0
movss %xmm0, -0x118(%rbp)
movss -0xf0(%rbp), %xmm0
movss %xmm0, -0x110(%rbp)
movss -0xec(%rbp), %xmm0
movss %xmm0, -0x108(%rbp)
movss -0x100(%rbp), %xmm0
movss %xmm0, -0x4c(%rbp)
movss -0xfc(%rbp), %xmm0
movss %xmm0, -0x78(%rbp)
movss -0xf8(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movl $0x38, %edi
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd -0x74(%rbp), %xmm0
cvtss2sd -0x78(%rbp), %xmm1
cvtss2sd -0x4c(%rbp), %xmm2
cvtss2sd -0x108(%rbp), %xmm3
cvtss2sd -0x110(%rbp), %xmm4
cvtss2sd -0x118(%rbp), %xmm5
movsd %xmm5, (%rax)
movsd %xmm4, 0x8(%rax)
movsd %xmm3, 0x10(%rax)
movsd %xmm2, 0x18(%rax)
movsd %xmm1, 0x20(%rax)
movsd %xmm0, 0x28(%rax)
movl $0x0, 0x30(%rax)
movb $0x0, 0x34(%rax)
movq %rax, -0x70(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0xa6ee
jmp 0x5de0
leaq -0x218(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq -0x228(%rbp), %r13
movq %r13, %rdi
leaq 0x11318(%rip), %rsi     # 0x17275
leaq 0x11341(%rip), %rdx     # 0x172a5
callq 0xa0b6
movq %r15, %r12
leaq -0x100(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x3, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x228(%rbp), %rdi
leaq -0x218(%rbp), %rax
cmpq %rax, %rdi
je 0x5fac
movq -0x218(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x100(%rbp), %xmm0
cvtss2sd -0xfc(%rbp), %xmm1
cvtss2sd -0xf8(%rbp), %xmm2
movsd %xmm0, 0xd0(%r14)
movsd %xmm1, 0xd8(%r14)
movsd %xmm2, 0xe0(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0xe8(%r14)
movups %xmm0, 0xf5(%r14)
jmp 0x5de0
leaq -0xf0(%rbp), %rax
movq %rax, -0x100(%rbp)
movq $0x0, -0xf8(%rbp)
movb $0x0, -0xf0(%rbp)
leaq -0x868(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x32c0
movq %r15, %r12
movq -0x100(%rbp), %rsi
leaq -0x360(%rbp), %r13
movq %r13, %rdi
leaq -0x70(%rbp), %rdx
callq 0x6af4
movq %rbx, %r15
movq %r13, %rdi
leaq -0x160(%rbp), %rsi
leaq -0x140(%rbp), %rdx
leaq -0x340(%rbp), %rcx
callq 0x41ee
movq -0x360(%rbp), %rdi
leaq -0x350(%rbp), %rax
cmpq %rax, %rdi
je 0x6089
movq -0x350(%rbp), %rsi
incq %rsi
callq 0x3220
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x5de0
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x3220
jmp 0x5de0
leaq -0x1f8(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq -0x208(%rbp), %r13
movq %r13, %rdi
leaq 0x111db(%rip), %rsi     # 0x172ae
leaq 0x1120d(%rip), %rdx     # 0x172e7
callq 0xa0b6
movq %r15, %r12
leaq -0x70(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x3, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x208(%rbp), %rdi
leaq -0x1f8(%rbp), %rax
cmpq %rax, %rdi
je 0x611f
movq -0x1f8(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x70(%rbp), %xmm0
cvtss2sd -0x6c(%rbp), %xmm1
cvtss2sd -0x68(%rbp), %xmm2
movsd %xmm0, -0x100(%rbp)
xorps %xmm0, %xmm0
leaq -0xf8(%rbp), %rax
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
movsd %xmm1, -0xd8(%rbp)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x28(%rax)
movsd %xmm2, -0xb0(%rbp)
movups %xmm0, 0x60(%rax)
movups %xmm0, 0x50(%rax)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, -0x88(%rbp)
leaq -0x140(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xa3c0
jmp 0x5de0
leaq -0x1d8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x1e8(%rbp), %r13
movq %r13, %rdi
leaq 0x1113d(%rip), %rsi     # 0x172ec
leaq 0x11173(%rip), %rdx     # 0x17329
callq 0xa0b6
movq %r15, %r12
leaq -0x70(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x3, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x61fb
movq -0x1d8(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x70(%rbp), %xmm0
cvtss2sd -0x6c(%rbp), %xmm1
cvtss2sd -0x68(%rbp), %xmm2
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, -0x100(%rbp)
xorps %xmm3, %xmm3
leaq -0xf8(%rbp), %rcx
movups %xmm3, (%rcx)
movsd %xmm0, -0xe8(%rbp)
movl $0x0, %edx
movq %rdx, -0xe0(%rbp)
movq %rax, -0xd8(%rbp)
movq %rdx, -0xd0(%rbp)
movsd %xmm1, -0xc8(%rbp)
movups %xmm3, 0x38(%rcx)
movq %rax, -0xb0(%rbp)
movsd %xmm2, -0xa8(%rbp)
movq %rdx, 0x68(%rcx)
movups %xmm3, 0x58(%rcx)
movq %rax, -0x88(%rbp)
leaq -0x140(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xa3c0
jmp 0x5de0
leaq -0x1b8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x1c8(%rbp), %r13
movq %r13, %rdi
leaq 0x11083(%rip), %rsi     # 0x1732e
leaq 0x110b6(%rip), %rdx     # 0x17368
callq 0xa0b6
movq %r15, %r12
leaq -0x70(%rbp), %rdi
leaq -0x868(%rbp), %rsi
movl $0x3, %edx
movq %r13, %rcx
callq 0x3925
movq %rbx, %r15
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x62f7
movq -0x1b8(%rbp), %rsi
incq %rsi
callq 0x3220
cvtss2sd -0x70(%rbp), %xmm0
cvtss2sd -0x6c(%rbp), %xmm1
cvtss2sd -0x68(%rbp), %xmm2
movsd %xmm0, -0x538(%rbp)
movsd %xmm1, -0x530(%rbp)
movsd %xmm2, -0x528(%rbp)
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
mulsd %xmm2, %xmm2
addsd %xmm0, %xmm2
xorps %xmm0, %xmm0
sqrtsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
leaq -0x100(%rbp), %rbx
movq %rbx, %rdi
leaq -0x538(%rbp), %rsi
callq 0x7000
leaq -0x140(%rbp), %rdi
movq %rbx, %rsi
callq 0xa3c0
jmp 0x5de0
movq -0x160(%rbp), %rax
cmpq %rax, -0x158(%rbp)
je 0x63a6
xorl %ebx, %ebx
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x7190
incq %rbx
movq -0x160(%rbp), %rax
movq -0x158(%rbp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rbx, %rcx
ja 0x637d
movq -0x180(%rbp), %rax
cmpq %rax, -0x178(%rbp)
je 0x63e1
xorl %ebx, %ebx
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x71d2
incq %rbx
movq -0x180(%rbp), %rax
movq -0x178(%rbp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rbx, %rcx
ja 0x63b8
leaq -0xa70(%rbp), %rdi
callq 0x3070
leaq -0xa70(%rbp), %rdi
callq 0x30b0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x641b
movq -0x2b8(%rbp), %rsi
incq %rsi
callq 0x3220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6434
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3220
movq -0x140(%rbp), %rdi
testq %rdi, %rdi
je 0x644f
movq -0x130(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq -0x180(%rbp), %rdi
testq %rdi, %rdi
je 0x646a
movq -0x170(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq -0x160(%rbp), %rdi
testq %rdi, %rdi
je 0x6485
movq -0x150(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq -0x518(%rbp), %rdi
testq %rdi, %rdi
je 0x64a0
movq -0x508(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq %r14, %rax
addq $0xa48, %rsp            # imm = 0xA48
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x17b34(%rip), %rdi     # 0x1dff0
leaq 0x10eaa(%rip), %rsi     # 0x1736d
movl $0x14, %edx
callq 0x3260
movq 0x17b1c(%rip), %rdi     # 0x1dff0
callq 0x3110
xorl %edi, %edi
callq 0x3290
jmp 0x671e
movq %rax, %rbx
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x1b8(%rbp), %rsi
jmp 0x670b
jmp 0x671e
jmp 0x671e
jmp 0x671e
movq %rax, %rbx
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x1d8(%rbp), %rsi
jmp 0x670b
jmp 0x671e
jmp 0x671e
jmp 0x671e
movq %rax, %rbx
movq -0x208(%rbp), %rdi
leaq -0x1f8(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x1f8(%rbp), %rsi
jmp 0x670b
jmp 0x66ee
movq %rax, %rbx
movq -0x360(%rbp), %rdi
leaq -0x350(%rbp), %rax
cmpq %rax, %rdi
je 0x66f1
movq -0x350(%rbp), %rsi
incq %rsi
callq 0x3220
jmp 0x66f1
jmp 0x66ee
jmp 0x671e
movq %rax, %rbx
movq -0x228(%rbp), %rdi
leaq -0x218(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x218(%rbp), %rsi
jmp 0x670b
jmp 0x671e
movq %rax, %rbx
movq -0x248(%rbp), %rdi
leaq -0x238(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x238(%rbp), %rsi
jmp 0x670b
movq %rax, %rbx
jmp 0x6750
movq %rax, %rbx
jmp 0x6787
jmp 0x671e
jmp 0x6715
movq %rax, %rbx
movl $0x2b8, %esi            # imm = 0x2B8
jmp 0x668a
movq %rax, %rbx
movq -0x268(%rbp), %rdi
leaq -0x258(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x258(%rbp), %rsi
jmp 0x670b
jmp 0x671e
jmp 0x66ee
jmp 0x66ee
movq %rax, %rbx
movq -0x288(%rbp), %rdi
leaq -0x278(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x278(%rbp), %rsi
jmp 0x670b
movq %rax, %rbx
movl $0x210, %esi            # imm = 0x210
movq %r13, %rdi
jmp 0x670e
jmp 0x671e
jmp 0x671e
jmp 0x671e
movq %rax, %rbx
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0x298(%rbp), %rsi
jmp 0x670b
jmp 0x671e
movq %rax, %rbx
movl $0x118, %esi            # imm = 0x118
movq %r14, %rdi
jmp 0x670e
jmp 0x671e
jmp 0x671e
movq %rax, %rbx
movq -0x380(%rbp), %rdi
cmpq %r14, %rdi
je 0x6721
movq -0x370(%rbp), %rsi
jmp 0x670b
jmp 0x6715
jmp 0x6715
jmp 0x6715
movq %rax, %rbx
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x6721
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x3220
jmp 0x6721
movq %rax, %rbx
leaq -0x38(%rbp), %r14
jmp 0x6744
movq %rax, %rbx
leaq -0x38(%rbp), %r14
movq 0x1789c(%rip), %rsi     # 0x1dfc8
leaq -0x868(%rbp), %rdi
callq 0x3320
leaq -0x7f0(%rbp), %rdi
callq 0x30d0
leaq -0xa70(%rbp), %rdi
callq 0x30b0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x6772
movq -0x2b8(%rbp), %rsi
incq %rsi
callq 0x3220
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x6787
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3220
movq -0x140(%rbp), %rdi
testq %rdi, %rdi
je 0x67a2
movq -0x130(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq -0x180(%rbp), %rdi
testq %rdi, %rdi
je 0x67bd
movq -0x170(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq -0x160(%rbp), %rdi
testq %rdi, %rdi
je 0x67d8
movq -0x150(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq -0x518(%rbp), %rdi
testq %rdi, %rdi
je 0x67f3
movq -0x508(%rbp), %rsi
subq %rdi, %rsi
callq 0x3220
movq %rbx, %rdi
callq 0x3450