Function at 0x411500
Capabilities:
Check for time delay via gettickcount
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x14f4
call fcn.0041aee0
mov eax, dword [0x4353f4]
xor eax, esp
mov dword [esp + 0x14f0], eax
push ebx
push esi
push edi
xor ebx, ebx
push 0x3ff
lea eax, [esp + 0xfd]
push ebx
push eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x104], bl
call fcn.0041c990
fldz
add esp, 0xc
fstp qword [esp + 0x70]
mov dword [esp + 0x58], 0x431c84
mov dword [esp + 0x5c], 0x42ad90
mov dword [esp + 0x60], 0x432260
mov byte [esp + 0xe], bl
mov byte [esp + 0xf], bl
cmp byte [0x23893ae], bl
je 0x41157b
mov byte [esp + 0xe], 1
mov eax, 0x3a85b28
xor esi, esi
xor edi, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411587
sub eax, edx
je 0x4115d5
mov al, byte [esi + 0x3a85b28]
cmp al, 0xa
je 0x4115a8
cmp al, 0xd
je 0x4115a8
cmp al, 9
je 0x4115a8
cmp al, 0x20
jne 0x4115ae
mov byte [esi + 0x3a85b28], bl
add esi, 1
mov eax, 0x3a85b28
adc edi, ebx
lea edx, [eax + 1]
jmp 0x4115c0
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4115c0
xor ecx, ecx
sub eax, edx
cmp edi, ecx
jl 0x411592
jg 0x4115d5
cmp esi, eax
jb 0x411592
mov eax, 0x3a85b28
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4115e0
sub eax, edx
je 0x41302d
cmp dword [0x2389bec], ebx
jl 0x411642
jg 0x411601
cmp dword [0x2389be8], ebx
jbe 0x411642
mov ebx, 0x3a85b28
call fcn.0040fba0
test eax, eax
jne 0x411640
push ebx
push str._s_is_being_SKIPPED_since_it_was_not_in___files_provided_by_the_user_at_the_command_line
push 0x2135
push str.handleProgram
push 5
call fcn.00401210
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
xor ebx, ebx
cmp dword [0x2389bf4], ebx
jl 0x411693
jg 0x411654
cmp dword [0x2389bf0], ebx
jbe 0x411693
mov edi, 0x3a85b28
call fcn.0040fc80
test eax, eax
je 0x411693
push edi
push str.handleProgram____s_is_being_SKIPPED_since_it_was_in___notfiles_provided_by_the_user_at_the_command_line
push 0x213e
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x3a85a58]
push ecx
push 0x3a86328
mov ebx, 0x5c0cd60
call fcn.0040fd20
add esp, 8
test eax, eax
jne 0x4116e5
push 0x3a86328
push str._s_is_being_SKIPPED_since_it_was_not_in___labels_provided_by_the_user_at_the_command_line
push 0x2146
push str.handleProgram
push 5
call fcn.00401210
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
mov edx, dword [0x3a85a58]
push edx
push 0x3a86328
mov ebx, 0x3b88340
call fcn.0040fd20
add esp, 8
cmp eax, 1
jne 0x411738
push 0x3a86328
push str.handleProgram____s_is_being_SKIPPED_since_it_was_in___notlabels_provided_by_the_user_at_the_command_line
push 0x214d
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
xor ebx, ebx
cmp byte [0x2389ce1], bl
jne 0x411770
cmp byte [0x2389ce0], bl
jne 0x411770
cmp byte [0x23893b1], bl
jne 0x411770
push 0x3a85b28
push str.In_handleProgram__s_
push 0x2156
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x14
push str.sparse_true_
push 0x277a800
call fcn.004188e0
add esp, 8
test eax, eax
je 0x4117a9
push 0x3a85b28
push str._s_is_a_sparse_image
push 0x215d
push str.handleProgram
push 4
mov byte [esp + 0x23], 1
call fcn.00401210
add esp, 0x14
push 1
mov ecx, 0x3a85b28
call fcn.0040f430
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
cmp esi, ebx
jne 0x411872
cmp byte [0x2389cdf], bl
jne 0x411838
cmp byte [0x23893b1], bl
jne 0x411838
push 0x3a85b28
push 0x3a85b28
cmp byte [0x436420], bl
jne 0x411808
push str._s_not_found._You_could_possibly_try___notfiles_s_OtherFileToSkip.bin__note__exiting_since_you_specified___noprompt_
push 0x216f
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x18
push 1
call fcn.004017c0
push str._s_not_found._You_will_need___notfiles_s_when_loading_this_build_nOR__you_need_to_provide_a___search_path_to_this_file_n_n
push 0x2175
push str.handleProgram
push 3
call fcn.00401210
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
push 0x3a85b28
push 0x3a85b28
push str._s_not_found._You_will_need___notfiles_s_when_loading_this_build_n_n
push 0x2168
push str.handleProgram
push 3
call fcn.00401210
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
mov eax, dword [0x3a85a48]
mov ecx, dword [0x3a85a4c]
cmp eax, dword [0x436418]
jne 0x41188d
cmp ecx, dword [0x43641c]
je 0x4118b3
push ecx
push eax
push str.SectorSizeInBytes_changed_to__d
push 0x217e
push str.handleProgram
push 4
mov dword [0x436418], eax
mov dword [0x43641c], ecx
call fcn.00401210
add esp, 0x18
push 0x800
mov edx, 0x42d888
mov ecx, esi
call fcn.00410ed0
add esp, 4
mov dword [esp + 0x1c], eax
cmp byte [esp + 0xf], bl
je 0x411969
push str.UNSPARSE_FILE_SIZE_
push 0x277a800
call fcn.004188e0
push 0x430058
push eax
call fcn.004188e0
mov dl, byte [eax + 1]
add esp, 0x10
xor ecx, ecx
xor edi, edi
cmp dl, 0x22
je 0x411915
mov edi, edi
mov byte [esp + ecx + 0xe4], dl
mov dl, byte [ecx + eax + 2]
add ecx, 1
adc edi, ebx
cmp dl, 0x22
jne 0x411900
lea eax, [esp + 0x3f]
mov byte [esp + ecx + 0xe4], bl
push eax
lea ecx, [esp + 0xe8]
push ecx
call fcn.0040b2f0
add esp, 8
mov edi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edx
cmp byte [esp + 0x3f], bl
jne 0x411980
lea edx, [esp + 0xe4]
push edx
push str.Call_to_stringToNumber_failed_for_FileSize_with_value__s
push 0x2197
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x14
push 1
call fcn.004017c0
mov esi, dword [esp + 0x1c]
call fcn.00413ca0
mov esi, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov edi, eax
mov eax, edi
or eax, edx
jne 0x4119a7
push esi
push str.Filesize_is_0_bytes._This_is_usually_a_mistake___Please_check__s
push 0x21a2
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
push 1
call fcn.004017c0
add dword [0x2389bc0], edi
adc dword [0x2389bc4], edx
cmp byte [0x2389ce0], bl
je 0x4119ca
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00419df4
jmp 0x41302a
cmp byte [0x2389cdf], bl
je 0x411bce
push 0x800
push ebx
push 0x23f76e0
call fcn.0041c990
mov eax, 0x23f86e0
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4119f1
push ebx
push 0x800
push ebx
push 0x800
push ebx
sub eax, edx
push eax
push ebx
push ebx
push ebx
push ebx
push 0x23f86e0
push 0x23f76e0
call fcn.0040b150
add esp, 0x30
or eax, edx
jne 0x411a4e
mov eax, 0x23f86e0
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a30
sub eax, edx
push eax
push 0x23f86e0
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x21b7
jmp 0x4117f2
mov eax, 0x3a85b28
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a56
sub eax, edx
mov edx, eax
mov eax, 0x23f76e0
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a70
xor ecx, ecx
push ecx
push edx
push ebx
push 0x800
push ecx
push edx
push ebx
push ebx
push ebx
sub eax, edi
push eax
push 0x3a85b28
push 0x23f76e0
call fcn.0040b150
add esp, 0x30
or eax, edx
jne 0x411ac5
mov eax, 0x3a85b28
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411aa7
sub eax, edx
push eax
push 0x3a85b28
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x21bd
jmp 0x4117f2
mov ecx, esi
call fcn.00415ca0
cmp eax, 0xffffffff
jne 0x411ae6
push 0x23f76e0
push esi
push str.Failed_to_copy__s_n_t_t_tto__s_n_n
push 0x21c3
jmp 0x4117f2
cmp eax, ebx
jne 0x411b09
push 0x23f76e0
push esi
push str.Copied__s_n_t_t_tto__s_n_n
push 0x21c7
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x18
cmp byte [0x23893ac], bl
je 0x411bbf
mov edx, dword [0x2389bbc]
mov edi, dword [0x2389bb8]
cmp edx, ebx
ja 0x411b2d
cmp edi, ebx
jbe 0x411bbf
mov ecx, dword [0x2389bc0]
mov eax, dword [0x2389bc4]
mov dword [esp + 0x30], ecx
mov ecx, eax
and eax, 0x7fffffff
mov dword [esp + 0x34], eax
fild qword [esp + 0x30]
and ecx, 0x80000000
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ebx
fild qword [esp + 0x30]
mov eax, edx
mov ecx, edx
fchs
and eax, 0x7fffffff
faddp st(1)
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
and ecx, 0x80000000
fmul qword [0x433c88]
sub esp, 8
fild qword [esp + 0x38]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ebx
fild qword [esp + 0x38]
fchs
faddp st(1)
fdivp st(1)
fstp dword [0x23893b4]
fld dword [0x23893b4]
fstp qword [esp]
push str.percent_files_transferred__6.2f__
push 0x21cc
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x18
mov edx, dword [esp + 0x1c]
push edx
call fcn.00419df4
jmp 0x41302a
cmp byte [0x2389ce1], bl
je 0x411be5
mov eax, dword [esp + 0x1c]
push eax
call fcn.00419df4
jmp 0x41302a
cmp byte [0x23893b1], bl
jne 0x4119bb
mov edx, dword [0x43641c]
mov eax, dword [0x436418]
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
push edi
call fcn.00427940
mov dword [esp + 0x2c], ebx
or ecx, dword [esp + 0x2c]
mov esi, eax
mov ebx, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
je 0x411c2d
add esi, 1
adc ebx, 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x24]
push edx
push edi
push str.File_size_is__lld_bytes
push 0x21e5
push str.handleProgram
push 5
call fcn.00401210
push ebx
push esi
push str.NumSectors_needed__lld
push 0x21e6
push str.handleProgram
push 5
call fcn.00401210
mov eax, esi
add esp, 0x30
or eax, ebx
jne 0x411c88
push str.FileSizeNumSectors_is_0._Nothing_to_program__
push 0x21ea
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x411801
mov eax, dword [0x3a85b20]
mov ecx, dword [0x3a85b24]
mov edx, eax
or edx, ecx
jne 0x411caa
mov dword [0x3a85b20], esi
mov dword [0x3a85b24], ebx
jmp 0x411d5e
cmp ebx, ecx
jl 0x411d5e
jg 0x411cbc
cmp esi, eax
jbe 0x411d5e
mov edx, dword [0x43641c]
push 0
push 0x800
push edx
mov edx, dword [0x436418]
push edx
push ecx
push eax
call fcn.00424440
push edx
push eax
lea edx, [esp + 0xd08]
call fcn.00414560
mov eax, dword [esp + 0x34]
push 0
push 0x800
push eax
push edi
lea edx, [esp + 0x518]
call fcn.00414560
mov ecx, dword [0x43641c]
mov edx, dword [0x436418]
push ecx
push edx
mov edx, dword [0x3a85b24]
lea eax, [esp + 0x520]
push eax
mov eax, dword [0x3a85b20]
push ebx
push esi
lea ecx, [esp + 0xd2c]
push ecx
push 0x3a85b28
push edx
push eax
push str.User_requested_to_ONLY_program_num_partition_sectors__lld_of__s___s_._nTo_load_this_file_completely_would_require__lld_sectors___s__and_SectorSizeInBytes_lld._nThis_is_usually_a_MISTAKE_but_there_is_a_use_case_where_you_want_to_write_only_part_of_the_image__n
push 0x21ff
push str.handleProgram
push 3
call fcn.00401210
mov ecx, dword [0x3a85b20]
mov edx, dword [0x3a85b24]
add esp, 0x54
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
push 0x100000
push 0
push 0x253a740
call fcn.0041c990
add esp, 0xc
push str._program
push 0x277a800
call fcn.004188e0
add esp, 8
test eax, eax
jne 0x411da6
push str.missing_TAG__program_____Should_be_impossible_n
push 0x2211
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x411801
push 0
push 0x100000
push 0
push 0x100000
sub eax, 0x277a800
cdq
mov esi, edx
push esi
mov edi, eax
push edi
push 0
push 0
push 0
push 0
push 0x277a800
push 0x253a740
call fcn.0040b150
add esp, 0x30
cmp byte [0x23893ae], 0
push 0x253a740
mov eax, str._firmwarewrite
jne 0x411df2
mov eax, 0x42c004
call fcn.0040b080
add esp, 4
push 0x4300f8
add edi, 9
push 0x277a800
adc esi, 0
call fcn.004188e0
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
test ebx, ebx
jne 0x411e44
movsx eax, byte [esp + 0xe]
mov ecx, dword [esp + eax*4 + 0x58]
push ecx
push str.__s__tag_is_missing_attribute_num_partition_sectors_n
push 0x2224
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x411801
mov eax, ebx
sub eax, 0x277a800
cdq
cmp edx, esi
jl 0x411e9c
jg 0x411e56
cmp eax, edi
jbe 0x411e9c
mov ecx, 0x253a740
lea ebx, [ecx + 1]
mov dword [esp + 0x50], ebx
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x411e62
sub ecx, dword [esp + 0x50]
push 0
push 0x100000
push 0
push 0x100000
sub eax, edi
sbb edx, esi
push edx
push eax
push esi
push edi
push 0
push ecx
push 0x277a800
push 0x253a740
call fcn.0040b150
mov ebx, dword [esp + 0x70]
add esp, 0x30
mov eax, 0x253a740
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411ea4
mov edi, dword [esp + 0x10]
sub eax, edx
mov edx, dword [esp + 0x14]
push edx
push edi
mov ecx, 0x100000
push str.num_partition_sectors__lld_
sub ecx, eax
push ecx
lea edx, [eax + 0x253a740]
push edx
mov dword [esp + 0x98], 0
call fcn.00418f10
add esp, 0x14
push 0x430058
push ebx
call fcn.004188e0
add esp, 8
test eax, eax
jne 0x411f18
movsx eax, byte [esp + 0xe]
mov ecx, dword [esp + eax*4 + 0x58]
push ecx
push str.__s__tag_is_missing_first___after_num_partition_sectors_n
push 0x2237
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x411801
inc eax
push 0x430058
push eax
call fcn.004188e0
add esp, 8
test eax, eax
jne 0x411f53
movsx edx, byte [esp + 0xe]
mov eax, dword [esp + edx*4 + 0x58]
push eax
push str.__s__tag_is_missing_second___after_num_partition_sectors_n
push 0x2241
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x411801
inc eax
push 0x253a740
call fcn.0040b080
add esp, 4
push 0x100000
push 0x253a740
push 0x277a800
call fcn.004207b0
add esp, 0xc
cmp byte [0x23893a9], 0
je 0x411f9e
cmp byte [0x2389cda], 0
je 0x411fbb
push str._Using_VIP_n_t_t_NOTE:_skipharddriveread1__will_use_accurate_filesize_but_all_0xFF_data_
push 0x400
lea ecx, [esp + 0x100]
push ecx
jmp 0x411fcd
cmp byte [0x2389cda], 0
je 0x411fd5
push str._n_t_t_NOTE:_skipharddriveread1__will_use_accurate_filesize_but_all_0xFF_data_
push 0x400
lea edx, [esp + 0x100]
push edx
jmp 0x411fcd
push str._Using_VIP
push 0x400
lea eax, [esp + 0x100]
push eax
call fcn.00418f10
add esp, 0xc
push 0x4329d0
push 0x2252
push str.handleProgram
push 2
call fcn.00401210
movsx ecx, byte [esp + 0x1e]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + ecx*4 + 0x68]
lea edx, [esp + 0x108]
push edx
push eax
push esi
push str.__s__FILE:__s_s
push 0x2253
push str.handleProgram
push 2
call fcn.00401210
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
add esp, 0x2c
push 0
push 0x400
push ecx
push edx
lea edx, [esp + 0x108]
call fcn.00414560
mov eax, dword [0x3a85a5c]
mov ecx, dword [0x3a85a58]
add esp, 0x10
push eax
push ecx
push 0x3a85ae0
call fcn.00418f05
mov edx, dword [esp + 0x20]
add esp, 4
push eax
push edx
push edi
lea eax, [esp + 0x10c]
push eax
push esi
push str.__s____s___lld_sectors_needed_at_location__i_on_LUN__lld
push 0x2257
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x2c
push str._n
push 0x2258
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x10
call fcn.0040b110
cmp byte [0x2389c43], 0
je 0x41210e
mov eax, dword [0x2389cc8]
mov ecx, 0x100000
sub ecx, eax
push 0
push ecx
lea eax, [eax + 0x297a8c0]
call fcn.0040b050
push 0x297a8c0
mov eax, str._data__n
call fcn.0040b080
add esp, 0xc
push 0x297a8c0
mov eax, str._response_value_ACK__rawmode_true_
call fcn.0040b080
add esp, 4
push 0x297a8c0
mov eax, str.___n__data_
call fcn.0040b080
mov eax, 0x297a8c0
add esp, 4
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412100
sub eax, edx
mov dword [0x2389cc4], eax
call fcn.0040e2e0
cmp byte [0x23893b3], 0
jne 0x41213b
push esi
push str._s_FAILED___Please_see_log
push 0x226a
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x411801
push 0x42b81c
call fcn.0041917f
add esp, 4
lea esi, [esp + 0x68]
call fcn.00413cf0
cmp byte [0x2389c40], 0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
jne 0x412173
cmp byte [0x23893ad], 0
je 0x412189
xor eax, eax
mov ebx, 0x263a740
mov dword [0x2389ca8], eax
mov dword [0x2389cac], eax
call fcn.00417350
mov ecx, dword [esp + 0x20]
sub dword [0x2389bc0], ecx
mov edx, dword [esp + 0x24]
mov byte [0x2389bca], 1
sbb dword [0x2389bc4], edx
cmp byte [esp + 0xf], 0
je 0x4121ee
mov ebx, dword [esp + 0x1c]
mov ecx, edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [0x3a85a6c]
push ecx
mov ecx, dword [0x3a85a68]
push edx
push eax
push ecx
lea edx, [esp + 0xc4]
push edx
call fcn.00401fc0
mov ecx, 7
mov esi, eax
lea edi, [esp + 0xac]
add esp, 0x18
rep movsd dword es:[edi], dword [esi]
jmp 0x41221e
mov eax, dword [0x3a85a4c]
mov ecx, dword [0x3a85a48]
mov edx, dword [0x3a85a6c]
push 0
push eax
mov eax, dword [0x3a85a68]
push ecx
push edx
push eax
call fcn.00424440
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
call fcn.00418c8a
add esp, 0x10
cmp dword [esp + 0x14], 0
jl 0x41250f
jg 0x412236
cmp dword [esp + 0x10], 0
jbe 0x41250f
lea esi, [esp + 0x80]
call fcn.00413cf0
cmp byte [0x2389cda], 0
jne 0x4122a5
cmp byte [esp + 0xf], 0
je 0x412284
mov edx, dword [esp + 0x1c]
mov eax, dword [0x3a85a00]
sub esp, 0x1c
mov edi, esp
mov ecx, 7
lea esi, [esp + 0xb0]
push edx
lea ebx, [esp + 0xf0]
rep movsd dword es:[edi], dword [esi]
call fcn.00401df0
add esp, 0x20
mov edi, eax
xor ebx, ebx
jmp 0x4122c8
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x3a85a00]
push eax
push ecx
push 1
push 0x277a800
call fcn.00419559
add esp, 0x10
mov edi, eax
xor ebx, ebx
jmp 0x4122c8
mov edi, dword [0x3a85a00]
mov ebx, dword [0x3a85a04]
push 0x100000
push 0xff
push 0x277a800
call fcn.0041c990
add esp, 0xc
mov edx, edi
or edx, ebx
je 0x412761
add dword [0x2389bc0], edi
lea esi, [esp + 0x50]
adc dword [0x2389bc4], ebx
call fcn.00413cf0
mov eax, dword [0x3a85a4c]
mov ecx, dword [0x3a85a48]
push eax
push ecx
push ebx
push edi
call fcn.00427940
mov dword [esp + 0x44], edx
mov edx, ecx
or edx, ebx
mov esi, eax
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x40], esi
je 0x41235e
mov ebx, dword [0x3a85a48]
mov eax, dword [0x3a85a4c]
add esi, 1
mov edx, 0
adc dword [esp + 0x44], edx
sub ebx, ecx
sbb eax, dword [esp + 0x8c]
mov dword [esp + 0x40], esi
mov dword [esp + 0x5c], edx
js 0x41235e
jg 0x412342
test ebx, ebx
je 0x41235e
mov ecx, dword [esp + 0x5c]
mov byte [edi + edx + 0x277a800], 0
add edx, 1
adc ecx, 0
cmp ecx, eax
jl 0x412346
jg 0x41235e
cmp edx, ebx
jb 0x412346
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x44], eax
jl 0x41237e
jg 0x412370
cmp esi, dword [esp + 0x10]
jbe 0x41237e
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov esi, ecx
add dword [esp + 0x48], esi
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x80]
adc dword [esp + 0x4c], edx
lea edi, [esp + 0x50]
lea ebx, [esp + 0x78]
call fcn.00414000
fild dword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
fdiv qword [0x433c80]
mov edx, dword [0x3a85a4c]
push 0
push 0x100000
push eax
mov eax, dword [0x3a85a48]
push ecx
push edx
push eax
fiadd dword [esp + 0x90]
fadd qword [esp + 0x88]
fstp qword [esp + 0x88]
call fcn.00424440
push edx
push eax
mov edx, 0x253a740
call fcn.00414560
add esp, 0x10
lea ecx, [esp + 0x68]
lea ebx, [esp + 0x28]
call fcn.00414000
fild dword [esp + 0x2c]
fdiv qword [0x433c80]
fiadd dword [esp + 0x28]
fcomp qword [0x433ca8]
fnstsw ax
test ah, 1
jne 0x412472
fld qword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [0x3a85a4c]
sub esp, 8
fstp qword [esp]
push 4
push ecx
mov ecx, dword [0x3a85a48]
push edx
push eax
push ecx
call fcn.00424440
push edx
push eax
mov edx, edi
lea ecx, [esp + 0x44]
call fcn.00413d20
add esp, 0x14
lea esi, [esp + 0x68]
call fcn.00413cf0
cmp byte [0x436422], 2
jne 0x41246e
push 0x42d9a0
call fcn.0041917f
add esp, 4
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov edx, dword [0x3a85a4c]
mov eax, dword [0x3a85a48]
push edi
push esi
push edx
push eax
call fcn.00424440
push edx
push eax
call fcn.0040b0e0
add esp, 8
test eax, eax
je 0x412798
sub dword [esp + 0x10], esi
sbb dword [esp + 0x14], edi
cmp byte [0x2389c40], 0
jne 0x4124b6
cmp byte [0x23893ad], 0
je 0x4124f7
mov ecx, dword [0x3a85a4c]
push edi
mov edi, dword [0x3a85a48]
push esi
push ecx
push edi
call fcn.00424440
add dword [0x2389ca8], eax
adc dword [0x2389cac], edx
imul edi, esi
mov eax, edi
test eax, eax
je 0x4124f7
push 0x263a788
push 0x263a740
mov ecx, 0x277a800
call fcn.00417390
add esp, 8
cmp dword [esp + 0x14], 0
jg 0x412236
jl 0x41250f
cmp dword [esp + 0x10], 0
ja 0x412236
lea esi, [esp + 0x50]
mov byte [0x2389bca], 0
call fcn.00413cf0
mov edx, dword [0x43641c]
mov eax, dword [0x436418]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
call fcn.00427940
or ecx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x412555
add eax, 1
adc edx, 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov esi, dword [0x3a85b24]
cmp edx, esi
jl 0x412577
mov ecx, dword [0x3a85b20]
jg 0x41256b
cmp eax, ecx
jbe 0x412577
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, esi
fldz
mov ecx, dword [0x3a85a48]
sub esp, 8
fstp qword [esp]
push 2
push edx
push eax
mov eax, dword [0x3a85a4c]
push eax
push ecx
call fcn.00424440
push edx
push eax
lea edx, [esp + 0x64]
lea ecx, [esp + 0x44]
call fcn.00413d20
add esp, 0x14
cmp byte [0x2389c40], 0
jne 0x4125bd
cmp byte [0x23893ad], 0
je 0x4126aa
mov esi, 0x263a788
mov ebx, 0x263a740
call fcn.00417490
push esi
mov eax, 0x2389c84
mov ecx, ebx
call fcn.00417570
add esp, 4
xor edi, edi
xor esi, esi
movzx edx, byte [edi + 0x2389c84]
push edx
mov eax, 0x100000
push 0x42ee4c
sub eax, esi
push eax
lea ecx, [esi + 0x253a740]
push ecx
call fcn.00418f10
add esi, 2
add esp, 0x10
inc edi
cmp esi, 0x40
jl 0x4125e0
push 0x42b81c
mov byte [edi*2 + 0x253a740], 0
call fcn.0041917f
mov edx, dword [0x2389cac]
mov eax, dword [0x2389ca8]
mov ecx, dword [esp + 0x3c]
add esp, 4
push 0x253a740
push edx
push eax
push ecx
push str.verify_programming__s_nSHA256___7lld_bytes___s_n
push 0x22ef
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x20
cmp byte [0x23893ad], 0
mov ecx, 8
mov esi, 0x2389c84
mov edi, 0x2389c64
rep movsd dword es:[edi], dword [esi]
je 0x4126aa
mov edx, dword [0x2389cac]
mov eax, dword [0x2389ca8]
mov ecx, dword [0x3a85a5c]
push 0x253a740
push edx
mov edx, dword [0x3a85a58]
push eax
mov eax, dword [esp + 0x44]
push 0x3a85ae0
push ecx
mov ecx, dword [0x2389c04]
push edx
push eax
push str._s_____LUN__lld_start_sector__s_SHA256___lld_bytes___s_n
push ecx
call fcn.00419576
add esp, 0x24
mov edx, dword [esp + 0x1c]
push edx
call fcn.00419df4
add esp, 4
cmp byte [0x2389c43], 0
je 0x412726
mov eax, dword [0x2389cc8]
mov ecx, 0x100000
sub ecx, eax
push 0
push ecx
lea eax, [eax + 0x297a8c0]
call fcn.0040b050
push 0x297a8c0
mov eax, str._data__n
call fcn.0040b080
add esp, 0xc
push 0x297a8c0
mov eax, str._response_value_ACK__rawmode_false_
call fcn.0040b080
add esp, 4
push 0x297a8c0
mov eax, str.___n__data_
call fcn.0040b080
mov eax, 0x297a8c0
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412718
sub eax, edx
mov dword [0x2389cc4], eax
mov edx, dword [0x2389bcc]
push edx
call fcn.00418e93
add esp, 4
call fcn.0040e2e0
cmp byte [0x23893b3], 0
jne 0x4127b2
push str.Please_see_log
push 0x230a
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x411801
mov edx, dword [esp + 0x38]
push edx
push str.Read_0_bytes_from__s
push 0x229e
push str.handleProgram
push 1
call fcn.00401210
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add esp, 0x14
push eax
push ecx
push str.There_are_still__lld_sectors_to_go
push 0x229f
jmp 0x4117f2
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417675
mov esp, ebp
pop ebp
ret
cmp byte [0x2389cdd], 0
je 0x412800
mov eax, 0x3a85b28
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4127c3
sub eax, edx
mov edx, eax
mov eax, str.Zeros16KB.bin
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4127d6
sub eax, esi
cmp edx, eax
jbe 0x4127e5
mov eax, edx
push eax
push str.Zeros16KB.bin
push 0x3a85b28
call fcn.00417bf7
add esp, 0xc
test eax, eax
je 0x412d50
cmp byte [0x2389c40], 0
je 0x412d50
push 0x100000
push 0
push 0x277a800
call fcn.0041c990
mov ecx, 0xa
mov esi, 0x42afb8
mov edi, 0x277a800
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
push 0x277a800
mov eax, str._data__n
movsb byte es:[edi], byte [esi]
call fcn.0040b080
add esp, 4
push 0x277a800
mov eax, 0x42d434
call fcn.0040b080
add esp, 4
push 0x3a85b28
push str.filename__s_
push 0x100000
push 0x253a740
call fcn.00418f10
push 0x277a800
mov eax, 0x253a740
call fcn.0040b080
mov eax, dword [0x3a85a4c]
mov ecx, dword [0x3a85a48]
add esp, 0x14
push eax
push ecx
push str.SECTOR_SIZE_IN_BYTES__lld_
push 0x100000
push 0x253a740
call fcn.00418f10
add esp, 0x14
push 0x277a800
mov eax, 0x253a740
call fcn.0040b080
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add esp, 4
push edx
push eax
push 0x42c044
push 0x100000
push 0x253a740
call fcn.00418f10
add esp, 0x14
push 0x277a800
mov eax, 0x253a740
call fcn.0040b080
mov ecx, dword [0x3a85a5c]
mov edx, dword [0x3a85a58]
add esp, 4
push ecx
push edx
push str.physical_partition_number__lld_
push 0x100000
push 0x253a740
call fcn.00418f10
add esp, 0x14
push 0x277a800
mov eax, 0x253a740
call fcn.0040b080
add esp, 4
push 0x3a85ae0
push str.start_sector__s_
push 0x100000
push 0x253a740
call fcn.00418f10
push 0x277a800
mov eax, 0x253a740
call fcn.0040b080
add esp, 0x14
push 0x277a800
mov eax, str.___n__data_
call fcn.0040b080
mov eax, 0x277a800
add esp, 4
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x412967
sub eax, ecx
push eax
push 0x277a800
push 0x23f8ee0
call fcn.004207b0
mov eax, 0x23f8ee0
add esp, 0xc
lea edx, [eax + 1]
jmp 0x412990
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412990
sub eax, edx
push 0
push eax
mov ebx, 0x23f8ee0
call fcn.00410d20
xor ebx, ebx
add esp, 8
cmp byte [0x2389c43], bl
je 0x4129c9
mov ecx, 8
mov esi, 0x2389c64
mov edi, 0x2389c84
rep movsd dword es:[edi], dword [esi]
jmp 0x412b58
push 0x800
mov edx, 0x42d888
mov ecx, 0x3a85b28
call fcn.00410ed0
add esp, 4
mov esi, eax
mov dword [esp + 0x1c], eax
call fcn.00413ca0
mov edi, edx
mov esi, eax
or eax, edi
jne 0x412a16
push 0x3a85b28
push str.Filesize_is_0_bytes_for__s._Previous__read__failed__
push 0x2352
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x411801
mov dword [0x2389ca8], ebx
mov dword [0x2389cac], ebx
mov ebx, 0x263a740
call fcn.00417350
mov ebx, 0x100000
push ebx
push 0
push 0x277a800
call fcn.0041c990
add esp, 0xc
push str.Calculating_SHA256
push 0x235d
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x10
test edi, edi
jl 0x412ab9
jg 0x412a64
cmp esi, ebx
jbe 0x412ab9
mov ecx, dword [esp + 0x1c]
push ecx
push ebx
push 1
push 0x277a800
call fcn.00419559
add dword [0x2389ca8], ebx
push 0x263a788
push 0x263a740
adc dword [0x2389cac], 0
mov eax, ebx
mov ecx, 0x277a800
call fcn.00417390
add esi, 0xfff00000
push 0x42d9a0
adc edi, 0xffffffff
call fcn.0041917f
add esp, 0x1c
test edi, edi
jg 0x412a64
jl 0x412ab9
cmp esi, ebx
ja 0x412a64
mov ebx, dword [esp + 0x1c]
push ebx
push esi
push 1
push 0x277a800
call fcn.00419559
add esp, 0x10
add dword [0x2389ca8], esi
adc dword [0x2389cac], edi
test esi, esi
je 0x412af7
push 0x263a788
push 0x263a740
mov eax, esi
mov ecx, 0x277a800
call fcn.00417390
add esp, 8
push ebx
call fcn.00419df4
add esp, 4
mov esi, 0x263a788
mov ebx, 0x263a740
call fcn.00417490
push esi
mov eax, 0x2389c84
mov ecx, ebx
call fcn.00417570
add esp, 4
xor edi, edi
xor esi, esi
movzx edx, byte [edi + 0x2389c84]
push edx
mov eax, 0x100000
push 0x42ee4c
sub eax, esi
push eax
lea ecx, [esi + 0x253a740]
push ecx
call fcn.00418f10
add esi, 2
add esp, 0x10
inc edi
cmp esi, 0x40
jl 0x412b23
mov byte [edi*2 + 0x253a740], 0
push 0x42b81c
call fcn.0041917f
mov edx, dword [0x2389cac]
mov eax, dword [0x2389ca8]
add esp, 4
push 0x253a740
push edx
push eax
push 0x3a85b28
push str.verify_programming_FROM_TARGET__s_nSHA256___7lld_bytes___s_n
push 0x2377
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x20
xor eax, eax
xor ecx, ecx
lea esp, [esp]
mov dl, byte [eax + 0x2389c64]
cmp dl, byte [eax + 0x2389c84]
jne 0x412bbd
add eax, 1
adc ecx, 0
js 0x412ba0
jg 0x412bbd
cmp eax, 0x20
jb 0x412ba0
cmp eax, 0x20
jne 0x412dac
test ecx, ecx
jne 0x412dac
push 0x432c30
push 0x2386
push str.handleProgram
push 2
call fcn.00401210
push 0x432c58
push 0x2387
push str.handleProgram
push 2
call fcn.00401210
push str.______________________________
push 0x2388
push str.handleProgram
push 2
call fcn.00401210
push 0x432ca8
push 0x2389
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push 0x432cd0
push 0x238a
push str.handleProgram
push 2
call fcn.00401210
push str.______________________
push 0x238b
push str.handleProgram
push 2
call fcn.00401210
push str.____________________________________
push 0x238c
push str.handleProgram
push 2
call fcn.00401210
push str.___________________________________
push 0x238d
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push 0x432d70
push 0x238e
push str.handleProgram
push 2
call fcn.00401210
push 0x432d98
push 0x238f
push str.handleProgram
push 2
call fcn.00401210
push str.__________________________
push 0x2390
push str.handleProgram
push 2
call fcn.00401210
push str.____________________
push 0x2391
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push str.__V__V__________________
push 0x2392
push str.handleProgram
push 2
call fcn.00401210
push str._____________________________n
push 0x2393
push str.handleProgram
push 2
call fcn.00401210
push str.FLASHING_WORKS._This_tool_is_able_to_successfully_flash_data_onto_this_device_n_n
push 0x2394
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x30
cmp dword [0x2389cc0], 0
jne 0x412d7c
push str.tempfile.bin
push 0x3a85b28
push str.Just_renamed_the_read_back_file__s_to__s
push 0x23b2
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x18
xor ebx, ebx
cmp byte [0x23893b3], bl
jne 0x412f07
push str.Please_see_log
push 0x23cf
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x411801
call fcn.00418ffe
mov eax, dword [eax]
push eax
push str.tempfile.bin
push 0x3a85b28
push str.unable_to_rename_the_file__s_to__s_errno_d
push 0x23b6
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x1c
jmp 0x411801
push 0x432c30
push 0x2398
push str.handleProgram
push 2
call fcn.00401210
push 0x432c58
push 0x2399
push str.handleProgram
push 2
call fcn.00401210
push str.______________________________
push 0x239a
push str.handleProgram
push 2
call fcn.00401210
push 0x432ca8
push 0x239b
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push 0x432cd0
push 0x239c
push str.handleProgram
push 2
call fcn.00401210
push str.______________________
push 0x239d
push str.handleProgram
push 2
call fcn.00401210
push str.____________________________________
push 0x239e
push str.handleProgram
push 2
call fcn.00401210
push str.___________________________________
push 0x239f
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push str.________________________
push 0x23a0
push str.handleProgram
push 2
call fcn.00401210
push str._____________________
push 0x23a1
push str.handleProgram
push 2
call fcn.00401210
push 0x432f04
push 0x23a2
push str.handleProgram
push 2
call fcn.00401210
push str.___________________
push 0x23a3
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push str.________________
push 0x23a4
push str.handleProgram
push 2
call fcn.00401210
push str.___________________________________________________n
push 0x23a5
push str.handleProgram
push 2
call fcn.00401210
push str.FLASHING_FAILED._This_tool_was_NOT_able_to_flash_data_onto_this_device_n_n
push 0x23a6
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x30
jmp 0x411801
push 0x433074
push 0x23d3
push str.handleProgram
push 4
call fcn.00401210
push 0x4329d0
push 0x23d4
push str.handleProgram
push 4
call fcn.00401210
push 0x433078
push 0x23d5
push str.handleProgram
push 4
call fcn.00401210
push str._n_n
push 0x23d6
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x40
cmp byte [0x2389ce0], bl
jne 0x41301e
mov edx, dword [0x2389bb8]
mov esi, dword [0x2389bbc]
mov ecx, edx
or ecx, esi
je 0x41301e
cmp esi, ebx
ja 0x412f8c
cmp edx, ebx
jbe 0x412ff9
mov ecx, dword [0x2389bc0]
mov eax, dword [0x2389bc4]
mov dword [esp + 0x28], ecx
mov ecx, eax
and eax, 0x7fffffff
mov dword [esp + 0x2c], eax
fild qword [esp + 0x28]
and ecx, 0x80000000
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ebx
fild qword [esp + 0x28]
mov eax, esi
mov ecx, esi
fchs
and eax, 0x7fffffff
faddp st(1)
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
and ecx, 0x80000000
fmul qword [0x433c88]
fild qword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ebx
fild qword [esp + 0x28]
fchs
faddp st(1)
fdivp st(1)
fstp dword [0x23893b4]
fld dword [0x23893b4]
sub esp, 8
fstp qword [esp]
push str.percent_files_transferred__6.2f__
push 0x23dd
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x18
mov edx, dword [0x2389bcc]
push edx
call fcn.00418e93
add esp, 4
mov ecx, dword [esp + 0x14fc]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00417675
mov esp, ebp
pop ebp
ret