rendered paste body; ---------------------------------------------------------------------------
mach_header struc ; (sizeof=0x1C, standard type)
magic DCD ?
cputype DCD ?
cpusubtype DCD ?
filetype DCD ?
ncmds DCD ?
sizeofcmds DCD ?
flags DCD ?
mach_header ends
;
; +-------------------------------------------------------------------------+
; | This file has been generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
; | License info: 68-4D7E-0D18-9E |
; | Licensed User |
; +-------------------------------------------------------------------------+
;
; Input MD5 : A4D55F9BA60EF2F7F244CE88301E6414
; Processor : ARM
; Target assembler: Generic assembler for ARM
; Byte sex : Little endian
; ===========================================================================
; [00001B88 BYTES: COLLAPSED SEGMENT HEADER. PRESS KEYPAD "+" TO EXPAND]
; ===========================================================================
; Segment type: Pure code
AREA __text, CODE, READWRITE
; ORG 0x2B88
CODE32
; =============== S U B R O U T I N E =======================================
EXPORT start
start
arg_0 = 0
arg_4 = 4
LDR R0, [SP,#arg_0]
ADD R1, SP, #arg_4
ADD R4, R0, #1
ADD R2, R1, R4,LSL#2
BIC SP, SP, #7
MOV R3, R2
loc_2BA0 ; CODE XREF: start+20j
LDR R4, [R3],#4
CMP R4, #0
BNE loc_2BA0
LDR R12, =(off_301C - 0x2BB8)
ADD R12, PC, R12
LDR R12, [R12]
BLX R12
LDR R12, =(_exit_ptr - 0x2BC8)
ADD R12, PC, R12
LDR R12, [R12]
BX R12
; End of function start
; ---------------------------------------------------------------------------
off_2BCC DCD off_301C - 0x2BB8 ; DATA XREF: start+24r
off_2BD0 DCD _exit_ptr - 0x2BC8 ; DATA XREF: start+34r
; =============== S U B R O U T I N E =======================================
dyld_stub_binding_helper
var_8 = -8
var_4 = -4
STR R12, [SP,#var_4]!
LDR R12, =(dyld__mach_header - 0x2BE4)
LDR R12, [PC,R12]
STR R12, [SP,#4+var_8]!
LDR R12, =(unk_3000 - 0x2BF0)
LDR PC, [PC,R12]
; End of function dyld_stub_binding_helper
; ---------------------------------------------------------------------------
off_2BEC DCD dyld__mach_header - 0x2BE4 ; DATA XREF: dyld_stub_binding_helper+4r
off_2BF0 DCD unk_3000 - 0x2BF0 ; DATA XREF: dyld_stub_binding_helper+10r
; =============== S U B R O U T I N E =======================================
; int _dyld_func_lookup(const char *dyld_func_name, void **address)
__dyld_func_lookup
LDR R12, =(unk_3004 - 0x2C00)
LDR PC, [PC,R12]
; End of function __dyld_func_lookup
; ---------------------------------------------------------------------------
off_2BFC DCD unk_3004 - 0x2C00 ; DATA XREF: __dyld_func_lookupr
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
EXPORT _main
_main ; DATA XREF: __nl_symbol_ptr:off_301Co
var_1C = -0x1C
var_18 = -0x18
var_14 = -0x14
var_10 = -0x10
var_C = -0xC
oldR7 = -8
oldLR = -4
STMFD SP!, {R7,LR}
ADD R7, SP, #0
SUB SP, SP, #0x14
LDR R3, =(a41358753080588 - 0x2C18)
ADD R3, PC, R3 ; "413587530805887803155006964171485031963"...
STR R3, [SP,#0x1C+var_1C]
LDR R3, =(a27302016727719 - 0x2C24)
ADD R3, PC, R3 ; "273020167277193934342483321951392739131"...
STR R3, [SP,#0x1C+var_18]
LDR R3, =(a10986868219988 - 0x2C30)
ADD R3, PC, R3 ; "109868682199889090983893607446542759799"...
STR R3, [SP,#0x1C+var_14]
LDR R3, =(a88878240866284 - 0x2C3C)
ADD R3, PC, R3 ; "888782408662845030008522295042350845926"...
STR R3, [SP,#0x1C+var_10]
MOV R3, #0
STR R3, [SP,#0x1C+var_C]
B loc_2C54
; ---------------------------------------------------------------------------
loc_2C48 ; CODE XREF: _main+5Cj
LDR R3, [SP,#0x1C+var_C]
ADD R3, R3, #1
STR R3, [SP,#0x1C+var_C]
loc_2C54 ; CODE XREF: _main+44j
LDR R3, [SP,#0x1C+var_C]
CMP R3, #3
BLE loc_2C48
SUB SP, R7, #0
LDMFD SP!, {R7,PC}
; End of function _main
; ---------------------------------------------------------------------------
off_2C68 DCD a41358753080588 - 0x2C18 ; DATA XREF: _main+Cr
; "413587530805887803155006964171485031963"...
off_2C6C DCD a27302016727719 - 0x2C24 ; DATA XREF: _main+18r
; "273020167277193934342483321951392739131"...
off_2C70 DCD a10986868219988 - 0x2C30 ; DATA XREF: _main+24r
; "109868682199889090983893607446542759799"...
off_2C74 DCD a88878240866284 - 0x2C3C ; DATA XREF: _main+30r
; __text ends ; "888782408662845030008522295042350845926"...
; ===========================================================================
; Segment type: Pure data
AREA __cstring, DATA
; ORG 0x2C78
a41358753080588 DCB "4135875308058878031550069641714850319637000850504336033864493902"
; DATA XREF: _main+10o
; __text:off_2C68o
DCB "1284539327654424368206170740213813076058322365516034006270625614"
DCB "7456382772159656863975513742576253696549406187455555019805176654"
DCB "88240640.000000",0
a27302016727719 DCB "2730201672771939343424833219513927391311406319498807315145552185"
; DATA XREF: _main+1Co
; __text:off_2C6Co
DCB "0320092405180288651641698365029259720135245974867299097121079573"
DCB "4498587443982103979231419127824384.000000",0
ALIGN 4
a10986868219988 DCB "1098686821998890909838936074465427597993707950999782045278868148"
; DATA XREF: _main+28o
; __text:off_2C70o
DCB "7181527533273268414978278293224358347772623180714987938935242782"
DCB "5978796531514954916754473975757796372140255258111985922092457311"
DCB "221042226817127194804092923531694479704498641458322997248.000000"
DCB 0
ALIGN 4
a88878240866284 DCB "8887824086628450300085222950423508459269193936749714415660759918"
; DATA XREF: _main+34o
; __text:off_2C74o
DCB "0333076088508112975885827576149170959822910100984516021229962731"
DCB "7559081026174763167822059766453246874135089799523288380880853796"
DCB "4727011624779797357169712195651789942060581116921485444775936.00"
DCB "0000",0
; __cstring ends
; ===========================================================================
; Segment type: Pure data
AREA __dyld, DATA
; ORG 0x3000
unk_3000 DCB 0 ; CODE XREF: dyld_stub_binding_helper+14j
; DATA XREF: __text:off_2BF0o
DCB 0x10
DCB 0xE0 ; à
DCB 0x2F ; /
unk_3004 DCB 8 ; CODE XREF: __dyld_func_lookup+4j
; DATA XREF: __text:off_2BFCo
DCB 0x10
DCB 0xE0 ; à
DCB 0x2F ; /
DCB 0
DCB 0x10
DCB 0
DCB 0
DCB 0x24 ; $
DCB 0x30 ; 0
DCB 0
DCB 0
DCB 0x28 ; (
DCB 0x30 ; 0
DCB 0
DCB 0
DCB 0x2C ; ,
DCB 0x30 ; 0
DCB 0
DCB 0
DCB 0x30 ; 0
DCB 0x30 ; 0
DCB 0
DCB 0
; __dyld ends
; ===========================================================================
; Segment type: Pure data
AREA __nl_symbol_ptr, DATA
; ORG 0x301C
off_301C DCD _main ; DATA XREF: start+28o
; __text:off_2BCCo
_exit_ptr DCD _exit ; DATA XREF: start+38o
; __text:off_2BD0o
; __nl_symbol_ptr ends
; ===========================================================================
; Segment type: Pure data
AREA __data, DATA
; ORG 0x3024
EXPORT _NXArgc
_NXArgc DCB 0
DCB 0
DCB 0
DCB 0
EXPORT _NXArgv
_NXArgv DCB 0
DCB 0
DCB 0
DCB 0
EXPORT _environ
_environ DCB 0
DCB 0
DCB 0
DCB 0
EXPORT ___progname
___progname DCB 0
DCB 0
DCB 0
DCB 0
dyld__mach_header DCB 0 ; DATA XREF: dyld_stub_binding_helper+8o
; __text:off_2BECo
DCB 0x10
DCB 0
DCB 0
; __data ends
; ===========================================================================
; [00000118 BYTES: COLLAPSED SEGMENT __LINKEDIT_hidden. PRESS KEYPAD "+" TO EXPAND]
; ===========================================================================
; Segment type: Absolute symbols
; const struct mach_header _mh_execute_header
__mh_execute_header = 0x1000
;
; Imports from /usr/lib/libSystem.B.dylib
;
; ===========================================================================
; Segment type: Externs
; void exit(int)
IMPORT _exit ; DATA XREF: __nl_symbol_ptr:_exit_ptro
END start