; ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ; º This file is generated by The Interactive Disassembler (IDA) º ; º Copyright (c) 2006 by DataRescue sa/nv, º ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ; ; File Name : D:\EFIBUILD\FDEXTRACT\im\AppleBootPolicy.efi ; Format : Portable executable for 80386 (PE) ; Imagebase : 10000000 ; Section 1. (virtual address 00000260) ; Virtual size : 00000563 ( 1379.) ; Section size in file : 00000580 ( 1408.) ; Offset to raw data for section: 00000260 ; Flags 60000020: Text Executable Readable ; Alignment : default unicode macro page,string,zero irpc c, db '&c', page endm ifnb dw zero endif endm .686p .mmx .model flat ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Pure code ; Segment permissions: Read/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 10000260h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame ; BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpReserved) public DllEntryPoint DllEntryPoint proc near var_4 = dword ptr -4 hinstDLL = dword ptr 8 fdwReason = dword ptr 0Ch lpReserved = dword ptr 10h push ebp mov ebp, esp push ecx mov ecx, [ebp+fdwReason] mov eax, [ecx+3Ch] mov dword_100009D4, ecx mov ecx, [ecx+38h] push esi mov dword_100009DC, ecx lea ecx, [ebp+var_4] push ecx push 0 mov esi, offset unk_10000994 push esi mov dword_100009D8, eax call dword ptr [eax+0ACh] add esp, 0Ch test eax, eax jl short loc_1000029F mov eax, 80000014h jmp short loc_100002BA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_1000029F: ; CODE XREF: DllEntryPoint+36j and [ebp+fdwReason], 0 push offset unk_10000960 push 0 lea eax, [ebp+fdwReason] push esi push eax mov eax, dword_100009D8 call dword ptr [eax+4Ch] add esp, 10h loc_100002BA: ; CODE XREF: DllEntryPoint+3Dj pop esi leave retn DllEntryPoint endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_100002BD proc near ; DATA XREF: .data:10000964o var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx lea eax, [ebp+var_8] push eax mov eax, dword_100009D8 push offset unk_100009B4 push [ebp+arg_0] call dword ptr [eax+58h] add esp, 0Ch test eax, eax jl short locret_10000324 lea eax, [ebp+var_4] push eax mov eax, [ebp+var_8] push eax call dword ptr [eax+8] test eax, eax pop ecx pop ecx jl short locret_10000324 push [ebp+arg_4] mov eax, [ebp+var_4] call sub_10000326 test eax, eax pop ecx jge short locret_10000324 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_1000045C add esp, 0Ch test eax, eax jge short locret_10000324 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_10000536 add esp, 0Ch locret_10000324: ; CODE XREF: sub_100002BD+1Ej ; sub_100002BD+2Fj ... leave retn sub_100002BD endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_10000326 proc near ; CODE XREF: sub_100002BD+37p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push ebx push edi mov edi, eax push 0 lea eax, [ebp+var_4] push eax mov ebx, offset unk_100009A4 push ebx push edi call dword ptr [edi+24h] add esp, 10h cmp eax, 80000005h jz short loc_10000353 mov eax, 8000000Eh jmp short loc_10000394 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_10000353: ; CODE XREF: sub_10000326+24j push esi push [ebp+var_4] call sub_10000602 mov esi, eax test esi, esi pop ecx jnz short loc_1000036A mov eax, 80000009h jmp short loc_10000393 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_1000036A: ; CODE XREF: sub_10000326+3Bj push esi lea eax, [ebp+var_4] push eax push ebx push edi call dword ptr [edi+24h] mov edi, eax add esp, 10h test edi, edi jl short loc_10000387 call sub_10000693 mov ecx, [ebp+arg_0] mov [ecx], eax loc_10000387: ; CODE XREF: sub_10000326+55j mov eax, dword_100009D8 push esi call dword ptr [eax+30h] pop ecx mov eax, edi loc_10000393: ; CODE XREF: sub_10000326+42j pop esi loc_10000394: ; CODE XREF: sub_10000326+2Bj pop edi pop ebx leave retn sub_10000326 endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_10000398 proc near ; CODE XREF: sub_1000045C+Ep var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 push esi push edi mov esi, eax push 0 lea eax, [ebp+var_4] push eax mov edi, offset unk_10000984 push edi push esi call dword ptr [esi+24h] add esp, 10h cmp eax, 80000005h jz short loc_100003C9 mov eax, 8000000Eh jmp loc_10000458 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100003C9: ; CODE XREF: sub_10000398+25j push ebx push [ebp+var_4] call sub_10000602 mov ebx, eax test ebx, ebx pop ecx jnz short loc_100003E0 mov eax, 80000009h jmp short loc_10000457 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100003E0: ; CODE XREF: sub_10000398+3Fj push ebx lea eax, [ebp+var_4] push eax push edi push esi call dword ptr [esi+24h] add esp, 10h test eax, eax mov [ebp+var_8], eax jl short loc_1000044A mov eax, ebx loc_100003F6: ; CODE XREF: sub_10000398+82j mov cl, [eax] and cl, 7Fh cmp cl, 7Fh jnz short loc_10000406 cmp byte ptr [eax+1], 0FFh jz short loc_1000044A loc_10000406: ; CODE XREF: sub_10000398+66j cmp cl, 4 jnz short loc_10000410 cmp [eax+1], cl jz short loc_1000041C loc_10000410: ; CODE XREF: sub_10000398+71j xor ecx, ecx mov ch, [eax+3] mov cl, [eax+2] add eax, ecx jmp short loc_100003F6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_1000041C: ; CODE XREF: sub_10000398+76j lea edi, [eax+4] mov eax, edi call sub_100005CF push eax call sub_100005E1 mov esi, eax test esi, esi pop ecx jz short loc_10000443 mov ecx, edi mov edx, esi call sub_100005BA mov eax, [ebp+arg_0] mov [eax], esi jmp short loc_1000044A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_10000443: ; CODE XREF: sub_10000398+99j mov [ebp+var_8], 80000009h loc_1000044A: ; CODE XREF: sub_10000398+5Aj ; sub_10000398+6Cj ... mov eax, dword_100009D8 push ebx call dword ptr [eax+30h] mov eax, [ebp+var_8] pop ecx loc_10000457: ; CODE XREF: sub_10000398+46j pop ebx loc_10000458: ; CODE XREF: sub_10000398+2Cj pop edi pop esi leave retn sub_10000398 endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_1000045C proc near ; CODE XREF: sub_100002BD+4Ap var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch lea eax, [ebp+var_4] push ebx push eax mov eax, [ebp+arg_4] call sub_10000398 xor ebx, ebx cmp eax, ebx pop ecx jl loc_10000533 cmp off_10000968, ebx mov [ebp+var_C], 8000000Eh jz loc_10000524 mov eax, offset off_10000968 push esi mov [ebp+var_8], eax push edi loc_10000497: ; CODE XREF: sub_1000045C+A7j mov esi, [eax] mov eax, [ebp+var_4] call sub_100005CF mov edx, eax mov eax, esi call sub_100005CF lea eax, [edx+eax-2] push eax call sub_10000602 mov edi, eax cmp edi, ebx pop ecx jz short loc_100004F8 mov ecx, [ebp+var_4] mov edx, edi call sub_100005BA xor eax, eax cmp [edi], bx mov ecx, edi jz short loc_100004D6 loc_100004CE: ; CODE XREF: sub_1000045C+78j inc ecx inc ecx inc eax cmp [ecx], bx jnz short loc_100004CE loc_100004D6: ; CODE XREF: sub_1000045C+70j lea edx, [edi+eax*2] mov ecx, esi call sub_100005BA mov eax, [ebp+arg_4] push edi call sub_1000058B test al, al pop ecx jnz short loc_10000507 mov eax, dword_100009D8 push edi call dword ptr [eax+30h] pop ecx loc_100004F8: ; CODE XREF: sub_1000045C+5Dj mov eax, [ebp+var_8] add eax, 4 cmp [eax], ebx mov [ebp+var_8], eax jnz short loc_10000497 jmp short loc_10000522 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_10000507: ; CODE XREF: sub_1000045C+90j push [ebp+arg_0] call sub_10000711 mov ecx, [ebp+arg_8] mov [ecx], eax mov eax, dword_100009D8 push edi mov [ebp+var_C], ebx call dword ptr [eax+30h] pop ecx pop ecx loc_10000522: ; CODE XREF: sub_1000045C+A9j pop edi pop esi loc_10000524: ; CODE XREF: sub_1000045C+2Bj push [ebp+var_4] mov eax, dword_100009D8 call dword ptr [eax+30h] mov eax, [ebp+var_C] pop ecx loc_10000533: ; CODE XREF: sub_1000045C+18j pop ebx leave retn sub_1000045C endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_10000536 proc near ; CODE XREF: sub_100002BD+5Fp arg_0 = dword ptr 0Ch arg_4 = dword ptr 10h arg_8 = dword ptr 14h push ebx push edi xor edi, edi cmp off_10000970, edi mov ebx, 8000000Eh jz short loc_10000586 mov eax, offset off_10000970 push esi mov esi, eax loc_1000054F: ; CODE XREF: sub_10000536+32j push dword ptr [eax] mov eax, [esp+8+arg_4] call sub_1000058B test al, al pop ecx jnz short loc_1000056C add esi, 4 inc edi cmp dword ptr [esi], 0 mov eax, esi jnz short loc_1000054F jmp short loc_10000585 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_1000056C: ; CODE XREF: sub_10000536+27j push [esp+4+arg_0] mov edi, off_10000970[edi*4] call sub_10000711 pop ecx mov ecx, [esp+4+arg_8] mov [ecx], eax xor ebx, ebx loc_10000585: ; CODE XREF: sub_10000536+34j pop esi loc_10000586: ; CODE XREF: sub_10000536+Fj pop edi mov eax, ebx pop ebx retn sub_10000536 endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_1000058B proc near ; CODE XREF: sub_1000045C+88p ; sub_10000536+1Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx xor ecx, ecx push ecx push ecx push ecx push 1 push [ebp+arg_0] lea ecx, [ebp+var_4] push ecx push eax xor bl, bl call dword ptr [eax+8] add esp, 1Ch test eax, eax jl short loc_100005B5 mov eax, [ebp+var_4] push eax call dword ptr [eax+0Ch] pop ecx inc bl loc_100005B5: ; CODE XREF: sub_1000058B+1Ej mov al, bl pop ebx leave retn sub_1000058B endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_100005BA proc near ; CODE XREF: sub_10000398+9Fp ; sub_1000045C+64p ... jmp short loc_100005C3 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100005BC: ; CODE XREF: sub_100005BA+Fj mov [edx], ax inc edx inc edx inc ecx inc ecx loc_100005C3: ; CODE XREF: sub_100005BAj mov ax, [ecx] test ax, ax jnz short loc_100005BC and [edx], ax retn sub_100005BA endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_100005CF proc near ; CODE XREF: sub_10000398+89p ; sub_1000045C+40p ... xor ecx, ecx jmp short loc_100005D6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100005D3: ; CODE XREF: sub_100005CF+Bj inc eax inc eax inc ecx loc_100005D6: ; CODE XREF: sub_100005CF+2j cmp word ptr [eax], 0 jnz short loc_100005D3 lea eax, [ecx+ecx+2] retn sub_100005CF endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_100005E1 proc near ; CODE XREF: sub_10000398+8Fp ; sub_10000602+5p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax push [ebp+arg_0] mov eax, dword_100009D8 push 4 call dword ptr [eax+2Ch] mov eax, [ebp+var_4] add esp, 0Ch leave retn sub_100005E1 endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_10000602 proc near ; CODE XREF: sub_10000326+31p ; sub_10000398+35p ... arg_0 = dword ptr 8 push esi push [esp+arg_0] call sub_100005E1 mov esi, eax test esi, esi pop ecx jz short loc_10000628 mov eax, dword_100009D8 push 0 push [esp+4+arg_0] push esi call dword ptr [eax+0C0h] add esp, 0Ch loc_10000628: ; CODE XREF: sub_10000602+Fj mov eax, esi pop esi retn sub_10000602 endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_1000062C proc near ; CODE XREF: sub_10000693+14p ; sub_100006AF+37p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax push [ebp+arg_0] mov eax, dword_100009D8 push 4 call dword ptr [eax+2Ch] add esp, 0Ch cmp [ebp+var_4], 0 jz short loc_10000665 push [ebp+arg_0] mov eax, dword_100009D8 push [ebp+arg_4] push [ebp+var_4] call dword ptr [eax+0BCh] add esp, 0Ch loc_10000665: ; CODE XREF: sub_1000062C+20j mov eax, [ebp+var_4] leave retn sub_1000062C endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_1000066A proc near ; CODE XREF: sub_10000693+6p ; sub_100006AF+1Fp ... test eax, eax jnz short loc_1000066F retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_1000066F: ; CODE XREF: sub_1000066A+2j mov ecx, eax loc_10000671: ; CODE XREF: sub_1000066A+21j mov dl, [eax] and dl, 7Fh cmp dl, 7Fh jnz short loc_10000681 cmp byte ptr [eax+1], 0FFh jz short loc_1000068D loc_10000681: ; CODE XREF: sub_1000066A+Fj xor edx, edx mov dh, [eax+3] mov dl, [eax+2] add eax, edx jmp short loc_10000671 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_1000068D: ; CODE XREF: sub_1000066A+15j sub eax, ecx add eax, 4 retn sub_1000066A endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_10000693 proc near ; CODE XREF: sub_10000326+57p ; sub_100006AF:loc_100006C3p test esi, esi jz short loc_100006A2 mov eax, esi call sub_1000066A test eax, eax jnz short loc_100006A5 loc_100006A2: ; CODE XREF: sub_10000693+2j xor eax, eax retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100006A5: ; CODE XREF: sub_10000693+Dj push esi push eax call sub_1000062C pop ecx pop ecx retn sub_10000693 endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_100006AF proc near ; CODE XREF: sub_10000711+97p arg_0 = dword ptr 8 push esi mov esi, eax test esi, esi jnz short loc_100006BC mov esi, [esp+arg_0] jmp short loc_100006C3 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100006BC: ; CODE XREF: sub_100006AF+5j cmp [esp+arg_0], 0 jnz short loc_100006CA loc_100006C3: ; CODE XREF: sub_100006AF+Bj call sub_10000693 pop esi retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_100006CA: ; CODE XREF: sub_100006AF+12j push ebx push edi mov eax, esi call sub_1000066A mov edi, eax mov eax, [esp+8+arg_0] call sub_1000066A mov ebx, eax lea eax, [ebx+edi-4] push esi push eax call sub_1000062C mov esi, eax test esi, esi pop ecx pop ecx jz short loc_1000070B push ebx push [esp+0Ch+arg_0] lea eax, [esi+edi-4] push eax mov eax, dword_100009D8 call dword ptr [eax+0BCh] add esp, 0Ch loc_1000070B: ; CODE XREF: sub_100006AF+42j pop edi pop ebx mov eax, esi pop esi retn sub_100006AF endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_10000711 proc near ; CODE XREF: sub_1000045C+AEp ; sub_10000536+41p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx xor eax, eax cmp [edi], ax jz short loc_10000725 loc_1000071D: ; CODE XREF: sub_10000711+12j inc eax cmp word ptr [edi+eax*2], 0 jnz short loc_1000071D loc_10000725: ; CODE XREF: sub_10000711+Aj push ebx lea ebx, [eax+eax+2] lea eax, [ebx+8] push esi push eax call sub_10000602 and [ebp+var_4], 0 mov esi, eax test esi, esi pop ecx jz short loc_100007BC mov al, bl add al, 4 mov [esi+2], al lea eax, [ebx+4] shr eax, 8 mov [esi+3], al push ebx lea eax, [esi+4] push edi push eax mov eax, dword_100009D8 mov byte ptr [esi], 4 mov byte ptr [esi+1], 4 call dword ptr [eax+0BCh] xor eax, eax mov ah, [esi+3] add esp, 0Ch mov [ebp+var_4], esi mov al, [esi+2] add eax, esi cmp [ebp+arg_0], 0 mov byte ptr [eax], 7Fh mov byte ptr [eax+1], 0FFh mov byte ptr [eax+2], 4 mov byte ptr [eax+3], 0 jz short loc_100007BC and [ebp+var_8], 0 lea eax, [ebp+var_8] push eax mov eax, dword_100009D8 push offset unk_100009C4 push [ebp+arg_0] call dword ptr [eax+58h] mov eax, [ebp+var_8] push esi call sub_100006AF mov [ebp+var_4], eax mov eax, dword_100009D8 push esi call dword ptr [eax+30h] add esp, 14h loc_100007BC: ; CODE XREF: sub_10000711+2Cj ; sub_10000711+79j mov eax, [ebp+var_4] pop esi pop ebx leave retn sub_10000711 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 20h _text ends ; Section 2. (virtual address 000007E0) ; Virtual size : 00000165 ( 357.) ; Section size in file : 00000180 ( 384.) ; Offset to raw data for section: 000007E0 ; Flags 40000040: Data Readable ; Alignment : default ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Pure data ; Segment permissions: Read _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 100007E0h db 0 db 0 db 0 db 0 db 31h ; 1 db 0CFh ; Ï db 0BEh ; ¾ db 43h ; C db 0 db 0 db 0 db 0 db 2 db 0 db 0 db 0 db 85h ; … db 0 db 0 db 0 db 0C0h ; À db 8 db 0 db 0 db 0C0h ; À db 8 db 0 db 0 aEfiBootBoot_ef: ; DATA XREF: .data:10000978o unicode 0, <\EFI\BOOT\BOOT.efi>,0 db 0 db 0 aEfiBootAppleIa: ; DATA XREF: .data:10000974o unicode 0, <\EFI\BOOT\APPLE\IA32\BOOT.efi>,0 aSystemLibraryC: ; DATA XREF: .data:off_10000970o unicode 0, <\System\Library\CoreServices\boot.efi>,0 aBoot_efi: ; DATA XREF: .data:off_10000968o ; .data:1000097Co unicode 0, <\boot.efi>,0 db 52h ; R db 53h ; S db 44h ; D db 53h ; S db 0B0h ; ° db 83h ; ƒ db 0EDh ; í db 0F3h ; ó db 0BFh ; ¿ db 26h ; & db 0B1h ; ± db 43h ; C db 97h ; — db 4Eh ; N db 6Ah ; j db 1Ah db 0D1h ; Ñ db 0C8h ; È db 0CBh ; Ë db 0B7h ; · db 1 db 0 db 0 db 0 db 43h ; C db 3Ah ; : db 5Ch ; \ db 62h ; b db 75h ; u db 69h ; i db 6Ch ; l db 64h ; d db 74h ; t db 6Fh ; o db 6Fh ; o db 6Ch ; l db 73h ; s db 5Ch ; \ db 66h ; f db 77h ; w db 61h ; a db 72h ; r db 65h ; e db 5Ch ; \ db 6Dh ; m db 33h ; 3 db 38h ; 8 db 6Dh ; m db 61h ; a db 69h ; i db 6Eh ; n db 2Eh ; . db 70h ; p db 72h ; r db 6Fh ; o db 6Ah ; j db 5Ch ; \ db 70h ; p db 72h ; r db 6Fh ; o db 6Ah ; j db 65h ; e db 63h ; c db 74h ; t db 66h ; f db 69h ; i db 6Ch ; l db 65h ; e db 73h ; s db 5Ch ; \ db 73h ; s db 61h ; a db 6Eh ; n db 64h ; d db 62h ; b db 6Fh ; o db 78h ; x db 5Ch ; \ db 50h ; P db 6Ch ; l db 61h ; a db 74h ; t db 66h ; f db 6Fh ; o db 72h ; r db 6Dh ; m db 5Ch ; \ db 49h ; I db 6Eh ; n db 74h ; t db 65h ; e db 6Ch ; l db 4Dh ; M db 70h ; p db 67h ; g db 5Ch ; \ db 4Dh ; M db 33h ; 3 db 38h ; 8 db 5Ch ; \ db 52h ; R db 65h ; e db 6Ch ; l db 65h ; e db 61h ; a db 73h ; s db 65h ; e db 5Ch ; \ db 49h ; I db 41h ; A db 33h ; 3 db 32h ; 2 db 5Ch ; \ db 41h ; A db 70h ; p db 70h ; p db 6Ch ; l db 65h ; e db 42h ; B db 6Fh ; o db 6Fh ; o db 74h ; t db 50h ; P db 6Fh ; o db 6Ch ; l db 69h ; i db 63h ; c db 79h ; y db 2Eh ; . db 70h ; p db 64h ; d db 62h ; b db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 _rdata ends ; Section 3. (virtual address 00000960) ; Virtual size : 00000084 ( 132.) ; Section size in file : 000000A0 ( 160.) ; Offset to raw data for section: 00000960 ; Flags C0000040: Data Readable Writable ; Alignment : default ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Pure data ; Segment permissions: Read/Write _data segment para public 'DATA' use32 assume cs:_data ;org 10000960h unk_10000960 db 1 ; DATA XREF: DllEntryPoint+43o db 0 db 0 db 0 dd offset sub_100002BD off_10000968 dd offset aBoot_efi ; DATA XREF: sub_1000045C+1Er ; sub_1000045C+31o ; "\\boot.efi" align 10h off_10000970 dd offset aSystemLibraryC ; DATA XREF: sub_10000536+4r ; sub_10000536+11o ... ; "\\System\\Library\\CoreServices\\boot.efi" dd offset aEfiBootAppleIa ; "\\EFI\\BOOT\\APPLE\\IA32\\BOOT.efi" dd offset aEfiBootBoot_ef ; "\\EFI\\BOOT\\BOOT.efi" dd offset aBoot_efi ; "\\boot.efi" db 0 db 0 db 0 db 0 unk_10000984 db 2Dh ; - ; DATA XREF: sub_10000398+13o db 0F0h ; ð db 0D1h ; Ñ db 7Bh ; { db 2Fh ; / db 9Ch ; œ db 81h ;  db 45h ; E db 0BFh ; ¿ db 12h db 0D5h ; Õ db 4Ah ; J db 0BAh ; º db 0Dh db 98h ; ˜ db 0D6h ; Ö unk_10000994 db 58h ; X ; DATA XREF: DllEntryPoint+20o db 77h ; w db 25h ; % db 62h ; b db 0Ch db 35h ; 5 db 0Ah db 4Dh ; M db 0B0h ; ° db 0BDh ; ½ db 0F6h ; ö db 0BEh ; ¾ db 2Eh ; . db 1Eh db 27h ; ' db 2Ch ; , unk_100009A4 db 14h ; DATA XREF: sub_10000326+12o db 48h ; H db 7Eh ; ~ db 0CAh ; Ê db 0DCh ; Ü db 2Ah ; * db 0DDh ; Ý db 4Ah ; J db 0ABh ; « db 0FFh db 73h ; s db 4Eh ; N db 3Ch ; < db 0FEh ; þ db 13h db 0F3h ; ó unk_100009B4 db 22h ; " ; DATA XREF: sub_100002BD+Eo db 5Bh ; [ db 4Eh ; N db 96h ; – db 59h ; Y db 64h ; d db 0D2h ; Ò db 11h db 8Eh ; Ž db 39h ; 9 db 0 db 0A0h ;   db 0C9h ; É db 69h ; i db 72h ; r db 3Bh ; ; unk_100009C4 db 91h ; ‘ ; DATA XREF: sub_10000711+88o db 6Eh ; n db 57h ; W db 9 db 3Fh ; ? db 6Dh ; m db 0D2h ; Ò db 11h db 8Eh ; Ž db 39h ; 9 db 0 db 0A0h ;   db 0C9h ; É db 69h ; i db 72h ; r db 3Bh ; ; dword_100009D4 dd 0 ; DATA XREF: DllEntryPoint+Aw dword_100009D8 dd 0 ; DATA XREF: DllEntryPoint+26w ; DllEntryPoint+4Fr ... dword_100009DC dd 0 ; DATA XREF: DllEntryPoint+14w align 40h _data ends end DllEntryPoint