Function at 0x4188b0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x42c004]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x44], eax
mov edi, ecx
xor eax, eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], eax
mov dword [0x42ca88], eax
call fcn.004130d0
mov ebx, eax
mov dword [ebp - 0x20], ebx
test ebx, ebx
jns 0x418927
push str.ERROR:_Unable_to_open_device_in_restore_mode_n
call fcn.004035a0
xor eax, eax
add esp, 4
cmp ebx, 0xfffffffe
sete al
add eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041c84a
mov esp, ebp
pop ebp
ret
push dword [edi + 0x28]
push str.Device__s_has_successfully_entered_restore_mode_n
call fcn.00403550
mov eax, dword [edi + 0x3c]
mov ebx, dword [sym.imp.imobiledevice.dll_restored_query_value]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 8]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x28]
push eax
push str.HardwareInfo
push ecx
mov dword [ebp - 0x30], ecx
call ebx
mov esi, dword [sym.imp.plist.dll_plist_dict_get_item]
add esp, 0x14
test eax, eax
jne 0x418a9f
xorps xmm0, xmm0
mov byte [ebp - 9], 0
push str.Hardware_Information:_n
movlpd qword [ebp - 0x1c], xmm0
call fcn.00403550
add esp, 4
push str.BoardID
push dword [ebp - 0x28]
call esi
mov edi, dword [sym.imp.plist.dll_plist_get_uint_val]
mov esi, eax
add esp, 8
test esi, esi
je 0x4189be
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 1
jne 0x4189be
lea eax, [ebp - 0x1c]
push eax
push esi
call edi
push dword [ebp - 0x1c]
push str.BoardID:__d_n
call fcn.00403550
add esp, 0x10
push str.ChipID
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x4189fb
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 1
jne 0x4189fb
lea eax, [ebp - 0x1c]
push eax
push esi
call edi
push dword [ebp - 0x1c]
push str.ChipID:__d_n
call fcn.00403550
add esp, 0x10
push str.UniqueChipID
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x418a3b
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 1
jne 0x418a3b
lea eax, [ebp - 0x1c]
push eax
push esi
call edi
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push str.UniqueChipID:__llu_n
call fcn.00403550
add esp, 0x14
push str.ProductionMode
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x418a8a
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
test eax, eax
jne 0x418a8a
lea eax, [ebp - 9]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_bool_val]
cmp byte [ebp - 9], 1
mov ecx, str.false
mov eax, str.true
cmovne eax, ecx
push eax
push str.ProductionMode:__s_n
call fcn.00403550
add esp, 0x10
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_free]
mov edi, dword [ebp - 0x34]
add esp, 4
mov esi, dword [sym.imp.plist.dll_plist_dict_get_item]
lea eax, [ebp - 0x28]
push eax
push str.SavedDebugInfo
push dword [ebp - 0x30]
call ebx
add esp, 0xc
test eax, eax
jne 0x418bb0
push str.PreviousExitStatus
push dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
call esi
mov ebx, dword [sym.imp.plist.dll_plist_get_node_type]
mov esi, eax
add esp, 8
test esi, esi
je 0x418b0a
push esi
call ebx
add esp, 4
cmp eax, 3
jne 0x418b0a
lea eax, [ebp - 0x10]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
push dword [ebp - 0x10]
push str.Previous_restore_exit_status:__s_n
call fcn.00403550
push dword [ebp - 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x14
mov dword [ebp - 0x10], 0
push str.USBLog
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x418b57
push esi
call ebx
add esp, 4
cmp eax, 3
jne 0x418b57
lea eax, [ebp - 0x10]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
push dword [ebp - 0x10]
push str.USB_log_is_available:_n_s_n
call fcn.00403550
push dword [ebp - 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x14
mov dword [ebp - 0x10], 0
push str.PanicLog
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x418ba4
push esi
call ebx
add esp, 4
cmp eax, 3
jne 0x418ba4
lea eax, [ebp - 0x10]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
push dword [ebp - 0x10]
push str.Panic_log_is_available:_n_s_n
call fcn.00403550
push dword [ebp - 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x14
mov dword [ebp - 0x10], 0
push dword [ebp - 0x28]
call dword [sym.imp.plist.dll_plist_free]
add esp, 4
push str.BBTicket
push dword [edi + 4]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, dword [sym.imp.plist.dll_plist_copy]
add esp, 8
test eax, eax
je 0x418bd9
push dword [edi + 4]
call esi
mov ecx, dword [edi + 0x3c]
add esp, 4
mov dword [ecx + 4], eax
push str.Starting_FDR_listener_thread_n
mov dword [ebp - 0x18], 0
call fcn.00403550
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x18]
add esp, 4
xor edx, edx
push eax
call fcn.00405220
add esp, 4
test eax, eax
jne 0x418c2f
push eax
push eax
push dword [ebp - 0x18]
push 0x4057e0
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x418c3c
push str.ERROR:_Failed_to_start_FDR_listener_thread_n
call fcn.004035a0
add esp, 4
xor eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x418c3c
push str.ERROR:_Failed_to_start_FDR_Ctrl_channel_n
call fcn.004035a0
add esp, 4
call dword [sym.imp.plist.dll_plist_new_dict]
mov edi, dword [sym.imp.plist.dll_plist_new_uint]
mov ebx, eax
push 0
push 0
call edi
push eax
push str.AutoBootDelay
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
mov eax, dword [ebp - 0x34]
add esp, 0x14
mov eax, dword [eax + 0x24]
test eax, eax
je 0x418cd0
push eax
call esi
mov esi, dword [sym.imp.plist.dll_plist_dict_remove_item]
add esp, 4
mov edi, eax
push str.FusingStatus
push edi
call esi
push str.PkHash
push edi
call esi
push edi
mov edi, dword [sym.imp.plist.dll_plist_dict_set_item]
push str.BBUpdaterState
push ebx
call edi
mov eax, dword [ebp - 0x34]
add esp, 0x1c
push str.Nonce
push dword [eax + 0x24]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, dword [sym.imp.plist.dll_plist_copy]
add esp, 8
test eax, eax
je 0x418cca
push eax
call esi
add esp, 4
push eax
push str.BasebandNonce
push ebx
call edi
add esp, 0xc
mov edi, dword [sym.imp.plist.dll_plist_new_uint]
push str.UserOrInternal
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.BootImageType
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push 1
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.CreateFilesystemPartitions
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str.RELEASE
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.DFUFileType
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push 0
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.DataImage
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push 0x41e520
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.FirmwareDirectory
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push 1
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.FlashNOR
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str.Release
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.KernelCacheType
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str.production
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.NORImageType
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x418ddb
push eax
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.RestoreBootArgs
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str._tmp_Per2.tmp
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.RestoreBundlePath
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push 0
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.RootToInstall
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push 1
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.SystemImage
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str.User
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.SystemImageType
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str.SystemPartitionPadding
push str.Info
push 2
push dword [ebp - 0x38]
call dword [sym.imp.plist.dll_plist_access_path]
add esp, 0x10
test eax, eax
je 0x418e7c
push eax
call esi
mov edi, dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 4
mov esi, eax
jmp 0x418f00
call dword [sym.imp.plist.dll_plist_new_dict]
push 0
push 0x500
mov esi, eax
call edi
push eax
push 0x4280f8
push esi
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0x14
push 0
push 0xa0
call edi
push eax
push 0x4280fc
push esi
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0x14
push 0
push 0x140
call edi
push eax
push 0x428100
push esi
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0x14
push 0
push 0x280
call edi
push eax
push 0x428104
push esi
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0x14
push 0
push 0x50
call edi
mov edi, dword [sym.imp.plist.dll_plist_dict_set_item]
push eax
push 0x428108
push esi
call edi
add esp, 0x14
push esi
push str.SystemPartitionPadding
push ebx
call edi
add esp, 0xc
call fcn.004037f0
mov esi, eax
test esi, esi
je 0x418f37
push esi
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.UUID
push ebx
call edi
add esp, 0xc
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edi, dword [sym.imp.plist.dll_plist_new_bool]
push 0
call edi
add esp, 4
push eax
push str.UpdateBaseband
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push str.Info
push 0x423b7c
push str.Manifest
push 3
push dword [ebp - 0x38]
call dword [sym.imp.plist.dll_plist_access_path]
add esp, 0x14
test eax, eax
je 0x418fde
push str.RequiredCapacity
push eax
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x418fde
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x418fde
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
push dword [ebp - 0x10]
push str.TZ0RequiredCapacity:__s_n
call fcn.00403610
push esi
call dword [sym.imp.plist.dll_plist_copy]
add esp, 0x14
push eax
push str.TZ0RequiredCapacity
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push dword [ebp - 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 1
call edi
add esp, 4
push eax
push str.PersonalizedDuringPreflight
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
mov edi, dword [ebp - 0x34]
add esp, 0xc
mov esi, dword [ebp - 0x30]
mov eax, dword [edi + 0x3c]
push dword [eax + 0x1c]
push dword [eax + 0x18]
push ebx
push esi
call dword [sym.imp.imobiledevice.dll_restored_start_restore]
add esp, 0x10
test eax, eax
je 0x419045
push str.ERROR:_Unable_to_start_the_restore_process_n
call fcn.004035a0
add esp, 4
push ebx
call dword [sym.imp.plist.dll_plist_free]
add esp, 4
mov ecx, edi
call fcn.00412b40
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041c84a
mov esp, ebp
pop ebp
ret
push ebx
call dword [sym.imp.plist.dll_plist_free]
mov eax, dword [edi + 0x6c]
add esp, 4
test eax, eax
je 0x419070
push dword [edi + 0x70]
movsd xmm0, qword [0x4299a8]
sub esp, 8
movsd qword [esp], xmm0
push 1
call eax
add esp, 0x10
test byte [edi], 1
jne 0x419532
mov ebx, dword [ebp - 0x20]
nop dword [eax]
test ebx, ebx
jns 0x419094
push str.ERROR:_Unable_to_successfully_restore_device_n
call fcn.004035a0
add esp, 4
or dword [edi], 1
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.imobiledevice.dll_restored_receive]
add esp, 8
test eax, eax
je 0x4190b5
push str.No_data_to_read_n
call fcn.00403610
jmp 0x41951c
push str.MsgType
push dword [ebp - 0x24]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x4194a0
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x4194a0
lea eax, [ebp - 0x2c]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
mov esi, dword [ebp - 0x2c]
add esp, 8
mov ecx, str.DataRequestMsg
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419120
test dl, dl
je 0x41911c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419120
add eax, 2
add ecx, 2
test dl, dl
jne 0x419100
xor eax, eax
jmp 0x419125
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41914a
push dword [ebp - 0x44]
mov esi, dword [ebp - 0x30]
mov ecx, edi
push dword [ebp - 0x38]
mov edx, dword [ebp - 0x40]
push dword [ebp - 0x24]
push esi
call fcn.00418140
add esp, 0x10
mov ebx, eax
jmp 0x419489
mov ecx, str.PreviousRestoreLogMsg
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419171
test dl, dl
je 0x41916d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419171
add eax, 2
add ecx, 2
test dl, dl
jne 0x419151
xor eax, eax
jmp 0x419176
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4191e3
push str.PreviousRestoreLog
push dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x4191ce
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x4191ce
lea eax, [ebp - 0x20]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
push dword [ebp - 0x20]
push str.Previous_Restore_Log_Received:_n_s_n
call fcn.00403550
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x14
xor ebx, ebx
jmp 0x419486
push str.Failed_to_parse_restore_log_from_PreviousRestoreLog_plist_n
call fcn.00403610
add esp, 4
or ebx, 0xffffffff
jmp 0x419486
mov ecx, str.ProgressMsg
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419210
test dl, dl
je 0x41920c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419210
add eax, 2
add ecx, 2
test dl, dl
jne 0x4191f0
xor eax, eax
jmp 0x419215
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41922a
mov edx, dword [ebp - 0x24]
mov ecx, edi
call fcn.004134f0
mov ebx, eax
jmp 0x419486
mov ecx, str.StatusMsg
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419251
test dl, dl
je 0x41924d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419251
add eax, 2
add ecx, 2
test dl, dl
jne 0x419231
xor eax, eax
jmp 0x419256
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4192b3
mov edx, dword [ebp - 0x24]
call fcn.00413830
cmp dword [0x42ca88], 0
mov ebx, eax
je 0x419486
call dword [sym.imp.plist.dll_plist_new_dict]
push str.ReceivedFinalStatusMsg
mov esi, eax
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.MsgType
push esi
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push esi
push dword [ebp - 0x30]
call dword [sym.imp.imobiledevice.dll_restored_send]
push esi
call dword [sym.imp.plist.dll_plist_free]
add esp, 0xc
or dword [edi], 1
jmp 0x419486
mov eax, str.BBUpdateStatusMsg
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x4192d8
test cl, cl
je 0x4192d4
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x4192d8
add esi, 2
add eax, 2
test cl, cl
jne 0x4192b8
xor eax, eax
jmp 0x4192dd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x419416
mov edi, dword [ebp - 0x24]
push str.Accepted
push edi
call dword [sym.imp.plist.dll_plist_dict_get_item]
lea ecx, [ebp - 9]
mov byte [ebp - 9], 0
push ecx
push eax
call dword [sym.imp.plist.dll_plist_get_bool_val]
add esp, 0x10
cmp byte [ebp - 9], 0
jne 0x419324
push str.ERROR:_device_didnt_accept_BasebandData_n
call fcn.004035a0
mov edi, dword [ebp - 0x34]
add esp, 4
or ebx, 0xffffffff
jmp 0x419486
push str.done
push str.Output
push 2
push edi
mov byte [ebp - 0x11], 0
call dword [sym.imp.plist.dll_plist_access_path]
mov ebx, dword [sym.imp.plist.dll_plist_get_node_type]
mov esi, eax
add esp, 0x10
test esi, esi
je 0x419362
push esi
call ebx
add esp, 4
test eax, eax
jne 0x419362
lea eax, [ebp - 0x11]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_bool_val]
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x419402
push str.Updating_Baseband_completed._n
call fcn.00403550
add esp, 4
push str.provisioning
push str.Output
push 2
push edi
call dword [sym.imp.plist.dll_plist_access_path]
mov esi, eax
add esp, 0x10
test esi, esi
je 0x41940f
push esi
call ebx
add esp, 4
cmp eax, 5
jne 0x41940f
push str.IMEI
push esi
mov dword [ebp - 0x20], 0
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x41940f
push esi
call ebx
add esp, 4
cmp eax, 3
jne 0x41940f
lea eax, [ebp - 0x20]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
push str.Provisioning:_n
call fcn.00403550
add esp, 0xc
push dword [ebp - 0x20]
push str.IMEI:_s_n
call fcn.00403550
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, dword [ebp - 0x34]
add esp, 0xc
xor ebx, ebx
jmp 0x419486
push str.Updating_Baseband_in_progress..._n
call fcn.00403550
add esp, 4
mov edi, dword [ebp - 0x34]
xor ebx, ebx
jmp 0x419486
push str.Unknown_message_type_received_n
call fcn.00403610
add esp, 4
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x10]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.plist.dll_plist_to_xml]
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp eax, 0x10000
ja 0x419467
push dword [ebp - 0x20]
push eax
push str.D:_a1_sidevicerestore_srccommon.c
push str._s:printing__i_bytes_plist:_n_s
call fcn.00403550
add esp, 0x10
jmp 0x41947a
push eax
push str.D:_a1_sidevicerestore_srccommon.c
push str._s:supressed_printing__i_bytes_plist..._n
call fcn.00403550
add esp, 0xc
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov esi, dword [ebp - 0x30]
push dword [ebp - 0x2c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push dword [ebp - 0x24]
call dword [sym.imp.plist.dll_plist_free]
jmp 0x41951c
push str.Unknown_message_received:_n
call fcn.00403610
add esp, 4
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x10]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.plist.dll_plist_to_xml]
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp eax, 0x10000
ja 0x4194f1
push dword [ebp - 0x20]
push eax
push str.D:_a1_sidevicerestore_srccommon.c
push str._s:printing__i_bytes_plist:_n_s
call fcn.00403550
add esp, 0x10
jmp 0x419504
push eax
push str.D:_a1_sidevicerestore_srccommon.c
push str._s:supressed_printing__i_bytes_plist..._n
call fcn.00403550
add esp, 0xc
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push dword [ebp - 0x24]
call dword [sym.imp.plist.dll_plist_free]
mov esi, dword [ebp - 0x30]
add esp, 4
mov dword [ebp - 0x24], 0
test byte [edi], 1
je 0x419080
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x41956d
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
push ebx
call esi
cmp eax, 0x102
jne 0x41956d
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x41956d
mov eax, dword [ecx]
test eax, eax
je 0x419568
push eax
mov dword [ecx], 0
call dword [sym.imp.imobiledevice.dll_idevice_disconnect]
add esp, 4
push 0xffffffffffffffff
push ebx
call esi
mov ecx, edi
call fcn.00412b40
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0041c84a
mov esp, ebp
pop ebp
ret