HEADER:00001000 ; +-------------------------------------------------------------------------+ HEADER:00001000 ; | This file is generated by The Interactive Disassembler (IDA) | HEADER:00001000 ; | Copyright (c) 2007 by DataRescue sa/nv, | HEADER:00001000 ; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 | HEADER:00001000 ; +-------------------------------------------------------------------------+ HEADER:00001000 ; HEADER:00001000 ; Input MD5 : C40EFB47BFD3C95069FE48C2D3A00C4B HEADER:00001000 HEADER:00001000 HEADER:00001000 .686p HEADER:00001000 .mmx HEADER:00001000 .model flat HEADER:00001000 .intel_syntax noprefix HEADER:00001000 HEADER:00001000 ; =========================================================================== HEADER:00001000 HEADER:00001000 ; [00000F00 BYTES: COLLAPSED SEGMENT HEADER. PRESS KEYPAD "+" TO EXPAND] __text:00001F00 ; =========================================================================== __text:00001F00 __text:00001F00 ; Segment type: Pure code __text:00001F00 __text segment dword public 'CODE' use32 __text:00001F00 assume cs:__text __text:00001F00 ;org 1F00h __text:00001F00 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing __text:00001F00 __text:00001F00 ; =============== S U B R O U T I N E ======================================= __text:00001F00 __text:00001F00 ; Attributes: noreturn __text:00001F00 __text:00001F00 public start __text:00001F00 start proc near __text:00001F00 __text:00001F00 var_14 = dword ptr -14h __text:00001F00 var_10 = dword ptr -10h __text:00001F00 var_C = dword ptr -0Ch __text:00001F00 var_8 = dword ptr -8 __text:00001F00 __text:00001F00 push 0 __text:00001F02 mov ebp, esp __text:00001F04 and esp, 0FFFFFFF0h __text:00001F07 sub esp, 10h __text:00001F0A mov ebx, [ebp+4] __text:00001F0D mov [esp+14h+var_14], ebx __text:00001F11 lea ecx, [ebp+8] __text:00001F14 mov [esp+14h+var_10], ecx __text:00001F18 add ebx, 1 __text:00001F1B shl ebx, 2 __text:00001F1E add ebx, ecx __text:00001F20 mov [esp+14h+var_C], ebx __text:00001F24 __text:00001F24 loc_1F24: ; CODE XREF: start+2B __text:00001F24 mov eax, [ebx] __text:00001F26 add ebx, 4 __text:00001F29 test eax, eax __text:00001F2B jnz short loc_1F24 __text:00001F2D mov [esp+14h+var_8], ebx __text:00001F31 call _main __text:00001F36 mov [esp+14h+var_14], eax __text:00001F3A call _exit __text:00001F3A start endp __text:00001F3A __text:00001F3A ; --------------------------------------------------------------------------- __text:00001F3F db 0F4h __text:00001F40 __text:00001F40 ; =============== S U B R O U T I N E ======================================= __text:00001F40 __text:00001F40 __text:00001F40 dyld_stub_binding_helper proc near __text:00001F40 call $+5 __text:00001F45 pop eax __text:00001F46 push dword ptr [eax+0CBh] __text:00001F4C mov eax, [eax+0CFh] __text:00001F52 jmp eax __text:00001F52 dyld_stub_binding_helper endp __text:00001F52 __text:00001F54 __text:00001F54 ; =============== S U B R O U T I N E ======================================= __text:00001F54 __text:00001F54 __text:00001F54 ; int _dyld_func_lookup(const char *dyld_func_name, void **address) __text:00001F54 __dyld_func_lookup proc near __text:00001F54 call $+5 __text:00001F59 pop eax __text:00001F5A mov eax, [eax+0BFh] __text:00001F60 jmp eax __text:00001F60 __dyld_func_lookup endp __text:00001F60 __text:00001F62 __text:00001F62 ; =============== S U B R O U T I N E ======================================= __text:00001F62 __text:00001F62 ; Attributes: bp-based frame __text:00001F62 __text:00001F62 _dimDisplayNow proc near ; CODE XREF: _main+4 __text:00001F62 __text:00001F62 var_18 = dword ptr -18h __text:00001F62 var_14 = dword ptr -14h __text:00001F62 var_10 = dword ptr -10h __text:00001F62 var_8 = dword ptr -8 __text:00001F62 var_4 = dword ptr -4 __text:00001F62 __text:00001F62 push ebp __text:00001F63 mov ebp, esp __text:00001F65 sub esp, 18h __text:00001F68 mov eax, ds:_kIOMasterPortDefault_ptr __text:00001F6D mov [ebp+var_8], ebx __text:00001F70 mov [ebp+var_4], esi __text:00001F73 mov esi, 1 __text:00001F78 mov [esp+18h+var_14], 1FC8h __text:00001F80 mov eax, [eax] __text:00001F82 mov [esp+18h+var_18], eax __text:00001F85 call _IORegistryEntryFromPath __text:00001F8A test eax, eax __text:00001F8C mov ebx, eax __text:00001F8E jz short loc_1FB5 __text:00001F90 mov eax, ds:_kCFBooleanTrue_ptr __text:00001F95 mov [esp+18h+var_14], 2030h __text:00001F9D mov [esp+18h+var_18], ebx __text:00001FA0 mov eax, [eax] __text:00001FA2 mov [esp+18h+var_10], eax __text:00001FA6 call _IORegistryEntrySetCFProperty __text:00001FAB mov [esp+18h+var_18], ebx __text:00001FAE mov esi, eax __text:00001FB0 call _IOObjectRelease __text:00001FB5 __text:00001FB5 loc_1FB5: ; CODE XREF: _dimDisplayNow+2C __text:00001FB5 mov eax, esi __text:00001FB7 mov ebx, [ebp+var_8] __text:00001FBA mov esi, [ebp+var_4] __text:00001FBD leave __text:00001FBE retn __text:00001FBE _dimDisplayNow endp __text:00001FBE __text:00001FBF __text:00001FBF ; =============== S U B R O U T I N E ======================================= __text:00001FBF __text:00001FBF ; Attributes: bp-based frame __text:00001FBF __text:00001FBF _main proc near ; CODE XREF: start+31 __text:00001FBF push ebp __text:00001FC0 mov ebp, esp __text:00001FC2 leave __text:00001FC3 jmp _dimDisplayNow __text:00001FC3 _main endp __text:00001FC3 __text:00001FC3 __text ends __text:00001FC3 __cstring:00001FC8 ; =========================================================================== __cstring:00001FC8 __cstring:00001FC8 ; Segment type: Pure data __cstring:00001FC8 __cstring segment dword public 'DATA' use32 __cstring:00001FC8 assume cs:__cstring __cstring:00001FC8 ;org 1FC8h __cstring:00001FC8 aIoserviceIores db 'IOService:/IOResources/IODisplayWrangler',0 __cstring:00001FF1 aIorequestidle db 'IORequestIdle',0 ; DATA XREF: __cfstring:cfstr_Iorequestidle __cstring:00001FF1 __cstring ends __cstring:00001FF1 __data:00002000 ; =========================================================================== __data:00002000 __data:00002000 ; Segment type: Pure data __data:00002000 __data segment dword public 'DATA' use32 __data:00002000 assume cs:__data __data:00002000 ;org 2000h __data:00002000 public ___progname __data:00002000 ___progname db 0 __data:00002001 db 0 __data:00002002 db 0 __data:00002003 db 0 __data:00002004 public _environ __data:00002004 _environ db 0 __data:00002005 db 0 __data:00002006 db 0 __data:00002007 db 0 __data:00002008 public _NXArgv __data:00002008 _NXArgv db 0 __data:00002009 db 0 __data:0000200A db 0 __data:0000200B db 0 __data:0000200C public _NXArgc __data:0000200C _NXArgc db 0 __data:0000200D db 0 __data:0000200E db 0 __data:0000200F db 0 __data:00002010 db 0 __data:00002011 db 10h __data:00002012 db 0 __data:00002013 db 0 __data:00002013 __data ends __data:00002013 __dyld:00002014 ; =========================================================================== __dyld:00002014 __dyld:00002014 ; Segment type: Pure data __dyld:00002014 __dyld segment dword public 'DATA' use32 __dyld:00002014 assume cs:__dyld __dyld:00002014 ;org 2014h __dyld:00002014 db 0 __dyld:00002015 db 10h __dyld:00002016 db 0E0h ; a __dyld:00002017 db 8Fh ; Å __dyld:00002018 db 8 __dyld:00002019 db 10h __dyld:0000201A db 0E0h ; a __dyld:0000201B db 8Fh ; Å __dyld:0000201C db 0 __dyld:0000201D db 10h __dyld:0000201E db 0 __dyld:0000201F db 0 __dyld:00002020 db 0Ch __dyld:00002021 db 20h __dyld:00002022 db 0 __dyld:00002023 db 0 __dyld:00002024 db 8 __dyld:00002025 db 20h __dyld:00002026 db 0 __dyld:00002027 db 0 __dyld:00002028 db 4 __dyld:00002029 db 20h __dyld:0000202A db 0 __dyld:0000202B db 0 __dyld:0000202C db 0 __dyld:0000202D db 20h __dyld:0000202E db 0 __dyld:0000202F db 0 __dyld:0000202F __dyld ends __dyld:0000202F __cfstring:00002030 ; =========================================================================== __cfstring:00002030 __cfstring:00002030 ; Segment type: Pure data __cfstring:00002030 __cfstring segment dword public 'DATA' use32 __cfstring:00002030 assume cs:__cfstring __cfstring:00002030 ;org 2030h __cfstring:00002030 cfstr_Iorequestidle __CFString __cfstring:00002030 __cfstring ends __cfstring:00002030 __pointers:00003000 ; =========================================================================== __pointers:00003000 __pointers:00003000 ; Segment type: Pure data __pointers:00003000 __pointers segment dword public 'DATA' use32 __pointers:00003000 assume cs:__pointers __pointers:00003000 ;org 3000h __pointers:00003000 _kIOMasterPortDefault_ptr dd offset _kIOMasterPortDefault __pointers:00003000 ; DATA XREF: _dimDisplayNow+6r __pointers:00003004 _kCFBooleanTrue_ptr dd offset _kCFBooleanTrue __pointers:00003004 ; DATA XREF: _dimDisplayNow+2Er __pointers:00003004 __pointers ends __pointers:00003004 __jump_table:00003040 ; =========================================================================== __jump_table:00003040 __jump_table:00003040 ; Segment type: Pure code __jump_table:00003040 ; Segment alignment '64byte' can not be represented in assembly __jump_table:00003040 __jump_table segment para public 'CODE' use32 __jump_table:00003040 assume cs:__jump_table __jump_table:00003040 ;org 3040h __jump_table:00003040 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing __jump_table:00003040 ; [00000005 BYTES: COLLAPSED FUNCTION _IOObjectRelease. PRESS KEYPAD "+" TO EXPAND] __jump_table:00003045 ; [00000005 BYTES: COLLAPSED FUNCTION _IORegistryEntryFromPath. PRESS KEYPAD "+" TO EXPAND] __jump_table:0000304A ; [00000005 BYTES: COLLAPSED FUNCTION _IORegistryEntrySetCFProperty. PRESS KEYPAD "+" TO EXPAND] __jump_table:0000304F ; [00000005 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND] __LINKEDIT_hidden:00004000 ; =========================================================================== __LINKEDIT_hidden:00004000 __LINKEDIT_hidden:00004000 ; [00000330 BYTES: COLLAPSED SEGMENT __LINKEDIT_hidden. PRESS KEYPAD "+" TO EXPAND] ABS:00004330 ; =========================================================================== ABS:00004330 ABS:00004330 ; Segment type: Absolute symbols ABS:00004330 ; ABS ABS:00004330 ; const struct mach_header _mh_execute_header ABS:00004330 __mh_execute_header= 1000h ABS:00004330 UNDEF:00004340 ; UNDEF:00004340 ; Imports from /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation UNDEF:00004340 ; UNDEF:00004340 ; =========================================================================== UNDEF:00004340 UNDEF:00004340 ; Segment type: Externs UNDEF:00004340 ; UNDEF UNDEF:00004340 extrn ___CFConstantStringClassReference UNDEF:00004340 ; DATA XREF: __cfstring:cfstr_Iorequestidle UNDEF:00004344 extrn _kCFBooleanTrue ; DATA XREF: __pointers:_kCFBooleanTrue_ptr UNDEF:00004348 ; UNDEF:00004348 ; Imports from /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit UNDEF:00004348 ; UNDEF:00004348 extrn __imp__IOObjectRelease ; CODE XREF: _IOObjectRelease UNDEF:0000434C extrn __imp__IORegistryEntryFromPath UNDEF:0000434C ; CODE XREF: _IORegistryEntryFromPath UNDEF:00004350 extrn __imp__IORegistryEntrySetCFProperty UNDEF:00004350 ; CODE XREF: _IORegistryEntrySetCFProperty UNDEF:00004354 extrn _kIOMasterPortDefault UNDEF:00004354 ; DATA XREF: __pointers:_kIOMasterPortDefault_ptr UNDEF:00004358 ; UNDEF:00004358 ; Imports from /usr/lib/libSystem.B.dylib UNDEF:00004358 ; UNDEF:00004358 ; void _exit(int) UNDEF:00004358 extrn __imp__exit ; CODE XREF: _exit UNDEF:00004358 UNDEF:00004358 UNDEF:00004358 end start