// File: /workspace/github_cpp_makefile_star2_O3/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:
pushq %r15
pushq %r14
pushq %rbx
subq $0x80, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x15898
leaq 0x60(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x20(%rsp), %r9
movb $0xe, (%r9)
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
xorl %ecx, %ecx
callq 0x16266
cmpb $0x0, 0x30d27(%rip)     # 0x40a74
je 0xffa0
leaq 0x60(%rsp), %rdx
movl $0x1000001, (%rdx)      # imm = 0x1000001
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1000005, (%rdx)      # imm = 0x1000005
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1000002, (%rdx)      # imm = 0x1000002
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1000008, (%rdx)      # imm = 0x1000008
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1000003, (%rdx)      # imm = 0x1000003
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1000004, (%rdx)      # imm = 0x1000004
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1000073, (%rdx)      # imm = 0x1000073
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x60(%rsp), %rdx
movl $0x1b000009, (%rdx)     # imm = 0x1B000009
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpb $0x0, 0x30b9e(%rip)     # 0x40a78
jne 0xff13
leaq 0x60(%rsp), %rdx
movl $0x100008b, (%rdx)      # imm = 0x100008B
leaq 0x50(%rsp), %r8
movw $0x0, (%r8)
leaq 0x20(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
movb $0x1, 0x30b65(%rip)     # 0x40a78
movb 0x29f20(%rip), %cl      # 0x39e39
testb %cl, %cl
jne 0xff43
movl 0x2bfc1(%rip), %esi     # 0x3bee4
movl 0x30a8f(%rip), %edx     # 0x409b8
movl 0x30a71(%rip), %ecx     # 0x409a0
leaq 0x2183d(%rip), %rdi     # 0x31773
xorl %eax, %eax
callq 0x2040
movb 0x29ef6(%rip), %cl      # 0x39e39
cmpb $0x2, %cl
jne 0xff75
movl 0x2bf96(%rip), %esi     # 0x3bee4
movl 0x30a64(%rip), %edx     # 0x409b8
movl 0x30b22(%rip), %ecx     # 0x40a7c
movl 0x30a3f(%rip), %r8d     # 0x409a0
leaq 0x2183b(%rip), %rdi     # 0x317a3
xorl %eax, %eax
callq 0x2040
movb 0x29ec4(%rip), %cl      # 0x39e39
movl 0x30a25(%rip), %eax     # 0x409a0
testl %eax, %eax
sets %dl
testb %cl, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x10088
negl %eax
movl %eax, 0x30a05(%rip)     # 0x409a0
jmp 0x101ee
leaq 0x21ef2(%rip), %rdi     # 0x31e99
callq 0x2400
leaq 0x50(%rsp), %rdx
movl $0x1, (%rdx)
leaq 0x30(%rsp), %r9
movb $0xe, (%r9)
leaq 0x20(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x50(%rsp), %r14
movl $0x2, (%r14)
leaq 0x29a25(%rip), %r15     # 0x39a14
movq %r15, %rdi
callq 0x2100
leaq 0x20(%rsp), %r8
movw %ax, (%r8)
leaq 0x30(%rsp), %r9
movb $0xd, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
movq %r14, %rdx
movq %r15, %rcx
callq 0x16428
leaq 0x50(%rsp), %r14
movl $0x3, (%r14)
leaq 0x29a63(%rip), %r15     # 0x39a94
movq %r15, %rdi
callq 0x2100
leaq 0x20(%rsp), %r8
movw %ax, (%r8)
leaq 0x30(%rsp), %r9
movb $0xd, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
movq %r14, %rdx
movq %r15, %rcx
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16746
jmp 0x112af
testl %eax, %eax
sets %dl
testb %cl, %cl
setne %cl
andb %dl, %cl
cmpb $0x1, %cl
jne 0x101ee
movl 0x30915(%rip), %edx     # 0x409b8
testl %edx, %edx
je 0x100c5
movl 0x29da3(%rip), %ecx     # 0x39e50
movl %edx, %esi
subl %ecx, %esi
jle 0x100d9
movl %esi, 0x308ff(%rip)     # 0x409b8
movl $0x4, 0x309b9(%rip)     # 0x40a7c
jmp 0x10119
movl $0x1, 0x309ad(%rip)     # 0x40a7c
xorl %esi, %esi
movl 0x29d79(%rip), %ecx     # 0x39e50
jmp 0x10119
jne 0x100f5
movl $0x0, 0x30997(%rip)     # 0x40a7c
negl %eax
movl %eax, 0x308b3(%rip)     # 0x409a0
movl %edx, 0x30959(%rip)     # 0x40a4c
jmp 0x10131
testl %edx, %edx
jle 0x10105
movl $0x3, 0x30979(%rip)     # 0x40a7c
jmp 0x10117
negl %edx
movl %edx, 0x308ab(%rip)     # 0x409b8
movl $0x2, 0x30965(%rip)     # 0x40a7c
movl %edx, %esi
negl %eax
movl %eax, 0x3087f(%rip)     # 0x409a0
movl %esi, 0x30925(%rip)     # 0x40a4c
cmpl %ecx, %esi
jle 0x10131
movl %ecx, 0x30887(%rip)     # 0x409b8
leaq 0x50(%rsp), %rdx
movl $0x1000030, (%rdx)      # imm = 0x1000030
leaq 0x30(%rsp), %r9
movb $0xe, (%r9)
leaq 0x20(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x50(%rsp), %rdx
movl $0x1000031, (%rdx)      # imm = 0x1000031
leaq 0x20(%rsp), %r8
movw $0x4, (%r8)
leaq 0x30(%rsp), %r9
movb $0x6, (%r9)
leaq 0x308f5(%rip), %rcx     # 0x40a7c
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16428
leaq 0x50(%rsp), %rdx
movl $0x1000032, (%rdx)      # imm = 0x1000032
leaq 0x20(%rsp), %r8
movw $0x4, (%r8)
leaq 0x30(%rsp), %r9
movb $0x6, (%r9)
leaq 0x307fc(%rip), %rcx     # 0x409b8
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16746
leaq 0x50(%rsp), %rdx
movl $0x3040000, (%rdx)      # imm = 0x3040000
leaq 0x30(%rsp), %r9
movb $0xe, (%r9)
leaq 0x20(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x50(%rsp), %rdx
movl $0x3040001, (%rdx)      # imm = 0x3040001
leaq 0x40(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x20(%rsp), %r8
movw $0x1, (%r8)
leaq 0x30(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16428
leaq 0x50(%rsp), %rdx
movl $0x3000001, (%rdx)      # imm = 0x3000001
leaq 0x20(%rsp), %r8
movw $0x0, (%r8)
leaq 0x30(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x50(%rsp), %rdx
movl $0x3000002, (%rdx)      # imm = 0x3000002
leaq 0x20(%rsp), %r8
movw $0x0, (%r8)
leaq 0x30(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x50(%rsp), %rdx
movl $0x3000003, (%rdx)      # imm = 0x3000003
leaq 0x20(%rsp), %r8
movw $0x0, (%r8)
leaq 0x30(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16746
movb 0x29b24(%rip), %al      # 0x39e31
movb %al, 0x5f(%rsp)
leaq 0x20(%rsp), %rdx
movl $0x5040000, (%rdx)      # imm = 0x5040000
leaq 0x40(%rsp), %r9
movb $0xe, (%r9)
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x20(%rsp), %rdx
movl $0x5040001, (%rdx)      # imm = 0x5040001
leaq 0x30(%rsp), %r8
movw $0x1, (%r8)
leaq 0x40(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x5f(%rsp), %rcx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000001, (%rdx)      # imm = 0x5000001
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000002, (%rdx)      # imm = 0x5000002
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000003, (%rdx)      # imm = 0x5000003
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000011, (%rdx)      # imm = 0x5000011
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000012, (%rdx)      # imm = 0x5000012
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000013, (%rdx)      # imm = 0x5000013
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16746
leaq 0x20(%rsp), %rdx
movl $0x5040000, (%rdx)      # imm = 0x5040000
leaq 0x40(%rsp), %r9
movb $0xe, (%r9)
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x20(%rsp), %rdx
movl $0x5040001, (%rdx)      # imm = 0x5040001
leaq 0x18(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x30(%rsp), %r8
movw $0x1, (%r8)
leaq 0x40(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000001, (%rdx)      # imm = 0x5000001
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000002, (%rdx)      # imm = 0x5000002
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000003, (%rdx)      # imm = 0x5000003
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpb $0x1, 0x2986c(%rip)     # 0x39e20
jne 0x105ca
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16746
leaq 0x20(%rsp), %rdx
movl $0x5040000, (%rdx)      # imm = 0x5040000
leaq 0x40(%rsp), %r9
movb $0xe, (%r9)
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x20(%rsp), %rdx
movl $0x5040001, (%rdx)      # imm = 0x5040001
leaq 0x18(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x30(%rsp), %r8
movw $0x1, (%r8)
leaq 0x40(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000001, (%rdx)      # imm = 0x5000001
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000002, (%rdx)      # imm = 0x5000002
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000003, (%rdx)      # imm = 0x5000003
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpb $0x1, 0x2974b(%rip)     # 0x39e21
jne 0x106ec
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16746
leaq 0x20(%rsp), %rdx
movl $0x5040000, (%rdx)      # imm = 0x5040000
leaq 0x40(%rsp), %r9
movb $0xe, (%r9)
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x20(%rsp), %rdx
movl $0x5040001, (%rdx)      # imm = 0x5040001
movb $0x3, %al
leaq 0x18(%rsp), %rcx
movb %al, (%rcx)
leaq 0x30(%rsp), %r8
movw $0x1, (%r8)
leaq 0x40(%rsp), %r9
movb %al, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000001, (%rdx)      # imm = 0x5000001
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000002, (%rdx)      # imm = 0x5000002
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000003, (%rdx)      # imm = 0x5000003
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpb $0x1, 0x2962a(%rip)     # 0x39e22
jne 0x1080e
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16746
leaq 0x20(%rsp), %rdx
movl $0x5040000, (%rdx)      # imm = 0x5040000
leaq 0x40(%rsp), %r9
movb $0xe, (%r9)
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x20(%rsp), %rdx
movl $0x5040001, (%rdx)      # imm = 0x5040001
leaq 0x18(%rsp), %rcx
movb $0x4, (%rcx)
leaq 0x30(%rsp), %r8
movw $0x1, (%r8)
leaq 0x40(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000001, (%rdx)      # imm = 0x5000001
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000002, (%rdx)      # imm = 0x5000002
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000003, (%rdx)      # imm = 0x5000003
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpb $0x1, 0x29509(%rip)     # 0x39e23
jne 0x10930
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16746
leaq 0x20(%rsp), %rdx
movl $0x5040000, (%rdx)      # imm = 0x5040000
leaq 0x40(%rsp), %r9
movb $0xe, (%r9)
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x20(%rsp), %rdx
movl $0x5040001, (%rdx)      # imm = 0x5040001
leaq 0x18(%rsp), %rcx
movb $0x7, (%rcx)
leaq 0x30(%rsp), %r8
movw $0x1, (%r8)
leaq 0x40(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000001, (%rdx)      # imm = 0x5000001
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000002, (%rdx)      # imm = 0x5000002
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x20(%rsp), %rdx
movl $0x5000003, (%rdx)      # imm = 0x5000003
leaq 0x30(%rsp), %r8
movw $0x0, (%r8)
leaq 0x40(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpb $0x1, 0x293e8(%rip)     # 0x39e24
jne 0x10a52
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16746
leaq 0x30(%rsp), %rdx
movl $0x2040000, (%rdx)      # imm = 0x2040000
leaq 0x18(%rsp), %r9
movb $0xe, (%r9)
leaq 0x40(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x30(%rsp), %rdx
movl $0x2040001, (%rdx)      # imm = 0x2040001
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc001, (%rdx)      # imm = 0x20DC001
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc002, (%rdx)      # imm = 0x20DC002
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc003, (%rdx)      # imm = 0x20DC003
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc001, (%rdx)      # imm = 0x20DC001
leaq 0xe(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc002, (%rdx)      # imm = 0x20DC002
leaq 0xe(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc003, (%rdx)      # imm = 0x20DC003
leaq 0xe(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
cmpl $0x7530, 0x2923f(%rip)  # imm = 0x7530
jl 0x10cbd
leaq 0x30(%rsp), %rdx
movl $0x20dc001, (%rdx)      # imm = 0x20DC001
leaq 0xe(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc002, (%rdx)      # imm = 0x20DC002
leaq 0xe(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20dc003, (%rdx)      # imm = 0x20DC003
leaq 0xe(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16746
leaq 0x30(%rsp), %rdx
movl $0x2040000, (%rdx)      # imm = 0x2040000
leaq 0x18(%rsp), %r9
movb $0xe, (%r9)
leaq 0x40(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x30(%rsp), %rdx
movl $0x2040001, (%rdx)      # imm = 0x2040001
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac001, (%rdx)      # imm = 0x20AC001
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac002, (%rdx)      # imm = 0x20AC002
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac003, (%rdx)      # imm = 0x20AC003
leaq 0xe(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac001, (%rdx)      # imm = 0x20AC001
leaq 0xe(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac002, (%rdx)      # imm = 0x20AC002
leaq 0xe(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac003, (%rdx)      # imm = 0x20AC003
leaq 0xe(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac001, (%rdx)      # imm = 0x20AC001
leaq 0xe(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac002, (%rdx)      # imm = 0x20AC002
leaq 0xe(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x30(%rsp), %rdx
movl $0x20ac003, (%rdx)      # imm = 0x20AC003
leaq 0xe(%rsp), %rcx
movb $0x2, (%rcx)
leaq 0x40(%rsp), %r8
movw $0x1, (%r8)
leaq 0x18(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16746
leaq 0x40(%rsp), %rdx
movl $0x4040000, (%rdx)      # imm = 0x4040000
leaq 0xe(%rsp), %r9
movb $0xe, (%r9)
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x40(%rsp), %rdx
movl $0x4040001, (%rdx)      # imm = 0x4040001
leaq 0x1f(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x18(%rsp), %r8
movw $0x1, (%r8)
leaq 0xe(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x16428
leaq 0x40(%rsp), %rdx
movl $0x4000001, (%rdx)      # imm = 0x4000001
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0xe(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x40(%rsp), %rdx
movl $0x4000002, (%rdx)      # imm = 0x4000002
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0xe(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x40(%rsp), %rdx
movl $0x4000003, (%rdx)      # imm = 0x4000003
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0xe(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x40(%rsp), %rdx
movl $0x4000004, (%rdx)      # imm = 0x4000004
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0xe(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x40(%rsp), %rdx
movl $0x4000005, (%rdx)      # imm = 0x4000005
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0xe(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x40(%rsp), %rdx
movl $0x4000006, (%rdx)      # imm = 0x4000006
leaq 0x18(%rsp), %r8
movw $0x0, (%r8)
leaq 0xe(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x16746
leaq 0x18(%rsp), %rdx
movl $0xe040000, (%rdx)      # imm = 0xE040000
leaq 0x1f(%rsp), %r9
movb $0xe, (%r9)
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16266
leaq 0x18(%rsp), %rdx
movl $0xe040001, (%rdx)      # imm = 0xE040001
movb 0x28d43(%rip), %al      # 0x39e7c
leaq 0x7f(%rsp), %rcx
movb %al, (%rcx)
leaq 0xe(%rsp), %r8
movw $0x1, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x3, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x16428
leaq 0x18(%rsp), %rdx
movl $0xe04101b, (%rdx)      # imm = 0xE04101B
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x18(%rsp), %rdx
movl $0xe04101a, (%rdx)      # imm = 0xE04101A
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x18(%rsp), %rdx
movl $0xe041014, (%rdx)      # imm = 0xE041014
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x18(%rsp), %rdx
movl $0xe00000c, (%rdx)      # imm = 0xE00000C
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x18(%rsp), %rdx
movl $0xe00000d, (%rdx)      # imm = 0xE00000D
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
leaq 0x18(%rsp), %rdx
movl $0xe00000e, (%rdx)      # imm = 0xE00000E
leaq 0xe(%rsp), %r8
movw $0x0, (%r8)
leaq 0x1f(%rsp), %r9
movb $0x0, (%r9)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %ecx, %ecx
callq 0x16428
cmpl $0x0, 0x28bf2(%rip)     # 0x39e7c
js 0x112a0
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0x1510a
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x16746
movq 0x77(%rsp), %rdx
movzwl 0x75(%rsp), %ecx
leaq 0x10(%rsp), %rdi
movq %rbx, %rsi
movl $0x1, %r8d
callq 0x15980
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x16746
leaq 0x10(%rsp), %rdi
callq 0x158a4
xorl %eax, %eax
addq $0x80, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
jmp 0x11423
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x158a4
movq %rbx, %rdi
callq 0x24a0