Function at 0x4146a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
mov eax, 0x24f8f00
push edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4146b1
sub eax, edx
je 0x4159a5
push 0x24f8f00
push str.Attempting_to_access__s
push 0x2805
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x14
push 0x800
mov edx, 0x42c6a4
mov ecx, 0x24f8f00
call fcn.00410ed0
add esp, 4
push str.Trying_get_filesize__calling_fseek__
push 0x2559
push str.ReturnFileSize
push 5
mov esi, eax
call fcn.00401210
push 2
push 0
push 0
push esi
call fcn.00418c8a
push esi
call fcn.004179ce
add esp, 0x24
push 0
push 0
push 0
push esi
mov edi, eax
mov ebx, edx
call fcn.00418c8a
push ebx
push edi
push str.CONTENTS.xml_file_size_is__lld_bytes
push 0x2809
push str.ParseContentsXML
push 5
call fcn.00401210
mov eax, edi
add esp, 0x28
or eax, ebx
jne 0x414773
push str.__contentsxml_file_size_was_0_bytes__
push 0x280d
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x10
push 1
call fcn.004017c0
lea eax, [edi + 1]
push 1
push eax
mov dword [ebp - 0xc], eax
call fcn.00417cf1
mov ebx, eax
add esp, 8
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x4147b6
mov ecx, dword [ebp - 0xc]
push 0x24f8f00
push ecx
push str.Falled_to_allocate_a_buffer_of__zu_bytes_to_store_contents.xml_you_provided___s___free_some_memory_and_try_again.
push 0x2815
push str.ParseContentsXML
push 1
call fcn.00401210
add esp, 0x18
push 1
call fcn.004017c0
push esi
push edi
push 1
push ebx
call fcn.00419559
push esi
mov dword [0x2389c10], eax
mov dword [0x2389c14], 0
call fcn.00419df4
mov edx, dword [0x2389c10]
mov eax, dword [0x2389c14]
add esp, 0x14
push str._windows_root_path
push ebx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
call fcn.004188e0
add esp, 8
test eax, eax
je 0x41495d
nop
mov ecx, dword [ebp - 0x2c]
sub eax, ebx
add eax, 0x12
cdq
cmp edx, ecx
jg 0x41482c
mov esi, dword [ebp - 0x30]
jl 0x414816
cmp eax, esi
jae 0x41482c
cmp byte [eax + ebx], 0x3e
je 0x41482c
add eax, 1
adc edx, 0
cmp edx, ecx
jl 0x414816
jg 0x41482c
cmp eax, esi
jb 0x414816
add eax, 1
mov esi, eax
lea eax, [esi + ebx]
adc edx, 0
push str.__windows_root_path_
push eax
mov edi, edx
mov dword [ebp - 0x14], eax
call fcn.004188e0
add esp, 8
test eax, eax
je 0x415ac3
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0xc]
push ecx
push 0
push 0x800
sub eax, esi
sub eax, ebx
cdq
push edx
mov edx, dword [0x2389cb8]
push eax
imul edx, edx, 0x890
push edi
push esi
push 0
push 0
add edx, 0x3a1a928
push ebx
push edx
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415c54
mov eax, dword [0x2389cb8]
imul eax, eax, 0x890
mov dword [eax + 0x3a1a8e0], esi
lea esi, [eax + 0x3a1a928]
mov dword [eax + 0x3a1a8e4], edi
cmp byte [esi], 0x2e
jne 0x414936
mov eax, 0x24f8f00
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4148c0
sub eax, edx
xor ecx, ecx
jl 0x414936
jg 0x4148d4
cmp eax, 1
jbe 0x414936
mov dl, byte [eax + 0x24f8f00]
cmp dl, 0x2f
je 0x4148f7
cmp dl, 0x5c
je 0x4148f7
add eax, 0xffffffff
adc ecx, 0xffffffff
test ecx, ecx
jg 0x4148d4
jl 0x414936
cmp eax, 1
ja 0x4148d4
jmp 0x414936
test ecx, ecx
jl 0x414936
jg 0x414902
cmp eax, 1
jbe 0x414936
xor edx, edx
push edx
mov edx, dword [ebp - 0xc]
push edx
push 0
push 0x800
add eax, 1
adc ecx, 0
push ecx
push eax
push 0
push 0
push 0
push 0
push 0x24f8f00
push esi
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415c77
add dword [0x2389cb8], 1
mov eax, dword [ebp - 0x14]
push str._windows_root_path
adc dword [0x2389cbc], 0
push eax
call fcn.004188e0
add esp, 8
test eax, eax
jne 0x414800
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
mov byte [eax + 0x238c6c8], 0
xor esi, esi
push str._file_name
mov byte [eax + 0x238c6c9], 0
push ebx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
mov byte [ebp - 1], 1
mov byte [eax + 0x238c688], 0
call fcn.004188e0
mov edi, eax
add esp, 8
cmp edi, esi
je 0x4152da
mov ecx, dword [ebp - 0x28]
add ecx, ebx
push str._file_ref
push ecx
call fcn.004188e0
mov esi, eax
add esp, 8
test esi, esi
je 0x414a19
cmp esi, edi
jae 0x414a19
push 0x42f928
push esi
call fcn.004188e0
push str.ignore_
push esi
mov dword [ebp - 0x14], eax
call fcn.004188e0
add esp, 0x10
test eax, eax
je 0x414a19
cmp eax, dword [ebp - 0x14]
jae 0x414a19
push 4
add eax, 8
push str.true
push eax
call fcn.00417bf7
add esp, 0xc
test eax, eax
jne 0x414a19
mov edx, dword [ebp - 0x14]
push str.__file_ref_
push edx
call fcn.004188e0
add esp, 8
sub eax, ebx
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp 0x415297
mov eax, edi
sub eax, ebx
cdq
mov esi, eax
cmp byte [esi + ebx + 0xa], 0x3e
jne 0x414a2f
add edi, 0xb
jmp 0x414b37
lea eax, [esi + ebx]
push str.flavor_
push eax
call fcn.004188e0
add esp, 8
test eax, eax
je 0x415aa7
add eax, 8
mov dword [ebp - 0x14], eax
sub eax, ebx
cdq
mov esi, eax
mov dword [ebp - 0x28], esi
mov ecx, edx
cmp edx, dword [ebp - 0x2c]
jg 0x414a7c
jl 0x414a64
cmp esi, dword [ebp - 0x30]
jae 0x414a7c
cmp byte [eax + ebx], 0x22
je 0x414a7c
add eax, 1
adc ecx, 0
cmp ecx, dword [ebp - 0x2c]
jl 0x414a64
jg 0x414a7c
cmp eax, dword [ebp - 0x30]
jb 0x414a64
mov edi, dword [ebp - 0xc]
push 0
push edi
push 0
push 0x40
sub eax, esi
sbb ecx, edx
push ecx
mov ecx, dword [0x2389cb0]
push eax
imul ecx, ecx, 0x890
push edx
push esi
push 0
push 0
add ecx, 0x238c688
push ebx
push ecx
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415ad1
mov edi, dword [0x2389cb0]
imul edi, edi, 0x890
lea edi, [edi + 0x238c688]
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414ad0
sub eax, edx
mov edx, eax
mov eax, 0x238ae40
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414ae3
sub eax, esi
cmp edx, eax
jbe 0x414af2
mov eax, edx
push eax
push 0x238ae40
push edi
call fcn.00417bf7
add esp, 0xc
test eax, eax
jne 0x415297
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
add eax, 0x238c688
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414b20
sub eax, edx
mov edx, dword [ebp - 0x14]
lea edi, [edx + eax + 2]
mov eax, edi
sub eax, ebx
cdq
mov esi, eax
sub esi, 1
sbb edx, 0
js 0x414b5d
jg 0x414b46
cmp esi, 1
jbe 0x414b5d
cmp byte [esi + ebx], 0x3c
je 0x414b5d
add esi, 0xffffffff
adc edx, 0xffffffff
test edx, edx
jg 0x414b46
jl 0x414b5d
cmp esi, 1
ja 0x414b46
mov eax, edi
sub eax, ebx
cdq
add esi, ebx
push str._partition_file
push esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
call fcn.004188e0
mov edi, dword [ebp - 0x28]
add esp, 8
test eax, eax
je 0x414b99
lea ecx, [edi + ebx]
cmp eax, ecx
jae 0x414b99
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
mov byte [edx + 0x238c6c9], 0x72
push str._partition_patch_file
push esi
call fcn.004188e0
add esp, 8
test eax, eax
je 0x414bc5
lea ecx, [edi + ebx]
cmp eax, ecx
jae 0x414bc5
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
mov byte [edx + 0x238c6c9], 0x70
push str.storage_type
push esi
call fcn.004188e0
add esp, 8
test eax, eax
je 0x414c9b
lea ecx, [edi + ebx]
cmp eax, ecx
jae 0x414c9b
mov cl, byte [eax + 0xe]
cmp cl, 0x65
jne 0x414c17
cmp byte [eax + 0xf], 0x6d
jne 0x414c17
cmp byte [eax + 0x10], 0x6d
jne 0x414c17
cmp byte [eax + 0x11], 0x63
jne 0x414c17
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
mov byte [edx + 0x238c6c8], cl
jmp 0x414c9b
cmp cl, 0x75
jne 0x414c3b
cmp byte [eax + 0xf], 0x66
jne 0x414c3b
cmp byte [eax + 0x10], 0x73
jne 0x414c3b
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
mov byte [eax + 0x238c6c8], cl
jmp 0x414c9b
cmp cl, 0x6e
jne 0x414c66
cmp byte [eax + 0xf], 0x61
jne 0x414c66
cmp byte [eax + 0x10], cl
jne 0x414c66
cmp byte [eax + 0x11], 0x64
jne 0x414c66
mov ecx, dword [0x2389cb0]
imul ecx, ecx, 0x890
mov byte [ecx + 0x238c6c8], 0x6e
jmp 0x414c9b
cmp cl, 0x73
jne 0x414c9b
cmp byte [eax + 0xf], 0x70
jne 0x414c9b
cmp byte [eax + 0x10], 0x69
jne 0x414c9b
cmp byte [eax + 0x11], 0x6e
jne 0x414c9b
cmp byte [eax + 0x12], 0x6f
jne 0x414c9b
cmp byte [eax + 0x13], 0x72
jne 0x414c9b
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
mov byte [edx + 0x238c6c8], cl
lea eax, [edi + ebx]
push str.__file_name_
push eax
call fcn.004188e0
add esp, 8
test eax, eax
je 0x415af5
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0xc]
push ecx
push 0
sub eax, edi
push 0x40
sub eax, ebx
cdq
push edx
mov edx, dword [ebp - 0x24]
push eax
mov eax, dword [0x2389cb0]
push edx
imul eax, eax, 0x890
push edi
push 0
push 0
add eax, 0x238be48
push ebx
push eax
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415b16
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
lea edx, [edx + 0x238be48]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414d08
sub eax, esi
cmp eax, 0xb
ja 0x414d1b
mov eax, 0xb
push eax
push str.qdsp6sw.mbn
push edx
call fcn.00417bf7
mov eax, dword [0x2389cb0]
mov ecx, dword [ebp - 0x28]
imul eax, eax, 0x890
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x238be40], ecx
mov dword [eax + 0x238be44], edx
lea edi, [eax + 0x238be48]
mov eax, edi
lea edx, [eax + 1]
add esp, 0xc
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x14], edx
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x414d60
sub eax, dword [ebp - 0x14]
mov edx, eax
xor eax, eax
mov dword [ebp - 0x14], edx
jl 0x414da0
jg 0x414d80
test edx, edx
je 0x414da0
lea esp, [esp]
mov dl, byte [edi + ecx]
cmp dl, 0x2a
je 0x414d8d
cmp dl, 0x24
jne 0x414d90
mov byte [ebp - 1], al
add ecx, 1
adc esi, eax
cmp esi, eax
jl 0x414d80
jg 0x414da0
cmp ecx, dword [ebp - 0x14]
jb 0x414d80
mov esi, dword [ebp - 0x28]
lea eax, [esi + ebx]
push str._file_path
push eax
call fcn.004188e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x415b39
lea eax, [ecx + 0xa]
sub eax, ebx
cmp byte [ecx + 0xa], 0x20
cdq
mov esi, eax
mov edi, edx
jne 0x414f22
lea eax, [esi + ebx]
push 0x42f928
push eax
call fcn.004188e0
add esp, 8
mov dword [ebp - 0x14], eax
lea ecx, [esi + ebx]
push str.flavor
push ecx
call fcn.004188e0
add esp, 8
test eax, eax
je 0x414ecc
cmp eax, dword [ebp - 0x14]
ja 0x414ecc
add eax, 8
sub eax, ebx
cdq
mov edi, edx
mov esi, eax
mov ecx, edi
cmp edi, dword [ebp - 0x2c]
jg 0x414e38
jl 0x414e20
cmp esi, dword [ebp - 0x30]
jae 0x414e38
cmp byte [eax + ebx], 0x22
je 0x414e38
add eax, 1
adc ecx, 0
cmp ecx, dword [ebp - 0x2c]
jl 0x414e20
jg 0x414e38
cmp eax, dword [ebp - 0x30]
jb 0x414e20
xor edx, edx
push edx
push dword [ebp - 0xc]
sub eax, esi
push edx
push 0x40
sbb ecx, edi
push ecx
push eax
push edi
push esi
push edx
push edx
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
add edx, 0x238c688
push ebx
push edx
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415b5a
mov eax, 0x238ae40
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414e77
sub eax, edx
mov edx, eax
je 0x414efb
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
lea eax, [eax + 0x238c688]
lea ecx, [eax + 1]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414ea0
sub eax, dword [ebp - 0x10]
cmp eax, edx
ja 0x414eb0
mov eax, edx
mov edx, dword [ebp - 0x18]
push eax
push 0x238ae40
push edx
call fcn.00417bf7
add esp, 0xc
test eax, eax
jne 0x414de6
jmp 0x414efb
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
add eax, 0x238be48
push eax
push 0x238ae40
push 0x43396c
push 0x295c
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x18
lea ecx, [esi + ebx]
push 0x42f928
push ecx
call fcn.004188e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x415b69
cmp ecx, dword [ebp - 0x14]
ja 0x415b87
inc ecx
jmp 0x414f25
add ecx, 0xb
mov eax, ecx
sub eax, ebx
cdq
mov edi, eax
mov esi, edx
lea edx, [edi + ebx]
push str.__file_path_
push edx
mov dword [ebp - 0x28], edi
call fcn.004188e0
add esp, 8
test eax, eax
je 0x415bb9
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0xc]
push ecx
push 0
push 0x100000
sub eax, edi
sub eax, ebx
cdq
push edx
push eax
push esi
push edi
push 0
push 0
push ebx
push 0x253a740
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415bd7
mov edx, dword [0x2389cb0]
xor eax, eax
xor esi, esi
cmp dword [0x2389cbc], eax
jl 0x414fe8
jg 0x414f97
cmp dword [0x2389cb8], eax
jbe 0x414fe8
mov ecx, edx
imul ecx, ecx, 0x890
mov edi, dword [ecx + 0x238be40]
mov dword [ebp - 0x50], edi
mov edi, dword [ecx + 0x238be44]
mov edi, edi
mov ecx, eax
imul ecx, ecx, 0x890
cmp dword [ecx + 0x3a1a8e4], edi
jg 0x414fe5
jl 0x414fcd
mov ecx, dword [ecx + 0x3a1a8e0]
cmp ecx, dword [ebp - 0x50]
ja 0x414fe5
add eax, 1
adc esi, 0
cmp esi, dword [0x2389cbc]
jl 0x414fb0
jg 0x414fe5
cmp eax, dword [0x2389cb8]
jb 0x414fb0
mov ebx, dword [ebp - 8]
imul eax, eax, 0x890
lea esi, [eax + 0x3a1a098]
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415000
push 0
imul edx, edx, 0x890
push 0x800
push 0
push 0x800
push 0
sub eax, edi
push eax
push 0
push 0
push 0
push 0
add edx, 0x238be88
push esi
push edx
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415bfa
mov eax, 0x253a740
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415048
mov ecx, dword [0x2389cb0]
sub eax, edx
imul ecx, ecx, 0x890
lea ecx, [ecx + 0x238be88]
mov esi, eax
mov eax, ecx
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x415070
push 0
push 0x800
push 0
push 0x800
push 0
push esi
push 0
push 0
push 0
sub eax, edi
push eax
push 0x253a740
push ecx
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415c1d
mov edi, dword [0x2389cb0]
xor ecx, ecx
xor esi, esi
imul edi, edi, 0x890
mov dword [ebp - 0x14], edi
lea edi, [edi + 0x238be88]
mov eax, edi
lea edx, [eax + 1]
mov dword [ebp - 0x18], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4150c8
sub eax, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x10], eax
jl 0x4150f8
jg 0x4150df
cmp eax, ecx
jbe 0x4150f8
cmp byte [edi + ecx], 0x2a
jne 0x4150e8
mov byte [ebp - 1], dl
add ecx, 1
adc esi, edx
cmp esi, edx
jl 0x4150df
jg 0x4150f8
cmp ecx, dword [ebp - 0x10]
jb 0x4150df
cmp byte [ebp - 1], dl
je 0x415278
xor eax, eax
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
test edx, edx
jl 0x415183
jg 0x415123
cmp dword [ebp - 0x10], eax
jbe 0x415180
jmp 0x415120
mov ebx, dword [ebp - 8]
cmp byte [edi + eax], 0x24
jne 0x415139
mov ebx, dword [ebp - 0x14]
cmp byte [ebx + eax + 0x238be89], 0x7b
je 0x41514b
mov ebx, dword [ebp - 8]
add eax, 1
adc ecx, edx
cmp ecx, edx
jl 0x415123
jg 0x415183
cmp eax, dword [ebp - 0x10]
jb 0x415120
jmp 0x415180
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edx
jg 0x415180
jl 0x41515c
cmp eax, dword [ebp - 0x10]
jae 0x415180
mov ebx, dword [ebp - 0x10]
cmp byte [edi + eax], 0x3a
je 0x415176
add eax, 1
adc ecx, edx
cmp ecx, edx
jl 0x41515f
jg 0x415180
cmp eax, ebx
jb 0x41515f
jmp 0x415180
add eax, 1
adc ecx, edx
mov esi, eax
mov dword [ebp - 0x3c], ecx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
cmp byte [ecx + eax + 0x238be89], 0x5c
je 0x415201
cmp dword [ebp - 0x34], edx
jl 0x415201
jg 0x41519e
test eax, eax
je 0x415201
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x34], edx
jg 0x415201
jl 0x4151bc
cmp dword [ebp - 0x38], ecx
jae 0x415201
mov edx, dword [ebp - 0x1c]
mov cl, byte [edi + esi]
cmp cl, 0x7d
jne 0x4151e5
add esi, 1
adc dword [ebp - 0x3c], 0
mov byte [edi + eax], 0x5c
cmp byte [edi + esi], 0
jne 0x4151e8
mov ecx, dword [ebp - 0x14]
mov byte [ecx + eax + 0x238be89], 0
jmp 0x4151ef
mov byte [edi + eax], cl
add esi, 1
adc dword [ebp - 0x3c], 0
add eax, 1
adc edx, 0
cmp edx, dword [ebp - 0x44]
jl 0x4151bf
jg 0x415201
cmp eax, dword [ebp - 0x48]
jb 0x4151bf
add dword [0x2389cb0], 1
adc dword [0x2389cb4], 0
cmp dword [0x2389bf4], 0
jl 0x415278
jg 0x415223
cmp dword [0x2389bf0], 0
jbe 0x415278
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
lea edi, [eax + 0x238b5b8]
call fcn.0040fc80
test eax, eax
je 0x415278
mov edx, dword [0x2389cb0]
imul edx, edx, 0x890
lea eax, [edx + 0x238b5b8]
push eax
push str._s_is_being_SKIPPED_since_it_was_in___notfiles_provided_by_the_user_at_the_command_line
push 0x2a17
push str.ParseContentsXML
push 4
call fcn.00401210
or eax, 0xffffffff
add esp, 0x14
add dword [0x2389cb0], eax
adc dword [0x2389cb4], eax
cmp dword [0x2389cb4], 0
jg 0x415c40
jl 0x415297
cmp dword [0x2389cb0], 0xc8
jae 0x415c40
mov eax, dword [0x2389cb0]
mov ecx, dword [ebp - 0x28]
imul eax, eax, 0x890
mov byte [eax + 0x238c6c8], 0
add ecx, ebx
push str._file_name
mov byte [eax + 0x238c6c9], 0
push ecx
mov byte [ebp - 1], 1
mov byte [eax + 0x238c688], 0
call fcn.004188e0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4149a1
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
cmp dword [0x2389cb4], esi
jl 0x41539d
jg 0x415300
cmp dword [0x2389cb0], esi
jbe 0x41539d
lea ebx, [ebx]
mov esi, dword [ebp - 0x20]
xor ecx, ecx
xor ebx, ebx
imul esi, esi, 0x890
mov dword [ebp - 0x18], esi
lea esi, [esi + 0x238be88]
mov eax, esi
lea edi, [eax + 1]
jmp 0x415320
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x415320
sub eax, edi
je 0x41535a
jmp 0x415330
cmp byte [esi + ecx], 0x2f
jne 0x41533a
mov byte [esi + ecx], 0x5c
add ecx, 1
mov eax, esi
adc ebx, 0
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x415345
xor edx, edx
sub eax, edi
cmp ebx, edx
jl 0x415330
jg 0x41535a
cmp ecx, eax
jb 0x415330
mov eax, dword [ebp - 0x18]
cmp byte [eax + ecx + 0x238be87], 0x5c
je 0x415373
mov byte [esi + ecx], 0x5c
mov byte [eax + ecx + 0x238be89], 0
add dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x1c]
adc eax, 0
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x2389cb4]
jl 0x415300
jg 0x41539d
mov edx, dword [0x2389cb0]
cmp dword [ebp - 0x20], edx
jb 0x415300
push str._n_nEMMC_n
push 0x2a3e
push str.ParseContentsXML
push 4
call fcn.00401210
xor ebx, ebx
add esp, 0x10
xor esi, esi
xor edi, edi
mov dword [ebp - 0x1c], ebx
cmp dword [0x2389cb4], ebx
jl 0x41542f
jg 0x4153d1
cmp dword [0x2389cb0], ebx
jbe 0x41542f
mov eax, ebx
imul eax, eax, 0x890
cmp byte [eax + 0x238c6c8], 0x65
jne 0x415411
lea ecx, [eax + 0x238be88]
push ecx
add esi, 1
lea edx, [eax + 0x238be48]
push edx
adc edi, 0
push edi
push esi
push str.__2i___30s_____s
push 0x2a48
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x20
mov eax, dword [ebp - 0x1c]
add ebx, 1
adc eax, 0
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x2389cb4]
jl 0x4153d1
jg 0x41542f
cmp ebx, dword [0x2389cb0]
jb 0x4153d1
push str._n_nUFS_n
push 0x2a4d
push str.ParseContentsXML
push 4
call fcn.00401210
xor ebx, ebx
add esp, 0x10
xor esi, esi
xor edi, edi
mov dword [ebp - 0x1c], ebx
cmp dword [0x2389cb4], ebx
jl 0x4154ce
jg 0x415470
cmp dword [0x2389cb0], ebx
jbe 0x4154ce
jmp 0x415470
mov eax, ebx
imul eax, eax, 0x890
cmp byte [eax + 0x238c6c8], 0x75
jne 0x4154b0
lea ecx, [eax + 0x238be88]
push ecx
add esi, 1
lea edx, [eax + 0x238be48]
push edx
adc edi, 0
push edi
push esi
push str.__2i___30s_____s
push 0x2a56
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x20
mov eax, dword [ebp - 0x1c]
add ebx, 1
adc eax, 0
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x2389cb4]
jl 0x415470
jg 0x4154ce
cmp ebx, dword [0x2389cb0]
jb 0x415470
push str._n_nSPINOR_n
push 0x2a5c
push str.ParseContentsXML
push 4
call fcn.00401210
xor ebx, ebx
add esp, 0x10
xor esi, esi
xor edi, edi
mov dword [ebp - 0x1c], ebx
cmp dword [0x2389cb4], ebx
jl 0x41556e
jg 0x415510
cmp dword [0x2389cb0], ebx
jbe 0x41556e
jmp 0x415510
mov eax, ebx
imul eax, eax, 0x890
cmp byte [eax + 0x238c6c8], 0x73
jne 0x415550
lea ecx, [eax + 0x238be88]
push ecx
add esi, 1
lea edx, [eax + 0x238be48]
push edx
adc edi, 0
push edi
push esi
push str.__2i___30s_____s
push 0x2a65
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x20
mov eax, dword [ebp - 0x1c]
add ebx, 1
adc eax, 0
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x2389cb4]
jl 0x415510
jg 0x41556e
cmp ebx, dword [0x2389cb0]
jb 0x415510
push str._n_nBOTH_n
push 0x2a6c
push str.ParseContentsXML
push 4
call fcn.00401210
xor edi, edi
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
cmp dword [0x2389cb4], edi
jl 0x415637
jg 0x4155b0
cmp dword [0x2389cb0], ebx
jbe 0x415637
jmp 0x4155b0
mov esi, dword [ebp - 0x20]
imul esi, esi, 0x890
lea eax, [esi + 0x238be48]
push str.prog_emmc
push eax
mov dword [ebp - 0x18], eax
call fcn.004188e0
add esp, 8
test eax, eax
je 0x4155dc
mov eax, dword [ebp - 0x20]
mov dword [0x43640c], eax
cmp byte [esi + 0x238c6c8], 0
jne 0x415611
mov edx, dword [ebp - 0x18]
lea ecx, [esi + 0x238be88]
push ecx
push edx
add edi, 1
adc ebx, 0
push ebx
push edi
push str.__2i___36s___s
push 0x2a7c
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x20
add dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x1c]
adc eax, 0
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x2389cb4]
jl 0x4155b0
jg 0x415637
mov eax, dword [ebp - 0x20]
cmp eax, dword [0x2389cb0]
jb 0x4155b0
cmp byte [0x2389cdf], 0
je 0x415999
push 0x800
xor edi, edi
push edi
push 0x23f76e0
call fcn.0041c990
mov eax, 0x23f86e0
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415661
push edi
push 0x800
push edi
push 0x800
push edi
sub eax, edx
push eax
push edi
push edi
push edi
push edi
push 0x23f86e0
push 0x23f76e0
call fcn.0040b150
add esp, 0x30
or eax, edx
jne 0x4156d8
mov eax, 0x23f86e0
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4156a0
sub eax, edx
push eax
push 0x23f86e0
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2a8e
push str.ParseContentsXML
push 1
call fcn.00401210
mov ecx, dword [ebp - 8]
push ecx
call fcn.00417cb7
add esp, 0x1c
push 1
call fcn.004017c0
mov eax, 0x3a85b28
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4156e0
sub eax, edx
mov edx, eax
mov eax, 0x23f76e0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4156f3
xor ecx, ecx
push ecx
push edx
push edi
push 0x800
push ecx
push edx
push edi
push edi
push edi
sub eax, esi
push eax
push 0x3a85b28
push 0x23f76e0
call fcn.0040b150
add esp, 0x30
or eax, edx
jne 0x415768
mov eax, 0x3a85b28
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415730
sub eax, edx
push eax
push 0x3a85b28
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2a95
push str.ParseContentsXML
push 1
call fcn.00401210
mov edx, dword [ebp - 8]
push edx
call fcn.00417cb7
add esp, 0x1c
push 1
call fcn.004017c0
push str._n_nCopy_XML_files_n
push 0x2a9b
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x10
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
cmp dword [0x2389cb4], edi
jl 0x415999
jg 0x4157a1
cmp dword [0x2389cb0], edi
jbe 0x415999
mov esi, dword [ebp - 0x20]
imul esi, esi, 0x890
lea edi, [esi + 0x238be48]
push str..xml
push edi
call fcn.004188e0
push str.firehose
push edi
mov ebx, eax
call fcn.004188e0
add esp, 0x10
test ebx, ebx
jne 0x4157d7
test eax, eax
je 0x41596f
mov al, byte [esi + 0x238c6c8]
cmp byte [0x3b86b28], al
je 0x4157ed
test al, al
jne 0x41596f
lea esi, [esi + 0x238be88]
push esi
push edi
push 0
push 0
push str.__2i___36s___s
push 0x2aab
push str.ParseContentsXML
push 4
call fcn.00401210
mov eax, esi
add esp, 0x20
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x415817
push 0
push 0x800
push 0
push 0x100000
push 0
sub eax, ecx
push eax
push 0
push 0
push 0
push 0
push esi
push 0x277a800
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x4159ac
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415854
sub eax, edx
mov edx, eax
mov eax, 0x277a800
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415867
xor ecx, ecx
push ecx
push edx
push ecx
push 0x100000
push ecx
push edx
push ecx
push ecx
push ecx
sub eax, esi
push eax
push edi
push 0x277a800
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x4159da
push 0x800
push 0
push 0x23f76e0
call fcn.0041c990
mov eax, 0x23f86e0
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4158b2
push 0
push 0x800
push 0
push 0x800
push 0
sub eax, edx
push eax
push 0
push 0
push 0
push 0
push 0x23f86e0
push 0x23f76e0
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415a1a
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4158f3
sub eax, edx
mov edx, eax
mov eax, 0x23f76e0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415906
xor ecx, ecx
push ecx
push edx
push ecx
push 0x800
push ecx
push edx
push ecx
push ecx
push ecx
sub eax, esi
push eax
push edi
push 0x23f76e0
call fcn.0040b150
add esp, 0x30
or eax, edx
je 0x415a50
mov ecx, 0x277a800
call fcn.00415ca0
cmp eax, 0xffffffff
je 0x415a7e
test eax, eax
jne 0x41596f
push 0x23f76e0
push 0x277a800
push str.Copied__s_n_t_t_tto__s_n_n
push 0x2ad5
push str.ParseContentsXML
push 4
call fcn.00401210
add esp, 0x18
add dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x1c]
adc eax, 0
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x2389cb4]
jl 0x4157a1
jg 0x415999
mov eax, dword [ebp - 0x20]
cmp eax, dword [0x2389cb0]
jb 0x4157a1
mov eax, dword [ebp - 8]
push eax
call fcn.00417cb7
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x20]
imul eax, eax, 0x890
lea edx, [eax + 0x238be88]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4159c0
sub eax, esi
push eax
push edx
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_tx_buffer
push 0x2aaf
jmp 0x4156b9
mov eax, dword [ebp - 0x20]
imul eax, eax, 0x890
lea edx, [eax + 0x238be48]
mov eax, edx
lea esi, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4159f0
sub eax, esi
push eax
push edx
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_tx_buffer
push 0x2ab6
push str.ParseContentsXML
push 1
call fcn.00401210
mov edx, dword [ebp - 8]
push edx
jmp 0x4156c9
mov eax, 0x23f86e0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415a22
sub eax, edx
push eax
push 0x23f86e0
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2ac1
push str.ParseContentsXML
push 1
call fcn.00401210
mov eax, dword [ebp - 8]
push eax
jmp 0x4156c9
mov eax, dword [ebp - 0x20]
imul eax, eax, 0x890
lea edx, [eax + 0x238be48]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415a64
sub eax, esi
push eax
push edx
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2ac8
jmp 0x4156b9
push 0x23f76e0
push 0x277a800
push str.Failed_to_copy__s_n_t_t_tto__s_n_n
push 0x2ad0
push str.ParseContentsXML
push 1
call fcn.00401210
mov edx, dword [ebp - 8]
push edx
jmp 0x4156c9
add esi, ebx
push esi
push str.Looks_like_fh_loader_cannot_parse_this_contents.xml_file._Confused_by_what_looked_like__file_name_flavor__shown_below_n_n_s
push 0x28a6
push str.ParseContentsXML
push 1
call fcn.00401210
add esp, 0x14
push ebx
call fcn.00417cb7
add esp, 4
jmp 0x4156d1
push str.Failed_to_copy_string_into_ContensXML_NumContensXML_.Flavor
push 0x28b9
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
call fcn.00417cb7
add esp, 0x14
jmp 0x4156d1
mov ecx, dword [ebp - 0x24]
push ecx
push edi
push str.2__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x291d
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push 1
push 0x42b55c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2924
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
mov edx, dword [ebp - 0x24]
push edx
push esi
push str.3__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x2945
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push str.Failed_to_copy_string_into_ContensXML_NumContensXML_.Flavor
push 0x2971
jmp 0x415adb
push edi
push esi
push str.5__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x2988
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
mov eax, dword [0x2389cb0]
imul eax, eax, 0x890
add eax, 0x238be48
push eax
push 0x238ae40
push str.Could_not_find_the___flavor_s_for_filename__s
push 0x298f
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push esi
push edi
push str.6__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x29a3
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push 1
push 0x42b55c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x29ac
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push 1
push 0x42b55c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x29bc
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push 1
push 0x42b55c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x29c3
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push 0xc8
push str.More_than__i_entries_in_contents.xml__cant_continue
push 0x2a1f
jmp 0x415ab4
push 1
push 0x42b55c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2844
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9
push 1
push 0x42b55c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2859
push str.ParseContentsXML
push 1
call fcn.00401210
push ebx
jmp 0x4156c9