PSP хакинг и девелопмент Взгляд изнутри
20.04.2010, 11:38
Сообщение: #1 (882126)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
Обсуждение взлома батарейки Пандоры PSP-3000...
Решил я развеять слухи о том что зыза 3000 преходит в сервисный режим с порта USB. Во первых, что бы активировался порт USB должен стартануть ЦП..., а он ну ни как не может это сделать на брикнутой консоли
Далее я просто зацепил крутой осциллограф к среднему выводу батарейки пандора и воткнул её в 3000 брик и записал их разговор. Известно, что со старой батарейкой 3000 не стартует....но ....смотрите сами
http://www.youtube.com/watch?v=T4mQofU37sg , что записал осциллограф. Короче зыза общается с батарейкой упорно на предмет получения ключика для перехода в сервисмод. Делаем выводы....нужен ключик для перевода 3000 в сервис мод, но, он не FFFFFFFF.....а какой? какие будут предложения по подбору ключика? Кто силён в написании прог под винду. Нуно сварганить прогу что бы она по USB через микруху МАХ232 эмулировала флешку батарейки ....со всеми вытекающими последствиями. А точнее сгенерила ключик и дала команду электронному ключу на вкл батарейки....посмотрели... нет сервисмод у 3000....отключаем батарейку...генерим новый ключик ...и так далее до победного конца. Кто готов написать такую прогу? Электронную начинку я беру на себя .
Boryan добавил 20-04-2010 в 11:33
народ давай подтягивайтесь в тему. неужели не интересно мозгами поработать? Мои мысли по поводу батарейки для 3000....что могли в ней изменить Сони? Применить другой ключик...слишком просто...перебрать 4 байта учитывая что код только может быть типа 0хAA AA AA AA или 0хАВ АВ АВ АВ, это не сложно. Это не в правилах Сони...уж если рубить концы, то конкретно. Я думаю что они тупо увеличили код до 8 байт, и он так и остался 0хFF FF FF FF FF FF FF FF. Что это даёт? Во первых, процессор стандартной батарейки не может дать зызе код длиннее 4 байт, а вот их специальная батарейка может выдать код длинной 8 байт. В итоге... и волки сыты и овцы целы... Мужики, подумал я тут и понял эмулировать флешку батарейки пока рано. Нужно написать прогу снифер под винду, ну типа писать протокол обмена с батарейкой. Записать один протокол с 2000 а второй с 3000, и сравнить команды запроса на серийник, если они одинаковые то возможно ключик так и остался 4 байта, и тогда перебор нам поможет. А вот если разные...то нужно думать как заставить батарейку выдать 8 байт.....или тупо заставить прогу снифер поработать за батарейку и отвечать за неё ...ведь если будет записан протокол, то что нам составит труда выплюнуть его обратно с нужным нам ключиком?
Кто силён в написании таких прог?
Терминал PSP-2000
// Вот разложил поточнее, что выложил
stasik007 :
/* Старт с нормальной батарейкой серийник
4f 20 df 89
Подключаю батарейку:
00
5A02 01 A2
A505 06 10C206 77
5A02
0C 97 -
запрос серийника
A506 06
204F89DF 77 -
серийник
5A0B 80 08364CAFF8EFE8E9A5 84
A512 06 EFDDEDA268B1F15CF705F1F16FFADDE2 7B
5A02 01 A2
A505 06 10C206 77
5A02
0C 97 -
запрос серийника
A506 06
204F89DF 77 -
серийник
5A0B 80 02129A117169ADE46F 81
A512 06 CEE3A231846B7A3CACC16A81AE99A14F 8A
5A0A 81 08EC25077C96EB55 A8
A50A 06 3D71D0DDA5AC498D C8
5A02 01 A2
A505 06 00C206 87
5A0B 80 0208FA21BD9B0CF433 6A
A512 06 649C9CC965D9AA823804FA537F84ADC7 73
5A0A 81 0A99549CC666111A 30
A50A 06 1DF65042207C3621 B2
00
Включаю приставку:
5A02 01 A2
A505 06 10C206 77
5A02 03 A0
A504 06 3610 0A
5A02
0C 97 -
запрос серийника
A506 06
204F89DF 77 -
серийник
5A0B 80 082ED10418C5A517A7 CF
A512 06 956EC42197FA58395A3D01B7EBB74C36 C5
5A02 01 A2
A505 06 10C206 77
5A02 03 A0
A504 06 3610 0A
5A02
0C 97 -
запрос серийника
A506 06
204F89DF 77 -
серийник
5A0B 80 0265727014369503DA 15
A512 06 D3D208AC828AC4285A1F1BE8389276A2 93
5A0A 81 62861C9CE0618781 31
A50A 06 3E02027DA5B052A3 41
5A02 01 A2
A505 06 00C206 87
5A02 07 9C
A504 06 0807 41
5A02 0B 98
A504 06 0F00 41
5A02 09 9A
A504 06 0104 4B
5A02 02 A1
A503 06 1B 36
5A02 04 9F
A504 06 9AFF B7
5A02 03 A0
A504 06 3110 0F
5A02 01 A2
A505 06 00C206 87
5A02 09 9A
A504 06 3603 17
5A02 02 A1
A503 06 1B 36
5A02 04 9F
A504 06 81FF D0
5A02 03 A0
A504 06 2C10 14
5A02 01 A2
A505 06 00C106 88
5A02 03 A0
A504 06 2C10 14
5A0B 80 028C1358AFF19A5594 FE
A512 06 903ECAB191ACE9B53336455CD35DC860 BC
5A0A 81 9F3777774C64553C 15
A50A 06 64D75EC38A197E7B 52
5A02 01 A2
A505 06 00C106 88
5A02 09 9A
A504 06 3603 17
5A02 02 A1
A503 06 1B 36
00
*/
Данные терминала с батарейки FAT-1800mAh во всех режимах на PSP-2000 и PSP-3000
Во вложении: "psp_bat " программа от dn3d по преобразованию ответов терминала в читабельный вид:Копируете весь код терминала в верхнее мемо поле и нажимаете "Convert ".
"Save to txt " - сохранить результат в txt файл. Все лишние символы и пробелы удаляются автоматом.
"Open Source Pandora Battery Tool 0.60 " - программа для FULL-дампа/записи флеш EEPROM батареи и смены серийников (режимов).
Вложения
Чтобы загружать вложения у Вас должно быть больше, чем 0 сообщений. А у Вас 0 сообщений.
Последний раз редактировалось ErikPshat; 21.01.2018 в 03:29 .
Причина: добавил, подумав
Эти 30 пользователя(ей) сказали Спасибо Boryan за это полезное сообщение:
aliasfox (20.04.2010),
Andrik.if (06.06.2011),
Animeshnik96 (25.04.2010),
BlackDaemon (20.04.2010),
blutuzzz (07.11.2011),
CaTF1sH (28.05.2010),
chel12 (20.04.2010),
DimoNimitSU (20.04.2010),
dn3d (20.04.2010),
Doode (27.11.2010),
doubledeath (20.04.2010),
EgorLel (22.04.2010),
egvf (09.07.2010),
Elandil (21.05.2010),
ErikPshat (20.04.2010),
erutan (08.08.2010),
Ins|der (22.04.2010),
ivan_helsin (20.04.2010),
Klerikus (20.04.2010),
kolio (03.08.2010),
Mike_Slavman (03.05.2010),
Padre (20.04.2010),
phenixis1 (24.05.2010),
PS3mania (24.08.2012),
respecteg (26.06.2010),
sasiska12 (15.05.2011),
SunTexnik (20.04.2010),
TohaMEN (22.04.2010),
Wolfus (01.04.2011),
Yoti (05.05.2010)
13.05.2010, 17:38
Сообщение: #441 (886569)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
ANDPSP , Значит я ошибался
....думая что батарейка это так мелочи....но зызу брутить без знания алгоритма ответа на 80 и 81 команды бесполезно....она сразу стопорится на неправильных ответах на эти запросы....нужно изучать ответы батарейки на эти команды....а уж потом строить запросы к зызе....Знаю одно точно, что все 80хх команды и в их числе 80D9 работают по одному принципу....но для более точных данных нужно сделать задаваемое время между запросами....тогда можно батарейку побрутить одним набором байтов но разными командами 80хх...и сравнить результаты. Но самое интересное....ведь китайцы как то вычислили алгоритм ответа на 80хх и 81 команды раз клепают свои левые батарейки. А чем мы хуже китайцев?
13.05.2010, 18:20
Сообщение: #442 (886585)
Прошивка: От 5.00M33-6 до 6.20
Регистрация: 09.02.2010
Адрес: Питер
Возраст: 44
Сообщений: 273
Вы сказали Спасибо: 19
Поблагодарили 127 раз(а) в 83 сообщениях
Сила репутации:
1 Репутация: 127  
(скоро придёт к известности)
Boryan , ты обещал выложить мануал, по созданию K-Line. Не сделал еще? Я бы человечка посадил травить и паять.
Этот пользователь сказал Спасибо t0rm3nt0r за это полезное сообщение:
13.05.2010, 18:35
Сообщение: #443 (886587)
Регистрация: 03.03.2010
Сообщений: 111
Вы сказали Спасибо: 2
Поблагодарили 79 раз(а) в 41 сообщениях
Сила репутации:
1 Репутация: 79  
(скоро придёт к известности)
Сообщение от
Boryan
Но самое интересное....ведь китайцы как то вычислили алгоритм ответа на 80хх и 81 команды раз клепают свои левые батарейки. А чем мы хуже китайцев?
Хм... а может все проще - они взяли сняли дамп микропрограммы с контроллера и зафигачили его в новые чипы и работает он как и работал в оригинальных батарейках... Не знаю можно ли как то проверить эту догадку, но как то заливают прошивки в контроллеры...
ANDPSP добавил 13-05-2010 в 18:35
Сообщение от
t0rm3nt0r
Boryan , ты обещал выложить мануал, по созданию K-Line. Не сделал еще? Я бы человечка посадил травить и паять.
+1
я тоже жду мануала... хотя не понимаю на чем держаться все эти резисторы и кмопы должны... или есть какие то заготовки-печатные платы или просто на куске текстолита все собирается путем сверления дырок под контактные места ?
Последний раз редактировалось ANDPSP; 13.05.2010 в 18:35 .
Причина: добавил, подумав
13.05.2010, 19:34
Сообщение: #444 (886603)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
уже приступил к мануалу
всё делается навесным монтажом без всяких там плат..
13.05.2010, 19:56
Сообщение: #445 (886608)
Регистрация: 03.10.2007
Сообщений: 187
Вы сказали Спасибо: 0
Поблагодарили 178 раз(а) в 106 сообщениях
Сила репутации:
1 Репутация: 157  
(весьма и весьма положительная личность)
Чо то мне кажется что китайские отвечают всякую муть на 80 запрос... Или это не так? Вроде в теме был лог где подобная батарейка нули возвращала.
13.05.2010, 22:45
Сообщение: #446 (886613)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
Сообщение от
Alex14435
Чо то мне кажется что китайские отвечают всякую муть на 80 запрос... Или это не так? Вроде в теме был лог где подобная батарейка нули возвращала.
была такая....вот она как раз и не работала ни на одной зызе....умерла батарейка....навсегда..
Boryan добавил 13-05-2010 в 20:04
ANDPSP , снять дамп с микроконтроллера нельзя ....стоит бит защиты....а потом китайцы на своих покоцанных контроллерах делают батарейки....значит они знают основные алгоритмы 80 команд
Boryan добавил 13-05-2010 в 20:13
ANDPSP , кмоп не может на чём то держаться
))-
http://ru.wikipedia.org/wiki/CMOS
Boryan добавил 13-05-2010 в 22:18
ТУТ K-Line с фотками и описанием...
http://slil.ru/29129008 ну проще уже нет вариантов...да,забыл... весит 30 метров
Boryan добавил 13-05-2010 в 22:24
Только не забываем дрова для PL2303 установить
Boryan добавил 13-05-2010 в 22:45
PS на фотках с именем CD4011 ошибка в цоколёвке микросхемы!!! Не обращаете внимание на них, удалите их из архива. Придурок какой то в нете выложил а я схватил и в свой архив ...а потом проверил а там цоколёвка микрухи не правильная...
Последний раз редактировалось Boryan; 13.05.2010 в 22:45 .
Причина: добавил, подумав
Эти 2 пользователя(ей) сказали Спасибо Boryan за это полезное сообщение:
14.05.2010, 05:27
Сообщение: #447 (886684)
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 57
Сообщений: 46,304
Вы сказали Спасибо: 27,029
Поблагодарили 42,586 раз(а) в 12,178 сообщениях
Сила репутации:
10 Репутация: 41781  
(репутация неоспорима)
Ну вот собсно отдизасмил
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 .
14.05.2010, 10:19
Сообщение: #448 (886699)
Прошивка: От 5.00M33-6 до 6.20
Регистрация: 09.02.2010
Адрес: Питер
Возраст: 44
Сообщений: 273
Вы сказали Спасибо: 19
Поблагодарили 127 раз(а) в 83 сообщениях
Сила репутации:
1 Репутация: 127  
(скоро придёт к известности)
Сообщение от
Boryan
PS на фотках с именем CD4011 ошибка в цоколёвке микросхемы!!! Не обращаете внимание на них, удалите их из архива. Придурок какой то в нете выложил а я схватил и в свой архив ...а потом проверил а там цоколёвка микрухи не правильная...
Оба файла? Там просто CD4011.jpg и CD4011_1.jpg
14.05.2010, 11:53
Сообщение: #449 (886703)
Регистрация: 03.03.2010
Сообщений: 111
Вы сказали Спасибо: 2
Поблагодарили 79 раз(а) в 41 сообщениях
Сила репутации:
1 Репутация: 79  
(скоро придёт к известности)
Сообщение от
Boryan
Boryan добавил 13-05-2010 в 22:18
ТУТ K-Line с фотками и описанием...
http://slil.ru/29129008 ну проще уже нет вариантов...да,забыл... весит 30 метров
Нда.... А почему с платки PL2303 идет 3 белых проводка а не два ? вроде GND припаян на прямую, RX и TX понятно а что еще за третий провод ? И мог бы на финальной схеме пометить хотя бы какой провод TX, а какой RX - было бы гораздо проще и мог бы свой рабочий девайс сфоткать а то я так и не понял в финальной фотке у тебя диоды или резисторы ? И если я правильно понял то нужна
микросхема стандартной логики И-НЕ - может так проще народу искать будет....
Последний раз редактировалось ANDPSP; 14.05.2010 в 13:03 .
14.05.2010, 21:37
Сообщение: #450 (886794)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
ANDPSP , третий провод это питание микросхемы. Микруха правильно ты подметил стандартная логика
На всех фотках у меня вместо резисторов стоят диоды
для наглядности ..ну нету у меня резисторов корпусных и с ножками....я давно сижу на ЧИП или SMD компонентах....вот для того что бы было видно куда и чего паять использовал диоды вместо резисторов. НО вы должны использовать только резисторы !!!
14.05.2010, 22:16
Сообщение: #451 (886799)
Прошивка: 6.20
Регистрация: 15.01.2010
Адрес: Омск
Возраст: 45
Сообщений: 94
Вы сказали Спасибо: 2
Поблагодарили 47 раз(а) в 26 сообщениях
Сила репутации:
1 Репутация: 47  
(на пути к лучшему)
Сообщение от
ErikPshat
Ну вот собсно отдизасмил SYSCON.PRX от пандоры-2000. Что примечательно, так этот файл весит 46420 байт, в отличии от 19502 байта, которые лежат в прошивке 5.00 или 5.03, в декриптованном виде конечно. Осталось только подсчитать алгоритмы =)
Там нет батареечных кусков.
Сообщение от
Boryan
ANDPSP, снять дамп с микроконтроллера нельзя ....стоит бит защиты....а потом китайцы на своих покоцаных контроллерах делают батарейки....значит они знают основные алгоритмы 80 команд
ну дак отвечает то батарейка, а5хх06...и дальше любая муть главное
чтобы кс совпадал...) не надо на китайцев ровняться.
Сообщение от
Yoti
там много что на время завязано. Я в одном модуле реализовал рэндом, привязав к количеству времени... прошедшему с 1970 года (в секундах).
да и синхронизация по времени достаточно точная.
подменять команды не получилось видимо 2 порта и прога сильно
искажали тайминги.
Сообщение от
Boryan
если можно, то в закладке брута батарейки было бы неплохо сделать возможность посылки запроса с паузами которые можно изменять
я неделю с этими 8ю байтами бьюсь, не так все просто.
15.05.2010, 01:51
Сообщение: #452 (886804)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
lport3 ,
ну дак отвечает то батарейка, а5хх06...и дальше любая муть главное
чтобы кс совпадал...) не надо на китайцев ровняться.
Ты хочешь сказать что ответ на 80 команду может быть любой?
я неделю с этими 8ю байтами бьюсь, не так все просто.
А это ты про какие байты ..те что отвечают на 81 команду?
Boryan добавил 14-05-2010 в 23:08
Просто регулируемая пауза нужна что бы точнее понять ответы на 80хх и 81 команды. дело в том что если я шлю любую из 80хх команд с паузой более 0.5 сек ответы одинаковые ...но стоит меньше то ответы разные. Я же не могу рукой делать точные и нужные паузы. Просто я таким методом хочу выяснить алгоритм 80хх команд. Подавая одну и туже команду с заданной паузой мы получаем статический ответ...и если к этому мы начнём менять (делать брут) любой байт в строке команды то получим статические ответы на варианты смены байта...таким образом мы вычислим алгоритм ответа на 80хх команды. И 80D9 из их серии....а посему мы будем знать как отвечать на этот запрос....ну а далее остаётся самое загадочное
81
Boryan добавил 15-05-2010 в 01:00
Boryan добавил 15-05-2010 в 01:04
Так ради интереса послушал зызу и батарейку....Тупо вставил батарейку зызу не включаю.....и она сволочь каждые 30 секунд пытает батарейку..потихоньку её разряжая....
5A0201A2A50506102303195A020C97A5060670C612887E5A0B800A498793E710FF7A3805A5120601
B25FF65B0192E67B453FD506DA5CFE585A0A8183A6B09B803A619EEDA50A0611DA13E55627E6897B
5A0201A2A50506002303295A0B800AE7C39E274A1420D053A51206C1630CE60890936A5F083BFE7D
E10989075A0A8182D3D389E7DA26B1D1A50A06096820ABBF3F871970
прошло 30сек
5A0201A2A50506102303195A020C97A5060670C612887E5A0B8004597FFD1F19FCE41514A5121500
000000000000000000000000000000335A0201A2A50506102303195A020C97A5060670C612887E5A
0B800A0C69DD2C87E7F09E96A51206419E8B978ABF6F82B49221CCD791C0DCD05A0A81FF575CD9CD
B97E7C0FA50A06E57BE7F6F798432D0E
прошло 30сек
5A0201A2A50506102303195A020C97A5060670C612887E5A0B8004898BAA446CEE5C86D8A5121500
000000000000000000000000000000335A0201A2A50506102303195A020C97A5060670C612887E5A
0B800A6023F7D4B14243414BA5120671B3DCBE13E1A984D2B1AFAADE73E541105A0A8180F0ED2673
C7C3BEDCA50A06BF27E761150753F4B9
прошло 30сек
5A0201A2A50506102303195A020C97A5060670C612887E5A0B80043E2C0CF495D96303D8A5121500
000000000000000000000000000000335A0201A2A50506102303195A020C97A5060670C612887E5A
0B800A9B1750C776A645E105A512062B07A2F55E228024D2B1AFAADE73E541025A0A8180F0ED2673
C7C3BEDCA50A06BF27E761150753F4B9
прошло 30сек
5A0201A2A50506102303195A020C97A5060670C612887E5A0B80043E2C0CF495D96303D8A5121500
000000000000000000000000000000335A0201A2A50506102303195A020C97A5060670C612887E5A
0B800ADDAE64CCE730E9A6AFA51206A3060A1EE8490CC8067E2AC7398BD92A305A0A81D16154824E
D92C358AA50A069DCB7D92A2DD6D9156
прошло 30сек
5A0201A2A50506102303195A020C97A5060670C612887E5A0B80041711FBE75914AAB342A5121500
000000000000000000000000000000335A0201A2A50506102303195A020C97A5060670C612887E5A
0B800A2EDE2AACE4F504C68BA51206A9B7A47A587FB81BD2B1AFAADE73E541C75A0A8180F0ED2673
C7C3BEDCA50A06BF27E761150753F4B9
Boryan добавил 15-05-2010 в 01:51
помучил в очередной раз зызу 2000, пытаясь эмулировать ответы батарейки компом....итог, 32 запроса после неверного ответа на 8008 команду. Видимо бесполезно пытаться это сделать пока не поймём как правильно отвечать на 80хх команды....
Последний раз редактировалось ErikPshat; 07.05.2012 в 23:38 .
Причина: добавил, подумав
17.05.2010, 01:34
Сообщение: #453 (887166)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
Что то я не пойму....то ли мы идём не в том направлении, то ли на самом деле в батарейке такая сильная защита....но самое странное что всё это было заложено с самого рождения зызы.....с 1000 модели и её батареек...Получается бред какой то....соня защитила батарейку выше некуда а 1000 и 2000 консоли просрала...дыр понаделала в защите консолей кучу....а в батарейке выходит нет дыр.....очень странно всё это выглядит....поставить бронированную дверь и закрывать её замком от почтового ящика...
Boryan добавил 17-05-2010 в 01:06
Побрутил тут батарейку на все команды однобайтовые ....вот выкладываю лог, правда не весь далее смысла нет...там ответов нет....но вот 15 и 16 команды оказались интересными...
5A 02 00 A3
A5 02 06 52
5A 02 01 A2
A5 05 06 10 6B 04 D0
5A 02 02 A1
A5 03 06 1B 36
5A 02 03 A0
A5 04 06 49 10 F7
5A 02 04 9F
A5 04 06 00 00 50
5A 02 05 9E
A5 03 06 64 ED
5A 02 06 9D
A5 04 06 6B 04 E1
5A 02 07 9C
A5 04 06 70 04 DC
5A 02 08 9B
A5 04 06 E2 04 6A
5A 02 09 9A
A5 04 06 87 00 C9
5A 02 0A 99
A5 03 06 10 41
5A 02 0B 98
A5 04 06 64 00 EC
5A 02 0C 97
A5 06 06 D8 29 01 44 08
5A 02 0D 96
A5 07 06 EB 0E 0A 28 41 E1
5A 02 0E 95
A5 04 06 E5 01 6A
5A 02 0F 94
A5 04 06 56 03 F7
5A 02 10 93
A5 04 06 00 00 50
5A 02 11 92
A5 04 06 00 00 50
5A 02 12 91
A5 04 06 00 00 50
5A 02 13 90
A5 02 15 43
5A 02 14 8F
A5 02 15 43
5A 02 15 8E
A5 26 06 1B 49 10 00 00 64 6B 04 70 04 E2 04 87 00 10 64 00 D8 29 01 44 EB 0E 0A 28 41 E5 01 56 03 00 00 00 00 00 00 A1
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
5A 02 17 8C
A5 02 15 43
Boryan добавил 17-05-2010 в 01:15
и ещё 15 и 16 команды на разных батарейках....ответ на 15 команду содержит и серийник батарейки....правда новые батарейки возвращают 00000 ...ну а отвтет на 16 команду у всех один
5A 02 15 8E
A5 26 06 18 5A 0F 00 00 49 68 03 BA 04 E2 04 68 00 10 26 00 FF FF FF FF 64 10 0A 28 41 08 02 25 03 00 00 F0 FA 00 00 B8
5A 02 15 8E
A5 26 06 18 D9 0F 03 00 5B 3B 04 BA 04 E2 04 81 00 10 00 00 00 00 00 00 47 11 14 28 41 0B 02 3F 03 0C 00 3C FE 00 00 F2
5A 02 15 8E
A5 26 06 1B 3B 10 00 00 63 62 04 70 04 E2 04 86 00 10 64 00 D8 29 01 44 EB 0E 0A 28 41 ED 01 53 03 00 00 DC FF 00 00 DA
5A 02 15 8E
A5 26 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2E
5A 02 15 8E
A5 26 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2E
5A 02 15 8E
A5 26 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2E
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
Boryan добавил 17-05-2010 в 01:28
чота я не понимаю....81 команда ответ на одинаковые запрос был разным...сейчас всё стабильно....проверенно на 3 батарейках
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 04 E3 C1 F2 91 A4 BE 14 A9
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 04 E3 C1 F2 91 A4 BE 14 A9
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 04 E3 C1 F2 91 A4 BE 14 A9
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 04 E3 C1 F2 91 A4 BE 14 A9
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 04 E3 C1 F2 91 A4 BE 14 A9
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 04 E3 C1 F2 91 A4 BE 14 A9
Boryan добавил 17-05-2010 в 01:34
очень интересные ответы на код 00 и FF
5A 0A 81 00 00 00 00 00 00 00 00 1A
A5 0A 06 FC E7 3E 58 B5 C8 99 6C 4F
5A 0A 81 00 00 00 00 00 00 00 00 1A
A5 0A 06 FC E7 3E 58 B5 C8 99 6C 4F
5A 0A 81 FF FF FF FF FF FF FF FF 22
A5 0A 06 FC E7 3E 58 B5 C8 99 6C 4F
5A 0A 81 FF FF FF FF FF FF FF FF 22
A5 0A 06 FC E7 3E 58 B5 C8 99 6C 4F
Последний раз редактировалось Boryan; 17.05.2010 в 01:34 .
Причина: добавил, подумав
17.05.2010, 01:35
Сообщение: #454 (887174)
Прошивка: 6.20
Регистрация: 15.01.2010
Адрес: Омск
Возраст: 45
Сообщений: 94
Вы сказали Спасибо: 2
Поблагодарили 47 раз(а) в 26 сообщениях
Сила репутации:
1 Репутация: 47  
(на пути к лучшему)
Да защита действительно очень сложная. Эфки в серийнике
на старых моделях, это баг жуткий, наверняка его пофиксили.
Сервисную батарейку определяет не серийник, я так думаю.
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
это просто подпись SonyEnergyDevices
ответы на 81ю команду одинаковые,
потому что вход в режим был одинаковый (полагаю, его не было)).
Последний раз редактировалось lport3; 17.05.2010 в 01:41 .
Этот пользователь сказал Спасибо lport3 за это полезное сообщение:
17.05.2010, 01:35
Сообщение: #455 (887175)
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 57
Сообщений: 46,304
Вы сказали Спасибо: 27,029
Поблагодарили 42,586 раз(а) в 12,178 сообщениях
Сила репутации:
10 Репутация: 41781  
(репутация неоспорима)
Сообщение от
Boryan
чота я не понимаю....81 команда ответ на одинаковые запрос был разным...сейчас всё стабильно....проверенно на 3 батарейках
По моему просто запрос от PSP был разным на 81 команду, вот и ответ 06 приходил разный.
17.05.2010, 01:44
Сообщение: #456 (887176)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
батарейка № 2
5A 0A 81 FF FF FF FF FF FF FF FF 22
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 FF FF FF FF FF FF FF FF 22
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 FF FF FF FF FF FF FF FF 22
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 00 00 00 00 00 00 00 00 1A
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 00 00 00 00 00 00 00 00 1A
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
5A 0A 81 00 00 00 00 00 00 00 00 1A
A5 0A 06 F1 B4 7A 61 6C 3D 4E 15 BE
Boryan добавил 17-05-2010 в 01:37
ErikPshat , значит 81 команда тупая? и ко времени не привязана?
Boryan добавил 17-05-2010 в 01:42
ErikPshat , да нет же ...вот старый лог...81 команды....и все ответы разные ....сейчас точь в точь повторяю эту команду ответы одинаковые...
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 FC E7 3E 58 B5 C8 99 6C 4F
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 FC E7 3E 58 B5 C8 99 6C 4F
а вот старый лог...
ответы батарейки на постоянную команду 5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 1E EB 0E 4B 51 5E D1 42 26
A5 0A 06 1F 66 9D 1D 5A 25 E0 5E 4E
A5 0A 06 11 B4 DD 27 2C 5B 74 E0 A6
A5 0A 06 6A 69 02 88 92 E2 A0 7A 5F
A5 0A 06 3F 0B BC 2D AE CD 58 A0 A4
A5 0A 06 BB EC 4D 3F C8 27 FC B0 7C
A5 0A 06 11 15 C3 49 7E 3B BB C6 DE
A5 0A 06 0B 1E 5A 39 AE 57 BA 71 5E
A5 0A 06 19 BC 34 3D BA 0B A2 97 06
A5 0A 06 23 1D E7 02 FE CE D1 D6 AE
A5 0A 06 16 07 A7 D9 68 B1 E4 DD D3
A5 0A 06 E7 73 80 B9 DC FA 38 C5 E4
A5 0A 06 F3 38 A2 29 A1 CA B2 EE 49
A5 0A 06 31 18 1E EA 28 90 37 A3 67
A5 0A 06 36 4F DB 69 31 06 7D 22 AB
A5 0A 06 58 AB 37 BD E8 A5 72 CC 88
A5 0A 06 80 56 4A 7F 4B DE 06 47 35
A5 0A 06 71 88 DF 18 5B 95 A1 BB 0E
A5 0A 06 E0 9F 31 DF 39 E2 35 58 13
A5 0A 06 31 30 47 0A 87 66 62 6F DA
A5 0A 06 53 95 3F 1F B8 2E 24 40 BA
A5 0A 06 F2 F7 84 6B 00 BD 20 89 0C
A5 0A 06 24 CE 4B D8 60 51 29 5A 01
A5 0A 06 1F 12 2D 40 13 44 63 7D 75
A5 0A 06 0C 4A 82 66 46 5D E3 4E 38
Boryan добавил 17-05-2010 в 01:44
что, ответы от погоды ответы зависят или расположения звёзд?
))батарейки те же ...к-лайн тот же....в чём дело?
Последний раз редактировалось Boryan; 17.05.2010 в 01:44 .
Причина: добавил, подумав
17.05.2010, 01:44
Сообщение: #457 (887180)
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 57
Сообщений: 46,304
Вы сказали Спасибо: 27,029
Поблагодарили 42,586 раз(а) в 12,178 сообщениях
Сила репутации:
10 Репутация: 41781  
(репутация неоспорима)
Сообщение от
lport3
это просто подпись SonyEnergyDevices
Ага, подтверждаю =))) В ответ на 16-ую команду...
Сообщение от
Boryan
5A 02 16 8D
A5 13 06 53 6F 6E 79 45 6E 65 72 67 79 44 65 76 69 63 65 73 6B
Boryan , ну получается раньше с 81 командой были какие-то глюки. Наверное с задержкой. А может наоборот, сейчас глюки =)
Последний раз редактировалось ErikPshat; 17.05.2010 в 02:02 .
17.05.2010, 01:50
Сообщение: #458 (887181)
Прошивка: 6.20
Регистрация: 15.01.2010
Адрес: Омск
Возраст: 45
Сообщений: 94
Вы сказали Спасибо: 2
Поблагодарили 47 раз(а) в 26 сообщениях
Сила репутации:
1 Репутация: 47  
(на пути к лучшему)
Сообщение от
Boryan
что, ответы от погоды ответы зависят или расположения звёзд?
))батарейки те же ...к-лайн тот же....в чём дело?
Я мог бы долго рассказывать про свои бруты-муты,
но это долго и муторно )) у меня примерно такие же странности
с батареей, полагаю, батарейка (а может и псп) закрылась.
Поставь батарейку в псп и сними логи, там будут негативные ответы на
длинные команды.
Последний раз редактировалось lport3; 17.05.2010 в 01:51 .
17.05.2010, 02:07
Сообщение: #459 (887182)
Регистрация: 31.01.2010
Возраст: 61
Сообщений: 588
Вы сказали Спасибо: 9
Поблагодарили 653 раз(а) в 341 сообщениях
Сила репутации:
1 Репутация: 664  
(луч света в тёмном царстве)
Сообщение от
lport3
Я мог бы долго рассказывать про свои бруты-муты,
но это долго и муторно )) у меня примерно такие же странности
с батареей, полагаю, батарейка (а может и псп) закрылась.
Поставь батарейку в псп и сними логи, там будут негативные ответы на
длинные команды.
Получается ещё одна хитрость батареек? Если он "отдохнули" мальца
просто полежали без зызы, то и ответы от них на 81 и 80 адекватные
а как с зызой поработают то начинают выкобениваться?
очень интересные батарейки
))
Boryan добавил 17-05-2010 в 01:58
ErikPshat , На днях будет тебе к-лайн для работы....
ANDPSP , и тебе...Просто я зашился мальца с ремонтом зызок ..завалили...вот и не было времени собрать к-лайны...
Boryan добавил 17-05-2010 в 02:05
ну очень странно....повтыкал батарейку в разные зызы...повключал...погонял 81 командой....ответы меняются в зависимости в каой зызе батарейка побывала....но они, самое главное статичны!!!
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
другая зыза
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 07 E0 65 E6 EA E8 98 44 6A
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 07 E0 65 E6 EA E8 98 44 6A
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 07 E0 65 E6 EA E8 98 44 6A
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 07 E0 65 E6 EA E8 98 44 6A
ещё и далее просто отключал и подключал батарейку к к-лайн
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 F6 27 00 45 30 06 FD 9D 18
Boryan добавил 17-05-2010 в 02:07
даже батарейку от к-лайна отрубал на 5 минут...и код ответа был тот же что и ранее ...
Последний раз редактировалось Boryan; 17.05.2010 в 02:07 .
Причина: добавил, подумав
17.05.2010, 02:09
Сообщение: #460 (887187)
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 57
Сообщений: 46,304
Вы сказали Спасибо: 27,029
Поблагодарили 42,586 раз(а) в 12,178 сообщениях
Сила репутации:
10 Репутация: 41781  
(репутация неоспорима)
Boryan , а как насчёт 80-ой команды?
А в чём прикол между этими разными запросами и одинаковыми ответами?
Сообщение от
Boryan
5A 0A 81 15 D8 15 FE A8 D3 CB BE 16
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
Сообщение от
Boryan
5A 0A 81 FC B4 1E 2D A9 AF A3 07 1D
A5 0A 06 FB AC 55 AA F9 1E A1 C5 27
Последний раз редактировалось ErikPshat; 17.05.2010 в 02:13 .
Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Текущее время: 01:39 . Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод:
zCarot
PSPx Forum - Сообщество фанатов игровых консолей.