// File: Eba-M[P]E3DC-Control/RscpExampleMain.cpp
// Function: createRequestExample(SRscpFrameBuffer*)
int createRequestExample(SRscpFrameBuffer * frameBuffer) {
    RscpProtocol protocol;
    SRscpValue rootValue;
    // The root container is create with the TAG ID 0 which is not used by any device.
    protocol.createContainerValue(&rootValue, 0);

    //---------------------------------------------------------------------------------------------------------
    // Create a request frame
    //---------------------------------------------------------------------------------------------------------
    if(iAuthenticated == 0)
    
    {
        printf("\nRequest authentication\n");
        // authentication request
        SRscpValue authenContainer;
        protocol.createContainerValue(&authenContainer, TAG_RSCP_REQ_AUTHENTICATION);
        protocol.appendValue(&authenContainer, TAG_RSCP_AUTHENTICATION_USER, e3dc_config.e3dc_user);
        protocol.appendValue(&authenContainer, TAG_RSCP_AUTHENTICATION_PASSWORD, e3dc_config.e3dc_password);
        // append sub-container to root container
        protocol.appendValue(&rootValue, authenContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(authenContainer);
    }
    else
    {
//        printf("\nRequest cyclic example data\n");
        // request power data information
        protocol.appendValue(&rootValue, TAG_EMS_REQ_POWER_PV);
        protocol.appendValue(&rootValue, TAG_EMS_REQ_POWER_ADD);
        protocol.appendValue(&rootValue, TAG_EMS_REQ_POWER_BAT);
        protocol.appendValue(&rootValue, TAG_EMS_REQ_BAT_SOC);
        protocol.appendValue(&rootValue, TAG_EMS_REQ_POWER_HOME);
        protocol.appendValue(&rootValue, TAG_EMS_REQ_POWER_GRID);
        protocol.appendValue(&rootValue, TAG_EMS_REQ_EMERGENCY_POWER_STATUS);
//        protocol.appendValue(&rootValue, TAG_EMS_REQ_REMAINING_BAT_CHARGE_POWER);
        // EP Reserve (Emergency Power)
            protocol.appendValue(&rootValue, TAG_SE_REQ_EP_RESERVE);

        if(iBattPowerStatus == 0)
        {
            protocol.appendValue(&rootValue, TAG_EMS_REQ_GET_POWER_SETTINGS);
            iBattPowerStatus = 1;
        }
// request Power Meter information
        static int32_t Mode;
// mode 1 = Idle 2 = Entladen  3 = Laden 4 = Laden aus dem Netz
        if (e3dc_config.wrsteuerung==0)
            printf("\n Achtung WR-Steuerung inaktiv %i %i Status %i\n",iBattLoad,iE3DC_Req_Load,iLMStatus);
        if (e3dc_config.wrsteuerung==2) // Text ausgeben
            printf("\n WR-Steuerung aktiv %i %i %i Status %i\n",iBattLoad,iE3DC_Req_Load,Mode,iLMStatus);

        if (iLMStatus < 0&&e3dc_config.wrsteuerung==0) iLMStatus=iLMStatus*-1;
        if (iLMStatus < 0&&e3dc_config.wrsteuerung>0)
        {
            if (iE3DC_Req_Load==0) 
                Mode = 1;
            else
            if (iE3DC_Req_Load>e3dc_config.maximumLadeleistung)
            {
                iE3DC_Req_Load = iE3DC_Req_Load - e3dc_config.maximumLadeleistung;
                Mode = 4;  // Steuerung Netzbezug Anforderung durch den Betrag > e3dc_config.maximumLadeleistung
            }
            else
            if (iE3DC_Req_Load==e3dc_config.maximumLadeleistung) Mode = 0; 
            else
            if (iE3DC_Req_Load>0) Mode = 3;
            else
            { iE3DC_Req_Load = iE3DC_Req_Load*-1;
                Mode = 2;
            }
            iLMStatus = iLMStatus*-1;
            iE3DC_Req_Load_alt = iE3DC_Req_Load;
            if (iE3DC_Req_Load > e3dc_config.maximumLadeleistung)
                iE3DC_Req_Load = e3dc_config.maximumLadeleistung;
                SRscpValue PMContainer;
        //    Power = Power*-1;
        protocol.createContainerValue(&PMContainer, TAG_EMS_REQ_SET_POWER);
        protocol.appendValue(&PMContainer, TAG_EMS_REQ_SET_POWER_MODE,Mode);
//        if (Mode > 0)
            protocol.appendValue(&PMContainer, TAG_EMS_REQ_SET_POWER_VALUE,iE3DC_Req_Load);
        // append sub-container to root container
        protocol.appendValue(&rootValue, PMContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PMContainer);
        }

        // request battery information
        SRscpValue batteryContainer;
        protocol.createContainerValue(&batteryContainer, TAG_BAT_REQ_DATA);
        protocol.appendValue(&batteryContainer, TAG_BAT_INDEX, (uint8_t)0);
        protocol.appendValue(&batteryContainer, TAG_BAT_REQ_RSOC);
        protocol.appendValue(&batteryContainer, TAG_BAT_REQ_MODULE_VOLTAGE);
        protocol.appendValue(&batteryContainer, TAG_BAT_REQ_CURRENT);
        // append sub-container to root container
        protocol.appendValue(&rootValue, batteryContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(batteryContainer);
        
        // request Power Meter information
        uint8_t uindex = e3dc_config.wurzelzaehler;
        SRscpValue PMContainer;
        protocol.createContainerValue(&PMContainer, TAG_PM_REQ_DATA);
        protocol.appendValue(&PMContainer, TAG_PM_INDEX,uindex);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L3);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L3);
        // append sub-container to root container
        protocol.appendValue(&rootValue, PMContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PMContainer);
// EXTERNER ZÄHLER 1
        protocol.createContainerValue(&PMContainer, TAG_PM_REQ_DATA);
        protocol.appendValue(&PMContainer, TAG_PM_INDEX, (uint8_t)1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L3);
//        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L1);
//        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L2);
//        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L3);
        // append sub-container to root container
if (e3dc_config.ext1)
        protocol.appendValue(&rootValue, PMContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PMContainer);
        // EXTERNER ZÄHLER 2
        protocol.createContainerValue(&PMContainer, TAG_PM_REQ_DATA);
        protocol.appendValue(&PMContainer, TAG_PM_INDEX, (uint8_t)2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L3);
//        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L1);
//        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L2);
//        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L3);
        // append sub-container to root container
if (e3dc_config.ext2)
            protocol.appendValue(&rootValue, PMContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PMContainer);
        // EXTERNER ZÄHLER 3
        protocol.createContainerValue(&PMContainer, TAG_PM_REQ_DATA);
        protocol.appendValue(&PMContainer, TAG_PM_INDEX, (uint8_t)3);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L3);
        //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L1);
        //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L2);
        //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L3);
        // append sub-container to root container
if (e3dc_config.ext3)
            protocol.appendValue(&rootValue, PMContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PMContainer);
        // EXTERNER ZÄHLER 4
        protocol.createContainerValue(&PMContainer, TAG_PM_REQ_DATA);
        protocol.appendValue(&PMContainer, TAG_PM_INDEX, (uint8_t)4);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L1);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L2);
        protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L3);
        //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L1);
        //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L2);
        //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L3);
        // append sub-container to root container
if (e3dc_config.ext4)
                    protocol.appendValue(&rootValue, PMContainer);
                // free memory of sub-container as it is now copied to rootValue
                protocol.destroyValueData(PMContainer);
                // EXTERNER ZÄHLER 7
                protocol.createContainerValue(&PMContainer, TAG_PM_REQ_DATA);
                protocol.appendValue(&PMContainer, TAG_PM_INDEX, (uint8_t)7);
                protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L1);
                protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L2);
                protocol.appendValue(&PMContainer, TAG_PM_REQ_POWER_L3);
                //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L1);
                //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L2);
                //        protocol.appendValue(&PMContainer, TAG_PM_REQ_VOLTAGE_L3);
                // append sub-container to root container
if (e3dc_config.ext7)
        protocol.appendValue(&rootValue, PMContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PMContainer);

        
        // request Power Inverter information DC
        SRscpValue PVIContainer;
        protocol.createContainerValue(&PVIContainer, TAG_PVI_REQ_DATA);
        protocol.appendValue(&PVIContainer, TAG_PVI_INDEX, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_POWER, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_VOLTAGE, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_CURRENT, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_POWER, (uint8_t)1);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_VOLTAGE, (uint8_t)1);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_CURRENT, (uint8_t)1);
        if (e3dc_config.wrleistung>=30000)  // S20Xnn
        {
            protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_POWER, (uint8_t)2);
            protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_VOLTAGE, (uint8_t)2);
            protocol.appendValue(&PVIContainer, TAG_PVI_REQ_DC_CURRENT, (uint8_t)2);
        }

        // append sub-container to root container
        protocol.appendValue(&rootValue, PVIContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PVIContainer);

        // request Power Inverter information AC

        protocol.createContainerValue(&PVIContainer, TAG_PVI_REQ_DATA);
        protocol.appendValue(&PVIContainer, TAG_PVI_INDEX, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_POWER, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_VOLTAGE, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_CURRENT, (uint8_t)0);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_POWER, (uint8_t)1);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_VOLTAGE, (uint8_t)1);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_CURRENT, (uint8_t)1);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_POWER, (uint8_t)2);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_VOLTAGE, (uint8_t)2);
        protocol.appendValue(&PVIContainer, TAG_PVI_REQ_AC_CURRENT, (uint8_t)2);

        // append sub-container to root container
        protocol.appendValue(&rootValue, PVIContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(PVIContainer);

        // request DCDC information
            SRscpValue DCDCContainer;
            
            protocol.createContainerValue(&DCDCContainer, TAG_DCDC_REQ_DATA);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_INDEX, (uint8_t)0);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_REQ_I_BAT);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_REQ_U_BAT);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_REQ_P_BAT);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_REQ_I_DCL);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_REQ_U_DCL);
            protocol.appendValue(&DCDCContainer, TAG_DCDC_REQ_P_DCL);
            
            // append sub-container to root container
            protocol.appendValue(&rootValue, DCDCContainer);
            // free memory of sub-container as it is now copied to rootValue
            protocol.destroyValueData(DCDCContainer);

        // request Wallbox information

        SRscpValue WBContainer;
  
/*
         protocol.createContainerValue(&WBContainer, TAG_WB_REQ_AVAILABLE_SOLAR_POWER);
         protocol.appendValue(&WBContainer, TAG_WB_INDEX, (uint8_t)0);

        // append sub-container to root container
         protocol.appendValue(&rootValue, WBContainer);
         // free memory of sub-container as it is now copied to rootValue
         protocol.destroyValueData(WBContainer);
*/
        
        protocol.createContainerValue(&WBContainer, TAG_WB_REQ_DATA);
        protocol.appendValue(&WBContainer, TAG_WB_INDEX, (uint8_t)e3dc_config.wallbox);
//        protocol.appendValue(&WBContainer, TAG_WB_REQ_PM_MODE);
//        protocol.appendValue(&WBContainer, TAG_WB_REQ_MODE);
//        protocol.appendValue(&WBContainer, TAG_WB_REQ_STATUS);

        protocol.appendValue(&WBContainer, TAG_WB_REQ_PARAM_1);
        protocol.appendValue(&WBContainer, TAG_WB_REQ_PARAM_2);
        protocol.appendValue(&WBContainer, TAG_WB_REQ_EXTERN_DATA_ALG);

        protocol.appendValue(&WBContainer, TAG_WB_REQ_PM_POWER_L1);
        protocol.appendValue(&WBContainer, TAG_WB_REQ_PM_POWER_L2);
        protocol.appendValue(&WBContainer, TAG_WB_REQ_PM_POWER_L3);
//        protocol.appendValue(&WBContainer, TAG_WB_REQ_AVAILABLE_SOLAR_POWER);

        // append sub-container to root container
if (e3dc_config.wallbox>=0)
        protocol.appendValue(&rootValue, WBContainer);
        // free memory of sub-container as it is now copied to rootValue
        protocol.destroyValueData(WBContainer);

        
        if(iBattPowerStatus == 2)
            
        {
            // request RootPower Meter information
        }

    }

    
    // create buffer frame to send data to the S10
    protocol.createFrameAsBuffer(frameBuffer, rootValue.data, rootValue.length, true); // true to calculate CRC on for transfer
    // the root value object should be destroyed after the data is copied into the frameBuffer and is not needed anymore
    protocol.destroyValueData(rootValue);
//    printf("Request cyclic example data done %s %2ld:%2ld:%2ld",VERSION,tm_CONF_dt%(24*3600)/3600,tm_CONF_dt%3600/60,tm_CONF_dt%60);

    return 0;
}

// Assembly:
subq $0x288, %rsp            # imm = 0x288
movq %rdi, 0x280(%rsp)
leaq 0x278(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x200b0
movq (%rsp), %rdi
movl $0x0, 0x264(%rsp)
leaq 0x269(%rsp), %rsi
leaq 0x264(%rsp), %rdx
callq 0x1c8c0
jmp 0x14c36
cmpl $0x0, 0x60e93(%rip)     # 0x75ad0
jne 0x14d40
leaq 0x4c91d(%rip), %rdi     # 0x61567
xorl %eax, %eax
callq 0x2040
jmp 0x14c53
movl $0x1, 0x240(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x245(%rsp), %rsi
leaq 0x240(%rsp), %rdx
callq 0x1c8c0
jmp 0x14c7d
movl $0x2, 0x23c(%rsp)
leaq 0x59dc1(%rip), %rcx     # 0x6ea50
leaq 0x278(%rsp), %rdi
leaq 0x245(%rsp), %rsi
leaq 0x23c(%rsp), %rdx
callq 0x1cf30
jmp 0x14cae
movl $0x3, 0x238(%rsp)
leaq 0x59e10(%rip), %rcx     # 0x6ead0
leaq 0x278(%rsp), %rdi
leaq 0x245(%rsp), %rsi
leaq 0x238(%rsp), %rdx
callq 0x1cf30
jmp 0x14cdf
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x245(%rsp), %rdx
callq 0x1c9f0
jmp 0x14cfe
leaq 0x278(%rsp), %rdi
leaq 0x245(%rsp), %rsi
callq 0x1cac0
jmp 0x14d15
jmp 0x1613c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x278(%rsp), %rdi
callq 0x200d0
jmp 0x16197
movl $0x1000001, 0x234(%rsp) # imm = 0x1000001
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x234(%rsp), %rdx
callq 0x1cfb0
jmp 0x14d6a
movl $0x1000005, 0x230(%rsp) # imm = 0x1000005
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x230(%rsp), %rdx
callq 0x1cfb0
jmp 0x14d94
movl $0x1000002, 0x22c(%rsp) # imm = 0x1000002
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x22c(%rsp), %rdx
callq 0x1cfb0
jmp 0x14dbe
movl $0x1000008, 0x228(%rsp) # imm = 0x1000008
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x228(%rsp), %rdx
callq 0x1cfb0
jmp 0x14de8
movl $0x1000003, 0x224(%rsp) # imm = 0x1000003
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x224(%rsp), %rdx
callq 0x1cfb0
jmp 0x14e12
movl $0x1000004, 0x220(%rsp) # imm = 0x1000004
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x1cfb0
jmp 0x14e3c
movl $0x1000073, 0x21c(%rsp) # imm = 0x1000073
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x21c(%rsp), %rdx
callq 0x1cfb0
jmp 0x14e66
movl $0x1b000009, 0x218(%rsp) # imm = 0x1B000009
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x218(%rsp), %rdx
callq 0x1cfb0
jmp 0x14e90
cmpl $0x0, 0x60c3d(%rip)     # 0x75ad4
jne 0x14ecd
movl $0x100008b, 0x214(%rsp) # imm = 0x100008B
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x214(%rsp), %rdx
callq 0x1cfb0
jmp 0x14ec3
movl $0x1, 0x60c07(%rip)     # 0x75ad4
movzbl 0x59fa1(%rip), %eax     # 0x6ee75
cmpl $0x0, %eax
jne 0x14efd
movl 0x5c045(%rip), %esi     # 0x70f24
movl 0x60b13(%rip), %edx     # 0x759f8
movl 0x60af5(%rip), %ecx     # 0x759e0
leaq 0x4c68e(%rip), %rdi     # 0x61580
xorl %eax, %eax
callq 0x2040
jmp 0x14efb
jmp 0x14efd
movzbl 0x59f71(%rip), %eax     # 0x6ee75
cmpl $0x2, %eax
jne 0x14f34
movl 0x5c015(%rip), %esi     # 0x70f24
movl 0x60ae3(%rip), %edx     # 0x759f8
movl 0x60bbd(%rip), %ecx     # 0x75ad8
movl 0x60abe(%rip), %r8d     # 0x759e0
leaq 0x4c687(%rip), %rdi     # 0x615b0
xorl %eax, %eax
callq 0x2040
jmp 0x14f32
jmp 0x14f34
cmpl $0x0, 0x60aa5(%rip)     # 0x759e0
jge 0x14f56
movzbl 0x59f31(%rip), %eax     # 0x6ee75
cmpl $0x0, %eax
jne 0x14f56
imull $-0x1, 0x60a90(%rip), %eax # 0x759e0
movl %eax, 0x60a8a(%rip)     # 0x759e0
cmpl $0x0, 0x60a83(%rip)     # 0x759e0
jge 0x150f7
movzbl 0x59f0b(%rip), %eax     # 0x6ee75
cmpl $0x0, %eax
jle 0x150f7
cmpl $0x0, 0x60a7e(%rip)     # 0x759f8
jne 0x14f88
movl $0x1, 0x60b52(%rip)     # 0x75ad8
jmp 0x15000
movl 0x60a6a(%rip), %eax     # 0x759f8
cmpl 0x59ef8(%rip), %eax     # 0x6ee8c
jle 0x14fb4
movl 0x60a5c(%rip), %eax     # 0x759f8
subl 0x59eea(%rip), %eax     # 0x6ee8c
movl %eax, 0x60a50(%rip)     # 0x759f8
movl $0x4, 0x60b26(%rip)     # 0x75ad8
jmp 0x14ffe
movl 0x60a3e(%rip), %eax     # 0x759f8
cmpl 0x59ecc(%rip), %eax     # 0x6ee8c
jne 0x14fce
movl $0x0, 0x60b0c(%rip)     # 0x75ad8
jmp 0x14ffc
cmpl $0x0, 0x60a23(%rip)     # 0x759f8
jle 0x14fe3
movl $0x3, 0x60af7(%rip)     # 0x75ad8
jmp 0x14ffa
imull $-0x1, 0x60a0e(%rip), %eax # 0x759f8
movl %eax, 0x60a08(%rip)     # 0x759f8
movl $0x2, 0x60ade(%rip)     # 0x75ad8
jmp 0x14ffc
jmp 0x14ffe
jmp 0x15000
imull $-0x1, 0x609d9(%rip), %eax # 0x759e0
movl %eax, 0x609d3(%rip)     # 0x759e0
movl 0x609e5(%rip), %eax     # 0x759f8
movl %eax, 0x60a87(%rip)     # 0x75aa0
movl 0x609d9(%rip), %eax     # 0x759f8
cmpl 0x59e67(%rip), %eax     # 0x6ee8c
jle 0x15033
movl 0x59e5f(%rip), %eax     # 0x6ee8c
movl %eax, 0x609c5(%rip)     # 0x759f8
movl $0x1000030, 0x200(%rsp) # imm = 0x1000030
leaq 0x278(%rsp), %rdi
leaq 0x205(%rsp), %rsi
leaq 0x200(%rsp), %rdx
callq 0x1c8c0
jmp 0x1505d
movl $0x1000031, 0x1fc(%rsp) # imm = 0x1000031
leaq 0x60a69(%rip), %rcx     # 0x75ad8
leaq 0x278(%rsp), %rdi
leaq 0x205(%rsp), %rsi
leaq 0x1fc(%rsp), %rdx
callq 0x1c950
jmp 0x1508e
movl $0x1000032, 0x1f8(%rsp) # imm = 0x1000032
leaq 0x60958(%rip), %rcx     # 0x759f8
leaq 0x278(%rsp), %rdi
leaq 0x205(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x1c950
jmp 0x150bf
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x205(%rsp), %rdx
callq 0x1c9f0
jmp 0x150de
leaq 0x278(%rsp), %rdi
leaq 0x205(%rsp), %rsi
callq 0x1cac0
jmp 0x150f5
jmp 0x150f7
movl $0x3040000, 0x1e4(%rsp) # imm = 0x3040000
leaq 0x278(%rsp), %rdi
leaq 0x1e9(%rsp), %rsi
leaq 0x1e4(%rsp), %rdx
callq 0x1c8c0
jmp 0x15121
movl $0x3040001, 0x1e0(%rsp) # imm = 0x3040001
movb $0x0, 0x1df(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x1e9(%rsp), %rsi
leaq 0x1e0(%rsp), %rdx
leaq 0x1df(%rsp), %rcx
callq 0x1c900
jmp 0x1515b
movl $0x3000001, 0x1d8(%rsp) # imm = 0x3000001
leaq 0x278(%rsp), %rdi
leaq 0x1e9(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x1cfb0
jmp 0x15185
movl $0x3000002, 0x1d4(%rsp) # imm = 0x3000002
leaq 0x278(%rsp), %rdi
leaq 0x1e9(%rsp), %rsi
leaq 0x1d4(%rsp), %rdx
callq 0x1cfb0
jmp 0x151af
movl $0x3000003, 0x1d0(%rsp) # imm = 0x3000003
leaq 0x278(%rsp), %rdi
leaq 0x1e9(%rsp), %rsi
leaq 0x1d0(%rsp), %rdx
callq 0x1cfb0
jmp 0x151d9
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1e9(%rsp), %rdx
callq 0x1c9f0
jmp 0x151f8
leaq 0x278(%rsp), %rdi
leaq 0x1e9(%rsp), %rsi
callq 0x1cac0
jmp 0x1520f
movb 0x59c58(%rip), %al      # 0x6ee6d
movb %al, 0x1cf(%rsp)
movl $0x5040000, 0x1bc(%rsp) # imm = 0x5040000
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1bc(%rsp), %rdx
callq 0x1c8c0
jmp 0x15246
movl $0x5040001, 0x1b8(%rsp) # imm = 0x5040001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
leaq 0x1cf(%rsp), %rcx
callq 0x1c900
jmp 0x15278
movl $0x5000001, 0x1b4(%rsp) # imm = 0x5000001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1b4(%rsp), %rdx
callq 0x1cfb0
jmp 0x152a2
movl $0x5000002, 0x1b0(%rsp) # imm = 0x5000002
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
callq 0x1cfb0
jmp 0x152cc
movl $0x5000003, 0x1ac(%rsp) # imm = 0x5000003
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1ac(%rsp), %rdx
callq 0x1cfb0
jmp 0x152f6
movl $0x5000011, 0x1a8(%rsp) # imm = 0x5000011
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0x1cfb0
jmp 0x15320
movl $0x5000012, 0x1a4(%rsp) # imm = 0x5000012
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1a4(%rsp), %rdx
callq 0x1cfb0
jmp 0x1534a
movl $0x5000013, 0x1a0(%rsp) # imm = 0x5000013
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x1cfb0
jmp 0x15374
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1c9f0
jmp 0x15393
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1cac0
jmp 0x153aa
movl $0x5040000, 0x19c(%rsp) # imm = 0x5040000
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x19c(%rsp), %rdx
callq 0x1c8c0
jmp 0x153d4
movl $0x5040001, 0x198(%rsp) # imm = 0x5040001
movb $0x1, 0x197(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x198(%rsp), %rdx
leaq 0x197(%rsp), %rcx
callq 0x1c900
jmp 0x1540e
movl $0x5000001, 0x190(%rsp) # imm = 0x5000001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x190(%rsp), %rdx
callq 0x1cfb0
jmp 0x15438
movl $0x5000002, 0x18c(%rsp) # imm = 0x5000002
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x18c(%rsp), %rdx
callq 0x1cfb0
jmp 0x15462
movl $0x5000003, 0x188(%rsp) # imm = 0x5000003
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x188(%rsp), %rdx
callq 0x1cfb0
jmp 0x1548c
testb $0x1, 0x599c9(%rip)     # 0x6ee5c
je 0x154b6
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1c9f0
jmp 0x154b4
jmp 0x154b6
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1cac0
jmp 0x154cd
movl $0x5040000, 0x184(%rsp) # imm = 0x5040000
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x184(%rsp), %rdx
callq 0x1c8c0
jmp 0x154f7
movl $0x5040001, 0x180(%rsp) # imm = 0x5040001
movb $0x2, 0x17f(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x180(%rsp), %rdx
leaq 0x17f(%rsp), %rcx
callq 0x1c900
jmp 0x15531
movl $0x5000001, 0x178(%rsp) # imm = 0x5000001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x178(%rsp), %rdx
callq 0x1cfb0
jmp 0x1555b
movl $0x5000002, 0x174(%rsp) # imm = 0x5000002
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x174(%rsp), %rdx
callq 0x1cfb0
jmp 0x15585
movl $0x5000003, 0x170(%rsp) # imm = 0x5000003
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x170(%rsp), %rdx
callq 0x1cfb0
jmp 0x155af
testb $0x1, 0x598a7(%rip)     # 0x6ee5d
je 0x155d9
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1c9f0
jmp 0x155d7
jmp 0x155d9
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1cac0
jmp 0x155f0
movl $0x5040000, 0x16c(%rsp) # imm = 0x5040000
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x16c(%rsp), %rdx
callq 0x1c8c0
jmp 0x1561a
movl $0x5040001, 0x168(%rsp) # imm = 0x5040001
movb $0x3, 0x167(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x168(%rsp), %rdx
leaq 0x167(%rsp), %rcx
callq 0x1c900
jmp 0x15654
movl $0x5000001, 0x160(%rsp) # imm = 0x5000001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0x1cfb0
jmp 0x1567e
movl $0x5000002, 0x15c(%rsp) # imm = 0x5000002
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x15c(%rsp), %rdx
callq 0x1cfb0
jmp 0x156a8
movl $0x5000003, 0x158(%rsp) # imm = 0x5000003
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x1cfb0
jmp 0x156d2
testb $0x1, 0x59785(%rip)     # 0x6ee5e
je 0x156fc
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1c9f0
jmp 0x156fa
jmp 0x156fc
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1cac0
jmp 0x15713
movl $0x5040000, 0x154(%rsp) # imm = 0x5040000
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x154(%rsp), %rdx
callq 0x1c8c0
jmp 0x1573d
movl $0x5040001, 0x150(%rsp) # imm = 0x5040001
movb $0x4, 0x14f(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x150(%rsp), %rdx
leaq 0x14f(%rsp), %rcx
callq 0x1c900
jmp 0x15777
movl $0x5000001, 0x148(%rsp) # imm = 0x5000001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x148(%rsp), %rdx
callq 0x1cfb0
jmp 0x157a1
movl $0x5000002, 0x144(%rsp) # imm = 0x5000002
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x144(%rsp), %rdx
callq 0x1cfb0
jmp 0x157cb
movl $0x5000003, 0x140(%rsp) # imm = 0x5000003
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x140(%rsp), %rdx
callq 0x1cfb0
jmp 0x157f5
testb $0x1, 0x59663(%rip)     # 0x6ee5f
je 0x1581f
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1c9f0
jmp 0x1581d
jmp 0x1581f
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1cac0
jmp 0x15836
movl $0x5040000, 0x13c(%rsp) # imm = 0x5040000
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x13c(%rsp), %rdx
callq 0x1c8c0
jmp 0x15860
movl $0x5040001, 0x138(%rsp) # imm = 0x5040001
movb $0x7, 0x137(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x138(%rsp), %rdx
leaq 0x137(%rsp), %rcx
callq 0x1c900
jmp 0x1589a
movl $0x5000001, 0x130(%rsp) # imm = 0x5000001
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x1cfb0
jmp 0x158c4
movl $0x5000002, 0x12c(%rsp) # imm = 0x5000002
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x12c(%rsp), %rdx
callq 0x1cfb0
jmp 0x158ee
movl $0x5000003, 0x128(%rsp) # imm = 0x5000003
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x128(%rsp), %rdx
callq 0x1cfb0
jmp 0x15918
testb $0x1, 0x59541(%rip)     # 0x6ee60
je 0x15942
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1c9f0
jmp 0x15940
jmp 0x15942
leaq 0x278(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1cac0
jmp 0x15959
movl $0x2040000, 0x114(%rsp) # imm = 0x2040000
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x114(%rsp), %rdx
callq 0x1c8c0
jmp 0x15983
movl $0x2040001, 0x110(%rsp) # imm = 0x2040001
movb $0x0, 0x10f(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x110(%rsp), %rdx
leaq 0x10f(%rsp), %rcx
callq 0x1c900
jmp 0x159bd
movl $0x20dc001, 0x108(%rsp) # imm = 0x20DC001
movb $0x0, 0x107(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x108(%rsp), %rdx
leaq 0x107(%rsp), %rcx
callq 0x1c900
jmp 0x159f7
movl $0x20dc002, 0x100(%rsp) # imm = 0x20DC002
movb $0x0, 0xff(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x100(%rsp), %rdx
leaq 0xff(%rsp), %rcx
callq 0x1c900
jmp 0x15a31
movl $0x20dc003, 0xf8(%rsp) # imm = 0x20DC003
movb $0x0, 0xf7(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
leaq 0xf7(%rsp), %rcx
callq 0x1c900
jmp 0x15a6b
movl $0x20dc001, 0xf0(%rsp) # imm = 0x20DC001
movb $0x1, 0xef(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
leaq 0xef(%rsp), %rcx
callq 0x1c900
jmp 0x15aa5
movl $0x20dc002, 0xe8(%rsp) # imm = 0x20DC002
movb $0x1, 0xe7(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
leaq 0xe7(%rsp), %rcx
callq 0x1c900
jmp 0x15adf
movl $0x20dc003, 0xe0(%rsp) # imm = 0x20DC003
movb $0x1, 0xdf(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xe0(%rsp), %rdx
leaq 0xdf(%rsp), %rcx
callq 0x1c900
jmp 0x15b19
cmpl $0x7530, 0x5936d(%rip)  # imm = 0x7530
jl 0x15bd9
movl $0x20dc001, 0xd8(%rsp) # imm = 0x20DC001
movb $0x2, 0xd7(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
leaq 0xd7(%rsp), %rcx
callq 0x1c900
jmp 0x15b63
movl $0x20dc002, 0xd0(%rsp) # imm = 0x20DC002
movb $0x2, 0xcf(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
leaq 0xcf(%rsp), %rcx
callq 0x1c900
jmp 0x15b9d
movl $0x20dc003, 0xc8(%rsp) # imm = 0x20DC003
movb $0x2, 0xc7(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
leaq 0xc7(%rsp), %rcx
callq 0x1c900
jmp 0x15bd7
jmp 0x15bd9
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x119(%rsp), %rdx
callq 0x1c9f0
jmp 0x15bf8
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
callq 0x1cac0
jmp 0x15c0f
movl $0x2040000, 0xc0(%rsp) # imm = 0x2040000
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x1c8c0
jmp 0x15c39
movl $0x2040001, 0xbc(%rsp) # imm = 0x2040001
movb $0x0, 0xbb(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xbc(%rsp), %rdx
leaq 0xbb(%rsp), %rcx
callq 0x1c900
jmp 0x15c73
movl $0x20ac001, 0xb4(%rsp) # imm = 0x20AC001
movb $0x0, 0xb3(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xb4(%rsp), %rdx
leaq 0xb3(%rsp), %rcx
callq 0x1c900
jmp 0x15cad
movl $0x20ac002, 0xac(%rsp) # imm = 0x20AC002
movb $0x0, 0xab(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xac(%rsp), %rdx
leaq 0xab(%rsp), %rcx
callq 0x1c900
jmp 0x15ce7
movl $0x20ac003, 0xa4(%rsp) # imm = 0x20AC003
movb $0x0, 0xa3(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0xa4(%rsp), %rdx
leaq 0xa3(%rsp), %rcx
callq 0x1c900
jmp 0x15d21
movl $0x20ac001, 0x9c(%rsp) # imm = 0x20AC001
movb $0x1, 0x9b(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x9c(%rsp), %rdx
leaq 0x9b(%rsp), %rcx
callq 0x1c900
jmp 0x15d5b
movl $0x20ac002, 0x94(%rsp) # imm = 0x20AC002
movb $0x1, 0x93(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x94(%rsp), %rdx
leaq 0x93(%rsp), %rcx
callq 0x1c900
jmp 0x15d95
movl $0x20ac003, 0x8c(%rsp) # imm = 0x20AC003
movb $0x1, 0x8b(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x8c(%rsp), %rdx
leaq 0x8b(%rsp), %rcx
callq 0x1c900
jmp 0x15dcf
movl $0x20ac001, 0x84(%rsp) # imm = 0x20AC001
movb $0x2, 0x83(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x84(%rsp), %rdx
leaq 0x83(%rsp), %rcx
callq 0x1c900
jmp 0x15e09
movl $0x20ac002, 0x7c(%rsp)  # imm = 0x20AC002
movb $0x2, 0x7b(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x7c(%rsp), %rdx
leaq 0x7b(%rsp), %rcx
callq 0x1c900
jmp 0x15e37
movl $0x20ac003, 0x74(%rsp)  # imm = 0x20AC003
movb $0x2, 0x73(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
leaq 0x74(%rsp), %rdx
leaq 0x73(%rsp), %rcx
callq 0x1c900
jmp 0x15e65
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x119(%rsp), %rdx
callq 0x1c9f0
jmp 0x15e84
leaq 0x278(%rsp), %rdi
leaq 0x119(%rsp), %rsi
callq 0x1cac0
jmp 0x15e9b
movl $0x4040000, 0x60(%rsp)  # imm = 0x4040000
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x1c8c0
jmp 0x15ebc
movl $0x4040001, 0x5c(%rsp)  # imm = 0x4040001
movb $0x0, 0x5b(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x5c(%rsp), %rdx
leaq 0x5b(%rsp), %rcx
callq 0x1c900
jmp 0x15ee7
movl $0x4000001, 0x54(%rsp)  # imm = 0x4000001
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x54(%rsp), %rdx
callq 0x1cfb0
jmp 0x15f08
movl $0x4000002, 0x50(%rsp)  # imm = 0x4000002
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1cfb0
jmp 0x15f29
movl $0x4000003, 0x4c(%rsp)  # imm = 0x4000003
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x4c(%rsp), %rdx
callq 0x1cfb0
jmp 0x15f4a
movl $0x4000004, 0x48(%rsp)  # imm = 0x4000004
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x1cfb0
jmp 0x15f6b
movl $0x4000005, 0x44(%rsp)  # imm = 0x4000005
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x44(%rsp), %rdx
callq 0x1cfb0
jmp 0x15f8c
movl $0x4000006, 0x40(%rsp)  # imm = 0x4000006
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0x1cfb0
jmp 0x15fad
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x64(%rsp), %rdx
callq 0x1c9f0
jmp 0x15fc9
leaq 0x278(%rsp), %rdi
leaq 0x64(%rsp), %rsi
callq 0x1cac0
jmp 0x15fdd
movl $0xe040000, 0x2c(%rsp)  # imm = 0xE040000
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x2c(%rsp), %rdx
callq 0x1c8c0
jmp 0x15ffe
movl $0xe040001, 0x28(%rsp)  # imm = 0xE040001
movb 0x58eac(%rip), %al      # 0x6eeb8
movb %al, 0x27(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x27(%rsp), %rcx
callq 0x1c900
jmp 0x1602e
movl $0xe04101b, 0x20(%rsp)  # imm = 0xE04101B
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0x1cfb0
jmp 0x1604f
movl $0xe04101a, 0x1c(%rsp)  # imm = 0xE04101A
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x1c(%rsp), %rdx
callq 0x1cfb0
jmp 0x16070
movl $0xe041014, 0x18(%rsp)  # imm = 0xE041014
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x18(%rsp), %rdx
callq 0x1cfb0
jmp 0x16091
movl $0xe00000c, 0x14(%rsp)  # imm = 0xE00000C
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x14(%rsp), %rdx
callq 0x1cfb0
jmp 0x160b2
movl $0xe00000d, 0x10(%rsp)  # imm = 0xE00000D
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1cfb0
jmp 0x160d3
movl $0xe00000e, 0xc(%rsp)   # imm = 0xE00000E
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
leaq 0xc(%rsp), %rdx
callq 0x1cfb0
jmp 0x160f4
cmpl $0x0, 0x58dbd(%rip)     # 0x6eeb8
jl 0x1611b
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
leaq 0x31(%rsp), %rdx
callq 0x1c9f0
jmp 0x16119
jmp 0x1611b
leaq 0x278(%rsp), %rdi
leaq 0x31(%rsp), %rsi
callq 0x1cac0
jmp 0x1612f
cmpl $0x2, 0x5f99e(%rip)     # 0x75ad4
jne 0x1613a
jmp 0x1613a
jmp 0x1613c
movq 0x280(%rsp), %rsi
movq 0x270(%rsp), %rdx
movzwl 0x26e(%rsp), %ecx
leaq 0x278(%rsp), %rdi
movl $0x1, %r8d
callq 0x20300
jmp 0x16169
leaq 0x278(%rsp), %rdi
leaq 0x269(%rsp), %rsi
callq 0x1cac0
jmp 0x16180
leaq 0x278(%rsp), %rdi
callq 0x200d0
xorl %eax, %eax
addq $0x288, %rsp            # imm = 0x288
retq
movq 0x258(%rsp), %rdi
callq 0x24c0
nopw %cs:(%rax,%rax)