Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 58
Сообщений: 47,477
Вы сказали Спасибо: 27,801
Поблагодарили 43,386 раз(а) в 12,363 сообщениях
Сила репутации: 10Репутация: 42577 
(репутация неоспорима)
|
Ну вот собсно отдизасмил SYSCON.PRX от пандоры-2000.
Что примечательно, так этот файл весит 46420 байт, в отличии от 19502 байта, которые лежат в прошивке 5.00 или 5.03, в декриптованном виде конечно.
Осталось только подсчитать алгоритмы =)
log_syscon.c
#include <pspsdk.h>
#include "syscon.h"
/*
* Imports from library: sceSysEventForKernel
*/
extern void sceKernelRegisterSysEventHandler (int arg1);
extern void sceKernelUnregisterSysEventHandler (int arg1);
/*
* Imports from library: KDebugForKernel
*/
extern void Kprintf (int arg1);
extern int KDebugForKernel_E892D9A1 ();
/*
* Imports from library: InterruptManagerForKernel
*/
extern int sceKernelCpuSuspendIntr ();
extern void InterruptManagerForKernel_169FC5A3 (int arg1, int arg2);
extern void sceKernelCpuResumeIntr (int arg1);
extern void InterruptManagerForKernel_B940A5BF (int arg1, int arg2, int arg3, int arg4);
extern void sceKernelReleaseSubIntrHandler (int arg1, int arg2);
extern void sceKernelEnableSubIntr (int arg1, int arg2);
extern int sceKernelIsIntrContext ();
/*
* Imports from library: ThreadManForKernel
*/
extern void sceKernelDeleteSema (int arg1);
extern int sceKernelGetSystemTimeLow ();
extern void sceKernelSignalSema (int arg1, int arg2);
extern void sceKernelWaitSema (int arg1, int arg2, int arg3);
extern void sceKernelDelayThread (int arg1);
extern int sceKernelCreateSema (int arg1, int arg2, int arg3, int arg4, int arg5);
/*
* Imports from library: SysclibForKernel
*/
extern void memset (int arg1, int arg2, int arg3);
extern void memcpy (int arg1, int arg2, int arg3);
/*
* Imports from library: UtilsForKernel
*/
extern void sceKernelDcacheWritebackAll ();
extern void sceKernelIcacheInvalidateAll ();
/*
* Imports from library: sceSysreg_driver
*/
extern void sceSysregSpiClkEnable (int arg1);
extern void sceSysregSpiIoEnable (int arg1);
extern void sceSysregSpiClkSelect (int arg1, int arg2);
/*
* Imports from library: sceGpio_driver
*/
extern void sceGpioPortClear (int arg1);
extern void sceGpio_driver_1F6EF945 ();
extern void sceGpioPortSet (int arg1);
extern void sceGpioSetPortMode (int arg1, int arg2);
extern void sceGpio_driver_45CFF0FD ();
extern void sceGpio_driver_BE0DF8EA (int arg1, int arg2);
extern int sceGpio_driver_D2F4B351 (int arg1);
/**
* Subroutine at address 0x00000000
*/
void sub_00000 ()
{
0x00000000: 0x00808021 '!...' - move $s0, $a0
0x00000004: 0x00A08821 '!...' - move $s1, $a1
0x00000008: 0x14C00022 '"...' - bnez $a2, 0x00000094
0x0000000C: 0x00000000 '....' - nop
0x00000010: 0x3C08BD00 '...<' - lui $t0, 0xBD00
0x00000014: 0x24090005 '...$' - li $t1, 5
0x00000018: 0xAD090004 '....' - sw $t1, 4($t0)
0x0000001C: 0x8D090004 '....' - lw $t1, 4($t0)
0x00000020: 0x3129000F '..)1' - andi $t1, $t1, 0x000F
0x00000024: 0x1520FFFD '.. .' - bnez $t1, 0x0000001C
0x00000028: 0x00000000 '....' - nop
0x0000002C: 0x8D090000 '....' - lw $t1, 0($t0)
0x00000030: 0x31290200 '..)1' - andi $t1, $t1, 0x0200
0x00000034: 0x1520FFFD '.. .' - bnez $t1, 0x0000002C
0x00000038: 0x00000000 '....' - nop
0x0000003C: 0x24040002 '...$' - li $a0, 2
0x00000040: 0x00002821 '!(..' - move $a1, $zr
0x00000044: 0x00003021 '!0..' - move $a2, $zr
0x00000048: 0x8D090020 ' ...' - lw $t1, 32($t0)
0x0000004C: 0x7D290400 '..)}' - ext $t1, $t1, 16, 1
0x00000050: 0x1520FFFD '.. .' - bnez $t1, 0x00000048
0x00000054: 0x00000000 '....' - nop
0x00000058: 0x30890001 '...0' - andi $t1, $a0, 0x0001
0x0000005C: 0x00094A80 '.J..' - sll $t1, $t1, 10
0x00000060: 0x00055400 '.T..' - sll $t2, $a1, 16
0x00000064: 0x012A4825 '%H*.' - or $t1, $t1, $t2
0x00000068: 0x30CAC7FF '...0' - andi $t2, $a2, 0xC7FF
0x0000006C: 0x012A4825 '%H*.' - or $t1, $t1, $t2
0x00000070: 0xAD090024 '$...' - sw $t1, 36($t0)
0x00000074: 0x0000000F '....' - sync
0x00000078: 0x34898000 '...4' - ori $t1, $a0, 0x8000
0x0000007C: 0xAD090020 ' ...' - sw $t1, 32($t0)
0x00000080: 0x0000000F '....' - sync
0x00000084: 0x8D090020 ' ...' - lw $t1, 32($t0)
0x00000088: 0x7D290400 '..)}' - ext $t1, $t1, 16, 1
0x0000008C: 0x1520FFFD '.. .' - bnez $t1, 0x00000084
0x00000090: 0x00000000 '....' - nop
0x00000094: 0x3C08BC10 '...<' - lui $t0, 0xBC10
0x00000098: 0x24090083 '...$' - li $t1, 131
0x0000009C: 0xAD090068 'h...' - sw $t1, 104($t0)
0x000000A0: 0x8D090098 '....' - lw $t1, 152($t0)
0x000000A4: 0x7D2912C0 '..)}' - ext $t1, $t1, 11, 3
0x000000A8: 0x240A000B '...$' - li $t2, 11
0x000000AC: 0x01495023 '#PI.' - subu $t2, $t2, $t1
0x000000B0: 0x26040010 '...&' - addiu $a0, $s0, 16
0x000000B4: 0x3C090001 '...<' - lui $t1, 0x0001
0x000000B8: 0x35290542 'B.)5' - ori $t1, $t1, 0x0542
0x000000BC: 0xAC890000 '....' - sw $t1, 0($a0)
0x000000C0: 0xA08A0004 '....' - sb $t2, 4($a0)
0x000000C4: 0x254A0048 'H.J%' - addiu $t2, $t2, 72
0x000000C8: 0x314A00FF '..J1' - andi $t2, $t2, 0x00FF
0x000000CC: 0x394A00FF '..J9' - xori $t2, $t2, 0x00FF
0x000000D0: 0xA08A0005 '....' - sb $t2, 5($a0)
0x000000D4: 0x0411000E '....' - bal 0x00000110
0x000000D8: 0x00002821 '!(..' - move $a1, $zr
0x000000DC: 0x16200007 '.. .' - bnez $s1, 0x000000FC
0x000000E0: 0x00000000 '....' - nop
0x000000E4: 0x3C08BC10 '...<' - lui $t0, 0xBC10
0x000000E8: 0x8D090078 'x...' - lw $t1, 120($t0)
0x000000EC: 0x3C0AFFF3 '...<' - lui $t2, 0xFFF3
0x000000F0: 0x354AFFFD '..J5' - ori $t2, $t2, 0xFFFD
0x000000F4: 0x012A4824 '$H*.' - and $t1, $t1, $t2
0x000000F8: 0xAD090078 'x...' - sw $t1, 120($t0)
0x000000FC: 0x02002021 '! ..' - move $a0, $s0
0x00000100: 0x04110003 '....' - bal 0x00000110
0x00000104: 0x24050001 '...$' - li $a1, 1
0x00000108: 0x1000FFFF '....' - b 0x00000108
0x0000010C: 0x70000000 '...p' - halt
0x00000110: 0x03E05821 '!X..' - move $t3, $ra
0x00000114: 0x00806021 '!`..' - move $t4, $a0
0x00000118: 0x3C08BE24 '$..<' - lui $t0, 0xBE24
0x0000011C: 0x24090008 '...$' - li $t1, 8
0x00000120: 0xAD09000C '....' - sw $t1, 12($t0)
0x00000124: 0x8D090004 '....' - lw $t1, 4($t0)
0x00000128: 0x31290008 '..)1' - andi $t1, $t1, 0x0008
0x0000012C: 0x1520FFFD '.. .' - bnez $t1, 0x00000124
0x00000130: 0x00000000 '....' - nop
0x00000134: 0x04110031 '1...' - bal 0x000001FC
0x00000138: 0x24040005 '...$' - li $a0, 5
0x0000013C: 0x3C08BE58 'X..<' - lui $t0, 0xBE58
0x00000140: 0x8D09000C '....' - lw $t1, 12($t0)
0x00000144: 0x31290004 '..)1' - andi $t1, $t1, 0x0004
0x00000148: 0x5520FFFD '.. U' - bnezl $t1, 0x00000140
0x0000014C: 0x8D090008 '....' - lw $t1, 8($t0)
0x00000150: 0x24090003 '...$' - li $t1, 3
0x00000154: 0xAD090020 ' ...' - sw $t1, 32($t0)
0x00000158: 0x01806821 '!h..' - move $t5, $t4
0x0000015C: 0x95AA0000 '....' - lhu $t2, 0($t5)
0x00000160: 0x000A5202 '.R..' - srl $t2, $t2, 8
0x00000164: 0x31490001 '..I1' - andi $t1, $t2, 0x0001
0x00000168: 0x01495023 '#PI.' - subu $t2, $t2, $t1
0x0000016C: 0x95A90000 '....' - lhu $t1, 0($t5)
0x00000170: 0x7C0948A0 '.H.|' - wsbh $t1, $t1
0x00000174: 0x25AD0002 '...%' - addiu $t5, $t5, 2
0x00000178: 0x254AFFFE '..J%' - addiu $t2, $t2, -2
0x0000017C: 0x0541FFFB '..A.' - bgez $t2, 0x0000016C
0x00000180: 0xAD090008 '....' - sw $t1, 8($t0)
0x00000184: 0x24090006 '...$' - li $t1, 6
0x00000188: 0xAD090004 '....' - sw $t1, 4($t0)
0x0000018C: 0x3C08BE24 '$..<' - lui $t0, 0xBE24
0x00000190: 0x24090008 '...$' - li $t1, 8
0x00000194: 0xAD090008 '....' - sw $t1, 8($t0)
0x00000198: 0x0000000F '....' - sync
0x0000019C: 0x8D090020 ' ...' - lw $t1, 32($t0)
0x000001A0: 0x31290010 '..)1' - andi $t1, $t1, 0x0010
0x000001A4: 0x1120FFFD '.. .' - beqz $t1, 0x0000019C
0x000001A8: 0x00000000 '....' - nop
0x000001AC: 0x24090008 '...$' - li $t1, 8
0x000001B0: 0xAD09000C '....' - sw $t1, 12($t0)
0x000001B4: 0x0000000F '....' - sync
0x000001B8: 0x04110010 '....' - bal 0x000001FC
0x000001BC: 0x24040FA0 '...$' - li $a0, 4000
0x000001C0: 0x14A0000C '....' - bnez $a1, 0x000001F4
0x000001C4: 0x00000000 '....' - nop
0x000001C8: 0x3C08BE58 'X..<' - lui $t0, 0xBE58
0x000001CC: 0x8D090008 '....' - lw $t1, 8($t0)
0x000001D0: 0x8D090008 '....' - lw $t1, 8($t0)
0x000001D4: 0x8D0A000C '....' - lw $t2, 12($t0)
0x000001D8: 0x314A0004 '..J1' - andi $t2, $t2, 0x0004
0x000001DC: 0x5540FFFD '..@U' - bnezl $t2, 0x000001D4
0x000001E0: 0x8D0A0008 '....' - lw $t2, 8($t0)
0x000001E4: 0x7D293A00 '.:)}' - ext $t1, $t1, 8, 8
0x000001E8: 0x39290082 '..)9' - xori $t1, $t1, 0x0082
0x000001EC: 0x1520FFCD '.. .' - bnez $t1, 0x00000124
0x000001F0: 0x00000000 '....' - nop
0x000001F4: 0x01600008 '..`.' - jr $t3
0x000001F8: 0x00000000 '....' - nop
0x000001FC: 0x00040840 '@...' - sll $at, $a0, 1
0x00000200: 0x00240821 '!.$.' - addu $at, $at, $a0
0x00000204: 0x00010940 '@...' - sll $at, $at, 5
0x00000208: 0x1420FFFF '.. .' - bnez $at, 0x00000208
0x0000020C: 0x2421FFFF '..!$' - addiu $at, $at, -1
0x00000210: 0x03E00008 '....' - jr $ra
0x00000214: 0x00000000 '....' - nop
}
/**
* Subroutine at address 0x00000218
*/
void sceSysconInit ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[3] = ra;
((int *) sp)[2] = s2;
((int *) sp)[1] = s1;
((int *) sp)[0] = s0;
sceSysregSpiClkSelect (0x00000000, 0x00000001);
sceSysregSpiClkEnable (0x00000000);
sceSysregSpiIoEnable (0x00000000);
*((int *) 0xBE580000) = 0x000000CF;
*((int *) 0xBE580004) = 0x00000004;
*((int *) 0xBE580014) = 0x00000000;
*((int *) 0xBE580024) = 0x00000000;
memset (0x00008770, 0x00000000, 0x00000148);
memset (0x00008710, 0x00000000, 0x00000060);
*((char *) 0x0000871D) = 0x00000002;
*((char *) 0x0000871C) = 0x00000010;
*((int *) 0x000088B0) = 0x00000001;
*((int *) 0x000087A8) = 0x00000FA0;
*((char *) 0x000087C2) = 0xFFFFFFFF;
*((char *) 0x000087B0) = 0xFFFFFFFF;
*((char *) 0x000087B1) = 0xFFFFFFFF;
*((char *) 0x000087B2) = 0xFFFFFFFF;
*((char *) 0x000087B3) = 0xFFFFFFFF;
*((char *) 0x000087B4) = 0xFFFFFFFF;
*((char *) 0x000087B6) = 0xFFFFFFFF;
*((char *) 0x000087B7) = 0xFFFFFFFF;
*((char *) 0x000087B8) = 0xFFFFFFFF;
*((char *) 0x000087BD) = 0xFFFFFFFF;
*((char *) 0x000087BE) = 0xFFFFFFFF;
*((char *) 0x000087BF) = 0xFFFFFFFF;
*((char *) 0x000087C0) = 0xFFFFFFFF;
*((char *) 0x000087C1) = 0xFFFFFFFF;
*((int *) 0x000087AC) = 0x00004E20;
*((int *) 0x0000879C) = 0x00000000;
sceGpioPortClear (0x00000008);
var15 = sceKernelGetSystemTimeLow ();
*((int *) 0x00008798) = var15;
sceGpioSetPortMode (0x00000003, 0x00000000);
sceGpioSetPortMode (0x00000004, 0x00000001);
sceGpio_driver_BE0DF8EA (0x00000004, 0x00000003);
InterruptManagerForKernel_B940A5BF (0x00000004, 0x00000004, 0x00000798, 0x00000000);
sceKernelEnableSubIntr (0x00000004, 0x00000004);
sceKernelRegisterSysEventHandler (0x000086C0);
while (1) {
var30 = sceSysconGetBaryonVersion (0x00008888);
if (var30 < 0)
continue;
break;
}
while (1) {
var33 = sceSysconGetTimeStamp (0x0000888C);
if (var33 < 0)
continue;
break;
}
var34 = *((char *) 0x0000888C);
var35 = 0x00000000;
var36 = 0x00000000;
var37 = 0x0000888C;
if (!(var34 == 0x00000000))
{
while (1) {
var38 = (var35 << 0x00000002) + var35;
var39 = ((char *) var37)[0];
var37 = var37 + 0x00000001;
var40 = var39 + 0xFFFFFFD0;
var41 = ((char *) var37)[0];
var35 = (var38 << 0x00000001) + var40;
var36 = (((((((var36 << 0x00000002) | (var35 >> 0x0000001E)) + var36) + ((var38 < var35))) << 0x00000001) | (var38 >> 0x0000001F)) + (var40 >> 0x0000001F)) + ((var35 < var40));
if (var41 != 0x00000000)
continue;
break;
}
}
*((int *) 0x000088A0) = var35;
*((int *) 0x000088A4) = var36;
sub_00430 ();
ra = ((int *) sp)[3];
var44 = ((int *) sp)[2];
var45 = ((int *) sp)[1];
var46 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00000430
*/
void sub_00430 ()
{
sp = sp + 0xFFFFFFE0;
((int *) sp)[6] = ra;
((int *) sp)[5] = s1;
((int *) sp)[4] = s0;
while (1) {
var3 = sceSysconGetPommelVersion (0x000088A8);
if (var3 < 0)
continue;
break;
}
while (1) {
var4 = sp;
var7 = sceSyscon_driver_D2D8E0DC (var4);
if (var7 < 0)
continue;
break;
}
var8 = *((unsigned short *) 0x0000888A);
var9 = var8 & 0x000000F0;
var10 = ((int *) sp)[0];
if ((((var9 < 0x00000001)) | (((var9 ^ 0x00000010) < 0x00000001))) != 0x00000000)
{
var17 = ((int *) sp)[0];
*((char *) 0x000087B6) = ((var17 >> 9) & 0x00000001);
*((char *) 0x000087B7) = ((var17 >> 12) & 0x00000001);
*((char *) 0x000087B8) = ((var17 >> 20) & 0x00000001);
var20 = sub_03950 ();
if (var20 == 0x00000100)
{
var21 = ((int *) sp)[0];
*((char *) 0x000087BE) = ((var21 >> 2) & 0x00000001);
*((char *) 0x000087BD) = ((var21 >> 1) & 0x00000001);
}
else
{
*((char *) 0x000087BE) = 0x00000001;
*((char *) 0x000087BD) = 0x00000001;
var21 = ((int *) sp)[0];
}
var22 = *((unsigned char *) 0x000087C4);
*((char *) 0x000087BF) = ((var21 >> 3) & 0x00000001);
*((char *) 0x000087C0) = ((var21 >> 19) & 0x00000001);
*((char *) 0x000087C1) = ((var22 >> 2) & 0x00000001);
*((char *) 0x000087B5) = 0x00000000;
*((char *) 0x000087B9) = 0x00000000;
*((char *) 0x000087BA) = 0x00000000;
*((char *) 0x000087BB) = 0x00000000;
*((char *) 0x000087BC) = 0x00000000;
}
else
{
*((char *) 0x000087B6) = ((var10 >> 3) & 0x00000001);
*((char *) 0x000087B7) = ((var10 >> 13) & 0x00000001);
*((char *) 0x000087B8) = ((var10 >> 8) & 0x00000001);
*((char *) 0x000087BA) = ((var10 >> 19) & 0x00000001);
*((char *) 0x000087BF) = ((var10 >> 1) & 0x00000001);
*((char *) 0x000087C0) = 0x00000001;
*((char *) 0x000087C1) = ((var10 >> 7) & 0x00000001);
*((char *) 0x000087BD) = 0x00000001;
*((char *) 0x000087BE) = 0x00000001;
if (((((var8 & 0x000000FF) + 0xFFFFFFE0) < 0x00000002)) == 0x00000000)
{
*((char *) 0x000087BC) = ((var10 >> 21) & 0x00000001);
}
else
{
*((char *) 0x000087BC) = 0x00000000;
}
*((int *) 0x0000889C) = 0x00000001;
var13 = sceSysconCmdExec (0x00008710, 0x00000000);
var14 = *((unsigned char *) 0x000087C5);
*((char *) 0x000087B5) = ((var14 >> 2) & 0x00000001);
*((char *) 0x000087B9) = (var14 & 0x00000001);
*((char *) 0x000087BB) = ((var14 >> 1) & 0x00000001);
}
ra = ((int *) sp)[6];
var15 = ((int *) sp)[5];
var16 = ((int *) sp)[4];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x000005C0
*/
void sceSysconResume (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
var1 = arg1;
((int *) sp)[2] = ra;
((int *) sp)[0] = s0;
sceSysregSpiClkSelect (0x00000000, 0x00000001);
sceSysregSpiClkEnable (0x00000000);
sceSysregSpiIoEnable (0x00000000);
*((int *) 0xBE580000) = 0x000000CF;
*((int *) 0xBE580004) = 0x00000004;
*((int *) 0xBE580014) = 0x00000000;
*((int *) 0xBE580024) = 0x00000000;
sceGpioSetPortMode (0x00000003, 0x00000000);
sceGpioSetPortMode (0x00000004, 0x00000001);
sceGpio_driver_BE0DF8EA (0x00000004, 0x00000003);
sceKernelEnableSubIntr (0x00000004, 0x00000004);
var18 = sceKernelGetSystemTimeLow ();
*((int *) 0x00008798) = var18;
*((char *) 0x000087B6) = 0x00000000;
var19 = ((int *) var1)[8];
ra = ((int *) sp)[2];
*((char *) 0x000087B7) = ((var19 >> 21) & 0x00000001);
var20 = ((int *) var1)[6];
*((char *) 0x000087C0) = 0x00000001;
*((char *) 0x000087B8) = ((var20 >> 1) & 0x00000001);
*((char *) 0x000087BD) = 0x00000001;
*((char *) 0x000087BE) = 0x00000001;
*((char *) 0x000087BF) = 0x00000001;
var21 = ((int *) var1)[6];
*((char *) 0x000087C1) = ((var21 >> 2) & 0x00000001);
var22 = ((int *) var1)[8];
*((char *) 0x000087B0) = ((var22 >> 15) & 0x00000001);
var23 = ((int *) var1)[8];
*((char *) 0x000087B1) = (((!var23) >> 14) & 0x00000001);
var24 = ((int *) var1)[8];
*((char *) 0x000087B2) = (((!var24) >> 14) & 0x00000001);
var25 = ((int *) var1)[8];
*((char *) 0x000087B3) = (((!var25) >> 13) & 0x00000001);
var26 = ((int *) var1)[8];
var27 = ((int *) sp)[1];
*((char *) 0x000087B4) = ((var26 >> 20) & 0x00000001);
var28 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000006E8
*/
void sub_006E8 (int arg1, int arg2, int arg3)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
if (arg1 == 0x0000400F)
{
*((int *) 0x000088AC) = 0x00000001;
label21:
var1 = 0x00000000;
}
else
{
if (((arg1 < 0x00004010)) == 0x00000000)
{
if (arg1 == 0x00010008)
{
var7 = ((int *) arg3)[1];
sceSysconResume (var7);
var1 = 0x00000000;
}
else
{
var1 = 0x00000000;
if (!(arg1 != 0x0001000F))
{
*((int *) 0x000088AC) = 0x00000000;
}
}
}
else
{
if (arg1 == 0x00000402)
{
var6 = sceSysconCmdSync (0x00000000, 0x00000001);
var1 = !(var6) ? 0x00000000 : 0xFFFFFFFF;
}
else
{
if (arg1 == 0x00004008)
{
InterruptManagerForKernel_169FC5A3 (0x00000004, 0x00000004);
var1 = 0x00000000;
}
else
{
goto label21;
}
}
}
}
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00000798
*/
void sub_00798 ()
{
0x00000798: 0x27BDFFC0 '...'' - addiu $sp, $sp, -64
0x0000079C: 0xAFBF0034 '4...' - sw $ra, 52($sp)
0x000007A0: 0xAFB7002C ',...' - sw $s7, 44($sp)
0x000007A4: 0xAFB50024 '$...' - sw $s5, 36($sp)
0x000007A8: 0x3C150001 '...<' - lui $s5, 0x0001
0x000007AC: 0xAFB3001C '....' - sw $s3, 28($sp)
0x000007B0: 0xAFB20018 '....' - sw $s2, 24($sp)
0x000007B4: 0xAFB00010 '....' - sw $s0, 16($sp)
0x000007B8: 0x26B08770 'p..&' - addiu $s0, $s5, -30864
0x000007BC: 0xAFBE0030 '0...' - sw $fp, 48($sp)
0x000007C0: 0xAFB60028 '(...' - sw $s6, 40($sp)
0x000007C4: 0xAFB40020 ' ...' - sw $s4, 32($sp)
0x000007C8: 0x0C000EA5 '....' - jal 0x00003A94
0x000007CC: 0xAFB10014 '....' - sw $s1, 20($sp)
0x000007D0: 0x24040008 '...$' - li $a0, 8
0x000007D4: 0x0C000ECB '....' - jal 0x00003B2C
0x000007D8: 0xAFA20000 '....' - sw $v0, 0($sp)
0x000007DC: 0x0C000EBD '....' - jal 0x00003AF4
0x000007E0: 0x00000000 '....' - nop
0x000007E4: 0xAE020028 '(...' - sw $v0, 40($s0)
0x000007E8: 0x24040004 '...$' - li $a0, 4
0x000007EC: 0x0C000ECD '....' - jal 0x00003B34
0x000007F0: 0x0040B821 '!.@.' - move $s7, $v0
0x000007F4: 0x8EB38770 'p...' - lw $s3, -30864($s5)
0x000007F8: 0x24030001 '...$' - li $v1, 1
0x000007FC: 0xAE03002C ',...' - sw $v1, 44($s0)
0x00000800: 0x02602021 '! `.' - move $a0, $s3
0x00000804: 0xAFA00004 '....' - sw $zr, 4($sp)
0x00000808: 0x0C0007C8 '....' - jal 0x00001F20
0x0000080C: 0xAEA08770 'p...' - sw $zr, -30864($s5)
0x00000810: 0x04400002 '..@.' - bltz $v0, 0x0000081C
0x00000814: 0x00409021 '!.@.' - move $s2, $v0
0x00000818: 0xA2020054 'T...' - sb $v0, 84($s0)
0x0000081C: 0x06400214 '..@.' - bltz $s2, 0x00001070
0x00000820: 0x921E0053 'S...' - lbu $fp, 83($s0)
0x00000824: 0x8E03012C ',...' - lw $v1, 300($s0)
0x00000828: 0x10600006 '..`.' - beqz $v1, 0x00000844
0x0000082C: 0x03D28826 '&...' - xor $s1, $fp, $s2
0x00000830: 0x02401021 '!.@.' - move $v0, $s2
0x00000834: 0x7C022944 'D).|' - ins $v0, $zr, 5, 1
0x00000838: 0x33C40020 ' ..3' - andi $a0, $fp, 0x0020
0x0000083C: 0x00449025 '%.D.' - or $s2, $v0, $a0
0x00000840: 0x03D28826 '&...' - xor $s1, $fp, $s2
0x00000844: 0x32250080 '..%2' - andi $a1, $s1, 0x0080
0x00000848: 0x10A0000C '....' - beqz $a1, 0x0000087C
0x0000084C: 0xA2120053 'S...' - sb $s2, 83($s0)
0x00000850: 0x260300C8 '...&' - addiu $v1, $s0, 200
0x00000854: 0x8C660008 '..f.' - lw $a2, 8($v1)
0x00000858: 0x10C00008 '....' - beqz $a2, 0x0000087C
0x0000085C: 0x7E4401C0 '..D~' - ext $a0, $s2, 7, 1
0x00000860: 0x8C67000C '..g.' - lw $a3, 12($v1)
0x00000864: 0x0380A021 '!...' - move $s4, $gp
0x00000868: 0x00E0E021 '!...' - move $gp, $a3
0x0000086C: 0x00C0F809 '....' - jalr $a2
0x00000870: 0x8C650010 '..e.' - lw $a1, 16($v1)
0x00000874: 0x03801021 '!...' - move $v0, $gp
0x00000878: 0x0280E021 '!...' - move $gp, $s4
0x0000087C: 0x26A38770 'p..&' - addiu $v1, $s5, -30864
0x00000880: 0x8C66012C ',.f.' - lw $a2, 300($v1)
0x00000884: 0x10C001EA '....' - beqz $a2, 0x00001030
0x00000888: 0x02327825 '%x2.' - or $t7, $s1, $s2
0x0000088C: 0x90690054 'T.i.' - lbu $t1, 84($v1)
0x00000890: 0x31280020 ' .(1' - andi $t0, $t1, 0x0020
0x00000894: 0x11000009 '....' - beqz $t0, 0x000008BC
0x00000898: 0x32380010 '..82' - andi $t8, $s1, 0x0010
0x0000089C: 0x8C6A013C '<.j.' - lw $t2, 316($v1)
0x000008A0: 0x15400006 '..@.' - bnez $t2, 0x000008BC
0x000008A4: 0x240B0010 '...$' - li $t3, 16
0x000008A8: 0x926C000C '..l.' - lbu $t4, 12($s3)
0x000008AC: 0x118B0003 '....' - beq $t4, $t3, 0x000008BC
0x000008B0: 0x240D0001 '...$' - li $t5, 1
0x000008B4: 0xAFAD0004 '....' - sw $t5, 4($sp)
0x000008B8: 0x32380010 '..82' - andi $t8, $s1, 0x0010
}
/**
* Subroutine at address 0x000008BC
*/
void sub_008BC ()
{
var1 = s1 & 0x00000008;
if (!(t8 == 0x00000000))
{
var2 = (s5 + 0xFFFF8770) + 0x0000005C;
var3 = ((int *) var2)[2];
if (!(var3 == 0x00000000))
{
var4 = ((int *) var2)[3];
s4 = gp;
gp = var4;
var5 = ((int *) var2)[4];
var8 var9 = (*var3) (((s2 >> 4) & 0x00000001), var5, var3, arg4, arg5, arg6, arg7, arg8);
var10 = gp;
gp = s4;
}
var1 = s1 & 0x00000008;
}
var11 = s1 & 0x00000001;
if (!(var1 == 0x00000000))
{
var12 = (s5 + 0xFFFF8770) + 0x00000068;
var13 = ((int *) var12)[2];
var14 = s2 ^ 0x00000008;
if (!(var13 == 0x00000000))
{
var15 = ((int *) var12)[3];
s6 = gp;
gp = var15;
var16 = ((int *) var12)[4];
var19 var20 = (*var13) (((var14 >> 3) & 0x00000001), var16, var13, var14, var15);
var21 = gp;
gp = s6;
}
var11 = s1 & 0x00000001;
}
var22 = s1 & 0x00000002;
if (!(var11 == 0x00000000))
{
s6 = s5 + 0xFFFF8770;
var23 = s6 + 0x00000074;
var24 = ((int *) var23)[2];
s4 = s2 & 0x00000001;
if (!(var24 == 0x00000000))
{
var25 = ((int *) var23)[3];
var26 = gp;
gp = var25;
var27 = ((int *) var23)[4];
var30 var31 = (*var24) (s4, var27, var24);
var32 = gp;
gp = var26;
}
var33 = s6 + 0x00000104;
var34 = ((int *) var33)[2];
var22 = s1 & 0x00000002;
if (!(var34 == 0x00000000))
{
var35 = ((int *) var33)[3];
s6 = gp;
gp = var35;
var36 = ((int *) var33)[4];
var39 var40 = (*var34) (s4, var36, var34);
var41 = gp;
gp = s6;
var22 = s1 & 0x00000002;
}
}
var42 = s1 & 0x00000004;
if (!(var22 == 0x00000000))
{
var43 = (s5 + 0xFFFF8770) + 0x000000BC;
var44 = ((int *) var43)[2];
if (!(var44 == 0x00000000))
{
var45 = ((int *) var43)[3];
s4 = gp;
gp = var45;
var46 = ((int *) var43)[4];
var49 var50 = (*var44) (((s2 >> 1) & 0x00000001), var46, var44);
var51 = gp;
gp = s4;
var42 = s1 & 0x00000004;
}
}
if (var42 == 0x00000000)
{
var61 = ((unsigned char *) s3)[12];
}
else
{
s1 = s5 + 0xFFFF8770;
var52 = s1 + 0x000000B0;
var53 = ((int *) var52)[2];
if (!(var53 == 0x00000000))
{
var54 = ((int *) var52)[3];
s6 = gp;
gp = var54;
var55 = ((int *) var52)[4];
var58 var59 = (*var53) (((s2 >> 2) & 0x00000001), var55, var53);
var60 = gp;
gp = s6;
}
var61 = ((unsigned char *) s3)[12];
}
var62 = var61 & 0x000000FF;
var63 = (var62 < 0x00000011);
if (var63 == 0x00000000)
{
sub_00B1C ();
}
else
{
var64 = ((int *) ((var62 << 0x00000002) + 0x000042F0))[0];
}
return;
}
/**
* Subroutine at address 0x00000A4C
*/
void sub_00A4C ()
{
0x00000A4C: 0x26A48770 'p..&' - addiu $a0, $s5, -30864
0x00000A50: 0x9272001F '..r.' - lbu $s2, 31($s3)
0x00000A54: 0x90850055 'U...' - lbu $a1, 85($a0)
0x00000A58: 0x00B28826 '&...' - xor $s1, $a1, $s2
0x00000A5C: 0x323E0001 '..>2' - andi $fp, $s1, 0x0001
0x00000A60: 0x13C0000C '....' - beqz $fp, 0x00000A94
0x00000A64: 0xA0920055 'U...' - sb $s2, 85($a0)
0x00000A68: 0x248300D4 '...$' - addiu $v1, $a0, 212
0x00000A6C: 0x8C660008 '..f.' - lw $a2, 8($v1)
0x00000A70: 0x10C00008 '....' - beqz $a2, 0x00000A94
0x00000A74: 0x32440001 '..D2' - andi $a0, $s2, 0x0001
0x00000A78: 0x8C68000C '..h.' - lw $t0, 12($v1)
0x00000A7C: 0x0380A021 '!...' - move $s4, $gp
0x00000A80: 0x0100E021 '!...' - move $gp, $t0
0x00000A84: 0x00C0F809 '....' - jalr $a2
0x00000A88: 0x8C650010 '..e.' - lw $a1, 16($v1)
0x00000A8C: 0x03801021 '!...' - move $v0, $gp
0x00000A90: 0x0280E021 '!...' - move $gp, $s4
0x00000A94: 0x32230002 '..#2' - andi $v1, $s1, 0x0002
0x00000A98: 0x1060000E '..`.' - beqz $v1, 0x00000AD4
0x00000A9C: 0x322A0004 '..*2' - andi $t2, $s1, 0x0004
0x00000AA0: 0x26A68770 'p..&' - addiu $a2, $s5, -30864
0x00000AA4: 0x24C300E0 '...$' - addiu $v1, $a2, 224
0x00000AA8: 0x8C660008 '..f.' - lw $a2, 8($v1)
0x00000AAC: 0x10C00009 '....' - beqz $a2, 0x00000AD4
0x00000AB0: 0x7E440040 '@.D~' - ext $a0, $s2, 1, 1
0x00000AB4: 0x8C69000C '..i.' - lw $t1, 12($v1)
0x00000AB8: 0x0380B021 '!...' - move $s6, $gp
0x00000ABC: 0x0120E021 '!. .' - move $gp, $t1
0x00000AC0: 0x00C0F809 '....' - jalr $a2
0x00000AC4: 0x8C650010 '..e.' - lw $a1, 16($v1)
0x00000AC8: 0x03801021 '!...' - move $v0, $gp
0x00000ACC: 0x02C0E021 '!...' - move $gp, $s6
0x00000AD0: 0x322A0004 '..*2' - andi $t2, $s1, 0x0004
0x00000AD4: 0x51400010 '..@Q' - beqzl $t2, 0x00000B18
0x00000AD8: 0x9265000C '..e.' - lbu $a1, 12($s3)
0x00000ADC: 0x26AB8770 'p..&' - addiu $t3, $s5, -30864
0x00000AE0: 0x256300F8 '..c%' - addiu $v1, $t3, 248
0x00000AE4: 0x8C660008 '..f.' - lw $a2, 8($v1)
0x00000AE8: 0x7E440080 '..D~' - ext $a0, $s2, 2, 1
0x00000AEC: 0x50C0000A '...P' - beqzl $a2, 0x00000B18
0x00000AF0: 0x9265000C '..e.' - lbu $a1, 12($s3)
0x00000AF4: 0x8C6A000C '..j.' - lw $t2, 12($v1)
0x00000AF8: 0x03808021 '!...' - move $s0, $gp
0x00000AFC: 0x0140E021 '!.@.' - move $gp, $t2
0x00000B00: 0x8C650010 '..e.' - lw $a1, 16($v1)
}
/**
* Subroutine at address 0x00000B04
*/
void sub_00B04 ()
{
0x00000B04: 0x00C0F809 '....' - jalr $a2
0x00000B08: 0x00000000 '....' - nop
0x00000B0C: 0x03801021 '!...' - move $v0, $gp
0x00000B10: 0x0200E021 '!...' - move $gp, $s0
}
/**
* Subroutine at address 0x00000B14
*/
void sub_00B14 ()
{
0x00000B14: 0x9265000C '..e.' - lbu $a1, 12($s3)
}
/**
* Subroutine at address 0x00000B18
*/
void sub_00B18 ()
{
0x00000B18: 0x30AE00FF '...0' - andi $t6, $a1, 0x00FF
}
/**
* Subroutine at address 0x00000B1C
*/
void sub_00B1C (int arg1, int arg2)
{
if (((t6 < 0x00000020)) != 0x00000000)
{
var3 = ((int *) s3)[1];
label8:
var4 = (((char) arg2) < 0x00000000);
var5 = ((int *) s3)[0];
var6 = (((var4) ? 0x00000000 : ((arg2 >> 5) & 0x00000007)) << 0x00000002) + (s5 + 0xFFFF8770);
((int *) var6)[1] = var5;
var7 = ((int *) s3)[0];
((int *) s3)[1] = ((var3 & 0xFFFBFFFF) | (0x00000000 & 0x00000001));
if (!(var7 != 0x00000000))
{
((int *) var6)[5] = 0x00000000;
}
var8 = ((int *) s3)[11];
((int *) s3)[0] = 0x00000000;
var9 = 0x00000000;
if (var8 != 0x00000000)
{
var53 = ((int *) s3)[12];
var54 = gp;
gp = var53;
var55 = ((int *) s3)[11];
var56 = ((int *) s3)[13];
var59 var60 = (*var55) (s3, var56, var8, var5, var4, arg6, arg7, arg8);
var9 = var59;
var61 = gp;
gp = var54;
var10 = ((int *) sp)[1];
if (!(var9 == 0x00000000))
{
if (var9 == 0x00000001)
{
var65 = ((unsigned char *) s3)[12];
var63 = (((((((char) var65) < 0x00000000))) ? 0x00000000 : ((var65 >> 5) & 0x00000007)) << 0x00000002) + (s5 + 0xFFFF8770);
var66 = ((int *) var63)[1];
if (var66 == 0x00000000)
{
((int *) var63)[5] = s3;
label20:
((int *) var63)[1] = s3;
((int *) s3)[0] = 0x00000000;
}
else
{
((int *) var63)[1] = s3;
((int *) s3)[0] = var66;
}
label21:
var10 = ((int *) sp)[1];
}
else
{
var10 = ((int *) sp)[1];
if (!(var9 != 0x00000002))
{
var62 = ((unsigned char *) s3)[12];
var63 = ((((((((char) var62) < 0x00000000))) ? 0x00000000 : ((var62 >> 5) & 0x00000007)) << 0x00000002) + (s5 + 0xFFFF8770)) + 0x00000010;
var64 = ((int *) var63)[1];
((int *) var64)[0] = s3;
goto label20;
}
}
}
}
else
goto label21;
}
else
{
var1 = ((unsigned char *) s3)[30];
if (((((var1 + 0xFFFFFF80) & 0x000000FF) < 0x00000002)) == 0x00000000)
{
var3 = ((int *) s3)[1];
goto label8;
}
else
{
var2 = ((int *) s3)[1];
var3 = var2;
if (!((var2 & 0x00000010) == 0x00000000))
goto label8;
((int *) s3)[1] = (var2 | 0x00040000);
var9 = 0x00000002;
goto label21;
}
}
var11 = s5 + 0xFFFF8770;
if (!((var10 & ((0x00000000 < (var9 ^ 0x00000001)))) == 0x00000000))
{
var12 = s5 + 0xFFFF8770;
var13 = ((int *) var12)[1];
if (var13 == 0x00000000)
{
((int *) var12)[5] = 0x00008710;
*((int *) 0x00008710) = 0x00000000;
((int *) var12)[1] = 0x00008710;
}
else
{
((int *) var12)[1] = 0x00008710;
*((int *) 0x00008710) = var13;
}
var11 = s5 + 0xFFFF8770;
}
var14 = ((int *) var11)[1];
if (var14 == 0x00000000)
{
var40 = ((int *) var11)[13];
var41 = var11;
var42 = 0x00000000;
var43 = var40 + 0x00000000;
while (1) {
var44 = var43 + 0x00000001;
var14 = ((int *) (((!(((var44 < 0x00000004))) ? (var43 + 0xFFFFFFFE) : var44) << 0x00000002) + var41))[1];
var42 = var42 + 0x00000001;
if (var14 != 0x00000000)
break;
var43 = var40 + var42;
if (((var42 < 0x00000003)) != 0x00000000)
continue;
var45 = s5 + 0xFFFF8770;
goto label40;
}
var48 = ((int *) var14)[1];
var45 = s5 + 0xFFFF8770;
if ((var48 & 0x00040000) == 0x00000000)
{
label40:
var46 = ((int *) var45)[13];
}
else
{
var49 = ((int *) var14)[14];
var50 = ((int *) var14)[15];
if ((((s7 - var49) < var50)) == 0x00000000)
goto label40;
var51 = ((int *) var41)[80];
if (var51 != 0x00000000)
{
var46 = ((int *) var45)[13];
}
else
{
var52 = ((int *) var41)[79];
if (var52 == 0x00000000)
{
var14 = 0x00000000;
goto label40;
}
else
{
var46 = ((int *) var45)[13];
}
}
}
var47 = var46 + 0x00000001;
((int *) var45)[13] = var47;
if (var47 == 0x00000003)
{
((int *) var45)[13] = 0x00000000;
}
var15 = s5 + 0xFFFF8770;
if (var14 != 0x00000000)
{
label46:
var16 = ((int *) var15)[79];
var17 = 0x00000004;
if (!(var16 == 0x00000000))
{
var17 = ((int *) var15)[15];
}
while (1) {
var20 = sceKernelGetSystemTimeLow ();
if (((var17 < (var20 - s7))) == 0x00000000)
continue;
break;
}
((int *) s5)[1073734108] = var14;
sub_01DDC (var14);
}
else
{
}
}
else
{
var15 = s5 + 0xFFFF8770;
goto label46;
}
if (var9 != 0x00000000)
{
var27 = s5 + 0xFFFF8770;
}
else
{
var23 = ((int *) s3)[1];
var24 = ((int *) s3)[2];
((int *) s3)[1] = (((var23 & 0xFFFEFFFF) | (0x00000000 & 0x00000001)) | 0x00080000);
if (!(var24 < 0))
{
sceKernelSignalSema (var24, 0x00000001);
}
var27 = s5 + 0xFFFF8770;
}
var28 = ((int *) sp)[0];
((int *) var27)[11] = 0x00000000;
sceKernelCpuResumeIntr (var28);
ra = ((int *) sp)[13];
var31 = ((int *) sp)[12];
var32 = ((int *) sp)[11];
var33 = ((int *) sp)[10];
var34 = ((int *) sp)[9];
var35 = ((int *) sp)[8];
var36 = ((int *) sp)[7];
var37 = ((int *) sp)[6];
var38 = ((int *) sp)[5];
var39 = ((int *) sp)[4];
sp = sp + 0x00000040;
return;
}
/**
* Subroutine at address 0x00000FCC
*/
void sub_00FCC (int arg1, int arg2)
{
var1 = s5 + 0xFFFF8770;
var2 = ((int *) var1)[75];
if (var2 == 0x00000000)
{
sub_00B1C (arg1, arg2);
}
else
{
var3 = ((unsigned char *) var1)[83];
var4 = ((unsigned char *) s3)[31];
s0 = (var3 & 0xFFFFFFDF) | (0x00000000 & 0x00000001);
var5 = !((var4 & 0x00000010)) ? s0 : (var3 | 0x00000020);
s1 = (fp ^ var5) | var5;
((char *) var1)[83] = var5;
if ((s1 & 0x00000020) == 0x00000000)
{
sub_00B14 ();
}
else
{
var6 = var1 + 0x00000050;
var7 = ((int *) var6)[2];
if (var7 == 0x00000000)
{
sub_00B14 ();
}
else
{
s2 = ((int *) var6)[3];
s0 = gp;
gp = s2;
var8 = ((int *) var6)[4];
sub_00B04 ();
}
}
}
return;
}
/**
* Subroutine at address 0x00001030
*/
void sub_01030 ()
{
if ((t7 & 0x00000020) == 0x00000000)
{
sub_008BC ();
}
else
{
var1 = v1 + 0x00000050;
var2 = ((int *) var1)[2];
if (var2 == 0x00000000)
{
sub_008BC ();
}
else
{
s0 = ((int *) var1)[3];
s6 = gp;
gp = s0;
var3 = ((int *) var1)[4];
var6 var7 = (*var2) (((s2 >> 5) & 0x00000001), var3, var2, arg4, arg5, arg6, arg7, arg8);
var8 = gp;
gp = s6;
sub_008BC ();
}
}
return;
}
/**
* Subroutine at address 0x00001070
*/
void sub_01070 ()
{
var1 = ((int *) s3)[1];
var2 = ((unsigned char *) s3)[12];
((int *) s3)[1] = (var1 | 0x00800000);
sub_00B18 ();
return;
}
/**
* Subroutine at address 0x00001088
*/
int sceSysconCmdExec (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
var1 = arg1;
((int *) sp)[0] = s0;
((int *) sp)[2] = ra;
var2 = arg2;
var5 = sceKernelIsIntrContext ();
var6 = 0x80000030;
if (!(var5 != 0x00000000))
{
var7 = *((int *) 0x000088AC);
if (var7 != 0x00000000)
{
label9:
var9 = *((int *) 0x000088AC);
if (var9 == 0x00000000)
{
var11 = var2;
label13:
var14 = sceSysconCmdExecAsync (var1, var11, 0x00000000, 0x00000000);
var6 = var14;
if (!(var14 < 0))
{
var17 = sceSysconCmdSync (var1, 0x00000000);
var6 = var17;
}
}
else
{
__asm__ ("mfic $a3, $0;"
: "=r"(var10));
var6 = 0x80000031;
if (!(var10 != 0x00000000))
{
var11 = var2;
goto label13;
}
}
}
else
{
__asm__ ("mfic $a0, $0;"
: "=r"(var8));
var6 = 0x80000031;
if (!(var8 == 0x00000000))
{
goto label9;
}
}
}
ra = ((int *) sp)[2];
var18 = ((int *) sp)[1];
var19 = ((int *) sp)[0];
sp = sp + 0x00000010;
return var6;
}
/**
* Subroutine at address 0x0000113C
*/
int sceSysconCmdExecAsync (int arg1, int arg2, int arg3, int arg4)
{
sp = sp + 0xFFFFFFE0;
((int *) sp)[4] = s4;
((int *) sp)[3] = s3;
((int *) sp)[2] = s2;
var1 = 0x80250003;
var2 = arg2;
((int *) sp)[1] = s1;
((int *) sp)[0] = s0;
((int *) sp)[6] = ra;
((int *) sp)[5] = s5;
var3 = *((int *) 0x000087A0);
var4 = arg1;
if (!(var3 != 0x00000000))
{
if ((arg2 & 0x00000100) != 0x00000000)
{
}
else
{
var5 = ((unsigned char *) var4)[13];
var6 = 0x00000000;
var7 = 0x00000000;
if (!(var5 == 0x00000000))
{
while (1) {
var8 = ((unsigned char *) (var4 + var7))[12];
var7 = var7 + 0x00000001;
var6 = var6 + var8;
if (((var7 < var5)) != 0x00000000)
continue;
break;
}
}
var9 = var5 + 0x00000001;
((char *) (var4 + var5))[12] = (!var6);
if (!(((var9 < 0x00000010)) == 0x00000000))
{
while (1) {
var9 = var9 + 0x00000001;
((char *) (var4 + var9))[12] = 0xFFFFFFFF;
if (((var9 < 0x00000010)) != 0x00000000)
continue;
break;
}
}
}
var10 = var4 + 0x0000001C;
var11 = 0x0000000F;
while (1) {
var11 = var11 + 0xFFFFFFFF;
((char *) var10)[0] = 0xFFFFFFFF;
var10 = var10 + 0x00000001;
if (var11 >= 0)
continue;
break;
}
var14 = sceKernelCpuSuspendIntr ();
((int *) var4)[1] = ((var2 & 0x0000FFFF) | 0x00010000);
((int *) var4)[2] = 0xFFFFFFFF;
((int *) var4)[11] = arg3;
((int *) var4)[0] = 0x00000000;
var15 = gp;
var16 = ((unsigned char *) var4)[12];
((int *) var4)[12] = var15;
var17 = !(((((char) var16) < 0x00000000))) ? ((var16 >> 5) & 0x00000007) : 0x00000000;
((int *) var4)[13] = arg4;
if (var17 != 0x00000000)
{
var45 = *((int *) 0x000087AC);
((int *) var4)[15] = var45;
}
else
{
((int *) var4)[15] = 0x00000000;
}
var18 = var17 << 0x00000002;
var19 = var18 + 0x00008770;
var20 = ((int *) var19)[1];
if (var20 == 0x00000000)
{
((int *) var19)[5] = var4;
label28:
((int *) var19)[1] = var4;
}
else
{
if ((var2 & 0x00000001) == 0x00000000)
{
var19 = var19 + 0x00000010;
var44 = ((int *) var19)[1];
((int *) var44)[0] = var4;
goto label28;
}
else
{
var21 = ((int *) var20)[1];
if (((var21 >> 17) & 0x00000003) != 0x00000000)
{
var43 = ((int *) var20)[0];
((int *) var4)[0] = var43;
((int *) var20)[0] = var4;
if (!(var43 != 0x00000000))
{
((int *) var19)[5] = var4;
}
}
else
{
((int *) var4)[0] = var20;
goto label28;
}
}
}
var22 = *((int *) 0x000088AC);
var23 = *((int *) 0x00008770);
if (var22 != 0x00000000)
{
*((int *) 0x00008770) = var4;
var32 = var4;
label49:
sub_01DDC (var32);
}
else
{
if (!(var23 != 0x00000000))
{
var24 = *((int *) 0x0000879C);
if (!(var24 != 0x00000000))
{
var25 = *((int *) 0x00008774);
if (!(var25 == 0x00000000))
{
if (var25 == var4)
{
var25 = !((var2 & 0x00000002)) ? var4 : 0x00000000;
}
}
if (!(var17 == 0x00000000))
{
if (var25 == 0x00000000)
{
label39:
var25 = ((int *) (var18 + 0x00008770))[1];
if (var25 == var4)
{
var25 = !((var2 & 0x00000002)) ? var4 : 0x00000000;
}
}
else
{
if (!((var2 & 0x00000001) == 0x00000000))
goto label39;
}
}
if (!(var25 == 0x00000000))
{
var26 = *((int *) 0x000088B0);
var27 = 0x00000004;
if (!(var26 == 0x00000000))
{
var27 = *((int *) 0x000087A8);
}
while (1) {
var30 = sceKernelGetSystemTimeLow ();
var31 = *((int *) 0x00008798);
var32 = var25;
if (((var27 < (var30 - var31))) == 0x00000000)
continue;
break;
}
*((int *) 0x00008770) = var25;
goto label49;
}
}
}
}
sceKernelCpuResumeIntr (var14);
var1 = 0x00000000;
}
ra = ((int *) sp)[6];
var37 = ((int *) sp)[5];
var38 = ((int *) sp)[4];
var39 = ((int *) sp)[3];
var40 = ((int *) sp)[2];
var41 = ((int *) sp)[1];
var42 = ((int *) sp)[0];
sp = sp + 0x00000020;
return var1;
}
/**
* Subroutine at address 0x000013CC
*/
void sceSysconCmdCancel (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
var1 = arg1;
((int *) sp)[2] = ra;
((int *) sp)[0] = s0;
var4 = sceKernelCpuSuspendIntr ();
var5 = ((unsigned char *) var1)[12];
var6 = ((var5 >> 5) & 0x00000007) << 0x00000002;
if (((char) var5) < 0)
{
var6 = 0x00000000;
}
var7 = ((int *) (0x00008770 + var6))[1];
var8 = 0x80000025;
var9 = 0x00000000;
if (!(var7 == 0x00000000))
{
while (1) {
if (var7 == var1)
{
var14 = ((int *) var7)[1];
var8 = 0x80000021;
if (!((var14 & 0x00020000) != 0x00000000))
{
if (var9 == 0x00000000)
{
var19 = ((unsigned char *) var7)[12];
var20 = ((var19 >> 5) & 0x00000007) << 0x00000002;
if (((char) var19) < 0)
{
var20 = 0x00000000;
}
var21 = ((int *) var7)[0];
((int *) (0x00008770 + var20))[1] = var21;
}
else
{
var15 = ((int *) var7)[0];
((int *) var9)[0] = var15;
}
var16 = ((int *) var7)[0];
var8 = 0x00000000;
if (!(var16 != 0x00000000))
{
var17 = ((unsigned char *) var1)[12];
var18 = (((var17 >> 5) & 0x00000007) << 0x00000002) + 0x00000010;
if (((char) var17) < 0)
{
var18 = 0x00000010;
}
((int *) (0x00008770 + var18))[1] = var9;
var8 = 0x00000000;
}
}
}
else
{
var9 = var7;
var7 = ((int *) var7)[0];
if (var7 != 0x00000000)
continue;
break;
}
}
}
sceKernelCpuResumeIntr (var4);
ra = ((int *) sp)[2];
var12 = ((int *) sp)[1];
var13 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000014EC
*/
int sceSysconCmdSync (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
var1 = arg1;
((int *) sp)[3] = ra;
((int *) sp)[2] = s2;
((int *) sp)[1] = s1;
if (arg2 != 0x00000000)
{
var13 = 0x80000107;
if (!(arg2 != 0x00000001))
{
if (var1 == 0x00000000)
{
var44 = *((int *) 0x00008774);
if (var44 != 0x00000000)
{
var13 = 0x00000001;
}
else
{
var45 = *((int *) 0x00008778);
if (var45 != 0x00000000)
{
var13 = 0x00000001;
}
else
{
var46 = *((int *) 0x0000877C);
if (var46 != 0x00000000)
{
var13 = 0x00000001;
}
else
{
var47 = *((int *) 0x00008780);
var13 = 0x00000000;
if (!(var47 == 0x00000000))
{
var13 = 0x00000001;
}
}
}
}
}
else
{
var3 = ((int *) var1)[1];
var13 = 0x00000001;
if (!((var3 & 0x00080000) == 0x00000000))
{
label55:
var13 = 0x80250002;
if (!((var3 & 0x00B00000) != 0x00000000))
{
var14 = ((unsigned char *) var1)[30];
var15 = var14 & 0x000000FF;
var13 = var15 | 0x80250000;
if (!(((var15 >> 0x00000007) & ((0x00000000 < (var15 ^ 0x00000082)))) != 0x00000000))
{
var16 = ((unsigned char *) var1)[12];
var13 = 0x00000000;
if (!(((var16 < 0x00000020)) != 0x00000000))
{
var13 = 0x80250004;
if (!(((char) var14) >= 0))
{
var13 = 0x00000000;
}
}
}
}
}
}
}
}
else
{
var2 = *((int *) 0x000088AC);
if (var2 == 0x00000000)
{
var22 = sceKernelIsIntrContext ();
var13 = 0x80000030;
if (!(var22 != 0x00000000))
{
var25 = sceKernelCpuSuspendIntr ();
var26 = var25;
if (var25 == 0x00000000)
{
sceKernelCpuResumeIntr (0x00000000);
var13 = 0x80000031;
}
else
{
var27 = ((int *) var1)[1];
if ((var27 & 0x00080000) == 0x00000000)
{
var32 = sceKernelCreateSema ("SceSysconSync", 0x00000001, 0x00000000, 0x00000001, 0x00000000);
var33 = var32;
if (var32 < 0)
{
sceKernelCpuResumeIntr (var26);
var13 = var33;
}
else
{
((int *) var1)[2] = var32;
sceKernelCpuResumeIntr (var26);
sceKernelWaitSema (var33, 0x00000001, 0x00000000);
sceKernelDeleteSema (var33);
var3 = ((int *) var1)[1];
label54:
goto label55;
}
}
else
{
sceKernelCpuResumeIntr (var25);
var3 = ((int *) var1)[1];
goto label54;
}
}
}
}
else
{
var3 = ((int *) var1)[1];
if ((var3 & 0x00080000) != 0x00000000)
{
}
else
{
while (1) {
var6 = sceKernelGetSystemTimeLow ();
var7 = *((int *) 0x00008798);
if ((((var6 - var7) < 0x00000005)) != 0x00000000)
continue;
while (1) {
var10 = sceGpio_driver_D2F4B351 (0x00000004);
if (var10 == 0x00000000)
continue;
break;
}
sub_00798 ();
var3 = ((int *) var1)[1];
if ((var3 & 0x00080000) == 0x00000000)
continue;
break;
}
goto label54;
}
goto label55;
}
}
ra = ((int *) sp)[3];
var17 = ((int *) sp)[2];
var18 = ((int *) sp)[1];
var19 = ((int *) sp)[0];
sp = sp + 0x00000010;
return var13;
}
/**
* Subroutine at address 0x0000171C
*/
int sub_0171C (int arg1, int arg2)
{
sp = sp + 0xFFFFFF80;
((int *) sp)[28] = s0;
var1 = arg1;
((int *) sp)[29] = ra;
var2 = sp;
var3 = 0x80000103;
if (!(var1 == 0x00000000))
{
((char *) sp)[13] = 0x00000002;
((char *) sp)[12] = arg2;
var6 = sceSysconCmdExec (var2, 0x00000000);
var3 = var6;
if (!(var6 < 0))
{
var7 = ((unsigned char *) sp)[29];
var8 = sp + 0x00000060;
var9 = sp + 0x0000001F;
var3 = 0x80250001;
if (!(((((var7 + 0xFFFFFFFC) & 0x000000FF) < 0x00000004)) == 0x00000000))
{
((int *) sp)[24] = 0x00000000;
memcpy (var8, var9, ((var7 & 0x000000FF) + 0xFFFFFFFD));
var3 = 0x00000000;
var12 = ((int *) sp)[24];
((int *) var1)[0] = var12;
}
}
}
ra = ((int *) sp)[29];
var13 = ((int *) sp)[28];
sp = sp + 0x00000080;
return var3;
}
/**
* Subroutine at address 0x000017B0
*/
void module_start ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sceSysconInit ();
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000017D0
*/
void module_reboot_before ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
*((int *) 0x000087A0) = 0x00000001;
((int *) sp)[1] = ra;
var3 = sceSysconCmdSync (0x00000000, 0x00000001);
if (var3 != 0x00000000)
{
Kprintf (0x00004344);
while (1) {
var19 = sceSysconCmdSync (0x00000000, 0x00000001);
if (var19 == 0x00000000)
break;
sceKernelDelayThread (0x000003E8);
continue;
}
}
var4 = *((int *) 0x00008770);
if (var4 != 0x00000000)
{
while (1) {
sceKernelDelayThread (0x000186A0);
var14 = *((int *) 0x00008770);
if (var14 != 0x00000000)
continue;
break;
}
}
sceKernelUnregisterSysEventHandler (0x000086C0);
InterruptManagerForKernel_169FC5A3 (0x00000004, 0x00000004);
sceKernelReleaseSubIntrHandler (0x00000004, 0x00000004);
ra = ((int *) sp)[1];
var11 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000188C
*/
void sceSysconEnd ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
var1 = *((int *) 0x00008770);
((int *) sp)[1] = ra;
if (var1 != 0x00000000)
{
while (1) {
sceKernelDelayThread (0x000186A0);
var11 = *((int *) 0x00008770);
if (var11 != 0x00000000)
continue;
break;
}
}
else
{
}
sceKernelUnregisterSysEventHandler (0x000086C0);
InterruptManagerForKernel_169FC5A3 (0x00000004, 0x00000004);
sceKernelReleaseSubIntrHandler (0x00000004, 0x00000004);
ra = ((int *) sp)[1];
var8 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000018FC
*/
void sceSysconSuspend ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
InterruptManagerForKernel_169FC5A3 (0x00000004, 0x00000004);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001920
*/
void sceSysconSetDebugHandlers (int arg1)
{
*((int *) 0x00008794) = arg1;
return;
}
/**
* Subroutine at address 0x00001930
*/
void sceSyscon_driver_9BCA6696 (int arg1)
{
*((int *) 0x000088AC) = arg1;
return;
}
/**
* Subroutine at address 0x00001940
*/
void sceSyscon_driver_F84A89D8 (int arg1)
{
*((int *) 0x000088B0) = arg1;
return;
}
/**
* Subroutine at address 0x00001950
*/
int sceSyscon_driver_2B476F99 ()
{
var1 = *((int *) 0x00008888);
return var1;
}
/**
* Subroutine at address 0x0000195C
*/
int sceSyscon_driver_CE4E279F ()
{
var1 = *((int *) 0x000088A0);
var2 = *((int *) 0x000088A4);
return var1 var2;
}
/**
* Subroutine at address 0x00001970
*/
int sub_01970 ()
{
var1 = *((int *) 0x000088A8);
return var1;
}
/**
* Subroutine at address 0x0000197C
*/
void sceSyscon_driver_42017C02 ()
{
var1 = *((unsigned short *) 0x0000888A);
var2 = 0x00000001;
var3 = var1 & 0x000000F0;
if ((((var3 < 0x00000001)) | (((var3 ^ 0x00000010) < 0x00000001))) != 0x00000000)
{
label4:
var2 = 0x00000000;
}
else
{
if (!(((((var1 & 0x000000FF) + 0xFFFFFFE0) < 0x00000002)) == 0x00000000))
goto label4;
}
return;
}
/**
* Subroutine at address 0x000019C0
*/
void sceSyscon_driver_16F83552 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x0000000A);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000019DC
*/
void sceSyscon_driver_CF99ED19 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000000);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000019F8
*/
void sceSyscon_driver_3A70B71D (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000001);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001A14
*/
void sceSyscon_driver_438C658E (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000002);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001A30
*/
void sceSyscon_driver_BC848718 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000003);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001A4C
*/
void sceSyscon_driver_2488E5CA (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x0000000F);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001A68
*/
void sceSyscon_driver_01E12195 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000004);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001A84
*/
void sceSyscon_driver_AAF38DB3 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000008);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001AA0
*/
void sceSyscon_driver_CBE3A52C (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x0000000E);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001ABC
*/
void sceSyscon_driver_5CF32EC9 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000005);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001AD8
*/
void sceSyscon_driver_10FAC159 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000009);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001AF4
*/
void sceSyscon_driver_4FD80E69 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x0000000B);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001B10
*/
void sceSyscon_driver_2917B656 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x0000000D);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001B2C
*/
void sceSyscon_driver_E4B39D21 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x0000000C);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001B48
*/
void sceSyscon_driver_E5D8370D (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000006);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001B64
*/
void sceSyscon_driver_AD5A6748 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sub_01D68 (arg1, arg2, 0x00000007);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001B80
*/
int sub_01B80 (int arg1, int arg2, int arg3)
{
sp = sp + 0xFFFFFF90;
var1 = sp;
((int *) sp)[24] = ra;
((char *) sp)[12] = arg2;
((char *) sp)[13] = arg3;
((char *) sp)[15] = (arg1 >> 0x00000008);
((char *) sp)[16] = (arg1 >> 0x00000010);
((char *) sp)[17] = (arg1 >> 0x00000018);
((char *) sp)[14] = arg1;
var4 = sceSysconCmdExec (var1, 0x00000000);
ra = ((int *) sp)[24];
sp = sp + 0x00000070;
return (MIN (var4, 0x00000000));
}
/**
* Subroutine at address 0x00001BD4
*/
void sceSysconGetBaryonStatus ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001BE0
*/
void sceSysconGetBaryonStatus2 ()
{
var1 = *((unsigned char *) 0x000087C5);
return;
}
/**
* Subroutine at address 0x00001BEC
*/
void sceSyscon_driver_1B3AF520 ()
{
var1 = *((char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001BFC
*/
void sceSyscon_driver_2AD83345 ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001C0C
*/
void sceSyscon_driver_50601CDB ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001C1C
*/
void sceSyscon_driver_C715A540 ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001C30
*/
void sceSyscon_driver_01C41628 ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001C40
*/
void sceSyscon_driver_288965D6 ()
{
var1 = *((char *) 0x000087B0);
return;
}
/**
* Subroutine at address 0x00001C4C
*/
void sceSyscon_driver_BDC8DF8E ()
{
var1 = *((char *) 0x000087B1);
return;
}
/**
* Subroutine at address 0x00001C58
*/
void sceSyscon_driver_0D25F4DA ()
{
var1 = *((char *) 0x000087B2);
return;
}
/**
* Subroutine at address 0x00001C64
*/
void sceSyscon_driver_70F257D9 ()
{
var1 = *((char *) 0x000087B3);
return;
}
/**
* Subroutine at address 0x00001C70
*/
void sceSysconGetUmdSwitch ()
{
var1 = *((char *) 0x000087B4);
return;
}
/**
* Subroutine at address 0x00001C7C
*/
void sceSyscon_driver_27AE4DD3 ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001C8C
*/
void sceSyscon_driver_EBB8F446 ()
{
var1 = *((unsigned char *) 0x000087C5);
return;
}
/**
* Subroutine at address 0x00001C9C
*/
void sceSyscon_driver_18CAFA4C ()
{
var1 = *((unsigned char *) 0x000087C3);
return;
}
/**
* Subroutine at address 0x00001CAC
*/
void sceSyscon_driver_52D5A1AA ()
{
var1 = *((unsigned char *) 0x000087C5);
return;
}
/**
* Subroutine at address 0x00001CBC
*/
void sceSyscon_driver_2D39F880 ()
{
var1 = *((unsigned char *) 0x000087C5);
return;
}
/**
* Subroutine at address 0x00001CCC
*/
void sceSyscon_driver_ABEBD2FB ()
{
var1 = *((char *) 0x000087B6);
return;
}
/**
* Subroutine at address 0x00001CD8
*/
void sceSyscon_driver_51471088 ()
{
var1 = *((char *) 0x000087B7);
return;
}
/**
* Subroutine at address 0x00001CE4
*/
void sceSyscon_driver_363EF26A ()
{
var1 = *((char *) 0x000087B8);
return;
}
/**
* Subroutine at address 0x00001CF0
*/
void sceSyscon_driver_8068CAED ()
{
var1 = *((char *) 0x000087B9);
return;
}
/**
* Subroutine at address 0x00001CFC
*/
void sceSyscon_driver_D3C4E912 ()
{
var1 = *((char *) 0x000087BA);
return;
}
/**
* Subroutine at address 0x00001D08
*/
void sceSyscon_driver_9292AA5D ()
{
var1 = *((char *) 0x000087BB);
return;
}
/**
* Subroutine at address 0x00001D14
*/
void sceSyscon_driver_2C7CF454 ()
{
var1 = *((char *) 0x000087BC);
return;
}
/**
* Subroutine at address 0x00001D20
*/
void sceSyscon_driver_4852C845 ()
{
var1 = *((char *) 0x000087BD);
return;
}
/**
* Subroutine at address 0x00001D2C
*/
void sceSyscon_driver_1EDCC983 ()
{
var1 = *((char *) 0x000087BE);
return;
}
/**
* Subroutine at address 0x00001D38
*/
void sceSyscon_driver_76B8D03B ()
{
var1 = *((char *) 0x000087BF);
return;
}
/**
* Subroutine at address 0x00001D44
*/
void sceSyscon_driver_41264341 ()
{
var1 = *((char *) 0x000087C0);
return;
}
/**
* Subroutine at address 0x00001D50
*/
void sceSyscon_driver_EB4CC30B ()
{
var1 = *((char *) 0x000087C1);
return;
}
/**
* Subroutine at address 0x00001D5C
*/
int sceSyscon_driver_14909C63 ()
{
var1 = *((char *) 0x000087C2);
return var1;
}
/**
* Subroutine at address 0x00001D68
*/
void sub_01D68 (int arg1, int arg2, int arg3)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
var1 = arg3;
((int *) sp)[2] = s2;
((int *) sp)[1] = s1;
((int *) sp)[3] = ra;
var4 = sceKernelCpuSuspendIntr ();
var5 = ((((var1 << 0x00000001) + var1) << 0x00000002) + 0x00008770) + 0x00000050;
((int *) var5)[2] = arg1;
var6 = gp;
((int *) var5)[4] = arg2;
((int *) var5)[3] = var6;
sceKernelCpuResumeIntr (var4);
ra = ((int *) sp)[3];
var9 = ((int *) sp)[2];
var10 = ((int *) sp)[1];
var11 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001DDC
*/
void sub_01DDC (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
((int *) sp)[0] = s0;
((int *) sp)[2] = ra;
var1 = arg1;
var4 = sceKernelGetSystemTimeLow ();
var5 = *((int *) 0x00008794);
((int *) var1)[14] = var4;
if (var5 != 0x00000000)
{
var29 = ((int *) var5)[1];
var32 var33 = (*var29) (var1);
}
sceGpio_driver_45CFF0FD ();
sceGpioPortClear (0x00000008);
var10 = *((int *) 0xBE58000C);
if (!((var10 & 0x00000004) == 0x00000000))
{
while (1) {
var11 = *((int *) 0xBE580008);
var12 = *((int *) 0xBE58000C);
if ((var12 & 0x00000004) != 0x00000000)
continue;
break;
}
}
var13 = *((int *) 0xBE58000C);
*((int *) 0xBE580020) = 0x00000003;
var14 = ((int *) var1)[1];
if ((var14 & 0x00040000) == 0x00000000)
{
var22 = ((unsigned char *) var1)[13];
var23 = var22 + 0x00000001;
var24 = 0x00000000;
if (var23 == 0x00000000)
{
label22:
}
else
{
var25 = var1;
var26 = ((unsigned char *) var25)[12];
while (1) {
var27 = ((unsigned char *) var25)[13];
var24 = var24 + 0x00000002;
var28 = *((int *) 0xBE58000C);
var25 = var25 + 0x00000002;
*((int *) 0xBE580008) = ((var26 << 0x00000008) | var27);
if (!(((var24 < var23)) != 0x00000000))
break;
var26 = ((unsigned char *) var25)[12];
continue;
}
}
}
else
{
var15 = ((unsigned char *) var1)[12];
*((int *) 0xBE580008) = ((var15 << 0x00000008) | 0x00000002);
var16 = ((unsigned char *) var1)[12];
*((int *) 0xBE580008) = (((var16 + 0x00000002) << 0x00000008) ^ 0x0000FFFF);
goto label22;
}
*((int *) 0xBE580004) = 0x00000006;
sceGpioPortSet (0x00000008);
var19 = ((int *) var1)[1];
ra = ((int *) sp)[2];
((int *) var1)[1] = (var19 | 0x00020000);
var20 = ((int *) sp)[1];
var21 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00001F20
*/
void sub_01F20 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
var1 = 0x00000000;
((int *) sp)[0] = s0;
var2 = arg1;
((int *) sp)[2] = ra;
var3 = *((int *) 0xBE58000C);
if (!((var3 & 0x00000004) != 0x00000000))
{
var4 = ((int *) arg1)[1];
((char *) var2)[28] = 0xFFFFFFFF;
var1 = 0xFFFFFFFF;
((int *) var2)[1] = (var4 | 0x00100000);
((char *) var2)[29] = 0x00000000;
var5 = 0x0000000E;
while (1) {
if (!(var5 >= 0))
break;
var5 = var5 + 0xFFFFFFFF;
continue;
}
}
var6 = *((int *) 0xBE58000C);
if (!((var6 & 0x00000001) != 0x00000000))
{
var7 = ((int *) var2)[1];
var1 = 0xFFFFFFFF;
((int *) var2)[1] = (var7 | 0x00200000);
}
var8 = *((int *) 0xBE580018);
if (!((var8 & 0x00000001) == 0x00000000))
{
*((int *) 0xBE580020) = 0x00000001;
var9 = ((int *) var2)[1];
((int *) var2)[1] = (var9 | 0x00400000);
}
var11 = var2;
while (1) {
var12 = *((int *) 0xBE58000C);
if ((var12 & 0x00000004) == 0x00000000)
break;
var13 = *((int *) 0xBE580008);
var14 = var13 & 0x0000FFFF;
var15 = var14 >> 0x00000008;
if (!(var10 != 0x00000000))
{
var1 = var15;
}
var10 = var10 + 0x00000002;
((char *) var11)[28] = var15;
((char *) var11)[29] = var14;
var11 = var11 + 0x00000002;
if (((var10 < 0x00000010)) != 0x00000000)
continue;
goto label18;
}
label18:
*((int *) 0xBE580004) = 0x00000004;
sceGpioPortClear (0x00000008);
var18 = *((int *) 0x00008794);
if (var18 != 0x00000000)
{
var29 = ((int *) var18)[2];
var32 var33 = (*var29) (var2);
}
if (var1 < 0)
{
var21 = ((int *) var2)[1];
}
else
{
var19 = ((unsigned char *) var2)[29];
var20 = 0x00000000;
if (((var19 < 0x00000003)) != 0x00000000)
{
label34:
var1 = 0xFFFFFFFE;
}
else
{
if (!(((var19 < 0x00000010)) != 0x00000000))
goto label34;
var24 = var19 + var2;
if (!(var19 == 0x00000000))
{
var25 = var2 + 0x0000001C;
var26 = var19;
while (1) {
var27 = ((unsigned char *) var25)[0];
var26 = var26 + 0xFFFFFFFF;
var25 = var25 + 0x00000001;
var20 = (var20 + var27) & 0x000000FF;
if (var26 != 0x00000000)
continue;
break;
}
var24 = var19 + var2;
}
var28 = ((unsigned char *) var24)[28];
var1 = ((var28 ^ ((!var20) & 0x000000FF))) ? 0xFFFFFFFE : var1;
}
var21 = ((int *) var2)[1];
}
ra = ((int *) sp)[2];
((int *) var2)[1] = ((var21 & 0xFFFDFFFF) | (0x00000000 & 0x00000001));
var22 = ((int *) sp)[1];
var23 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000020DC
*/
int sceSysconGetTimeStamp (int arg1)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[24] = s0;
var1 = arg1;
((int *) sp)[25] = ra;
var2 = sp;
var3 = 0x80000103;
if (!(var1 == 0x00000000))
{
((char *) sp)[12] = 0x00000011;
((char *) sp)[13] = 0x00000002;
var6 = sceSysconCmdExec (var2, 0x00000000);
var3 = var6;
if (!(var6 < 0))
{
var7 = LWL (sp, var6, 0x00000022);
var8 = LWR (sp, var7, 0x0000001F);
var9 = LWL (sp, var3, 0x00000026);
var10 = LWR (sp, var9, 0x00000023);
var11 = LWL (sp);
var12 = LWR (sp, var11, 0x00000027);
SWL (var1, var8, 0x00000003);
SWR (var1, var8, 0x00000000);
SWL (var1, var10, 0x00000007);
SWR (var1, var10, 0x00000004);
SWL (var1, var12, 0x0000000B);
SWR (var1, var12, 0x00000008);
var3 = 0x00000000;
((char *) var1)[12] = 0x00000000;
}
}
ra = ((int *) sp)[25];
var13 = ((int *) sp)[24];
sp = sp + 0x00000070;
return var3;
}
/**
* Subroutine at address 0x00002168
*/
void sceSyscon_driver_65EB6096 (int arg1, int arg2, int arg3)
{
var1 = arg3;
sp = sp + 0xFFFFFF90;
((int *) sp)[25] = ra;
((int *) sp)[24] = s0;
if ((((((arg3 + 0xFFFFFFFF) < 0x00000002)) ^ 0x00000001) & ((0x00000000 < (arg3 ^ 0x00000004)))) == 0x00000000)
{
label4:
if (var1 == 0x00000000)
{
__asm__ ("break 0x00007;");
}
var3 = (arg1 % var1);
var2 = 0x80000102;
if (!(var3 != 0x00000000))
{
var4 = var1 >> 0x00000001;
var5 = sp + 0x0000000F;
var2 = 0x80000102;
if (!((((arg1 + var1) < 0x00000021)) == 0x00000000))
{
((char *) sp)[12] = 0x00000023;
((char *) sp)[13] = (var1 + 0x00000003);
((char *) sp)[14] = ((arg1 << 0x00000002) | (!((var4 ^ 0x00000004)) ? 0x00000003 : var4));
memcpy (var5, arg2, var1);
var8 = sp;
var11 = sceSysconCmdExec (var8, 0x00000000);
var2 = MIN (var11, var3);
}
}
}
else
{
var2 = 0x80000104;
if (!(var1 != 0x00000008))
goto label4;
}
ra = ((int *) sp)[25];
var12 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x00002238
*/
void sceSyscon_driver_EB277C88 (int arg1, int arg2, int arg3)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[24] = s0;
var1 = arg3;
((int *) sp)[25] = s1;
((int *) sp)[26] = ra;
if ((((((arg3 + 0xFFFFFFFF) < 0x00000002)) ^ 0x00000001) & ((0x00000000 < (arg3 ^ 0x00000004)))) == 0x00000000)
{
label4:
if (var1 == 0x00000000)
{
__asm__ ("break 0x00007;");
}
var2 = 0x80000102;
if (!((arg1 % var1) != 0x00000000))
{
var3 = var1 >> 0x00000001;
var4 = sp;
var2 = 0x80000102;
if (!((((arg1 + var1) < 0x00000021)) == 0x00000000))
{
((char *) sp)[12] = 0x00000024;
((char *) sp)[13] = 0x00000003;
((char *) sp)[14] = ((arg1 << 0x00000002) | (!((var3 ^ 0x00000004)) ? 0x00000003 : var3));
var7 = sceSysconCmdExec (var4, 0x00000000);
var2 = var7;
var8 = sp + 0x0000001F;
if (!(var7 < 0))
{
memcpy (arg2, var8, var1);
var2 = 0x00000000;
}
}
}
}
else
{
var2 = 0x80000104;
if (!(var1 != 0x00000008))
goto label4;
}
ra = ((int *) sp)[26];
var11 = ((int *) sp)[25];
var12 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x00002318
*/
void sceSysconSendSetParam (int arg1, int arg2)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[25] = s1;
var1 = arg2;
((int *) sp)[24] = s0;
((int *) sp)[26] = ra;
var2 = arg1;
var5 = sceSyscon_driver_2B476F99 ();
var6 = (((var5 >> 16) & 0x000000FF) < 0x00000012);
if (var6 != 0x00000000)
{
var19 = sceSyscon_driver_2B476F99 ();
var6 = var19 & 0x000000FF;
if (var6 == 0x00000001)
{
var26 var6 = sceSyscon_driver_CE4E279F ();
if (((var6 < 0x0000002F)) == 0x00000000)
{
label18:
((char *) sp)[12] = 0x00000025;
((char *) sp)[13] = 0x0000000B;
var7 = LWL (var1, 0x0000000B, 0x00000003);
var8 = LWR (var1, var7, 0x00000000);
var9 = LWL (var1, var6, 0x00000007);
var10 = LWR (var1, var9, 0x00000004);
SWL (sp, var8, 0x00000011);
SWR (sp, var8, 0x0000000E);
SWL (sp, var10, 0x00000015);
SWR (sp, var10, 0x00000012);
((char *) sp)[22] = var2;
var11 = sp;
label19:
var14 = sceSysconCmdExec (var11, 0x00000000);
}
else
{
if (var6 != 0x0000002E)
{
label15:
label16:
if (!(var2 != 0x00000000))
{
((char *) sp)[12] = 0x00000025;
((char *) sp)[13] = 0x0000000A;
var20 = LWL (var1, 0x80250011, 0x00000003);
var21 = LWR (var1, var20, 0x00000000);
var22 = LWL (var1, var6, 0x00000007);
var23 = LWR (var1, var22, 0x00000004);
SWL (sp, var21, 0x00000011);
SWR (sp, var21, 0x0000000E);
SWL (sp, var23, 0x00000015);
SWR (sp, var23, 0x00000012);
var11 = sp;
goto label19;
}
}
else
{
if (((0xAF488299 < var26)) == 0x00000000)
goto label16;
goto label18;
}
}
}
else
goto label15;
}
else
goto label18;
ra = ((int *) sp)[26];
var15 = ((int *) sp)[25];
var16 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x00002430
*/
void sceSysconReceiveSetParam (int arg1, int arg2)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[25] = s1;
var1 = arg2;
((int *) sp)[24] = s0;
((int *) sp)[26] = ra;
var2 = arg1;
var5 = sceSyscon_driver_2B476F99 ();
if (((((var5 >> 16) & 0x000000FF) < 0x00000012)) != 0x00000000)
{
var19 = sceSyscon_driver_2B476F99 ();
if ((var19 & 0x000000FF) == 0x00000001)
{
var22 var23 = sceSyscon_driver_CE4E279F ();
if (((var23 < 0x0000002F)) == 0x00000000)
{
label16:
label17:
((char *) sp)[12] = 0x00000026;
((char *) sp)[13] = 0x00000003;
((char *) sp)[14] = var2;
label18:
var6 = sp;
var9 = sceSysconCmdExec (var6, 0x00000000);
var10 = var9;
if (!(var9 < 0))
{
var11 = LWL (sp, var9, 0x00000022);
var12 = LWR (sp, var11, 0x0000001F);
var13 = LWL (sp, var10, 0x00000026);
var14 = LWR (sp, var13, 0x00000023);
SWL (var1, var12, 0x00000003);
SWR (var1, var12, 0x00000000);
SWL (var1, var14, 0x00000007);
SWR (var1, var14, 0x00000004);
var10 = 0x00000000;
}
}
else
{
if (var23 != 0x0000002E)
{
label14:
var10 = 0x80250011;
if (!(var2 != 0x00000000))
{
((char *) sp)[12] = 0x00000026;
((char *) sp)[13] = 0x00000002;
goto label18;
}
}
else
{
if (((0xAF488299 < var22)) == 0x00000000)
goto label14;
goto label17;
}
}
}
else
goto label14;
}
else
goto label16;
ra = ((int *) sp)[26];
var15 = ((int *) sp)[25];
var16 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x0000252C
*/
void sceSyscon_driver_30A201CB (int arg1)
{
var1 = arg1;
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var2 = 0x800001FE;
if (!(((var1 < 0x00000080)) == 0x00000000))
{
var5 = sub_01B80 ((!(var1) ? 0x00000000 : (arg1 | 0x00000080)), 0x00000031, 0x00000003);
var2 = var5;
}
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002574
*/
void sceSysconResetDevice (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
var1 = arg2;
((int *) sp)[0] = s0;
((int *) sp)[3] = ra;
((int *) sp)[2] = s2;
if (arg1 == 0x00000001)
{
if (arg2 == arg1)
{
label7:
var4 = sub_01B80 (arg1, 0x00000032, 0x00000003);
var5 = var4;
if (var4 < 0)
{
label18:
}
else
{
if (!(((((arg1 ^ 0x00000004) < 0x00000001)) & ((var1 < 0x00000001))) != 0x00000000))
goto label18;
var11 = sceSyscon_driver_14909C63 ();
if (var11 != 0x00000001)
{
}
else
{
sceSysconCtrlLED (0x00000001, 0x00000001);
}
}
}
else
{
arg1 = 0x00000041;
if (arg2 == 0x00000002)
goto label7;
}
}
else
{
arg1 = (var1) ? (arg1 | 0x00000080) : arg1;
goto label7;
}
ra = ((int *) sp)[3];
var6 = ((int *) sp)[2];
var7 = ((int *) sp)[1];
var8 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000262C
*/
void sceSyscon_driver_A32A1CB5 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFE0;
((int *) sp)[4] = s4;
var1 = 0x00000000;
((int *) sp)[3] = s3;
((int *) sp)[2] = s2;
((int *) sp)[1] = s1;
((int *) sp)[0] = s0;
((int *) sp)[5] = ra;
var2 = arg1;
var5 = KDebugForKernel_E892D9A1 ();
var6 = var5;
if (!(var6 == 0x00000000))
{
var7 = ((int *) var6)[4];
var10 var11 = (*var7) ();
if (var10 == 0x0000534D)
{
var30 = ((int *) var6)[6];
var33 var34 = (*var30) (0x0000534D);
var1 = (var33 < 0x00000006);
}
}
*((char *) 0x00013FC0) = 0x00000036;
*((char *) 0x00013FC3) = (!(var2 + 0x00000039));
*((char *) 0x00013FC1) = 0x00000003;
*((char *) 0x00013FC2) = var2;
var14 = sceKernelCpuSuspendIntr ();
memcpy (0x00010000, 0x00000000, (0x00000218 - 0x00000000));
sceKernelDcacheWritebackAll ();
sceKernelIcacheInvalidateAll ();
var23 var24 = (*0x00010000) (0x00013FC0, var1, arg2);
ra = ((int *) sp)[5];
var25 = ((int *) sp)[4];
var26 = ((int *) sp)[3];
var27 = ((int *) sp)[2];
var28 = ((int *) sp)[1];
var29 = ((int *) sp)[0];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x00002720
*/
void sceSysconNop ()
{
sp = sp + 0xFFFFFF90;
var1 = sp;
((int *) sp)[24] = ra;
((char *) sp)[13] = 0x00000002;
((char *) sp)[12] = 0x00000000;
var4 = sceSysconCmdExec (var1, 0x00000000);
ra = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x0000274C
*/
int sceSysconGetBaryonVersion (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x00000001);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return var3;
}
/**
* Subroutine at address 0x00002768
*/
void sceSyscon_driver_06520158 ()
{
return;
}
/**
* Subroutine at address 0x00002774
*/
void sceSyscon_driver_5A7A7846 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x0000000B);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002790
*/
void sceSyscon_driver_EB207130 ()
{
return;
}
/**
* Subroutine at address 0x0000279C
*/
void sceSyscon_driver_6C6D811A (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x0000000E);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000027B8
*/
void sceSyscon_driver_FBA9D54F (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x0000000F);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000027D4
*/
void sceSyscon_driver_FDD14EBC (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sceSyscon_driver_2B476F99 ();
var5 = (var4 >> 0x00000010) & 0x000000F0;
var6 = 0x80000004;
if ((((var5 < 0x00000001)) | (((var5 ^ 0x00000010) < 0x00000001))) != 0x00000000)
{
((int *) var1)[0] = 0x00000000;
}
else
{
var9 = sub_0171C (var1, 0x00000012);
var6 = var9;
}
ra = ((int *) sp)[1];
var10 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000283C
*/
void sceSyscon_driver_267D3B79 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x00000009);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002858
*/
void sceSyscon_driver_B3839B85 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_01B80 (arg1, 0x00000020, 0x00000006);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002878
*/
void sceSyscon_driver_5539205B (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x0000000A);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002894
*/
void sceSyscon_driver_64F376EE (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_01B80 (arg1, 0x00000022, 0x00000006);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000028B4
*/
void sceSyscon_driver_7C25D023 (int arg1)
{
sp = sp + 0xFFFFFF90;
var1 = sp;
((int *) sp)[24] = ra;
((char *) sp)[12] = 0x00000021;
((char *) sp)[13] = 0x00000003;
((char *) sp)[14] = arg1;
var4 = sceSysconCmdExec (var1, (((arg1 & 0x00000003) < 0x00000001)));
ra = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x000028F0
*/
void sceSyscon_driver_4BBE8BA8 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x0000000C);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000290C
*/
void sceSyscon_driver_1FBF8E80 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_01B80 (arg1, 0x00000033, 0x00000003);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000292C
*/
void sceSyscon_driver_3362B1D0 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var3 = sub_01B80 (arg1, 0x00000034, 0x00000003);
if (!(var3 < 0))
{
*((char *) 0x000087C1) = arg1;
}
ra = ((int *) sp)[1];
var4 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002964
*/
void sceSyscon_driver_55BAFF1B ()
{
*((char *) 0x00013FC3) = 0xFFFFFFFF;
sp = sp + 0xFFFFFFF0;
*((char *) 0x00013FC1) = 0x00000002;
*((char *) 0x00013FC0) = 0x00000035;
*((char *) 0x00013FC2) = 0xFFFFFFC8;
((int *) sp)[0] = ra;
var3 = sceKernelCpuSuspendIntr ();
sub_00000 ();
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000029C0
*/
int sceSyscon_driver_998591F7 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var3 = sub_01B80 ((((arg2 & 0x00000001) << 0x00000017) | ((arg1 & 0x003FFFFF) | (0x00000000 & 0x000003FF))), 0x00000045, 0x00000005);
if (!(var3 < 0))
{
var6 = sub_03950 ();
}
ra = ((int *) sp)[1];
var7 = ((int *) sp)[0];
sp = sp + 0x00000010;
return var3;
}
/**
* Subroutine at address 0x00002A10
*/
void sceSysconCtrlLED (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[2] = ra;
((int *) sp)[1] = s1;
if (arg1 == 0x00000001)
{
var1 = 0x00000080;
*((char *) 0x000087C2) = arg2;
label12:
var6 = 0x00000000;
if (arg2 != 0x00000000)
{
var14 = sceSyscon_driver_2B476F99 ();
var15 = (var14 >> 0x00000010) & 0x000000F0;
var6 = !((((var15 < 0x00000001)) | (((var15 ^ 0x00000010) < 0x00000001)))) ? 0x00000001 : 0x00000010;
}
var9 = sub_01B80 ((var1 | var6), 0x00000047, 0x00000003);
var5 = var9;
}
else
{
var1 = 0x00000040;
if (arg1 == 0x00000000)
goto label12;
if (arg1 == 0x00000002)
{
var1 = 0x00000020;
goto label12;
}
else
{
if (arg1 != 0x00000003)
{
var5 = 0x80000102;
}
else
{
var1 = 0x00000010;
var4 = sub_03950 ();
var5 = 0x80000004;
if (!(((var4 < 0x00000300)) != 0x00000000))
goto label12;
}
}
}
ra = ((int *) sp)[2];
var10 = ((int *) sp)[1];
var11 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002AE4
*/
void sceSyscon_driver_C5898670 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sub_03950 ();
var5 = 0x80000004;
if (!(((var4 < 0x00000300)) != 0x00000000))
{
var5 = 0x00000000;
if (((var4 < 0x00000301)) == 0x00000000)
{
var9 = sub_01B80 (var1, 0x00000052, 0x00000003);
var5 = var9;
if (!(var9 < 0))
{
*((char *) 0x000087BA) = var1;
}
}
}
ra = ((int *) sp)[1];
var6 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002B50
*/
void sceSyscon_driver_D8F0B7C7 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sceSyscon_driver_2B476F99 ();
var5 = (var4 >> 0x00000010) & 0x000000F0;
if ((((var5 < 0x00000001)) | (((var5 ^ 0x00000010) < 0x00000001))) == 0x00000000)
{
var13 = sub_01B80 (var1, 0x00000056, 0x00000003);
ra = ((int *) sp)[1];
}
else
{
if (var1 == 0x00000000)
{
sub_02C9C ();
ra = ((int *) sp)[1];
}
else
{
sub_02C14 ();
ra = ((int *) sp)[1];
}
}
var8 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002BCC
*/
void sceSyscon_driver_581D72B2 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sub_03950 ();
var7 = sceSyscon_driver_998591F7 ((!(((var4 < 0x00000300))) ? 0x00000002 : 0x00000008), var1);
if (!(var7 < 0))
{
*((char *) 0x000087BF) = var1;
}
ra = ((int *) sp)[1];
var8 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002C14
*/
void sub_02C14 ()
{
sp = sp + 0xFFFFFF80;
((char *) sp)[12] = 0x0000004F;
var1 = sp;
((char *) sp)[14] = 0x00000002;
((int *) sp)[28] = ra;
((char *) sp)[13] = 0x00000003;
var4 = sceSysconCmdExec (var1, 0x00000000);
var5 = var4;
if (!(var4 < 0))
{
((int *) sp)[24] = 0x00000000;
var5 = 0x00000000;
var6 = ((char *) sp)[31];
var7 = ((char *) sp)[32];
((char *) sp)[96] = var6;
((char *) sp)[97] = var7;
}
var8 = ((int *) sp)[24];
if (!(var5 < 0))
{
((int *) sp)[24] = ((var8 & 0xFFFFFDFF) | (0x00000000 & 0x00000001));
var11 = sub_01B80 ((((var8 & 0x0000FDFF) << 0x00000008) | 0x00000002), 0x0000004E, 0x00000005);
var5 = var11;
}
ra = ((int *) sp)[28];
sp = sp + 0x00000080;
return;
}
/**
* Subroutine at address 0x00002C9C
*/
void sub_02C9C ()
{
sp = sp + 0xFFFFFF80;
((char *) sp)[12] = 0x0000004F;
var1 = sp;
((char *) sp)[14] = 0x00000002;
((int *) sp)[28] = ra;
((char *) sp)[13] = 0x00000003;
var4 = sceSysconCmdExec (var1, 0x00000000);
var5 = var4;
if (!(var4 < 0))
{
((int *) sp)[24] = 0x00000000;
var5 = 0x00000000;
var6 = ((char *) sp)[31];
var7 = ((char *) sp)[32];
((char *) sp)[96] = var6;
((char *) sp)[97] = var7;
}
var8 = ((int *) sp)[24];
if (!(var5 < 0))
{
var9 = var8 | 0x00000200;
((int *) sp)[24] = var9;
var12 = sub_01B80 ((((var9 & 0x0000FFFF) << 0x00000008) | 0x00000002), 0x0000004E, 0x00000005);
var5 = var12;
}
ra = ((int *) sp)[28];
sp = sp + 0x00000080;
return;
}
/**
* Subroutine at address 0x00002D24
*/
int sceSysconGetPommelVersion (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x00000040);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return var3;
}
/**
* Subroutine at address 0x00002D40
*/
void sceSyscon_driver_FB148FB6 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x00000041);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002D5C
*/
int sceSyscon_driver_37C2BE22 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
var1 = arg1;
((int *) sp)[0] = s0;
((int *) sp)[2] = ra;
var4 = sub_03950 ();
if (var4 == 0x00000100)
{
label6:
var8 = sub_01B80 ((((arg2 & 0x0000FFFF) << 0x00000008) | (var1 & 0x000000FF)), 0x00000042, 0x00000005);
var5 = var8;
}
else
{
var5 = 0x80000004;
if (!((((var1 + 0xFFFFFFFC) < 0x00000002)) != 0x00000000))
goto label6;
}
ra = ((int *) sp)[2];
var9 = ((int *) sp)[1];
var10 = ((int *) sp)[0];
sp = sp + 0x00000010;
return var5;
}
/**
* Subroutine at address 0x00002DD0
*/
void sceSyscon_driver_3EC75905 ()
{
return;
}
/**
* Subroutine at address 0x00002DDC
*/
void sceSyscon_driver_1CC8491B ()
{
return;
}
/**
* Subroutine at address 0x00002DE8
*/
int sceSyscon_driver_D2D8E0DC (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_0171C (arg1, 0x00000046);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return var3;
}
/**
* Subroutine at address 0x00002E04
*/
void sceSysconWritePommelReg (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_01B80 ((((arg2 & 0x0000FFFF) << 0x00000008) | (arg1 & 0x000000FF)), 0x00000048, 0x00000005);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002E38
*/
void sceSysconReadPommelReg (int arg1, int arg2)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[24] = s0;
var1 = arg2;
var2 = sp;
((char *) sp)[12] = 0x00000049;
((int *) sp)[25] = ra;
((char *) sp)[13] = 0x00000003;
((char *) sp)[14] = arg1;
var5 = sceSysconCmdExec (var2, 0x00000000);
var6 = var5;
if (!(var5 < 0))
{
((int *) var1)[0] = 0x00000000;
var6 = 0x00000000;
var7 = ((char *) sp)[31];
var8 = ((char *) sp)[32];
((char *) var1)[0] = var7;
((char *) var1)[1] = var8;
}
ra = ((int *) sp)[25];
var9 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x00002EA0
*/
void sceSyscon_driver_CBF530C3 (int arg1)
{
if (arg1 != 0x00000000)
{
((int *) arg1)[0] = 0x00000000;
}
return;
}
/**
* Subroutine at address 0x00002EB0
*/
void sceSysconCtrlLeptonPower (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var3 = sub_01B80 (arg1, 0x0000004B, 0x00000003);
if (!(var3 < 0))
{
*((char *) 0x000087B6) = arg1;
}
ra = ((int *) sp)[1];
var4 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002EE8
*/
void sceSyscon_driver_583C0A71 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var3 = sub_01B80 (arg1, 0x0000004C, 0x00000003);
if (!(var3 < 0))
{
*((char *) 0x000087B7) = arg1;
}
ra = ((int *) sp)[1];
var4 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002F20
*/
void sceSyscon_driver_12DE9052 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
((int *) sp)[0] = s0;
((int *) sp)[2] = ra;
var1 = arg1;
var4 = sub_01B80 (arg1, 0x0000004D, 0x00000003);
var5 = var4;
if (var4 < 0)
{
label13:
}
else
{
*((char *) 0x000087B8) = var1;
if (!(var1 != 0x00000000))
goto label13;
var10 = sceSyscon_driver_14909C63 ();
if (var10 != 0x00000001)
{
}
else
{
sceSysconCtrlLED (0x00000001, 0x00000001);
}
}
ra = ((int *) sp)[2];
var6 = ((int *) sp)[1];
var7 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002F94
*/
void sceSyscon_driver_DAD4A4F2 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sub_03950 ();
var5 = 0x80000004;
if (!(((var4 < 0x00000300)) != 0x00000000))
{
var8 = sub_01B80 (var1, 0x0000004A, 0x00000003);
var5 = var8;
if (!(var8 < 0))
{
*((char *) 0x000087B9) = var1;
}
}
ra = ((int *) sp)[1];
var9 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00002FF0
*/
void sceSyscon_driver_3BDBE4A8 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var3 = sub_01B80 (arg1, 0x00000053, 0x00000003);
if (!(var3 < 0))
{
*((char *) 0x000087BB) = arg1;
}
ra = ((int *) sp)[1];
var4 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003028
*/
void sceSyscon_driver_5E20DCCE (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sceSyscon_driver_2B476F99 ();
var5 = var4 >> 0x00000010;
var6 = var5 & 0x000000F0;
var7 = 0x80000004;
if (!((((var6 < 0x00000001)) | (((var6 ^ 0x00000010) < 0x00000001))) != 0x00000000))
{
if (((((var5 & 0x000000FF) + 0xFFFFFFE0) < 0x00000002)) == 0x00000000)
{
var11 = sub_01B80 (var1, 0x00000055, 0x00000003);
if (!(var11 < 0))
{
*((char *) 0x000087BC) = var1;
}
var7 = var11;
}
}
ra = ((int *) sp)[1];
var8 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000030B0
*/
void sceSyscon_driver_5D20FC9E ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sceSyscon_driver_D8F0B7C7 (0x00000001);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000030CC
*/
void sceSyscon_driver_696CC9A7 ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sceSyscon_driver_D8F0B7C7 (0x00000000);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000030E8
*/
void sceSyscon_driver_1A5750B6 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sub_03950 ();
var5 = 0x80000004;
if (!(var4 != 0x00000100))
{
var8 = sceSyscon_driver_998591F7 (0x00000002, var1);
if (!(var8 < 0))
{
*((char *) 0x000087BD) = var1;
}
var5 = var8;
}
ra = ((int *) sp)[1];
var9 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003144
*/
void sceSyscon_driver_8219478D (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sub_03950 ();
var5 = 0x80000004;
if (!(var4 != 0x00000100))
{
var8 = sceSyscon_driver_998591F7 (0x00000004, var1);
if (!(var8 < 0))
{
*((char *) 0x000087BE) = var1;
}
var5 = var8;
}
ra = ((int *) sp)[1];
var9 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000031A0
*/
void sceSyscon_driver_74136BA4 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var1 = arg1;
var4 = sub_03950 ();
var5 = 0x80000004;
if (!(((var4 < 0x00000300)) == 0x00000000))
{
var8 = sceSyscon_driver_998591F7 (0x00080000, var1);
var5 = var8;
if (!(var8 < 0))
{
*((char *) 0x000087C0) = var1;
}
}
ra = ((int *) sp)[1];
var9 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000031F8
*/
void sceSyscon_driver_2FBCD7CA ()
{
return;
}
/**
* Subroutine at address 0x00003204
*/
void sceSyscon_driver_B86A5F5F ()
{
return;
}
/**
* Subroutine at address 0x00003210
*/
void sceSyscon_driver_806D4D6C (int arg1, int arg2)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_01B80 ((((arg2 & 0x0000FFFF) << 0x00000008) | (arg1 & 0x000000FF)), 0x0000004E, 0x00000005);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003244
*/
void sceSyscon_driver_D8471760 (int arg1, int arg2)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[24] = s0;
var1 = arg2;
var2 = sp;
((char *) sp)[12] = 0x0000004F;
((int *) sp)[25] = ra;
((char *) sp)[13] = 0x00000003;
((char *) sp)[14] = arg1;
var5 = sceSysconCmdExec (var2, 0x00000000);
var6 = var5;
if (!(var5 < 0))
{
((int *) var1)[0] = 0x00000000;
var6 = 0x00000000;
var7 = ((char *) sp)[31];
var8 = ((char *) sp)[32];
((char *) var1)[0] = var7;
((char *) var1)[1] = var8;
}
ra = ((int *) sp)[25];
var9 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x000032AC
*/
void sceSyscon_driver_2C03E53E ()
{
return;
}
/**
* Subroutine at address 0x000032B8
*/
void sceSyscon_driver_BF458F40 ()
{
return;
}
/**
* Subroutine at address 0x000032C4
*/
void sceSyscon_driver_D8386254 (int arg1, int arg2)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[25] = s1;
var1 = arg2;
((int *) sp)[24] = s0;
var2 = arg1;
var3 = sp;
((char *) sp)[12] = 0x00000061;
((int *) sp)[26] = ra;
((char *) sp)[13] = 0x00000002;
var6 = sceSysconCmdExec (var3, 0x00000000);
var7 = var6;
if (!(var6 < 0))
{
var8 = ((unsigned char *) sp)[31];
if (!(var2 == 0x00000000))
{
((int *) var2)[0] = var8;
}
var9 = ((unsigned char *) sp)[33];
if (!(var1 == 0x00000000))
{
var10 = ((unsigned char *) sp)[32];
((int *) var1)[0] = ((var9 << 0x00000008) | var10);
}
var7 = 0x00000000;
}
ra = ((int *) sp)[26];
var11 = ((int *) sp)[25];
var12 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x00003340
*/
void sceSyscon_driver_0D348514 (int arg1)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[24] = s0;
var1 = arg1;
var2 = sp;
((char *) sp)[12] = 0x0000006D;
((int *) sp)[25] = ra;
((char *) sp)[13] = 0x00000002;
var5 = sceSysconCmdExec (var2, 0x00000000);
var6 = var5;
if (!(var5 < 0))
{
var7 = ((unsigned char *) sp)[32];
if (!(var1 == 0x00000000))
{
var8 = ((unsigned char *) sp)[31];
var9 = ((unsigned char *) sp)[33];
var10 = ((unsigned char *) sp)[34];
var11 = ((unsigned char *) sp)[35];
((int *) var1)[3] = var11;
((int *) var1)[0] = ((var7 << 0x00000008) | var8);
((int *) var1)[1] = var9;
((int *) var1)[2] = var10;
}
var6 = 0x00000000;
}
ra = ((int *) sp)[25];
var12 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x000033BC
*/
void sceSyscon_driver_35FB2C54 (int arg1, int arg2)
{
sp = sp + 0xFFFFFFE0;
((int *) sp)[5] = s1;
var1 = arg2;
((int *) sp)[4] = s0;
((int *) sp)[6] = ra;
var2 = arg1;
var5 = sceSyscon_driver_2B476F99 ();
var6 = var5 >> 0x00000010;
var7 = var6 & 0x000000FF;
if ((var6 & 0x000000F0) != 0x00000020)
{
label15:
label16:
var9 = 0x80000004;
}
else
{
if (((var7 < 0x00000022)) != 0x00000000)
goto label16;
var8 = sp;
if (!(((var7 < 0x00000029)) == 0x00000000))
goto label15;
var14 = sub_0171C (var8, 0x00000037);
var9 = var14;
if (!(var14 < 0))
{
var15 = ((unsigned char *) sp)[2];
if (!(var2 == 0x00000000))
{
((int *) var2)[0] = var15;
}
var16 = ((unsigned short *) sp)[0];
if (!(var1 == 0x00000000))
{
((int *) var1)[0] = var16;
}
var9 = 0x00000000;
}
}
ra = ((int *) sp)[6];
var10 = ((int *) sp)[5];
var11 = ((int *) sp)[4];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x00003454
*/
void sceSyscon_driver_226088A4 ()
{
sp = sp + 0xFFFFFF90;
var1 = sp;
((int *) sp)[24] = ra;
((char *) sp)[12] = 0x00000060;
((char *) sp)[13] = 0x00000002;
var4 = sceSysconCmdExec (var1, 0x00000000);
ra = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
/**
* Subroutine at address 0x0000348C
*/
void sceSyscon_driver_9842C612 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000062, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000034AC
*/
void sceSyscon_driver_DFACF2E9 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000063, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000034CC
*/
void sceSyscon_driver_32ABC387 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000064, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000034EC
*/
void sceSyscon_driver_7E9822D9 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000065, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000350C
*/
void sceSyscon_driver_72EF5D2A (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000066, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000352C
*/
void sceSyscon_driver_97C22A57 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000067, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000354C
*/
void sceSyscon_driver_CA0EC475 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000068, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000356C
*/
void sceSyscon_driver_FE394DB5 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000069, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x0000358C
*/
void sceSyscon_driver_361A758E (int arg1)
{
sp = sp + 0xFFFFFFE0;
((int *) sp)[4] = s0;
var1 = sp;
var2 = arg1;
((int *) sp)[5] = ra;
var5 = sub_03720 (0x0000006A, var1);
var6 = var5;
if (!(var5 < 0))
{
var7 = ((unsigned char *) sp)[0];
if (!(var2 == 0x00000000))
{
((int *) var2)[0] = var7;
}
var6 = 0x00000000;
}
ra = ((int *) sp)[5];
var8 = ((int *) sp)[4];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x000035D4
*/
void sceSyscon_driver_34A76CEE (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x0000006B, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000035F4
*/
void sceSyscon_driver_1829F79B (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x0000006C, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003614
*/
void sceSyscon_driver_3E971652 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x0000006E, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003634
*/
void sceSyscon_driver_B06D23A0 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x0000006F, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003654
*/
void sceSyscon_driver_C408710F (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000070, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003674
*/
void sceSyscon_driver_63CBD409 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000071, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003694
*/
void sceSyscon_driver_17EE8DD8 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sub_03720 (0x00000072, arg1);
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000036B4
*/
void sceSyscon_driver_BFAF302C (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
((int *) sp)[1] = ra;
var3 = sceSyscon_driver_2B476F99 ();
var4 = var3 >> 0x00000010;
var5 = var4 & 0x000000FF;
var6 = 0x80000004;
if (!((var4 & 0x000000F0) != 0x00000020))
{
if (!(((var5 < 0x00000022)) != 0x00000000))
{
if (((var5 < 0x00000029)) == 0x00000000)
{
var10 = sub_0171C (arg1, 0x0000000D);
var6 = var10;
}
}
}
ra = ((int *) sp)[1];
var7 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00003720
*/
int sub_03720 (int arg1, int arg2)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[25] = s1;
((int *) sp)[24] = s0;
((int *) sp)[26] = ra;
var3 = sceSyscon_driver_2B476F99 ();
var4 = var3 >> 0x00000010;
var5 = var4 & 0x000000FF;
if ((var4 & 0x000000F0) == 0x00000020)
{
if (((var5 < 0x00000022)) != 0x00000000)
{
var6 = sp;
label10:
((char *) sp)[12] = arg1;
((char *) sp)[13] = 0x00000002;
var9 = sceSysconCmdExec (var6, 0x00000000);
var10 = var9;
if (!(var9 < 0))
{
var11 = ((unsigned char *) sp)[29];
if (var11 == 0x00000004)
{
var16 = ((char *) sp)[31];
label21:
((int *) arg2)[0] = var16;
var10 = 0x00000000;
}
else
{
if (var11 == 0x00000005)
{
var22 = ((unsigned char *) sp)[32];
var23 = ((unsigned char *) sp)[31];
var16 = (char) (var23 | (var22 << 0x00000008));
goto label21;
}
else
{
if (var11 == 0x00000006)
{
var19 = ((unsigned char *) sp)[33];
var20 = ((unsigned char *) sp)[32];
var21 = ((unsigned char *) sp)[31];
var16 = (((var19 << 0x00000018) | (var20 << 0x00000010)) >> 0x00000008) | var21;
goto label21;
}
else
{
var10 = 0x80250001;
if (!(var11 != 0x00000007))
{
var12 = ((unsigned char *) sp)[34];
var13 = ((unsigned char *) sp)[33];
var14 = ((unsigned char *) sp)[32];
var15 = ((unsigned char *) sp)[31];
var16 = (((var12 << 0x00000018) | (var13 << 0x00000010)) | (var14 << 0x00000008)) | var15;
goto label21;
}
}
}
}
}
}
else
{
var10 = 0x80000004;
if (!(((var5 < 0x00000029)) == 0x00000000))
{
var6 = sp;
goto label10;
}
}
}
else
{
var6 = sp;
goto label10;
}
ra = ((int *) sp)[26];
var17 = ((int *) sp)[25];
var18 = ((int *) sp)[24];
sp = sp + 0x00000070;
return var10;
}
/**
* Subroutine at address 0x0000384C
*/
void sceSyscon_driver_A195AA7F (int arg1)
{
sp = sp + 0xFFFFFFE0;
((int *) sp)[6] = s2;
var1 = arg1;
var2 = sp;
((int *) sp)[4] = s0;
((int *) sp)[7] = ra;
((int *) sp)[5] = s1;
var5 = sceSyscon_driver_D2D8E0DC (var2);
var6 = var5;
if (var5 < 0)
{
label28:
}
else
{
var7 = 0x00000000;
var10 = sceSyscon_driver_2B476F99 ();
var11 = (var10 >> 0x00000010) & 0x000000F0;
if ((((var11 < 0x00000001)) | (((var11 ^ 0x00000010) < 0x00000001))) == 0x00000000)
{
var30 = ((int *) sp)[0];
var17 = var1;
if ((var30 & 0x00000002) != 0x00000000)
{
label22:
var20 = sceSyscon_driver_37C2BE22 (0x00000001, var17);
var6 = var20;
if (!(var7 != 0x00000000))
goto label28;
var26 = sceSyscon_driver_998591F7 (var7, 0x00000000);
}
else
{
var7 = 0x00000002;
label16:
if (var7 != 0x00000000)
{
var29 = sceSyscon_driver_998591F7 (var7, 0x00000001);
if (var29 >= 0)
{
label21:
var17 = var1;
goto label22;
}
else
{
}
}
else
goto label21;
}
}
else
{
var12 = ((int *) sp)[0];
var7 = ((var12 & 0x00000008)) ? 0x00000000 : 0x00000008;
var15 = sub_03950 ();
var16 = ((int *) sp)[0];
if (var15 == 0x00000100)
{
var7 = !((var16 & 0x00000004)) ? (var7 | 0x00000004) : var7;
if (!((var16 & 0x00000002) != 0x00000000))
{
var7 = var7 | 0x00000002;
}
}
goto label16;
}
}
ra = ((int *) sp)[7];
var21 = ((int *) sp)[6];
var22 = ((int *) sp)[5];
var23 = ((int *) sp)[4];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x00003950
*/
int sub_03950 ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
var3 = sceSyscon_driver_2B476F99 ();
var4 = var3 >> 0x00000010;
var5 = var4 & 0x000000F0;
if (var5 != 0x00000000)
{
var9 = 0x00000200;
if (!(var5 == 0x00000010))
{
var10 = var4 & 0x000000FF;
if ((((var10 + 0xFFFFFFE0) < 0x00000002)) != 0x00000000)
{
label13:
var16 = sub_01970 ();
var6 = var16 ^ 0x00000120;
var7 = 0x00000300;
var8 = 0x00000301;
label29:
var9 = (var6) ? var8 : var7;
}
else
{
if (var5 == 0x00000020)
{
var11 = var4 & 0x000000F0;
if (((var10 < 0x00000022)) != 0x00000000)
{
label17:
label18:
var12 = var4 & 0x000000FF;
if (var11 != 0x00000020)
{
var9 = 0xFFFFFFFF;
}
else
{
if (((var12 < 0x00000022)) != 0x00000000)
{
var9 = 0xFFFFFFFF;
}
else
{
var13 = (var12 < 0x0000002A);
if (((var12 < 0x00000025)) != 0x00000000)
{
label25:
if (var13 != 0x00000000)
{
var9 = 0xFFFFFFFF;
}
else
{
var9 = 0x00000400;
}
}
else
{
var9 = 0x00000400;
if (!(((var12 < 0x00000029)) != 0x00000000))
{
var13 = (var12 < 0x0000002A);
goto label25;
}
}
}
}
}
else
{
if (((var10 < 0x00000025)) != 0x00000000)
goto label13;
if (!(var10 != 0x00000029))
goto label13;
goto label18;
}
}
else
{
var11 = var4 & 0x000000F0;
goto label17;
}
}
}
}
else
{
var6 = ((var3 >> 8) & 0x000000FF) ^ 0x00000001;
var7 = 0x00000000;
var8 = 0x00000100;
goto label29;
}
ra = ((int *) sp)[0];
sp = sp + 0x00000010;
return var9;
}
/**
* Subroutine at address 0x00003A3C
*/
void sceSyscon_driver_18655BBE (int arg1)
{
sp = sp + 0xFFFFFF90;
((int *) sp)[24] = s0;
var1 = arg1;
((char *) sp)[13] = 0x00000002;
((char *) sp)[12] = 0x00000002;
((int *) sp)[25] = ra;
var2 = sp;
var5 = sceSysconCmdExec (var2, 0x00000000);
var6 = var5;
if (!(var5 < 0))
{
var7 = ((char *) sp)[31];
var8 = ((char *) sp)[32];
((char *) var1)[0] = var7;
((char *) var1)[1] = var8;
var6 = 0x00000000;
}
ra = ((int *) sp)[25];
var9 = ((int *) sp)[24];
sp = sp + 0x00000070;
return;
}
Если что, то вот HTML-версия дизасма.
Да, ещё у пандоры есть странный файл SCONS.PRX
log_scons.c
#include <pspsdk.h>
#include "scons.h"
/**
* Subroutine at address 0x00000000
*/
void sceScons_driver_0C945DA7 (int arg1)
{
var1 = *((int *) 0x000032A8);
var2 = (arg1 & 0x00FFFFFF) | (0x00000000 & 0x000000FF);
var3 = 0x00000000;
if (var1 <= 0)
{
label8:
var6 = *((int *) 0x000032A8);
if (((var6 < 0x00000010)) == 0x00000000)
{
*((int *) 0x000032A0) = 0x00000001;
}
else
{
((int *) ((var6 << 0x00000002) + 0x00003270))[15] = var2;
*((int *) 0x000032A0) = var6;
*((int *) 0x000032A8) = (var6 + 0x00000001);
}
}
else
{
var4 = 0x000032AC;
var5 = *((int *) 0x000032AC);
while (1) {
var4 = var4 + 0x00000004;
if (var5 == var2)
{
*((int *) 0x000032A0) = var3;
}
else
{
var3 = var3 + 0x00000001;
if (!(((var3 < var1)) != 0x00000000))
break;
var5 = ((int *) var4)[0];
continue;
}
goto label12;
}
goto label8;
}
label12:
return;
}
/**
* Subroutine at address 0x00000080
*/
void sceScons_driver_E2B10E52 (int arg1)
{
var1 = *((int *) 0x000032A8);
var2 = (arg1 & 0x00FFFFFF) | (0x00000000 & 0x000000FF);
var3 = 0x00000000;
if (var1 <= 0)
{
label8:
var6 = *((int *) 0x000032A8);
if (((var6 < 0x00000010)) == 0x00000000)
{
*((int *) 0x000032A4) = 0x00000000;
}
else
{
((int *) ((var6 << 0x00000002) + 0x00003270))[15] = var2;
*((int *) 0x000032A4) = var6;
*((int *) 0x000032A8) = (var6 + 0x00000001);
}
}
else
{
var4 = 0x000032AC;
var5 = *((int *) 0x000032AC);
while (1) {
var4 = var4 + 0x00000004;
if (var5 == var2)
{
*((int *) 0x000032A4) = var3;
}
else
{
var3 = var3 + 0x00000001;
if (!(((var3 < var1)) != 0x00000000))
break;
var5 = ((int *) var4)[0];
continue;
}
goto label11;
}
goto label8;
}
label11:
return;
}
/**
* Subroutine at address 0x000000FC
*/
void sceScons_driver_BE375902 ()
{
var1 = *((int *) 0x000032A4);
var2 = *((unsigned char *) 0x000032A0);
var3 = 0x00000000;
var4 = 0x00000000;
while (1) {
var5 = 0x00000000;
while (1) {
var5 = var5 + 0x00000001;
((char *) ((var4 + 0x000027D0) + var5))[0] = 0x00000000;
((char *) ((var4 + 0x00002D20) + var5))[0] = (var2 | (var1 << 0x00000004));
if (((var5 < 0x00000050)) != 0x00000000)
continue;
break;
}
var3 = var3 + 0x00000001;
var4 = var4 + 0x00000050;
if (((var3 < 0x00000011)) != 0x00000000)
continue;
break;
}
*((int *) 0x0000329C) = 0x00000000;
*((int *) 0x00003298) = 0x00000000;
return;
}
/**
* Subroutine at address 0x00000174
*/
void sceScons_driver_89580971 (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[1] = s1;
((int *) sp)[0] = s0;
var1 = *((int *) 0x000032A4);
var2 = *((unsigned char *) 0x000032A0);
var3 = *((int *) 0x00003298);
var4 = (char) arg1;
var5 = (var2 | (var1 << 0x00000004)) & 0x000000FF;
var6 = *((int *) 0x0000329C);
if (var4 == 0x00000009)
{
var25 = var3 + 0x00000008;
var26 = *((int *) 0x00003290);
var27 = MIN ((((var25 + ((var25 >> 0x0000001F) >> 0x0000001D)) & 0xFFFFFFF8) | (0x00000000 & 0x00000007)), var26);
if (((var3 < var27)) == 0x00000000)
{
label11:
}
else
{
var28 = ((var6 << 0x00000002) + var6) << 0x00000004;
while (1) {
var3 = var3 + 0x00000001;
((char *) ((var28 + 0x000027D0) + var3))[0] = 0x00000020;
((char *) ((var28 + 0x00002D20) + var3))[0] = var5;
if (((var3 < var27)) != 0x00000000)
continue;
break;
}
}
}
else
{
if (var4 == 0x0000000A)
{
var3 = 0x00000000;
var6 = var6 + 0x00000001;
}
else
{
var7 = ((var6 << 0x00000002) + var6) << 0x00000004;
((char *) ((var7 + 0x000027D0) + var3))[0] = var4;
var3 = var3 + 0x00000001;
((char *) ((var7 + 0x00002D20) + var3))[0] = var5;
}
goto label11;
}
var8 = *((int *) 0x00003290);
var9 = *((int *) 0x00003294);
if (!(((var3 < var8)) != 0x00000000))
{
var3 = 0x00000000;
var6 = var6 + 0x00000001;
}
var10 = ((int *) sp)[1];
if (!(((var6 < var9)) != 0x00000000))
{
var11 = var9 + 0xFFFFFFFF;
var12 = 0x00000000;
if (!(var11 <= 0))
{
var13 = 0x00000000;
while (1) {
var14 = 0x00000000;
if (!(((0x00000000 < var8)) == 0x00000000))
{
var15 = *((int *) 0x00003290);
while (1) {
var16 = (var13 + 0x000027D0) + var14;
var17 = (var13 + 0x00002D20) + var14;
var18 = ((unsigned char *) var16)[80];
var19 = ((unsigned char *) var17)[80];
var14 = var14 + 0x00000001;
((char *) var16)[0] = var18;
((char *) var17)[0] = var19;
if (((var14 < var15)) != 0x00000000)
continue;
break;
}
}
var12 = var12 + 0x00000001;
var13 = var13 + 0x00000050;
if (((var12 < var11)) != 0x00000000)
continue;
break;
}
}
var20 = *((int *) 0x00003294);
var21 = *((int *) 0x00003290);
var22 = 0x00000000;
var6 = var20 + 0xFFFFFFFF;
if (!(var21 <= 0))
{
var23 = ((var6 << 0x00000002) + var6) << 0x00000004;
while (1) {
var22 = var22 + 0x00000001;
((char *) ((var23 + 0x000027D0) + var22))[0] = 0x00000020;
((char *) ((var23 + 0x00002D20) + var22))[0] = var5;
if (((var22 < var21)) != 0x00000000)
continue;
break;
}
}
var10 = ((int *) sp)[1];
}
var24 = ((int *) sp)[0];
*((int *) 0x0000329C) = var6;
*((int *) 0x00003298) = var3;
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00000388
*/
void sceScons_driver_963408BA ()
{
var1 = *((int *) 0x00003270);
sp = sp + 0xFFFFFFA0;
((int *) sp)[20] = fp;
((int *) sp)[19] = s7;
((int *) sp)[18] = s6;
((int *) sp)[17] = s5;
((int *) sp)[16] = s4;
((int *) sp)[15] = s3;
((int *) sp)[14] = s2;
((int *) sp)[13] = s1;
((int *) sp)[12] = s0;
if (!(var1 == 0x00000000))
{
var2 = *((int *) 0x0000327C);
var3 = var2;
if (!(var2 == 0x00000003))
{
var4 = 0x00003270;
var5 = sp;
var6 = 0x0000000F;
while (1) {
var7 = ((int *) var4)[15];
var8 = ((unsigned char *) var4)[60];
var9 = 0x00000000;
var10 = (var7 >> 16) & 0x000000FF;
var11 = var7 >> 0x00000018;
var12 = (var7 >> 8) & 0x000000FF;
var13 = var12 << 0x00000005;
var14 = (((var11 << 0x0000000F) | (var10 << 0x0000000A)) | var13) | var8;
if (var3 == 0x00000001)
{
label10:
var9 = var14 & 0x0000FFFF;
}
else
{
if (((var2 < 0x00000002)) == 0x00000000)
{
if (!(var3 != 0x00000002))
{
var9 = ((((var11 << 0x0000000C) | (var10 << 0x00000008)) | (var12 << 0x00000004)) | var8) & 0x0000FFFF;
}
}
else
{
var14 = ((var10 << 0x0000000B) | var13) | var8;
if (var3 == 0x00000000)
goto label10;
}
}
var6 = var6 + 0xFFFFFFFF;
((short *) var5)[0] = var9;
var4 = var4 + 0x00000004;
var5 = var5 + 0x00000002;
if (var6 >= 0)
continue;
break;
}
}
var15 = *((int *) 0x00003294);
var16 = 0x00000000;
((int *) sp)[8] = 0x00000000;
if (!(var15 <= 0))
{
((int *) sp)[10] = 0x00000000;
while (1) {
var17 = *((int *) 0x00003290);
var18 = 0x00000000;
var19 = 0x00000000;
if (!(var17 <= 0))
{
var20 = *((int *) 0x00003288);
var21 = *((int *) 0x00003270);
var22 = ((int *) sp)[10];
((int *) sp)[9] = var20;
((int *) sp)[11] = var21;
while (1) {
var23 = ((unsigned char *) ((var22 + 0x000027D0) + var19))[0];
var24 = *((int *) 0x0000328C);
var25 = ((int *) sp)[9];
var26 = *((int *) 0x00003284);
var27 = ((unsigned char *) ((var22 + 0x00002D20) + var19))[0];
var28 = 0x00000000;
var29 = var25 + (var23 * var24);
if (!(var26 <= 0))
{
var30 = var27 & 0x0000000F;
var31 = var27 >> 0x00000004;
var32 = (var30 << 0x00000001) + sp;
var33 = ((int *) sp)[11];
var34 = (var31 << 0x00000001) + sp;
while (1) {
var35 = *((int *) 0x0000327C);
var36 = ((unsigned char *) var29)[0];
if (var35 == 0x00000003)
{
var61 = *((int *) 0x00003274);
var62 = *((int *) 0x00003270);
var63 = *((int *) 0x00003280);
var64 = ((int *) ((var30 << 0x00000002) + 0x00003270))[15];
var65 = (((var61 * (var16 + var28)) + var18) << 0x00000002) + var62;
var66 = ((int *) ((var31 << 0x00000002) + 0x00003270))[15];
var67 = 0x00000000;
if (var63 <= 0)
{
label32:
var44 = *((int *) 0x00003284);
}
else
{
while (1) {
if (((var36 >> var67) & 0x00000001) == 0x00000000)
{
((int *) var65)[0] = var66;
}
else
{
((int *) var65)[0] = var64;
}
var68 = *((int *) 0x00003280);
var67 = var67 + 0x00000001;
var65 = var65 + 0x00000004;
if (((var67 < var68)) != 0x00000000)
continue;
break;
}
var44 = *((int *) 0x00003284);
}
}
else
{
var37 = *((int *) 0x00003274);
var38 = *((int *) 0x00003280);
var39 = ((unsigned short *) var34)[0];
var40 = ((unsigned short *) var32)[0];
var41 = 0x00000000;
var42 = (((var37 * (var16 + var28)) + var18) << 0x00000001) + var33;
if (!(var38 <= 0))
{
var43 = *((int *) 0x00003280);
while (1) {
if (((var36 >> var41) & 0x00000001) == 0x00000000)
{
((short *) var42)[0] = var39;
}
else
{
((short *) var42)[0] = var40;
}
var41 = var41 + 0x00000001;
var42 = var42 + 0x00000002;
if (((var41 < var43)) != 0x00000000)
continue;
break;
}
}
goto label32;
}
var28 = var28 + 0x00000001;
var29 = var29 + 0x00000001;
if (((var28 < var44)) != 0x00000000)
continue;
break;
}
}
var45 = *((int *) 0x00003290);
var46 = *((int *) 0x00003280);
var19 = var19 + 0x00000001;
var18 = var18 + var46;
if (((var19 < var45)) != 0x00000000)
continue;
break;
}
}
var47 = ((int *) sp)[8];
var48 = ((int *) sp)[10];
var49 = *((int *) 0x00003294);
var50 = *((int *) 0x00003284);
var51 = var47 + 0x00000001;
((int *) sp)[8] = var51;
var16 = var16 + var50;
((int *) sp)[10] = (var48 + 0x00000050);
if (((var51 < var49)) != 0x00000000)
continue;
break;
}
}
}
var52 = ((int *) sp)[20];
var53 = ((int *) sp)[19];
var54 = ((int *) sp)[18];
var55 = ((int *) sp)[17];
var56 = ((int *) sp)[16];
var57 = ((int *) sp)[15];
var58 = ((int *) sp)[14];
var59 = ((int *) sp)[13];
var60 = ((int *) sp)[12];
sp = sp + 0x00000060;
return;
}
/**
* Subroutine at address 0x000006B4
*/
void module_start ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
var1 = 0x0000000F;
*((int *) 0x00003270) = 0x00000000;
var2 = 0x000032AC;
((int *) sp)[1] = ra;
*((int *) 0x00003288) = 0x0000163C;
*((int *) 0x00003280) = 0x00000008;
*((int *) 0x00003284) = 0x00000010;
*((int *) 0x0000328C) = 0x00000010;
if (0x00000008 == 0x00000000)
{
__asm__ ("break 0x00007;");
}
*((int *) 0x00003290) = (0x000001E0 / 0x00000008);
*((int *) 0x000032A8) = 0x00000000;
*((int *) 0x00003294) = (0x00000110 / 0x00000010);
while (1) {
var1 = var1 + 0xFFFFFFFF;
((int *) var2)[0] = 0x00000000;
var2 = var2 + 0x00000004;
if (var1 >= 0)
continue;
break;
}
sceScons_driver_E2B10E52 (0x00000000);
sceScons_driver_0C945DA7 (0xFFFFFFFF);
*((int *) 0x0000329C) = 0x00000000;
*((int *) 0x00003298) = 0x00000000;
sceScons_driver_BE375902 ();
ra = ((int *) sp)[1];
var9 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00000764
*/
void sceScons_driver_EFFFA6A8 ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
var1 = 0x0000000F;
*((int *) 0x00003270) = 0x00000000;
var2 = 0x000032AC;
((int *) sp)[1] = ra;
*((int *) 0x00003288) = 0x0000163C;
*((int *) 0x00003280) = 0x00000008;
*((int *) 0x00003284) = 0x00000010;
*((int *) 0x0000328C) = 0x00000010;
if (0x00000008 == 0x00000000)
{
__asm__ ("break 0x00007;");
}
*((int *) 0x00003290) = (0x000001E0 / 0x00000008);
*((int *) 0x000032A8) = 0x00000000;
*((int *) 0x00003294) = (0x00000110 / 0x00000010);
while (1) {
var1 = var1 + 0xFFFFFFFF;
((int *) var2)[0] = 0x00000000;
var2 = var2 + 0x00000004;
if (var1 >= 0)
continue;
break;
}
sceScons_driver_E2B10E52 (0x00000000);
sceScons_driver_0C945DA7 (0xFFFFFFFF);
*((int *) 0x0000329C) = 0x00000000;
*((int *) 0x00003298) = 0x00000000;
sceScons_driver_BE375902 ();
ra = ((int *) sp)[1];
var9 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00000814
*/
void sceScons_driver_9E26F841 ()
{
*((int *) 0x00003270) = 0x00000000;
return;
}
/**
* Subroutine at address 0x00000824
*/
void sceScons_driver_1520047E (int arg1, int arg2, int arg3, int arg4)
{
*((int *) 0x00003270) = arg1;
*((int *) 0x0000327C) = arg4;
*((int *) 0x00003274) = arg2;
*((int *) 0x00003278) = arg3;
return;
}
/**
* Subroutine at address 0x00000844
*/
void sceScons_driver_8977165E (int arg1, int arg2)
{
*((int *) 0x00003284) = arg2;
*((int *) 0x00003280) = arg1;
if (arg1 == 0x00000008)
{
var1 = 0x0000163C;
}
else
{
var1 = 0x00001E3C;
}
var2 = *((int *) 0x00003280);
*((int *) 0x00003288) = var1;
*((int *) 0x0000328C) = 0x00000010;
if (var2 == 0x00000000)
{
__asm__ ("break 0x00007;");
}
*((int *) 0x00003290) = (0x000001E0 / var2);
*((int *) 0x00003294) = (0x00000110 / 0x00000010);
return;
}
/**
* Subroutine at address 0x000008B4
*/
void sceScons_driver_457F8264 ()
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
sceScons_driver_E2B10E52 (0x00000000);
sceScons_driver_0C945DA7 (0xFFFFFFFF);
ra = ((int *) sp)[0];
*((int *) 0x0000329C) = 0x00000000;
*((int *) 0x00003298) = 0x00000000;
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x000008E8
*/
void sceScons_driver_CFB23A8E (int arg1, int arg2)
{
*((int *) 0x0000329C) = arg2;
*((int *) 0x00003298) = arg1;
return;
}
/**
* Subroutine at address 0x000008FC
*/
void sceScons_driver_A13C197D (int arg1, int arg2)
{
if (!(arg1 == 0x00000000))
{
var1 = *((int *) 0x00003298);
((int *) arg1)[0] = var1;
}
if (!(arg2 == 0x00000000))
{
var2 = *((int *) 0x0000329C);
((int *) arg2)[0] = var2;
}
return;
}
/**
* Subroutine at address 0x00000924
*/
void sceScons_driver_672889BC (int arg1)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = s0;
var1 = arg1;
((int *) sp)[1] = ra;
if (arg1 == 0x00000000)
{
label8:
ra = ((int *) sp)[1];
}
else
{
var2 = ((char *) arg1)[0];
ra = ((int *) sp)[1];
if (!(var2 == 0x00000000))
{
var3 = var2;
while (1) {
var1 = var1 + 0x00000001;
sceScons_driver_89580971 (var3);
var6 = ((char *) var1)[0];
var3 = var6;
if (var6 != 0x00000000)
continue;
break;
}
goto label8;
}
}
var7 = ((int *) sp)[0];
sp = sp + 0x00000010;
return;
}
/**
* Subroutine at address 0x00000970
*/
void sceScons_driver_4FA797DE (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8)
{
sp = sp + 0xFFFFFFC0;
((int *) sp)[11] = arg4;
((int *) sp)[12] = arg5;
var1 = sp + 0x0000002C;
var2 = sp;
((int *) sp)[4] = ra;
((int *) sp)[13] = arg6;
((int *) sp)[14] = arg7;
((int *) sp)[15] = arg8;
((int *) sp)[0] = arg1;
sub_00A84 (0x000014B0, var2, arg2, arg3, var1);
ra = ((int *) sp)[4];
sp = sp + 0x00000040;
return;
}
/**
* Subroutine at address 0x000009C0
*/
void sceScons_driver_93991895 (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8)
{
sp = sp + 0xFFFFFFC0;
((int *) sp)[9] = arg2;
var1 = sp;
((int *) sp)[10] = arg3;
((int *) sp)[11] = arg4;
((int *) sp)[12] = arg5;
var2 = sp + 0x00000024;
((int *) sp)[4] = ra;
((int *) sp)[13] = arg6;
((int *) sp)[14] = arg7;
((int *) sp)[15] = arg8;
((int *) sp)[0] = 0x00000000;
sub_00A84 (0x00001500, var1, 0xFFFFFFFF, arg1, var2);
ra = ((int *) sp)[4];
sp = sp + 0x00000040;
return;
}
/**
* Subroutine at address 0x00000A14
*/
void sceScons_driver_A1301AEF (int arg1, int arg2, int arg3, int arg4)
{
sp = sp + 0xFFFFFFE0;
var1 = sp;
((int *) sp)[4] = ra;
((int *) sp)[0] = arg1;
sub_00A84 (0x000014B0, var1, arg2, arg3, arg4);
ra = ((int *) sp)[4];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x00000A50
*/
void sceScons_driver_82B5FD3A (int arg1, int arg2)
{
sp = sp + 0xFFFFFFE0;
var1 = sp;
((int *) sp)[4] = ra;
((int *) sp)[0] = 0x00000000;
sub_00A84 (0x00001500, var1, 0xFFFFFFFF, arg1, arg2);
ra = ((int *) sp)[4];
sp = sp + 0x00000020;
return;
}
/**
* Subroutine at address 0x00000A84
*/
void sub_00A84 (int arg1, int arg2, int arg3, int arg4, int arg5)
{
sp = sp + 0xFFFFFF80;
((int *) sp)[27] = s7;
var1 = arg4;
((int *) sp)[25] = s5;
var2 = arg1;
((int *) sp)[24] = s4;
var3 = arg2;
((int *) sp)[23] = s3;
var4 = 0x00000000;
((int *) sp)[29] = ra;
((int *) sp)[28] = fp;
((int *) sp)[26] = s6;
((int *) sp)[22] = s2;
((int *) sp)[21] = s1;
((int *) sp)[20] = s0;
var5 = ((char *) arg4)[0];
((int *) sp)[16] = arg3;
((int *) sp)[17] = arg5;
if (!(var5 == 0x00000000))
{
var6 = var5;
while (1) {
var7 = 0x00000000;
((int *) sp)[18] = 0x00000000;
var8 = 0x00000000;
((int *) sp)[19] = 0x00000000;
if (var6 == 0x00000025)
{
while (1) {
var1 = var1 + 0x00000001;
var9 = ((unsigned char *) var1)[0];
var33 = ((char) var9) + 0xFFFFFFE0;
var34 = var9;
if (((var33 < 0x00000059)) == 0x00000000)
break;
var35 = var33 << 0x00000002;
var36 = var35 + 0x00002664;
var37 = ((int *) var36)[0];
switch () {
case 0:
var7 = var7 | 0x00000008;
continue;
break;
break;
case 3:
var7 = var7 | 0x00000010;
continue;
break;
break;
break;
break;
break;
break;
break;
case 11:
var7 = var7 | 0x00000002;
continue;
break;
case 13:
var7 = var7 | 0x00000001;
continue;
case 14:
var1 = var1 + 0x00000001;
var9 = ((unsigned char *) var1)[0];
var7 = var7 | 0x00000020;
if (((char) var9) == 0x0000002A)
{
var163 = ((int *) sp)[17];
var164 = ((int *) var163)[0];
((int *) sp)[17] = (var163 + 0x00000004);
var8 = MAX (var164, 0xFFFFFFFF);
continue;
}
else
{
var162 = 0x00000000;
if (!(((((var9 + 0xFFFFFFD0) & 0x000000FF) < 0x0000000A)) == 0x00000000))
{
while (1) {
var1 = var1 + 0x00000001;
var9 = ((unsigned char *) var1)[0];
var162 = ((((var162 << 0x00000002) + var162) << 0x00000001) + ((char) var9)) + 0xFFFFFFD0;
if (((((var9 + 0xFFFFFFD0) & 0x000000FF) < 0x0000000A)) != 0x00000000)
continue;
break;
}
}
var11 = (char) var9;
var8 = MAX (var162, 0xFFFFFFFF);
if (!(var11 == 0x00000000))
{
label112:
var1 = var1 + 0xFFFFFFFF;
continue;
}
}
break;
case 16:
var7 = var7 | 0x00000004;
continue;
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
var165 = 0x00000000;
while (1) {
var1 = var1 + 0x00000001;
var9 = ((unsigned char *) var1)[0];
var165 = ((((var165 << 0x00000002) + var165) << 0x00000001) + ((char) var9)) + 0xFFFFFFD0;
if (((((var9 + 0xFFFFFFD0) & 0x000000FF) < 0x0000000A)) != 0x00000000)
continue;
break;
}
((int *) sp)[18] = var165;
if (var9 != 0x00000000)
goto label112;
var11 = (char) var9;
goto label195;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
case 56:
var166 = "0123456789ABCDEF";
if (!((var7 & 0x00000010) == 0x00000000))
{
((char *) sp)[32] = 0x00000030;
((int *) sp)[19] = 0x00000002;
((char *) sp)[33] = 0x00000058;
}
label89:
var167 = ((int *) sp)[17];
if ((var7 & 0x00000040) != 0x00000000)
{
var168 = var167 + 0x00000004;
label92:
var170 = ((int *) var167)[0];
((int *) sp)[17] = var168;
}
else
{
var168 = var167 + 0x00000004;
if ((var7 & 0x00000080) == 0x00000000)
goto label92;
var169 = ((int *) sp)[17];
var170 = ((unsigned short *) var169)[0];
((int *) sp)[17] = (var169 + 0x00000004);
}
var171 = sp + 0x0000001F;
if (var170 != 0x00000000)
{
while (1) {
var173 = ((unsigned char *) (var166 + (var170 & 0x0000000F)))[0];
var170 = var170 >> 0x00000004;
((char *) var171)[0] = var173;
var171 = var171 + 0xFFFFFFFF;
if (var170 != 0x00000000)
continue;
break;
}
var172 = sp + 0x0000001F;
}
else
{
((int *) sp)[19] = 0x00000000;
if (!(((((var7 ^ 0x00000020) >> 5) & 0x00000001) | ((0x00000000 < var8))) == 0x00000000))
{
((char *) var171)[0] = 0x00000030;
var171 = var171 + 0xFFFFFFFF;
}
var172 = sp + 0x0000001F;
}
var41 = var172 - var171;
label101:
var42 = var171 + 0x00000001;
goto label120;
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
case 67:
var174 = ((int *) sp)[17];
var175 = sp + 0x0000001F;
var176 = var175 + 0xFFFFFFFF;
var177 = ((char *) var174)[0];
var178 = sp + 0x0000001F;
var41 = var178 - var176;
var42 = var176 + 0x00000001;
((int *) sp)[17] = (var174 + 0x00000004);
((char *) var175)[0] = var177;
goto label119;
case 68:
case 73:
if ((var7 & 0x00000040) == 0x00000000)
{
var185 = ((int *) sp)[17];
if ((var7 & 0x00000080) == 0x00000000)
{
var180 = ((int *) var185)[0];
((int *) sp)[17] = (var185 + 0x00000004);
}
else
{
var186 = ((int *) sp)[17];
var180 = ((short *) var186)[0];
((int *) sp)[17] = (var186 + 0x00000004);
}
}
else
{
var179 = ((int *) sp)[17];
var180 = ((int *) var179)[0];
((int *) sp)[17] = (var179 + 0x00000004);
}
var171 = sp + 0x0000001F;
if (var180 < 0)
{
((char *) sp)[32] = 0x0000002D;
((int *) sp)[19] = 0x00000001;
}
else
{
if ((var7 & 0x00000002) == 0x00000000)
{
if (!((var7 & 0x00000008) == 0x00000000))
{
((int *) sp)[19] = 0x00000001;
var181 = 0x00000020;
label76:
((char *) sp)[32] = var181;
}
}
else
{
var181 = 0x0000002B;
((int *) sp)[19] = 0x00000001;
goto label76;
}
}
if (var180 != 0x00000000)
{
if (var180 < 0)
{
var180 = 0x00000000 - var180;
}
while (1) {
if (var180 == 0x00000000)
break;
var184 = ((hi (var180 * 0x66666667)) >> 0x00000002) - (var180 >> 0x0000001F);
((char *) var171)[0] = ((var180 - (((var184 << 0x00000002) + var184) << 0x00000001)) + 0x00000030);
var180 = var184;
var171 = var171 + 0xFFFFFFFF;
continue;
}
label84:
var182 = sp + 0x0000001F;
}
else
{
var182 = sp + 0x0000001F;
if (!(((((var7 ^ 0x00000020) >> 5) & 0x00000001) | ((0x00000000 < var8))) == 0x00000000))
{
var183 = sp + 0x0000001F;
var171 = var183 + 0xFFFFFFFF;
((char *) sp)[31] = 0x00000030;
goto label84;
}
}
label85:
var41 = var182 - var171;
goto label101;
break;
break;
break;
case 72:
var7 = var7 | 0x00000080;
continue;
break;
break;
case 76:
var7 = var7 | 0x00000040;
continue;
break;
break;
case 79:
var187 = ((int *) sp)[17];
if ((var7 & 0x00000040) != 0x00000000)
{
var188 = var187 + 0x00000004;
label54:
var190 = ((int *) var187)[0];
((int *) sp)[17] = var188;
}
else
{
var188 = var187 + 0x00000004;
if ((var7 & 0x00000080) == 0x00000000)
goto label54;
var189 = ((int *) sp)[17];
var190 = ((unsigned short *) var189)[0];
((int *) sp)[17] = (var189 + 0x00000004);
}
var171 = sp + 0x0000001F;
if (var190 != 0x00000000)
{
while (1) {
var190 = var190 >> 0x00000003;
((char *) var171)[0] = ((var190 & 0x00000007) + 0x00000030);
var171 = var171 + 0xFFFFFFFF;
if (var190 != 0x00000000)
continue;
break;
}
var191 = var7 & 0x00000010;
}
else
{
var191 = (((var7 ^ 0x00000020) >> 5) & 0x00000001) | ((0x00000000 < var8));
}
var192 = sp + 0x0000001F;
if (!(var191 == 0x00000000))
{
((char *) var171)[0] = 0x00000030;
var171 = var171 + 0xFFFFFFFF;
}
var41 = var192 - var171;
goto label101;
case 80:
var193 = ((int *) sp)[17];
var194 = ((int *) var193)[0];
((int *) sp)[17] = (var193 + 0x00000004);
var195 = sp + 0x0000001F;
if (var194 != 0x00000000)
{
while (1) {
var197 = ((unsigned char *) ("0123456789abcdef" + (var194 & 0x0000000F)))[0];
var194 = var194 >> 0x00000004;
((char *) var195)[0] = var197;
var195 = var195 + 0xFFFFFFFF;
if (var194 != 0x00000000)
continue;
break;
}
var196 = sp + 0x0000001F;
}
else
{
var196 = sp + 0x0000001F;
if (!(((((var7 ^ 0x00000020) >> 5) & 0x00000001) | ((0x00000000 < var8))) == 0x00000000))
{
((char *) var195)[0] = 0x00000030;
var195 = var195 + 0xFFFFFFFF;
}
}
var41 = var196 - var195;
var42 = var195 + 0x00000001;
((int *) sp)[19] = 0x00000002;
((char *) sp)[32] = 0x00000030;
((char *) sp)[33] = 0x00000078;
goto label120;
break;
break;
case 83:
var198 = ((int *) sp)[17];
var199 = ((int *) var198)[0];
((int *) sp)[17] = (var198 + 0x00000004);
if (var199 == 0x00000000)
{
var205 = sp + 0x00000040;
var208 var209 = (*var2) (var3, var205, 0x00000028, var7, var198, var36, var35, 0x00002664);
var210 = sp + 0x00000040;
var213 var214 = (*var2) (var3, var210, 0x0000006E);
var215 = sp + 0x00000040;
var218 var219 = (*var2) (var3, var215, 0x00000075);
var220 = sp + 0x00000040;
var223 var224 = (*var2) (var3, var220, 0x0000006C);
var225 = sp + 0x00000040;
var228 var229 = (*var2) (var3, var225, 0x0000006C);
var230 = sp + 0x00000040;
var233 var234 = (*var2) (var3, var230, 0x00000029);
var9 = ((unsigned char *) var1)[0];
}
else
{
var200 = var199;
if ((var7 & 0x00000020) == 0x00000000)
{
var203 = ((char *) var199)[0];
var41 = 0x00000000;
if (var203 == 0x00000000)
{
label44:
var42 = var199;
}
else
{
while (1) {
var200 = var200 + 0x00000001;
var204 = ((char *) var200)[0];
var41 = var41 + 0x00000001;
if (var204 != 0x00000000)
continue;
break;
}
var42 = var199;
}
}
else
{
var201 = 0x00000000;
if (!(var8 <= 0))
{
var202 = ((unsigned char *) var200)[0];
while (1) {
var200 = var200 + 0x00000001;
if (var202 == 0x00000000)
break;
var201 = var201 + 0x00000001;
if (!(((var201 < var8)) != 0x00000000))
break;
var202 = ((unsigned char *) var200)[0];
continue;
}
}
var41 = var201;
goto label44;
}
goto label120;
}
goto label194;
break;
case 85:
var235 = ((int *) sp)[17];
if ((var7 & 0x00000040) != 0x00000000)
{
var236 = var235 + 0x00000004;
label12:
var238 = ((int *) var235)[0];
((int *) sp)[17] = var236;
}
else
{
var236 = var235 + 0x00000004;
if ((var7 & 0x00000080) == 0x00000000)
goto label12;
var237 = ((int *) sp)[17];
var238 = ((unsigned short *) var237)[0];
((int *) sp)[17] = (var237 + 0x00000004);
}
var171 = sp + 0x0000001F;
if (var238 != 0x00000000)
{
while (1) {
var239 = (hi (var238 * 0xCCCCCCCD)) >> 0x00000003;
((char *) var171)[0] = ((var238 - (((var239 << 0x00000002) + var239) << 0x00000001)) + 0x00000030);
var238 = var239;
var171 = var171 + 0xFFFFFFFF;
if (var239 != 0x00000000)
continue;
break;
}
var182 = sp + 0x0000001F;
}
else
{
var182 = sp + 0x0000001F;
if (!(((((var7 ^ 0x00000020) >> 5) & 0x00000001) | ((0x00000000 < var8))) == 0x00000000))
{
((char *) var171)[0] = 0x00000030;
var171 = var171 + 0xFFFFFFFF;
}
}
goto label85;
break;
break;
case 88:
var166 = "0123456789abcdef";
if (!((var7 & 0x00000010) == 0x00000000))
{
((int *) sp)[19] = 0x00000002;
((char *) sp)[32] = 0x00000030;
((char *) sp)[33] = 0x00000078;
}
goto label89;
}
}
case 1:
case 2:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 12:
case 15:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31:
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63:
case 64:
case 65:
case 66:
case 69:
case 70:
case 71:
case 74:
case 75:
case 77:
case 78:
case 81:
case 82:
case 84:
case 86:
case 87:
if (var34 == 0x00000000)
{
var11 = (char) var9;
}
else
{
var38 = sp + 0x0000001F;
((char *) var38)[0] = var34;
var39 = var38 + 0xFFFFFFFF;
var40 = sp + 0x0000001F;
var41 = var40 - var39;
var42 = var39 + 0x00000001;
label119:
var7 = var7 | 0x00000100;
label120:
var43 = ((int *) sp)[18];
var44 = ((int *) sp)[19];
var45 = (((var41 < var8))) ? (var8 - var41) : 0x00000000;
var46 = ((var43 - var41) - var44) - var45;
((int *) sp)[18] = var46;
var47 = var42 + var41;
var48 = (var7 >> 2) & 0x00000001;
var49 = (0x00000000 < var46);
if (!((var7 & 0x00000100) != 0x00000000))
{
var50 = ((int *) sp)[18];
var51 = var7 & 0x00000024;
var52 = var51 ^ 0x00000004;
var48 = (var52 < 0x00000001);
var49 = (0x00000000 < var50);
}
var53 = var7 & 0x00000001;
var54 = !((var48 & var49)) ? 0x00000020 : 0x00000030;
if (var53 == 0x00000000)
{
var85 = ((int *) sp)[18];
if ((var7 & 0x00000004) == 0x00000000)
{
var133 = ((int *) sp)[19];
if (!(var85 <= 0))
{
var134 = var85;
while (1) {
var135 = sp + 0x00000040;
var138 var139 = (*var2) (var3, var135, var54, var7, var52, var51, var53, 0x00000020);
var134 = var134 + 0xFFFFFFFF;
var4 = var4 + var138;
if (var134 != 0x00000000)
continue;
break;
}
var133 = ((int *) sp)[19];
}
var140 = 0x00000000;
if (!(var133 == 0x00000000))
{
while (1) {
var141 = sp + 0x00000020;
var142 = ((char *) (var141 + var140))[0];
var143 = sp + 0x00000040;
var146 var147 = (*var2) (var3, var143, var142);
var148 = ((int *) sp)[19];
var140 = var140 + 0x00000001;
var4 = var4 + var146;
if (((var140 < var148)) != 0x00000000)
continue;
break;
}
}
var149 = 0x00000000;
if (!(var45 <= 0))
{
while (1) {
var150 = sp + 0x00000040;
var149 = var149 + 0x00000001;
var153 var154 = (*var2) (var3, var150, 0x00000030);
var155 = (var149 < var45);
var4 = var4 + var153;
if (var155 != 0x00000000)
continue;
break;
}
}
while (1) {
if (((var42 < var47)) == 0x00000000)
break;
var156 = ((char *) var42)[0];
var157 = sp + 0x00000040;
var160 var161 = (*var2) (var3, var157, var156);
var4 = var4 + var160;
var42 = var42 + 0x00000001;
continue;
}
}
else
{
var86 = ((int *) sp)[19];
if (var54 == 0x00000030)
{
var115 = 0x00000000;
if (!(var86 == 0x00000000))
{
while (1) {
var116 = sp + 0x00000020;
var117 = var116 + var115;
var118 = ((char *) var117)[0];
var119 = sp + 0x00000040;
var122 var123 = (*var2) (var3, var119, var118, var7, var52, var117, var53, 0x00000020);
var124 = ((int *) sp)[19];
var115 = var115 + 0x00000001;
var4 = var4 + var122;
if (((var115 < var124)) != 0x00000000)
continue;
break;
}
}
var125 = ((int *) sp)[18];
var126 = 0x00000000;
if (!(var125 <= 0))
{
while (1) {
var127 = sp + 0x00000040;
var130 var131 = (*var2) (var3, var127, var54);
var132 = ((int *) sp)[18];
var126 = var126 + 0x00000001;
var4 = var4 + var130;
if (((var126 < var132)) != 0x00000000)
continue;
break;
}
}
}
else
{
if (var85 <= 0)
{
var93 = ((int *) sp)[19];
}
else
{
var87 = var85;
while (1) {
var88 = sp + 0x00000040;
var91 var92 = (*var2) (var3, var88, var54, var7, var52, var51, var53, 0x00000020);
var87 = var87 + 0xFFFFFFFF;
var4 = var4 + var91;
if (var87 != 0x00000000)
continue;
break;
}
var93 = ((int *) sp)[19];
}
var94 = 0x00000000;
if (!(var93 == 0x00000000))
{
while (1) {
var95 = sp + 0x00000020;
var96 = ((char *) (var95 + var94))[0];
var97 = sp + 0x00000040;
var100 var101 = (*var2) (var3, var97, var96);
var102 = ((int *) sp)[19];
var94 = var94 + 0x00000001;
var4 = var4 + var100;
if (((var94 < var102)) != 0x00000000)
continue;
break;
}
}
}
var103 = 0x00000000;
if (!(var45 <= 0))
{
while (1) {
var104 = sp + 0x00000040;
var103 = var103 + 0x00000001;
var107 var108 = (*var2) (var3, var104, 0x00000030);
var4 = var4 + var107;
if (((var103 < var45)) != 0x00000000)
continue;
break;
}
}
while (1) {
if (((var42 < var47)) == 0x00000000)
break;
var109 = ((char *) var42)[0];
var110 = sp + 0x00000040;
var113 var114 = (*var2) (var3, var110, var109);
var4 = var4 + var113;
var42 = var42 + 0x00000001;
continue;
}
}
}
else
{
var55 = ((int *) sp)[19];
var56 = 0x00000000;
if (!(var55 == 0x00000000))
{
while (1) {
var57 = sp + 0x00000020;
var58 = ((char *) (var57 + var56))[0];
var59 = sp + 0x00000040;
var62 var63 = (*var2) (var3, var59, var58, var55, var52, var51, var53, 0x00000020);
var64 = ((int *) sp)[19];
var56 = var56 + 0x00000001;
var4 = var4 + var62;
if (((var56 < var64)) != 0x00000000)
continue;
break;
}
}
var65 = 0x00000000;
if (!(var45 <= 0))
{
while (1) {
var66 = sp + 0x00000040;
var65 = var65 + 0x00000001;
var69 var70 = (*var2) (var3, var66, 0x00000030);
var4 = var4 + var69;
if (((var65 < var45)) != 0x00000000)
continue;
break;
}
}
while (1) {
if (((var42 < var47)) == 0x00000000)
break;
var71 = ((char *) var42)[0];
var72 = sp + 0x00000040;
var75 var76 = (*var2) (var3, var72, var71);
var4 = var4 + var75;
var42 = var42 + 0x00000001;
continue;
}
var77 = ((int *) sp)[18];
var78 = 0x00000000;
if (!(var77 <= 0))
{
while (1) {
var79 = sp + 0x00000040;
var82 var83 = (*var2) (var3, var79, 0x00000020);
var84 = ((int *) sp)[18];
var78 = var78 + 0x00000001;
var4 = var4 + var82;
if (((var78 < var84)) != 0x00000000)
continue;
break;
}
}
}
var9 = ((unsigned char *) var1)[0];
label194:
var11 = (char) var9;
}
}
else
{
var9 = ((unsigned char *) var1)[0];
var10 = (char) var9;
if (var10 != 0x00000000)
{
var28 = sp + 0x00000040;
var31 var32 = (*var2) (var3, var28, var10, 0x00000000, arg5, arg6, arg7, arg8);
var9 = ((unsigned char *) var1)[0];
var4 = var4 + var31;
}
goto label194;
}
label195:
var12 = (char) var9;
if (!(var11 == 0x00000000))
{
var1 = var1 + 0x00000001;
var13 = ((unsigned char *) var1)[0];
var12 = (char) var13;
}
var6 = var12;
if (var12 != 0x00000000)
continue;
break;
}
}
var14 = sp + 0x00000040;
var17 var18 = (*var2) (var3, var14, 0x00000000, 0x00000000, arg5, arg6, arg7, arg8);
ra = ((int *) sp)[29];
var19 = ((int *) sp)[28];
var20 = ((int *) sp)[27];
var21 = ((int *) sp)[26];
var22 = ((int *) sp)[25];
var23 = ((int *) sp)[24];
var24 = ((int *) sp)[23];
var25 = ((int *) sp)[22];
var26 = ((int *) sp)[21];
var27 = ((int *) sp)[20];
sp = sp + 0x00000080;
return;
}
/**
* Subroutine at address 0x000014B0
*/
void sub_014B0 (int arg1, int arg2, int arg3)
{
var1 = ((int *) arg2)[0];
var2 = 0x00000001;
if (!(var1 == 0x00000000))
{
if (((arg3 < 0x00000100)) == 0x00000000)
{
var5 = ((int *) arg1)[0];
var2 = 0x00000000;
((char *) var5)[0] = 0x00000000;
}
else
{
var3 = ((int *) arg1)[0];
((char *) var3)[0] = (!((var1 ^ 0x00000001)) ? 0x00000000 : arg3);
var4 = ((int *) arg2)[0];
((int *) arg1)[0] = (var3 + 0x00000001);
((int *) arg2)[0] = (var4 + 0xFFFFFFFF);
}
}
return;
}
/**
* Subroutine at address 0x00001500
*/
void sub_01500 (int arg1, int arg2, int arg3)
{
sp = sp + 0xFFFFFFF0;
((int *) sp)[0] = ra;
if (arg3 != 0x00000000)
{
sceScons_driver_89580971 (((char) arg3));
ra = ((int *) sp)[0];
}
else
{
ra = ((int *) sp)[0];
}
sp = sp + 0x00000010;
return;
}
Последний раз редактировалось ErikPshat; 14.05.2010 в 08:20.
|