Function at 0x415b80
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
mov eax, 0x255af80
push edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415b91
sub eax, edx
je 0x417035
push 0x255af80
push str.Attempting_to_access__s
push 0x2b20
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x14
push 0x800
mov edx, 0x42ea14
mov ecx, 0x255af80
call fcn.00412100
add esp, 4
push str.Trying_get_filesize__calling_fseek__
push 0x283d
push str.ReturnFileSize
push 5
mov esi, eax
call fcn.004016a0
push 2
push 0
push 0
push esi
call fcn.0041aa2a
push esi
call fcn.004190ae
add esp, 0x24
push 0
push 0
push 0
push esi
mov edi, eax
mov ebx, edx
call fcn.0041aa2a
push ebx
push edi
push str.CONTENTS.xml_file_size_is__lld_bytes
push 0x2b24
push str.ParseContentsXML
push 5
call fcn.004016a0
mov eax, edi
add esp, 0x28
or eax, ebx
jne 0x415c53
push str.__contentsxml_file_size_was_0_bytes__
push 0x2b28
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x10
push 1
call fcn.00401c50
lea eax, [edi + 1]
push 1
push eax
mov dword [ebp - 0xc], eax
call fcn.0041973b
mov ebx, eax
add esp, 8
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x415c96
mov ecx, dword [ebp - 0xc]
push 0x255af80
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 0x2b30
push str.ParseContentsXML
push 2
call fcn.004016a0
add esp, 0x18
push 1
call fcn.00401c50
push esi
push edi
push 1
push ebx
call fcn.0041b2f9
push esi
mov dword [0x23b6470], eax
mov dword [0x23b6474], 0
call fcn.0041bc41
mov edx, dword [0x23b6470]
mov eax, dword [0x23b6474]
add esp, 0x14
push str._windows_root_path
push ebx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
call fcn.0041a680
add esp, 8
test eax, eax
je 0x415f3f
nop
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
sub eax, ebx
add eax, 0x12
cdq
cmp edx, ecx
jg 0x415d16
mov esi, dword [ebp - 0x30]
jl 0x415d00
cmp eax, esi
jae 0x415d16
lea esp, [esp]
cmp byte [eax + ebx], 0x3e
je 0x415d16
add eax, 1
adc edx, 0
cmp edx, ecx
jl 0x415d00
jg 0x415d16
cmp eax, esi
jb 0x415d00
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 - 0x1c], eax
call fcn.0041a680
add esp, 8
test eax, eax
je 0x417153
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 [0x23b6518]
push eax
imul edx, edx, 0x890
push edi
push esi
push 0
push 0
add edx, 0x3a7c9c8
push ebx
push edx
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x41731f
mov eax, dword [0x23b6518]
imul eax, eax, 0x890
mov dword [eax + 0x3a7c980], esi
lea ecx, [eax + 0x3a7c9c8]
mov dword [eax + 0x3a7c984], edi
cmp byte [ecx], 0x2e
jne 0x415f18
mov esi, 0x255af80
lea edi, [esi + 1]
lea esp, [esp]
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x415db0
sub esi, edi
xor edi, edi
jl 0x415f18
jg 0x415dd0
cmp esi, 1
jbe 0x415f18
lea esp, [esp]
mov dl, byte [esi + 0x255af80]
cmp dl, 0x2f
je 0x415dfa
cmp dl, 0x5c
je 0x415dfa
add esi, 0xffffffff
adc edi, 0xffffffff
test edi, edi
jg 0x415dd0
jl 0x415f18
cmp esi, 1
ja 0x415dd0
jmp 0x415f18
test edi, edi
jl 0x415f18
jg 0x415e0d
cmp esi, 1
jbe 0x415f18
cmp byte [eax + 0x3a7c9ca], 0
jne 0x415e7d
mov al, byte [eax + 0x3a7c9c9]
cmp al, 0x2f
je 0x415e24
cmp al, 0x5c
jne 0x415e7d
xor eax, eax
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0x800
add esi, 1
adc edi, 0
push edi
push esi
push 0
push 0
push 0
push 0
push 0x255af80
push ecx
call fcn.0040c2f0
add esp, 0x30
or eax, edx
jne 0x415f18
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2b76
push str.ParseContentsXML
push 2
call fcn.004016a0
mov edx, ebx
push edx
jmp 0x4163a9
mov ebx, ecx
lea eax, [ebx + 1]
mov dl, byte [ebx]
inc ebx
test dl, dl
jne 0x415e82
sub ebx, eax
push ebx
push ecx
push 0x259c7e0
call fcn.004192e0
mov ecx, dword [ebp - 0xc]
mov edx, dword [0x23b6518]
add esp, 0xc
add esi, 1
adc edi, 0
imul edx, edx, 0x890
xor eax, eax
push eax
push ecx
push eax
push 0x800
push edi
push esi
push eax
push eax
push eax
push eax
add edx, 0x3a7c9c8
push 0x255af80
push edx
mov byte [ebx + 0x259c7e0], 0
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x417342
xor eax, eax
push eax
push ebx
push eax
push 0x800
push eax
push ebx
push eax
push eax
mov eax, dword [0x23b6518]
imul eax, eax, 0x890
push edi
push esi
add eax, 0x3a7c9c8
push 0x259c7e0
push eax
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x417368
add dword [0x23b6518], 1
mov ecx, dword [ebp - 0x1c]
push str._windows_root_path
adc dword [0x23b651c], 0
push ecx
call fcn.0041a680
add esp, 8
test eax, eax
jne 0x415ce0
mov ebx, dword [ebp - 8]
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov eax, dword [0x23b6510]
mov edi, dword [ebp - 0x28]
imul eax, eax, 0x890
mov byte [eax + 0x23b8f28], 0
lea esi, [edi + ebx]
push str._download_file
mov byte [eax + 0x23b8f29], 0
push esi
mov byte [ebp - 1], 1
mov byte [eax + 0x23b8ee8], 0
call fcn.0041a680
add esp, 8
test eax, eax
je 0x4163b8
push str.__download_file_
push eax
call fcn.0041a680
add esp, 8
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x4163bb
mov ecx, dword [ebp - 0x24]
push ecx
push edi
push str.Failed_to_find_closing___download_file___last_offset__d
push 0x2bad
push str.ParseContentsXML
push 3
call fcn.00401000
add esp, 0x18
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
cmp dword [0x23b6514], eax
jl 0x41607d
jg 0x415fe3
cmp dword [0x23b6510], eax
jbe 0x41607d
mov esi, dword [ebp - 0x18]
xor ecx, ecx
xor ebx, ebx
imul esi, esi, 0x890
mov dword [ebp - 0x20], esi
lea esi, [esi + 0x23b86e8]
mov eax, esi
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416000
sub eax, edi
je 0x41603a
jmp 0x416010
cmp byte [esi + ecx], 0x2f
jne 0x41601a
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 0x416025
xor edx, edx
sub eax, edi
cmp ebx, edx
jl 0x416010
jg 0x41603a
cmp ecx, eax
jb 0x416010
mov eax, dword [ebp - 0x20]
cmp byte [eax + ecx + 0x23b86e7], 0x5c
je 0x416053
mov byte [esi + ecx], 0x5c
mov byte [eax + ecx + 0x23b86e9], 0
add dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x14]
adc eax, 0
mov dword [ebp - 0x14], eax
cmp eax, dword [0x23b6514]
jl 0x415fe3
jg 0x41607d
mov edx, dword [0x23b6510]
cmp dword [ebp - 0x18], edx
jb 0x415fe3
push str._n_nEMMC_n
push 0x2d8d
push str.ParseContentsXML
push 4
call fcn.004016a0
xor ebx, ebx
add esp, 0x10
xor esi, esi
xor edi, edi
mov dword [ebp - 0x14], ebx
cmp dword [0x23b6514], ebx
jl 0x41610f
jg 0x4160b1
cmp dword [0x23b6510], ebx
jbe 0x41610f
mov eax, ebx
imul eax, eax, 0x890
cmp byte [eax + 0x23b8f28], 0x65
jne 0x4160f1
lea ecx, [eax + 0x23b86e8]
push ecx
add esi, 1
lea edx, [eax + 0x23b86a8]
push edx
adc edi, 0
push edi
push esi
push str.__2i___30s_____s
push 0x2d97
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x20
mov eax, dword [ebp - 0x14]
add ebx, 1
adc eax, 0
mov dword [ebp - 0x14], eax
cmp eax, dword [0x23b6514]
jl 0x4160b1
jg 0x41610f
cmp ebx, dword [0x23b6510]
jb 0x4160b1
push str._n_nUFS_n
push 0x2d9c
push str.ParseContentsXML
push 4
call fcn.004016a0
xor ebx, ebx
add esp, 0x10
xor esi, esi
xor edi, edi
mov dword [ebp - 0x14], ebx
cmp dword [0x23b6514], ebx
jl 0x4161ae
jg 0x416150
cmp dword [0x23b6510], ebx
jbe 0x4161ae
jmp 0x416150
mov eax, ebx
imul eax, eax, 0x890
cmp byte [eax + 0x23b8f28], 0x75
jne 0x416190
lea ecx, [eax + 0x23b86e8]
push ecx
add esi, 1
lea edx, [eax + 0x23b86a8]
push edx
adc edi, 0
push edi
push esi
push str.__2i___30s_____s
push 0x2da5
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x20
mov eax, dword [ebp - 0x14]
add ebx, 1
adc eax, 0
mov dword [ebp - 0x14], eax
cmp eax, dword [0x23b6514]
jl 0x416150
jg 0x4161ae
cmp ebx, dword [0x23b6510]
jb 0x416150
push str._n_nSPINOR_n
push 0x2dab
push str.ParseContentsXML
push 4
call fcn.004016a0
xor ebx, ebx
add esp, 0x10
xor esi, esi
xor edi, edi
mov dword [ebp - 0x14], ebx
cmp dword [0x23b6514], ebx
jl 0x41624e
jg 0x4161f0
cmp dword [0x23b6510], ebx
jbe 0x41624e
jmp 0x4161f0
mov eax, ebx
imul eax, eax, 0x890
cmp byte [eax + 0x23b8f28], 0x73
jne 0x416230
lea ecx, [eax + 0x23b86e8]
push ecx
add esi, 1
lea edx, [eax + 0x23b86a8]
push edx
adc edi, 0
push edi
push esi
push str.__2i___30s_____s
push 0x2db4
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x20
mov eax, dword [ebp - 0x14]
add ebx, 1
adc eax, 0
mov dword [ebp - 0x14], eax
cmp eax, dword [0x23b6514]
jl 0x4161f0
jg 0x41624e
cmp ebx, dword [0x23b6510]
jb 0x4161f0
push str._n_nBOTH_n
push 0x2dbb
push str.ParseContentsXML
push 4
call fcn.004016a0
xor edi, edi
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
cmp dword [0x23b6514], edi
jl 0x416317
jg 0x416290
cmp dword [0x23b6510], ebx
jbe 0x416317
jmp 0x416290
mov esi, dword [ebp - 0x18]
imul esi, esi, 0x890
lea eax, [esi + 0x23b86a8]
push str.prog_emmc
push eax
mov dword [ebp - 0x20], eax
call fcn.0041a680
add esp, 8
test eax, eax
je 0x4162bc
mov eax, dword [ebp - 0x18]
mov dword [0x4393bc], eax
cmp byte [esi + 0x23b8f28], 0
jne 0x4162f1
mov edx, dword [ebp - 0x20]
lea ecx, [esi + 0x23b86e8]
push ecx
push edx
add edi, 1
adc ebx, 0
push ebx
push edi
push str.__2i___36s___s
push 0x2dcb
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x20
add dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x14]
adc eax, 0
mov dword [ebp - 0x14], eax
cmp eax, dword [0x23b6514]
jl 0x416290
jg 0x416317
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x23b6510]
jb 0x416290
cmp byte [0x23b6540], 0
je 0x417029
push 0x800
xor edi, edi
push edi
push 0x2459780
call fcn.0041e920
mov eax, 0x245a780
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416341
push edi
push 0x800
push edi
push 0x800
push edi
sub eax, edx
push eax
push edi
push edi
push edi
push edi
push 0x245a780
push 0x2459780
call fcn.0040c2f0
add esp, 0x30
or eax, edx
jne 0x416d67
mov eax, 0x245a780
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416380
sub eax, edx
push eax
push 0x245a780
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2ddd
push str.ParseContentsXML
push 2
call fcn.004016a0
mov ecx, dword [ebp - 8]
push ecx
call fcn.00419701
add esp, 0x1c
push 1
call fcn.00401c50
mov dword [ebp - 0x1c], esi
push str._file_name
push esi
call fcn.0041a680
mov edi, eax
add esp, 8
test edi, edi
je 0x415fc1
push str._file_ref
push esi
call fcn.0041a680
mov esi, eax
add esp, 8
test esi, esi
je 0x416443
cmp esi, edi
jae 0x416443
push 0x432308
push esi
call fcn.0041a680
push str.ignore_
push esi
mov dword [ebp - 0x14], eax
call fcn.0041a680
add esp, 0x10
test eax, eax
je 0x416443
cmp eax, dword [ebp - 0x14]
jae 0x416443
push 4
add eax, 8
push str.true
push eax
call fcn.00419641
add esp, 0xc
test eax, eax
jne 0x416443
mov edx, dword [ebp - 0x14]
push str.__file_ref_
push edx
call fcn.0041a680
add esp, 8
sub eax, ebx
cdq
mov dword [ebp - 0x24], edx
jmp 0x415f47
mov eax, edi
sub eax, ebx
cdq
mov esi, eax
cmp byte [esi + ebx + 0xa], 0x3e
jne 0x416459
add edi, 0xb
jmp 0x416567
lea eax, [esi + ebx]
push str.flavor_
push eax
call fcn.0041a680
add esp, 8
test eax, eax
je 0x417137
add eax, 8
mov dword [ebp - 0x14], eax
sub eax, ebx
cdq
mov esi, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edx
mov ecx, edx
cmp edx, dword [ebp - 0x2c]
jg 0x4164a9
jl 0x416491
cmp esi, dword [ebp - 0x30]
jae 0x4164a9
cmp byte [eax + ebx], 0x22
je 0x4164a9
add eax, 1
adc ecx, 0
cmp ecx, dword [ebp - 0x2c]
jl 0x416491
jg 0x4164a9
cmp eax, dword [ebp - 0x30]
jb 0x416491
mov edi, dword [ebp - 0xc]
push 0
push edi
push 0
push 0x40
sub eax, esi
sbb ecx, edx
push ecx
mov ecx, dword [0x23b6510]
push eax
imul ecx, ecx, 0x890
push edx
push esi
push 0
push 0
add ecx, 0x23b8ee8
push ebx
push ecx
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x417161
mov edi, dword [0x23b6510]
imul edi, edi, 0x890
lea edi, [edi + 0x23b8ee8]
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416500
sub eax, edx
mov edx, eax
mov eax, 0x23b76a0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416513
sub eax, esi
cmp edx, eax
jbe 0x416522
mov eax, edx
push eax
push 0x23b76a0
push edi
call fcn.00419641
add esp, 0xc
test eax, eax
jne 0x415f4a
mov eax, dword [0x23b6510]
imul eax, eax, 0x890
add eax, 0x23b8ee8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416550
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 0x41658d
jg 0x416576
cmp esi, 1
jbe 0x41658d
cmp byte [esi + ebx], 0x3c
je 0x41658d
add esi, 0xffffffff
adc edx, 0xffffffff
test edx, edx
jg 0x416576
jl 0x41658d
cmp esi, 1
ja 0x416576
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.0041a680
mov edi, dword [ebp - 0x28]
add esp, 8
test eax, eax
je 0x4165c9
lea ecx, [edi + ebx]
cmp eax, ecx
jae 0x4165c9
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
mov byte [edx + 0x23b8f29], 0x72
push str._partition_patch_file
push esi
call fcn.0041a680
add esp, 8
test eax, eax
je 0x4165f5
lea ecx, [edi + ebx]
cmp eax, ecx
jae 0x4165f5
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
mov byte [edx + 0x23b8f29], 0x70
push str.storage_type
push esi
call fcn.0041a680
add esp, 8
test eax, eax
je 0x4166cb
lea ecx, [edi + ebx]
cmp eax, ecx
jae 0x4166cb
mov cl, byte [eax + 0xe]
cmp cl, 0x65
jne 0x416647
cmp byte [eax + 0xf], 0x6d
jne 0x416647
cmp byte [eax + 0x10], 0x6d
jne 0x416647
cmp byte [eax + 0x11], 0x63
jne 0x416647
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
mov byte [edx + 0x23b8f28], cl
jmp 0x4166cb
cmp cl, 0x75
jne 0x41666b
cmp byte [eax + 0xf], 0x66
jne 0x41666b
cmp byte [eax + 0x10], 0x73
jne 0x41666b
mov eax, dword [0x23b6510]
imul eax, eax, 0x890
mov byte [eax + 0x23b8f28], cl
jmp 0x4166cb
cmp cl, 0x6e
jne 0x416696
cmp byte [eax + 0xf], 0x61
jne 0x416696
cmp byte [eax + 0x10], cl
jne 0x416696
cmp byte [eax + 0x11], 0x64
jne 0x416696
mov ecx, dword [0x23b6510]
imul ecx, ecx, 0x890
mov byte [ecx + 0x23b8f28], 0x6e
jmp 0x4166cb
cmp cl, 0x73
jne 0x4166cb
cmp byte [eax + 0xf], 0x70
jne 0x4166cb
cmp byte [eax + 0x10], 0x69
jne 0x4166cb
cmp byte [eax + 0x11], 0x6e
jne 0x4166cb
cmp byte [eax + 0x12], 0x6f
jne 0x4166cb
cmp byte [eax + 0x13], 0x72
jne 0x4166cb
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
mov byte [edx + 0x23b8f28], cl
lea eax, [edi + ebx]
push str.__file_name_
push eax
call fcn.0041a680
add esp, 8
test eax, eax
je 0x417185
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 [0x23b6510]
push edx
imul eax, eax, 0x890
push edi
push 0
push 0
add eax, 0x23b86a8
push ebx
push eax
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x4171a6
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
lea edx, [edx + 0x23b86a8]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416738
sub eax, esi
cmp eax, 0xb
ja 0x41674b
mov eax, 0xb
push eax
push str.qdsp6sw.mbn
push edx
call fcn.00419641
mov eax, dword [0x23b6510]
mov ecx, dword [ebp - 0x28]
imul eax, eax, 0x890
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x23b86a0], ecx
mov dword [eax + 0x23b86a4], edx
lea edi, [eax + 0x23b86a8]
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 0x416790
sub eax, dword [ebp - 0x14]
mov edx, eax
xor eax, eax
mov dword [ebp - 0x14], edx
jl 0x4167d0
jg 0x4167b0
test edx, edx
je 0x4167d0
lea esp, [esp]
mov dl, byte [edi + ecx]
cmp dl, 0x2a
je 0x4167bd
cmp dl, 0x24
jne 0x4167c0
mov byte [ebp - 1], al
add ecx, 1
adc esi, eax
cmp esi, eax
jl 0x4167b0
jg 0x4167d0
cmp ecx, dword [ebp - 0x14]
jb 0x4167b0
mov esi, dword [ebp - 0x28]
lea eax, [esi + ebx]
push 0x436390
push eax
call fcn.0041a680
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4171c9
lea eax, [ecx + 0xa]
sub eax, ebx
cmp byte [ecx + 0xa], 0x20
cdq
mov esi, eax
mov edi, edx
jne 0x4169c9
mov eax, dword [ebp - 8]
lea ebx, [esi + eax]
push 0x432308
push ebx
call fcn.0041a680
push str.flavor
push ebx
mov dword [ebp - 0x10], eax
call fcn.0041a680
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x41694c
mov edi, edi
cmp ebx, dword [ebp - 0x10]
ja 0x41694c
add ebx, 8
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
mov edi, edx
mov esi, eax
mov ecx, edi
cmp edi, dword [ebp - 0x2c]
jg 0x41686f
jl 0x416854
cmp esi, dword [ebp - 0x30]
jae 0x41686f
mov edx, dword [ebp - 8]
cmp byte [eax + edx], 0x22
je 0x41686f
add eax, 1
adc ecx, 0
cmp ecx, dword [ebp - 0x2c]
jl 0x416854
jg 0x41686f
cmp eax, dword [ebp - 0x30]
jb 0x416854
xor edx, edx
push edx
mov edx, dword [ebp - 0xc]
push edx
push 0
push 0x40
sub eax, esi
sbb ecx, edi
push ecx
mov ecx, dword [0x23b6510]
push eax
imul ecx, ecx, 0x890
mov eax, dword [ebp - 8]
push edi
push esi
push 0
push 0
push eax
add ecx, 0x23b8ee8
push ecx
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x4171ea
mov eax, 0x23b76a0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4168b5
sub eax, edx
mov edx, eax
je 0x41697d
mov eax, dword [0x23b6510]
imul eax, eax, 0x890
lea eax, [eax + 0x23b8ee8]
lea ecx, [eax + 1]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4168e0
sub eax, dword [ebp - 0x14]
cmp eax, edx
ja 0x4168f0
mov eax, edx
mov edx, dword [ebp - 0x20]
push eax
push 0x23b76a0
push edx
call fcn.00419641
add esp, 0xc
test eax, eax
je 0x41697d
push str._file_path
push ebx
call fcn.0041a680
add esp, 8
cmp eax, dword [ebp - 0x1c]
ja 0x4169a7
add eax, 0xb
push 0x432308
push eax
call fcn.0041a680
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
lea ecx, [esi + eax]
push str.flavor
push ecx
call fcn.0041a680
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x416830
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
add edx, 0x23b86a8
push edx
push 0x23b76a0
push 0x4363e4
push 0x2c9b
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x18
mov ebx, dword [ebp - 8]
lea eax, [esi + ebx]
push 0x432308
push eax
call fcn.0041a680
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x417211
cmp ecx, dword [ebp - 0x10]
ja 0x41722f
inc ecx
jmp 0x4169cf
push edi
push esi
push 0x23b76a0
push str.Failed_to_match_a_matching_flavor__s__offset__d
push 0x2cbf
push str.ParseContentsXML
push 4
call fcn.00401000
add esp, 0x1c
jmp 0x41697d
mov ebx, dword [ebp - 8]
add ecx, 0xb
mov eax, ecx
sub eax, ebx
cdq
mov esi, eax
lea ecx, [esi + ebx]
mov edi, edx
push str.__file_path_
push ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edi
call fcn.0041a680
add esp, 8
test eax, eax
je 0x417263
mov edx, dword [ebp - 0xc]
xor ecx, ecx
push ecx
push edx
push ecx
push 0x100000
sub eax, esi
sub eax, ebx
cdq
push edx
push eax
push edi
push esi
push ecx
push ecx
push ebx
push 0x259c7e0
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x417281
mov edx, dword [0x23b6510]
xor eax, eax
xor esi, esi
cmp dword [0x23b651c], eax
jl 0x416a95
jg 0x416a41
cmp dword [0x23b6518], eax
jbe 0x416a95
mov ecx, edx
imul ecx, ecx, 0x890
mov edi, dword [ecx + 0x23b86a0]
mov dword [ebp - 0x50], edi
mov edi, dword [ecx + 0x23b86a4]
jmp 0x416a60
mov ecx, eax
imul ecx, ecx, 0x890
cmp dword [ecx + 0x3a7c984], edi
jg 0x416a95
jl 0x416a7d
mov ecx, dword [ecx + 0x3a7c980]
cmp ecx, dword [ebp - 0x50]
ja 0x416a95
add eax, 1
adc esi, 0
cmp esi, dword [0x23b651c]
jl 0x416a60
jg 0x416a95
cmp eax, dword [0x23b6518]
jb 0x416a60
imul eax, eax, 0x890
lea esi, [eax + 0x3a7c138]
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416aa6
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, 0x23b86e8
push esi
push edx
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x4172a4
mov ecx, dword [0x23b6510]
imul ecx, ecx, 0x890
lea edi, [ecx + 0x23b86e8]
mov eax, edi
lea esi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416b00
sub eax, esi
mov dl, byte [ecx + eax + 0x23b86e7]
cmp dl, 0x2f
je 0x416b36
cmp dl, 0x5c
je 0x416b36
mov dl, byte [0x259c7e0]
cmp dl, 0x2f
je 0x416b36
cmp dl, 0x5c
je 0x416b36
mov byte [edi + eax], 0x2f
mov byte [ecx + eax + 0x23b86e9], 0
mov eax, 0x259c7e0
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416b40
sub eax, edx
mov ecx, eax
mov eax, edi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416b50
push 0
push 0x800
push 0
push 0x800
push 0
push ecx
push 0
push 0
push 0
sub eax, esi
push eax
push 0x259c7e0
push edi
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x4172ca
mov edi, dword [0x23b6510]
xor ecx, ecx
xor esi, esi
imul edi, edi, 0x890
mov dword [ebp - 0x14], edi
lea edi, [edi + 0x23b86e8]
mov eax, edi
lea ebx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416ba5
sub eax, ebx
xor edx, edx
mov ebx, eax
mov dword [ebp - 0x10], ebx
jl 0x416bd8
jg 0x416bc0
test ebx, ebx
je 0x416bd8
lea ecx, [ecx]
cmp byte [edi + ecx], 0x2a
jne 0x416bc9
mov byte [ebp - 1], dl
add ecx, 1
adc esi, edx
cmp esi, edx
jl 0x416bc0
jg 0x416bd8
cmp ecx, ebx
jb 0x416bc0
cmp byte [ebp - 1], dl
je 0x416d40
xor eax, eax
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x44], eax
test edx, edx
jl 0x416c52
jg 0x416bfa
test ebx, ebx
je 0x416c52
cmp byte [edi + eax], 0x24
jne 0x416c10
mov ebx, dword [ebp - 0x14]
cmp byte [ebx + eax + 0x23b86e9], 0x7b
mov ebx, dword [ebp - 0x10]
je 0x416c21
add eax, 1
adc ecx, edx
cmp ecx, edx
jl 0x416bfa
jg 0x416c52
cmp eax, ebx
jb 0x416bfa
jmp 0x416c52
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edx
jg 0x416c52
jl 0x416c31
cmp eax, ebx
jae 0x416c52
cmp byte [edi + eax], 0x3a
je 0x416c48
add eax, 1
adc ecx, edx
cmp ecx, edx
jl 0x416c31
jg 0x416c52
cmp eax, ebx
jb 0x416c31
jmp 0x416c52
add eax, 1
adc ecx, edx
mov esi, eax
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
cmp byte [ecx + eax + 0x23b86e9], 0x5c
je 0x416cc8
cmp dword [ebp - 0x34], edx
jl 0x416cc8
jg 0x416c6d
test eax, eax
je 0x416cc8
mov eax, dword [ebp - 0x38]
mov ecx, edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ecx
cmp edx, ecx
jg 0x416cc8
jl 0x416c85
cmp eax, ebx
jae 0x416cc8
mov ebx, dword [ebp - 0x44]
mov cl, byte [edi + esi]
cmp cl, 0x7d
jne 0x416cad
add esi, 1
adc ebx, 0
mov byte [edi + eax], 0x5c
cmp byte [edi + esi], 0
jne 0x416cb0
mov ecx, dword [ebp - 0x14]
mov byte [ecx + eax + 0x23b86e9], 0
jmp 0x416cb6
mov byte [edi + eax], cl
add esi, 1
adc ebx, 0
add eax, 1
adc edx, 0
cmp edx, dword [ebp - 0x3c]
jl 0x416c88
jg 0x416cc8
cmp eax, dword [ebp - 0x40]
jb 0x416c88
mov eax, dword [0x23b6510]
add eax, 1
adc dword [0x23b6514], 0
cmp dword [0x23b6454], 0
mov dword [0x23b6510], eax
jl 0x416d40
jg 0x416cf0
cmp dword [0x23b6450], 0
jbe 0x416d40
imul eax, eax, 0x890
lea edi, [eax + 0x23b7e18]
call fcn.00410ec0
test eax, eax
je 0x416d40
mov edx, dword [0x23b6510]
imul edx, edx, 0x890
lea eax, [edx + 0x23b7e18]
push eax
push str._s_is_being_SKIPPED_since_it_was_in___notfiles_provided_by_the_user_at_the_command_line
push 0x2d66
push str.ParseContentsXML
push 4
call fcn.004016a0
or eax, 0xffffffff
add esp, 0x14
add dword [0x23b6510], eax
adc dword [0x23b6514], eax
cmp dword [0x23b6514], 0
jg 0x4172f0
jl 0x416d5f
cmp dword [0x23b6510], 0x12c
jae 0x4172f0
mov ebx, dword [ebp - 8]
jmp 0x415f4a
mov eax, 0x3b1d408
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416d70
sub eax, edx
mov edx, eax
mov eax, 0x2459780
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416d83
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 0x3b1d408
push 0x2459780
call fcn.0040c2f0
add esp, 0x30
or eax, edx
jne 0x416df8
mov eax, 0x3b1d408
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416dc0
sub eax, edx
push eax
push 0x3b1d408
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2de4
push str.ParseContentsXML
push 2
call fcn.004016a0
mov edx, dword [ebp - 8]
push edx
call fcn.00419701
add esp, 0x1c
push 1
call fcn.00401c50
push str._n_nCopy_XML_files_n
push 0x2dea
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x10
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
cmp dword [0x23b6514], edi
jl 0x417029
jg 0x416e31
cmp dword [0x23b6510], edi
jbe 0x417029
mov esi, dword [ebp - 0x18]
imul esi, esi, 0x890
lea edi, [esi + 0x23b86a8]
push str..xml
push edi
call fcn.0041a680
push str.firehose
push edi
mov ebx, eax
call fcn.0041a680
add esp, 0x10
test ebx, ebx
jne 0x416e67
test eax, eax
je 0x416fff
mov al, byte [esi + 0x23b8f28]
cmp byte [0x3c1e408], al
je 0x416e7d
test al, al
jne 0x416fff
lea esi, [esi + 0x23b86e8]
push esi
push edi
push 0
push 0
push str.__2i___36s___s
push 0x2dfa
push str.ParseContentsXML
push 4
call fcn.004016a0
mov eax, esi
add esp, 0x20
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416ea7
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 0x27dc8a0
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x41703c
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416ee4
sub eax, edx
mov edx, eax
mov eax, 0x27dc8a0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416ef7
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 0x27dc8a0
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x41706a
push 0x800
push 0
push 0x2459780
call fcn.0041e920
mov eax, 0x245a780
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416f42
push 0
push 0x800
push 0
push 0x800
push 0
sub eax, edx
push eax
push 0
push 0
push 0
push 0
push 0x245a780
push 0x2459780
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x4170aa
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416f83
sub eax, edx
mov edx, eax
mov eax, 0x2459780
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416f96
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 0x2459780
call fcn.0040c2f0
add esp, 0x30
or eax, edx
je 0x4170e0
mov ecx, 0x27dc8a0
call fcn.00417380
cmp eax, 0xffffffff
je 0x41710e
test eax, eax
jne 0x416fff
push 0x2459780
push 0x27dc8a0
push str.Copied__s_n_t_t_tto__s_n_n
push 0x2e24
push str.ParseContentsXML
push 4
call fcn.004016a0
add esp, 0x18
add dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x14]
adc eax, 0
mov dword [ebp - 0x14], eax
cmp eax, dword [0x23b6514]
jl 0x416e31
jg 0x417029
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x23b6510]
jb 0x416e31
mov eax, dword [ebp - 8]
push eax
call fcn.00419701
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
imul eax, eax, 0x890
lea ecx, [eax + 0x23b86e8]
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417050
sub eax, esi
push eax
push ecx
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_tx_buffer
push 0x2dfe
jmp 0x416399
mov eax, dword [ebp - 0x18]
imul eax, eax, 0x890
lea ecx, [eax + 0x23b86a8]
mov eax, ecx
lea esi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417080
sub eax, esi
push eax
push ecx
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_tx_buffer
push 0x2e05
push str.ParseContentsXML
push 2
call fcn.004016a0
mov edx, dword [ebp - 8]
push edx
jmp 0x4163a9
mov eax, 0x245a780
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4170b2
sub eax, edx
push eax
push 0x245a780
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2e10
push str.ParseContentsXML
push 2
call fcn.004016a0
mov eax, dword [ebp - 8]
push eax
jmp 0x4163a9
mov eax, dword [ebp - 0x18]
imul eax, eax, 0x890
lea ecx, [eax + 0x23b86a8]
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4170f4
sub eax, esi
push eax
push ecx
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2e17
jmp 0x416399
push 0x2459780
push 0x27dc8a0
push str.Failed_to_copy__s_n_t_t_tto__s_n_n
push 0x2e1f
push str.ParseContentsXML
push 2
call fcn.004016a0
mov edx, dword [ebp - 8]
push edx
jmp 0x4163a9
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 0x2be6
push str.ParseContentsXML
push 2
call fcn.004016a0
add esp, 0x14
push ebx
call fcn.00419701
add esp, 4
jmp 0x4163b1
push str.Failed_to_copy_string_into_ContensXML_NumContensXML_.Flavor
push 0x2bf9
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
call fcn.00419701
add esp, 0x14
jmp 0x4163b1
mov ecx, dword [ebp - 0x24]
push ecx
push edi
push str.2__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x2c5d
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2c64
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
mov edx, dword [ebp - 0x24]
push edx
push esi
push str.3__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x2c85
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
push str.Failed_to_copy_string_into_ContensXML_NumContensXML_.Flavor
push 0x2cb0
push str.ParseContentsXML
push 2
call fcn.004016a0
mov eax, dword [ebp - 8]
push eax
call fcn.00419701
add esp, 0x14
jmp 0x4163b1
push edi
push esi
push str.5__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x2cd0
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
mov ecx, dword [0x23b6510]
imul ecx, ecx, 0x890
add ecx, 0x23b86a8
push ecx
push 0x23b76a0
push str.Could_not_find_the___flavor_s_for_filename__s
push 0x2cd7
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
push edi
push esi
push str.6__XML_not_formed_correctly._Expected_one_SPACE_character_at_loc__d
push 0x2ceb
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2cf4
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2d04
push str.ParseContentsXML
push 2
call fcn.004016a0
mov edx, dword [ebp - 8]
push edx
jmp 0x4163a9
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2d12
push str.ParseContentsXML
push 2
call fcn.004016a0
mov eax, dword [ebp - 8]
push eax
jmp 0x4163a9
push 0x12c
push str.More_than__i_entries_in_contents.xml__cant_continue
push 0x2d6e
push str.ParseContentsXML
push 2
call fcn.004016a0
mov ecx, dword [ebp - 8]
add esp, 0x14
push ecx
call fcn.00419701
add esp, 4
jmp 0x4163b1
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2b5f
push str.ParseContentsXML
push 2
call fcn.004016a0
push ebx
jmp 0x4163a9
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2b82
push str.ParseContentsXML
push 2
call fcn.004016a0
mov eax, dword [ebp - 8]
push eax
jmp 0x4163a9
push 1
push 0x42d67c
push str.Failed_to_copy__s_of_length__lld_bytes_into_fh.attrs.start_sector
push 0x2b88
jmp 0x416399