Function at 0x411560
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.0041b5b0
mov eax, dword [0x4363f4]
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.0041d060
fldz
add esp, 0xc
fstp qword [esp + 0x70]
mov dword [esp + 0x58], 0x432bdc
mov dword [esp + 0x5c], 0x42bd7c
mov dword [esp + 0x60], 0x4331b8
mov byte [esp + 0xe], bl
mov byte [esp + 0xf], bl
cmp byte [0x2389f2e], bl
je 0x4115db
mov byte [esp + 0xe], 1
mov eax, 0x3a866a8
xor esi, esi
xor edi, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4115e7
sub eax, edx
je 0x411635
mov al, byte [esi + 0x3a866a8]
cmp al, 0xa
je 0x411608
cmp al, 0xd
je 0x411608
cmp al, 9
je 0x411608
cmp al, 0x20
jne 0x41160e
mov byte [esi + 0x3a866a8], bl
add esi, 1
mov eax, 0x3a866a8
adc edi, ebx
lea edx, [eax + 1]
jmp 0x411620
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411620
xor ecx, ecx
sub eax, edx
cmp edi, ecx
jl 0x4115f2
jg 0x411635
cmp esi, eax
jb 0x4115f2
mov eax, 0x3a866a8
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411640
sub eax, edx
je 0x41301d
cmp dword [0x238a76c], ebx
jl 0x4116a2
jg 0x411661
cmp dword [0x238a768], ebx
jbe 0x4116a2
mov ebx, 0x3a866a8
call fcn.0040fc70
test eax, eax
jne 0x4116a0
push ebx
push str._s_is_being_SKIPPED_since_it_was_not_in___files_provided_by_the_user_at_the_command_line
push 0x20a9
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.00417d45
mov esp, ebp
pop ebp
ret
xor ebx, ebx
cmp dword [0x238a774], ebx
jl 0x4116f3
jg 0x4116b4
cmp dword [0x238a770], ebx
jbe 0x4116f3
mov edi, 0x3a866a8
call fcn.0040fd50
test eax, eax
je 0x4116f3
push edi
push str.handleProgram____s_is_being_SKIPPED_since_it_was_in___notfiles_provided_by_the_user_at_the_command_line
push 0x20b2
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.00417d45
mov esp, ebp
pop ebp
ret
cmp byte [0x238a861], bl
jne 0x411729
cmp byte [0x238a860], bl
jne 0x411729
cmp byte [0x2389f31], bl
jne 0x411729
push 0x3a866a8
push str.In_handleProgram__s_
push 0x20bc
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x14
push str.sparse_true_
push 0x277b380
call fcn.00418fb0
add esp, 8
test eax, eax
je 0x411762
push 0x3a866a8
push str._s_is_a_sparse_image
push 0x20c3
push str.handleProgram
push 4
mov byte [esp + 0x23], 1
call fcn.00401210
add esp, 0x14
push 1
mov ecx, 0x3a866a8
call fcn.0040f4a0
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
cmp esi, ebx
jne 0x41182b
cmp byte [0x238a85f], bl
jne 0x4117f1
cmp byte [0x2389f31], bl
jne 0x4117f1
push 0x3a866a8
push 0x3a866a8
cmp byte [0x43740c], bl
jne 0x4117c1
push str._s_not_found._You_could_possibly_try___notfiles_s_OtherFileToSkip.bin__note__exiting_since_you_specified___noprompt_
push 0x20d5
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 0x20db
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.00417d45
mov esp, ebp
pop ebp
ret
push 0x3a866a8
push 0x3a866a8
push str._s_not_found._You_will_need___notfiles_s_when_loading_this_build_n_n
push 0x20ce
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.00417d45
mov esp, ebp
pop ebp
ret
mov eax, dword [0x3a865c8]
mov ecx, dword [0x3a865cc]
cmp eax, dword [0x437418]
jne 0x411846
cmp ecx, dword [0x43741c]
je 0x41186c
push ecx
push eax
push str.SectorSizeInBytes_changed_to__d
push 0x20e4
push str.handleProgram
push 4
mov dword [0x437418], eax
mov dword [0x43741c], ecx
call fcn.00401210
add esp, 0x18
push 0x800
mov edx, 0x42e7e0
mov ecx, esi
call fcn.00410f40
add esp, 4
mov dword [esp + 0x18], eax
cmp byte [esp + 0xf], bl
je 0x411929
push str.UNSPARSE_FILE_SIZE_
push 0x277b380
call fcn.00418fb0
push 0x430fb0
push eax
call fcn.00418fb0
mov dl, byte [eax + 1]
add esp, 0x10
xor ecx, ecx
xor esi, esi
cmp dl, 0x22
je 0x4118d5
jmp 0x4118c0
mov byte [esp + ecx + 0xe4], dl
mov dl, byte [ecx + eax + 2]
add ecx, 1
adc esi, ebx
cmp dl, 0x22
jne 0x4118c0
mov byte [esp + ecx + 0xe4], bl
lea ecx, [esp + 0x3f]
push ecx
lea edx, [esp + 0xe8]
push edx
call fcn.0040b350
add esp, 8
mov edi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edx
cmp byte [esp + 0x3f], bl
jne 0x411976
lea eax, [esp + 0xe4]
push eax
push str.Call_to_stringToNumber_failed_for_FileSize_with_value__s
push 0x20fd
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x14
push 1
call fcn.004017c0
push str.Trying_get_filesize__calling_fseek__
push 0x24b0
push str.ReturnFileSize
push 5
call fcn.00401210
mov esi, dword [esp + 0x28]
push 2
push ebx
push ebx
push esi
call fcn.0041935a
push esi
call fcn.0041809e
mov ecx, dword [esp + 0x3c]
add esp, 0x24
push ebx
push ebx
push ebx
push ecx
mov esi, eax
mov edi, edx
call fcn.0041935a
mov dword [esp + 0x34], edi
mov edx, edi
add esp, 0x10
mov dword [esp + 0x20], esi
mov edi, esi
mov eax, edi
or eax, edx
jne 0x4119a1
mov ecx, dword [esp + 0x1c]
push ecx
push str.Filesize_is_0_bytes._This_is_usually_a_mistake___Please_check__s
push 0x2108
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
push 1
call fcn.004017c0
add dword [0x238a740], edi
adc dword [0x238a744], edx
cmp byte [0x238a860], bl
jne 0x411bb3
cmp byte [0x238a85f], bl
je 0x411bc2
push 0x800
push ebx
push 0x23f8260
call fcn.0041d060
mov eax, 0x23f9260
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4119e0
push ebx
push 0x800
push ebx
push 0x800
push ebx
sub eax, edx
push eax
push ebx
push ebx
push ebx
push ebx
push 0x23f9260
push 0x23f8260
call fcn.0040b1b0
add esp, 0x30
or eax, edx
jne 0x411a3e
mov eax, 0x23f9260
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a20
sub eax, edx
push eax
push 0x23f9260
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x211d
jmp 0x4117ab
mov eax, 0x3a866a8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a46
sub eax, edx
mov edx, eax
mov eax, 0x23f8260
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a60
xor ecx, ecx
push ecx
push edx
push ebx
push 0x800
push ecx
push edx
push ebx
push ebx
push ebx
sub eax, esi
push eax
push 0x3a866a8
push 0x23f8260
call fcn.0040b1b0
add esp, 0x30
or eax, edx
jne 0x411ab5
mov eax, 0x3a866a8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x411a97
sub eax, edx
push eax
push 0x3a866a8
push str.Failed_to_copy_string__s_of_length__lld_bytes_into_flattenbuildto
push 0x2123
jmp 0x4117ab
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.00415cd0
cmp eax, 0xffffffff
jne 0x411ada
push 0x23f8260
push esi
push str.Failed_to_copy__s_n_t_t_tto__s_n_n
push 0x2129
jmp 0x4117ab
cmp eax, ebx
jne 0x411afd
push 0x23f8260
push esi
push str.Copied__s_n_t_t_tto__s_n_n
push 0x212d
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x18
cmp byte [0x2389f2c], bl
je 0x411bb3
mov edx, dword [0x238a73c]
mov esi, dword [0x238a738]
cmp edx, ebx
ja 0x411b21
cmp esi, ebx
jbe 0x411bb3
mov ecx, dword [0x238a740]
mov eax, dword [0x238a744]
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], esi
and ecx, 0x80000000
fmul qword [0x434bd0]
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 [0x2389f34]
fld dword [0x2389f34]
fstp qword [esp]
push str.percent_files_transferred__6.2f__
push 0x2132
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x18
mov edx, dword [esp + 0x18]
push edx
call fcn.0041a4c4
jmp 0x41301a
cmp byte [0x238a861], bl
je 0x411bd9
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a4c4
jmp 0x41301a
cmp byte [0x2389f31], bl
je 0x411bf0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041a4c4
jmp 0x41301a
mov edx, dword [0x43741c]
mov eax, dword [0x437418]
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
push edi
call fcn.00428010
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 0x411c2c
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 0x214b
push str.handleProgram
push 5
call fcn.00401210
push ebx
push esi
push str.NumSectors_needed__lld
push 0x214c
push str.handleProgram
push 5
call fcn.00401210
mov eax, esi
add esp, 0x30
or eax, ebx
jne 0x411c87
push str.FileSizeNumSectors_is_0._Nothing_to_program__
push 0x2150
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x4117ba
mov eax, dword [0x3a866a0]
mov ecx, dword [0x3a866a4]
mov edx, eax
or edx, ecx
jne 0x411ca9
mov dword [0x3a866a0], esi
mov dword [0x3a866a4], ebx
jmp 0x411d5d
cmp ebx, ecx
jl 0x411d5d
jg 0x411cbb
cmp esi, eax
jbe 0x411d5d
mov edx, dword [0x43741c]
push 0
push 0x800
push edx
mov edx, dword [0x437418]
push edx
push ecx
push eax
call fcn.00424b10
push edx
push eax
lea edx, [esp + 0xd08]
call fcn.00414590
mov eax, dword [esp + 0x34]
push 0
push 0x800
push eax
push edi
lea edx, [esp + 0x518]
call fcn.00414590
mov ecx, dword [0x43741c]
mov edx, dword [0x437418]
push ecx
push edx
mov edx, dword [0x3a866a4]
lea eax, [esp + 0x520]
push eax
mov eax, dword [0x3a866a0]
push ebx
push esi
lea ecx, [esp + 0xd2c]
push ecx
push 0x3a866a8
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 0x2165
push str.handleProgram
push 3
call fcn.00401210
mov ecx, dword [0x3a866a0]
mov edx, dword [0x3a866a4]
add esp, 0x54
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
push 0x100000
push 0
push 0x253b2c0
call fcn.0041d060
add esp, 0xc
push str._program
push 0x277b380
call fcn.00418fb0
add esp, 8
test eax, eax
jne 0x411da5
push str.missing_TAG__program_____Should_be_impossible_n
push 0x2177
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x4117ba
push 0
push 0x100000
push 0
push 0x100000
sub eax, 0x277b380
cdq
mov esi, edx
push esi
mov edi, eax
push edi
push 0
push 0
push 0
push 0
push 0x277b380
push 0x253b2c0
call fcn.0040b1b0
add esp, 0x30
cmp byte [0x2389f2e], 0
push 0x253b2c0
mov eax, str._firmwarewrite
jne 0x411df1
mov eax, 0x42d004
call fcn.0040b0e0
add esp, 4
push 0x431050
add edi, 9
push 0x277b380
adc esi, 0
call fcn.00418fb0
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
test ebx, ebx
jne 0x411e43
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 0x218a
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x4117ba
mov eax, ebx
sub eax, 0x277b380
cdq
cmp edx, esi
jl 0x411e9b
jg 0x411e55
cmp eax, edi
jbe 0x411e9b
mov ecx, 0x253b2c0
lea ebx, [ecx + 1]
mov dword [esp + 0x50], ebx
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x411e61
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 0x277b380
push 0x253b2c0
call fcn.0040b1b0
mov ebx, dword [esp + 0x70]
add esp, 0x30
mov eax, 0x253b2c0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411ea3
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 + 0x253b2c0]
push edx
mov dword [esp + 0x90], 0
call fcn.004195e0
add esp, 0x14
push 0x430fb0
push ebx
call fcn.00418fb0
add esp, 8
test eax, eax
jne 0x411f17
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 0x219d
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x4117ba
inc eax
push 0x430fb0
push eax
call fcn.00418fb0
add esp, 8
test eax, eax
jne 0x411f52
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 0x21a7
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x4117ba
inc eax
push 0x253b2c0
call fcn.0040b0e0
add esp, 4
push 0x100000
push 0x253b2c0
push 0x277b380
call fcn.00420e80
add esp, 0xc
cmp byte [0x2389f29], 0
je 0x411f9d
cmp byte [0x238a85a], 0
je 0x411fba
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 0x411fcc
cmp byte [0x238a85a], 0
je 0x411fd4
push str._n_t_t_NOTE:_skipharddriveread1__will_use_accurate_filesize_but_all_0xFF_data_
push 0x400
lea edx, [esp + 0x100]
push edx
jmp 0x411fcc
push str._Using_VIP
push 0x400
lea eax, [esp + 0x100]
push eax
call fcn.004195e0
add esp, 0xc
push 0x433858
push 0x21b8
push str.handleProgram
push 2
call fcn.00401210
movsx ecx, byte [esp + 0x1e]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + ecx*4 + 0x68]
lea edx, [esp + 0x108]
push edx
push eax
push esi
push str.__s__FILE:__s_s
push 0x21b9
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.00414590
mov eax, dword [0x3a865dc]
mov ecx, dword [0x3a865d8]
add esp, 0x10
push eax
push ecx
push 0x3a86660
call fcn.004195d5
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 0x21bd
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x2c
push str._n
push 0x21be
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x10
call fcn.0040b170
cmp byte [0x238a7c3], 0
je 0x41210e
mov eax, dword [0x238a848]
mov ecx, 0x100000
sub ecx, eax
push 0
push ecx
lea eax, [eax + 0x297b440]
call fcn.0040b0b0
push 0x297b440
mov eax, str._data__n
call fcn.0040b0e0
add esp, 0xc
push 0x297b440
mov eax, str._response_value_ACK__rawmode_true_
call fcn.0040b0e0
add esp, 4
push 0x297b440
mov eax, str.___n__data_
call fcn.0040b0e0
mov eax, 0x297b440
add esp, 4
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412100
sub eax, edx
mov dword [0x238a844], eax
call fcn.0040e350
cmp byte [0x2389f33], 0
jne 0x41213b
push esi
push str._s_FAILED___Please_see_log
push 0x21d0
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x4117ba
push 0x42c81c
call fcn.0041984f
add esp, 4
lea esi, [esp + 0x68]
call fcn.00413d40
cmp byte [0x238a7c0], 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 [0x2389f2d], 0
je 0x412189
xor eax, eax
mov ebx, 0x263b2c0
mov dword [0x238a828], eax
mov dword [0x238a82c], eax
call fcn.00417a20
mov ecx, dword [esp + 0x20]
sub dword [0x238a740], ecx
mov edx, dword [esp + 0x24]
mov byte [0x238a74a], 1
sbb dword [0x238a744], edx
cmp byte [esp + 0xf], 0
je 0x4121ee
mov ebx, dword [esp + 0x18]
mov ecx, edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [0x3a865ec]
push ecx
mov ecx, dword [0x3a865e8]
push edx
push eax
push ecx
lea edx, [esp + 0xc4]
push edx
call fcn.00401fa0
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 [0x3a865cc]
mov ecx, dword [0x3a865c8]
mov edx, dword [0x3a865ec]
push 0
push eax
mov eax, dword [0x3a865e8]
push ecx
push edx
push eax
call fcn.00424b10
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.0041935a
add esp, 0x10
cmp dword [esp + 0x14], 0
jl 0x412500
jg 0x412236
cmp dword [esp + 0x10], 0
jbe 0x412500
lea esi, [esp + 0x78]
call fcn.00413d40
cmp byte [0x238a85a], 0
jne 0x4122a2
cmp byte [esp + 0xf], 0
je 0x412281
mov edx, dword [esp + 0x18]
mov eax, dword [0x3a86580]
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.00401dd0
add esp, 0x20
mov edi, eax
xor ebx, ebx
jmp 0x4122c5
mov eax, dword [esp + 0x18]
mov ecx, dword [0x3a86580]
push eax
push ecx
push 1
push 0x277b380
call fcn.00419c29
add esp, 0x10
mov edi, eax
xor ebx, ebx
jmp 0x4122c5
mov edi, dword [0x3a86580]
mov ebx, dword [0x3a86584]
push 0x100000
push 0xff
push 0x277b380
call fcn.0041d060
add esp, 0xc
mov edx, edi
or edx, ebx
je 0x412750
add dword [0x238a740], edi
lea esi, [esp + 0x50]
adc dword [0x238a744], ebx
call fcn.00413d40
mov eax, dword [0x3a865cc]
mov ecx, dword [0x3a865c8]
push eax
push ecx
push ebx
push edi
call fcn.00428010
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 0x41235b
mov ebx, dword [0x3a865c8]
mov eax, dword [0x3a865cc]
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 0x41235b
jg 0x41233f
test ebx, ebx
je 0x41235b
mov ecx, dword [esp + 0x5c]
mov byte [edi + edx + 0x277b380], 0
add edx, 1
adc ecx, 0
cmp ecx, eax
jl 0x412343
jg 0x41235b
cmp edx, ebx
jb 0x412343
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x44], eax
jl 0x41237b
jg 0x41236d
cmp esi, dword [esp + 0x10]
jbe 0x41237b
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 + 0x78]
adc dword [esp + 0x4c], edx
lea edi, [esp + 0x50]
lea ebx, [esp + 0x80]
call fcn.00414040
fild dword [esp + 0x84]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
fdiv qword [0x434bc8]
mov edx, dword [0x3a865cc]
push 0
push 0x100000
push eax
mov eax, dword [0x3a865c8]
push ecx
push edx
push eax
fiadd dword [esp + 0x98]
fadd qword [esp + 0x88]
fstp qword [esp + 0x88]
call fcn.00424b10
push edx
push eax
mov edx, 0x253b2c0
call fcn.00414590
add esp, 0x10
lea ecx, [esp + 0x68]
lea ebx, [esp + 0x28]
call fcn.00414040
fild dword [esp + 0x2c]
fdiv qword [0x434bc8]
fiadd dword [esp + 0x28]
fcomp qword [0x434bf8]
fnstsw ax
test ah, 1
jne 0x412463
mov ecx, dword [0x3a865c8]
fld qword [esp + 0x70]
imul ecx, dword [esp + 0x48]
sub esp, 8
mov esi, 4
mov edx, edi
fstp qword [esp]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00413d80
add esp, 0xc
lea esi, [esp + 0x68]
call fcn.00413d40
cmp byte [0x43740e], 2
jne 0x41245f
push 0x42e8f8
call fcn.0041984f
add esp, 4
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov edx, dword [0x3a865cc]
mov eax, dword [0x3a865c8]
push edi
push esi
push edx
push eax
call fcn.00424b10
push edx
push eax
call fcn.0040b140
add esp, 8
test eax, eax
je 0x412787
sub dword [esp + 0x10], esi
sbb dword [esp + 0x14], edi
cmp byte [0x238a7c0], 0
jne 0x4124a7
cmp byte [0x2389f2d], 0
je 0x4124e8
mov ecx, dword [0x3a865cc]
push edi
mov edi, dword [0x3a865c8]
push esi
push ecx
push edi
call fcn.00424b10
add dword [0x238a828], eax
adc dword [0x238a82c], edx
imul esi, edi
test esi, esi
je 0x4124e8
push 0x263b308
push 0x263b2c0
mov eax, esi
mov ecx, 0x277b380
call fcn.00417a60
add esp, 8
cmp dword [esp + 0x14], 0
jg 0x412236
jl 0x412500
cmp dword [esp + 0x10], 0
ja 0x412236
lea esi, [esp + 0x50]
mov byte [0x238a74a], 0
call fcn.00413d40
mov edx, dword [0x43741c]
mov eax, dword [0x437418]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
call fcn.00428010
or ecx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x412546
add eax, 1
adc edx, 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov esi, dword [0x3a866a4]
cmp edx, esi
jl 0x412566
mov ecx, dword [0x3a866a0]
jg 0x41255c
cmp eax, ecx
jbe 0x412566
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov eax, ecx
imul eax, dword [0x3a865c8]
fldz
sub esp, 8
mov esi, 2
lea edx, [esp + 0x58]
fstp qword [esp]
push eax
lea ecx, [esp + 0x3c]
call fcn.00413d80
add esp, 0xc
cmp byte [0x238a7c0], 0
jne 0x4125a1
cmp byte [0x2389f2d], 0
je 0x412699
mov esi, 0x263b308
mov ebx, 0x263b2c0
call fcn.00417b60
push esi
mov eax, 0x238a804
mov ecx, ebx
call fcn.00417c40
add esp, 4
xor edi, edi
xor esi, esi
jmp 0x4125d0
movzx eax, byte [edi + 0x238a804]
push eax
mov ecx, 0x100000
push 0x42fda4
sub ecx, esi
push ecx
lea edx, [esi + 0x253b2c0]
push edx
call fcn.004195e0
add esi, 2
add esp, 0x10
inc edi
cmp esi, 0x40
jl 0x4125d0
push 0x42c81c
mov byte [edi*2 + 0x253b2c0], 0
call fcn.0041984f
mov eax, dword [0x238a82c]
mov ecx, dword [0x238a828]
mov edx, dword [esp + 0x20]
add esp, 4
push 0x253b2c0
push eax
push ecx
push edx
push str.verify_programming__s_nSHA256___7lld_bytes___s_n
push 0x2255
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x20
cmp byte [0x2389f2d], 0
mov ecx, 8
mov esi, 0x238a804
mov edi, 0x238a7e4
rep movsd dword es:[edi], dword [esi]
je 0x412699
mov eax, dword [0x238a82c]
mov ecx, dword [0x238a828]
mov edx, dword [0x3a865dc]
push 0x253b2c0
push eax
mov eax, dword [0x3a865d8]
push ecx
mov ecx, dword [esp + 0x28]
push 0x3a86660
push edx
mov edx, dword [0x238a784]
push eax
push ecx
push str._s_____LUN__lld_start_sector__s_SHA256___lld_bytes___s_n
push edx
call fcn.00419c46
add esp, 0x24
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a4c4
add esp, 4
cmp byte [0x238a7c3], 0
je 0x412715
mov eax, dword [0x238a848]
mov ecx, 0x100000
sub ecx, eax
push 0
push ecx
lea eax, [eax + 0x297b440]
call fcn.0040b0b0
push 0x297b440
mov eax, str._data__n
call fcn.0040b0e0
add esp, 0xc
push 0x297b440
mov eax, str._response_value_ACK__rawmode_false_
call fcn.0040b0e0
add esp, 4
push 0x297b440
mov eax, str.___n__data_
call fcn.0040b0e0
mov eax, 0x297b440
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412707
sub eax, edx
mov dword [0x238a844], eax
mov edx, dword [0x238a74c]
push edx
call fcn.00419563
add esp, 4
call fcn.0040e350
cmp byte [0x2389f33], 0
jne 0x4127a1
push str.Please_see_log
push 0x2270
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x4117ba
mov edx, dword [esp + 0x1c]
push edx
push str.Read_0_bytes_from__s
push 0x2204
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 0x2205
jmp 0x4117ab
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14f0]
xor ecx, esp
call fcn.00417d45
mov esp, ebp
pop ebp
ret
cmp byte [0x238a85d], 0
je 0x4127ef
mov eax, 0x3a866a8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4127b2
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 0x4127c5
sub eax, esi
cmp edx, eax
jbe 0x4127d4
mov eax, edx
push eax
push str.Zeros16KB.bin
push 0x3a866a8
call fcn.004182c7
add esp, 0xc
test eax, eax
je 0x412d40
cmp byte [0x238a7c0], 0
je 0x412d40
push 0x100000
push 0
push 0x277b380
call fcn.0041d060
mov ecx, 0xa
mov esi, 0x42bfb8
mov edi, 0x277b380
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
push 0x277b380
mov eax, str._data__n
movsb byte es:[edi], byte [esi]
call fcn.0040b0e0
add esp, 4
push 0x277b380
mov eax, 0x42e37c
call fcn.0040b0e0
add esp, 4
push 0x3a866a8
push str.filename__s_
push 0x100000
push 0x253b2c0
call fcn.004195e0
push 0x277b380
mov eax, 0x253b2c0
call fcn.0040b0e0
mov eax, dword [0x3a865cc]
mov ecx, dword [0x3a865c8]
add esp, 0x14
push eax
push ecx
push str.SECTOR_SIZE_IN_BYTES__lld_
push 0x100000
push 0x253b2c0
call fcn.004195e0
add esp, 0x14
push 0x277b380
mov eax, 0x253b2c0
call fcn.0040b0e0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add esp, 4
push edx
push eax
push 0x42d044
push 0x100000
push 0x253b2c0
call fcn.004195e0
add esp, 0x14
push 0x277b380
mov eax, 0x253b2c0
call fcn.0040b0e0
mov ecx, dword [0x3a865dc]
mov edx, dword [0x3a865d8]
add esp, 4
push ecx
push edx
push str.physical_partition_number__lld_
push 0x100000
push 0x253b2c0
call fcn.004195e0
add esp, 0x14
push 0x277b380
mov eax, 0x253b2c0
call fcn.0040b0e0
add esp, 4
push 0x3a86660
push str.start_sector__s_
push 0x100000
push 0x253b2c0
call fcn.004195e0
push 0x277b380
mov eax, 0x253b2c0
call fcn.0040b0e0
add esp, 0x14
push 0x277b380
mov eax, str.___n__data_
call fcn.0040b0e0
mov eax, 0x277b380
add esp, 4
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x412956
sub eax, ecx
push eax
push 0x277b380
push 0x23f9a60
call fcn.00420e80
mov eax, 0x23f9a60
add esp, 0xc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412980
sub eax, edx
push 0
push eax
mov ebx, 0x23f9a60
call fcn.00410d90
xor ebx, ebx
add esp, 8
cmp byte [0x238a7c3], bl
je 0x4129b9
mov ecx, 8
mov esi, 0x238a7e4
mov edi, 0x238a804
rep movsd dword es:[edi], dword [esi]
jmp 0x412b48
push 0x800
mov edx, 0x42e7e0
mov ecx, 0x3a866a8
call fcn.00410f40
add esp, 4
mov esi, eax
mov dword [esp + 0x18], eax
call fcn.00413cf0
mov edi, edx
mov esi, eax
or eax, edi
jne 0x412a06
push 0x3a866a8
push str.Filesize_is_0_bytes_for__s._Previous__read__failed__
push 0x22b8
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x14
jmp 0x4117ba
mov dword [0x238a828], ebx
mov dword [0x238a82c], ebx
mov ebx, 0x263b2c0
call fcn.00417a20
mov ebx, 0x100000
push ebx
push 0
push 0x277b380
call fcn.0041d060
add esp, 0xc
push str.Calculating_SHA256
push 0x22c3
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x10
test edi, edi
jl 0x412aa9
jg 0x412a54
cmp esi, ebx
jbe 0x412aa9
mov ecx, dword [esp + 0x18]
push ecx
push ebx
push 1
push 0x277b380
call fcn.00419c29
add dword [0x238a828], ebx
push 0x263b308
push 0x263b2c0
adc dword [0x238a82c], 0
mov eax, ebx
mov ecx, 0x277b380
call fcn.00417a60
add esi, 0xfff00000
push 0x42e8f8
adc edi, 0xffffffff
call fcn.0041984f
add esp, 0x1c
test edi, edi
jg 0x412a54
jl 0x412aa9
cmp esi, ebx
ja 0x412a54
mov ebx, dword [esp + 0x18]
push ebx
push esi
push 1
push 0x277b380
call fcn.00419c29
add esp, 0x10
add dword [0x238a828], esi
adc dword [0x238a82c], edi
test esi, esi
je 0x412ae7
push 0x263b308
push 0x263b2c0
mov eax, esi
mov ecx, 0x277b380
call fcn.00417a60
add esp, 8
push ebx
call fcn.0041a4c4
add esp, 4
mov esi, 0x263b308
mov ebx, 0x263b2c0
call fcn.00417b60
push esi
mov eax, 0x238a804
mov ecx, ebx
call fcn.00417c40
add esp, 4
xor edi, edi
xor esi, esi
movzx edx, byte [edi + 0x238a804]
push edx
mov eax, 0x100000
push 0x42fda4
sub eax, esi
push eax
lea ecx, [esi + 0x253b2c0]
push ecx
call fcn.004195e0
add esi, 2
add esp, 0x10
inc edi
cmp esi, 0x40
jl 0x412b13
mov byte [edi*2 + 0x253b2c0], 0
push 0x42c81c
call fcn.0041984f
mov edx, dword [0x238a82c]
mov eax, dword [0x238a828]
add esp, 4
push 0x253b2c0
push edx
push eax
push 0x3a866a8
push str.verify_programming_FROM_TARGET__s_nSHA256___7lld_bytes___s_n
push 0x22dd
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x20
xor eax, eax
xor ecx, ecx
lea esp, [esp]
mov dl, byte [eax + 0x238a7e4]
cmp dl, byte [eax + 0x238a804]
jne 0x412bad
add eax, 1
adc ecx, 0
js 0x412b90
jg 0x412bad
cmp eax, 0x20
jb 0x412b90
cmp eax, 0x20
jne 0x412d9c
test ecx, ecx
jne 0x412d9c
push 0x433ab8
push 0x22ec
push str.handleProgram
push 2
call fcn.00401210
push 0x433ae0
push 0x22ed
push str.handleProgram
push 2
call fcn.00401210
push str.______________________________
push 0x22ee
push str.handleProgram
push 2
call fcn.00401210
push 0x433b30
push 0x22ef
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push 0x433b58
push 0x22f0
push str.handleProgram
push 2
call fcn.00401210
push str.______________________
push 0x22f1
push str.handleProgram
push 2
call fcn.00401210
push str.____________________________________
push 0x22f2
push str.handleProgram
push 2
call fcn.00401210
push str.___________________________________
push 0x22f3
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push 0x433bf8
push 0x22f4
push str.handleProgram
push 2
call fcn.00401210
push 0x433c20
push 0x22f5
push str.handleProgram
push 2
call fcn.00401210
push str.__________________________
push 0x22f6
push str.handleProgram
push 2
call fcn.00401210
push str.____________________
push 0x22f7
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push str.__V__V__________________
push 0x22f8
push str.handleProgram
push 2
call fcn.00401210
push str._____________________________n
push 0x22f9
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 0x22fa
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x30
cmp dword [0x238a840], 0
jne 0x412d6c
push str.tempfile.bin
push 0x3a866a8
push str.Just_renamed_the_read_back_file__s_to__s
push 0x2318
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x18
xor ebx, ebx
cmp byte [0x2389f33], bl
jne 0x412ef7
push str.Please_see_log
push 0x2335
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x10
jmp 0x4117ba
call fcn.004196ce
mov eax, dword [eax]
push eax
push str.tempfile.bin
push 0x3a866a8
push str.unable_to_rename_the_file__s_to__s_errno_d
push 0x231c
push str.handleProgram
push 1
call fcn.00401210
add esp, 0x1c
jmp 0x4117ba
push 0x433ab8
push 0x22fe
push str.handleProgram
push 2
call fcn.00401210
push 0x433ae0
push 0x22ff
push str.handleProgram
push 2
call fcn.00401210
push str.______________________________
push 0x2300
push str.handleProgram
push 2
call fcn.00401210
push 0x433b30
push 0x2301
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push 0x433b58
push 0x2302
push str.handleProgram
push 2
call fcn.00401210
push str.______________________
push 0x2303
push str.handleProgram
push 2
call fcn.00401210
push str.____________________________________
push 0x2304
push str.handleProgram
push 2
call fcn.00401210
push str.___________________________________
push 0x2305
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push str.________________________
push 0x2306
push str.handleProgram
push 2
call fcn.00401210
push str._____________________
push 0x2307
push str.handleProgram
push 2
call fcn.00401210
push 0x433d8c
push 0x2308
push str.handleProgram
push 2
call fcn.00401210
push str.___________________
push 0x2309
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x40
push str.________________
push 0x230a
push str.handleProgram
push 2
call fcn.00401210
push str.___________________________________________________n
push 0x230b
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 0x230c
push str.handleProgram
push 2
call fcn.00401210
add esp, 0x30
jmp 0x4117ba
push 0x433efc
push 0x2339
push str.handleProgram
push 4
call fcn.00401210
push 0x433858
push 0x233a
push str.handleProgram
push 4
call fcn.00401210
push 0x433f00
push 0x233b
push str.handleProgram
push 4
call fcn.00401210
push str._n_n
push 0x233c
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x40
cmp byte [0x238a860], bl
jne 0x41300e
mov edx, dword [0x238a738]
mov esi, dword [0x238a73c]
mov ecx, edx
or ecx, esi
je 0x41300e
cmp esi, ebx
ja 0x412f7c
cmp edx, ebx
jbe 0x412fe9
mov ecx, dword [0x238a740]
mov eax, dword [0x238a744]
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 [0x434bd0]
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 [0x2389f34]
fld dword [0x2389f34]
sub esp, 8
fstp qword [esp]
push str.percent_files_transferred__6.2f__
push 0x2343
push str.handleProgram
push 4
call fcn.00401210
add esp, 0x18
mov edx, dword [0x238a74c]
push edx
call fcn.00419563
add esp, 4
mov ecx, dword [esp + 0x14fc]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00417d45
mov esp, ebp
pop ebp
ret