Function at 0x404060
Capabilities:
Check for time delay via queryperformancecounter
Create directory
Delete file
Get disk size
Move file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x434
mov eax, dword [0x40e004]
xor eax, esp
mov dword [esp + 0x430], eax
push ebx
mov ebx, dword [ebp + 0xc]
xor eax, eax
push esi
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_signal]
or ecx, 0xffffffff
push edi
push 0x403ea0
push 2
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x98], eax
call esi
push 0x403ea0
push 0xf
call esi
mov edi, 1
add esp, 0x10
cmp dword [ebp + 8], edi
jle 0x407703
nop dword [eax]
mov esi, dword [ebx + edi*4]
mov ecx, 0x40a61c
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404140
test dl, dl
je 0x40413c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404140
add eax, 2
add ecx, 2
test dl, dl
jne 0x404120
xor eax, eax
jmp 0x404145
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a35
mov ecx, str.__debug
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404174
test dl, dl
je 0x404170
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404174
add eax, 2
add ecx, 2
test dl, dl
jne 0x404154
xor eax, eax
jmp 0x404179
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a35
mov ecx, 0x40a628
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4041a8
test dl, dl
je 0x4041a4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4041a8
add eax, 2
add ecx, 2
test dl, dl
jne 0x404188
xor eax, eax
jmp 0x4041ad
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a09
mov ecx, str.__udid
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4041e0
test dl, dl
je 0x4041dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4041e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4041c0
xor eax, eax
jmp 0x4041e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a09
mov ecx, 0x40a634
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404214
test dl, dl
je 0x404210
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404214
add eax, 2
add ecx, 2
test dl, dl
jne 0x4041f4
xor eax, eax
jmp 0x404219
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049dd
mov ecx, str.__source
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404248
test dl, dl
je 0x404244
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404248
add eax, 2
add ecx, 2
test dl, dl
jne 0x404228
xor eax, eax
jmp 0x40424d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049dd
mov ecx, 0x40a644
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404280
test dl, dl
je 0x40427c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404280
add eax, 2
add ecx, 2
test dl, dl
jne 0x404260
xor eax, eax
jmp 0x404285
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049d0
mov ecx, str.__interactive
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4042b4
test dl, dl
je 0x4042b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4042b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x404294
xor eax, eax
jmp 0x4042b9
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049d0
mov ecx, 0x40a658
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4042e8
test dl, dl
je 0x4042e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4042e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4042c8
xor eax, eax
jmp 0x4042ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a9f
mov ecx, str.__help
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404320
test dl, dl
je 0x40431c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404320
add eax, 2
add ecx, 2
test dl, dl
jne 0x404300
xor eax, eax
jmp 0x404325
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a9f
mov ecx, str.backup
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404354
test dl, dl
je 0x404350
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404354
add eax, 2
add ecx, 2
test dl, dl
jne 0x404334
xor eax, eax
jmp 0x404359
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404366
mov dword [esp + 0x3c], eax
jmp 0x404a44
mov ecx, str.restore
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404390
test dl, dl
je 0x40438c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404390
add eax, 2
add ecx, 2
test dl, dl
jne 0x404370
xor eax, eax
jmp 0x404395
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4043a7
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x404a44
mov ecx, str.__system
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4043d0
test dl, dl
je 0x4043cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4043d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4043b0
xor eax, eax
jmp 0x4043d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4043e3
or dword [esp + 0x44], 2
jmp 0x404a40
mov ecx, str.__reboot
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404410
test dl, dl
je 0x40440c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404410
add eax, 2
add ecx, 2
test dl, dl
jne 0x4043f0
xor eax, eax
jmp 0x404415
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404423
and dword [esp + 0x44], 0xfffffffb
jmp 0x404a40
mov ecx, str.__no_reboot
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404450
test dl, dl
je 0x40444c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404450
add eax, 2
add ecx, 2
test dl, dl
jne 0x404430
xor eax, eax
jmp 0x404455
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404463
or dword [esp + 0x44], 4
jmp 0x404a40
mov ecx, str.__copy
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404490
test dl, dl
je 0x40448c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404490
add eax, 2
add ecx, 2
test dl, dl
jne 0x404470
xor eax, eax
jmp 0x404495
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4044a3
or dword [esp + 0x44], 8
jmp 0x404a40
mov ecx, str.__settings
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4044d0
test dl, dl
je 0x4044cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4044d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4044b0
xor eax, eax
jmp 0x4044d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4044e3
or dword [esp + 0x44], 0x10
jmp 0x404a40
mov ecx, str.__remove
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404510
test dl, dl
je 0x40450c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404510
add eax, 2
add ecx, 2
test dl, dl
jne 0x4044f0
xor eax, eax
jmp 0x404515
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404523
or dword [esp + 0x44], 0x20
jmp 0x404a40
mov ecx, str.__skip_apps
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404550
test dl, dl
je 0x40454c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404550
add eax, 2
add ecx, 2
test dl, dl
jne 0x404530
xor eax, eax
jmp 0x404555
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404566
or dword [esp + 0x44], 0x1000
jmp 0x404a40
mov ecx, str.__password
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404590
test dl, dl
je 0x40458c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404590
add eax, 2
add ecx, 2
test dl, dl
jne 0x404570
xor eax, eax
jmp 0x404595
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4045d4
mov eax, dword [ebx + edi*4 + 4]
inc edi
test eax, eax
je 0x407710
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4045bb
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ebx + edi*4]
add esp, 4
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
push eax
call esi
mov dword [esp + 0x54], eax
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x404a4a
mov ecx, str.cloud
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404600
test dl, dl
je 0x4045fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404600
add eax, 2
add ecx, 2
test dl, dl
jne 0x4045e0
xor eax, eax
jmp 0x404605
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4046b9
mov esi, dword [ebx + edi*4 + 4]
inc edi
mov dword [esp + 0x3c], 7
test esi, esi
je 0x404a81
mov ecx, 0x40a720
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404650
test dl, dl
je 0x40464c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404650
add eax, 2
add ecx, 2
test dl, dl
jne 0x404630
xor eax, eax
jmp 0x404655
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404666
or dword [esp + 0x44], 0x400
jmp 0x404a40
mov ecx, 0x40a724
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404690
test dl, dl
je 0x40468c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404690
add eax, 2
add ecx, 2
test dl, dl
jne 0x404670
xor eax, eax
jmp 0x404695
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4046a6
or dword [esp + 0x44], 0x800
jmp 0x404a40
push esi
push str.Invalid_argument__s_for_cloud_command__must_be_either_on_or_off._n
call fcn.004013c0
add esp, 8
jmp 0x404a40
mov ecx, str.__full
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4046e0
test dl, dl
je 0x4046dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4046e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4046c0
xor eax, eax
jmp 0x4046e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4046f6
or dword [esp + 0x44], 0x200
jmp 0x404a40
mov ecx, str.info
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404720
test dl, dl
je 0x40471c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404720
add eax, 2
add ecx, 2
test dl, dl
jne 0x404700
xor eax, eax
jmp 0x404725
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404741
mov eax, 2
mov dword [0x40e018], 0
mov dword [esp + 0x3c], eax
jmp 0x404a44
mov ecx, str.list
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404768
test dl, dl
je 0x404764
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404768
add eax, 2
add ecx, 2
test dl, dl
jne 0x404748
xor eax, eax
jmp 0x40476d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404789
mov eax, 3
mov dword [0x40e018], 0
mov dword [esp + 0x3c], eax
jmp 0x404a44
mov ecx, str.unback
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4047b0
test dl, dl
je 0x4047ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4047b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404790
xor eax, eax
jmp 0x4047b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4047c7
mov eax, 4
mov dword [esp + 0x3c], eax
jmp 0x404a44
mov ecx, str.encryption
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4047f0
test dl, dl
je 0x4047ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4047f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4047d0
xor eax, eax
jmp 0x4047f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4048f9
mov esi, dword [ebx + edi*4 + 4]
mov dword [esp + 0x3c], 5
test esi, esi
je 0x404a8b
mov ecx, 0x40a720
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404838
test dl, dl
je 0x404834
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404838
add eax, 2
add ecx, 2
test dl, dl
jne 0x404818
xor eax, eax
jmp 0x40483d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404848
or dword [esp + 0x44], 0x40
jmp 0x404891
mov ecx, 0x40a724
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404870
test dl, dl
je 0x40486c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404870
add eax, 2
add ecx, 2
test dl, dl
jne 0x404850
xor eax, eax
jmp 0x404875
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404883
or dword [esp + 0x44], 0x80
jmp 0x404891
push esi
push str.Invalid_argument__s_for_encryption_command__must_be_either_on_or_off._n
call fcn.004013c0
add esp, 8
mov eax, dword [esp + 0x48]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test eax, eax
je 0x4048ad
push eax
call esi
add esp, 4
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4048c3
push ecx
call esi
add esp, 4
mov dword [esp + 0x50], 0
mov eax, dword [ebx + edi*4 + 8]
add edi, 2
test eax, eax
je 0x404a40
mov ecx, dword [esp + 0x44]
test cl, 0x40
je 0x4048ec
push eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
call eax
mov dword [esp + 0x4c], eax
jmp 0x404a3d
test cl, cl
jns 0x404a40
jmp 0x4045bb
mov ecx, str.changepw
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404920
test dl, dl
je 0x40491c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404920
add eax, 2
add ecx, 2
test dl, dl
jne 0x404900
xor eax, eax
jmp 0x404925
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4049b3
or dword [esp + 0x44], 0x100
mov esi, dword [esp + 0x48]
mov dword [esp + 0x3c], 5
test esi, esi
je 0x40495b
push esi
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call esi
add esp, 4
mov dword [esp + 0x48], 0
jmp 0x404961
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x404977
push ecx
call esi
add esp, 4
mov dword [esp + 0x50], 0
mov eax, dword [ebx + edi*4 + 4]
inc edi
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
test eax, eax
je 0x4045cb
push eax
call esi
inc edi
mov dword [esp + 0x54], eax
add esp, 4
mov eax, dword [ebx + edi*4]
test eax, eax
je 0x404a95
push eax
call esi
mov dword [esp + 0x4c], eax
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x404a4a
cmp dword [esp + 0x40], 0
jne 0x407710
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
mov dword [esp + 0x40], ecx
jmp 0x404a4e
mov dword [esp + 0x9c], 1
jmp 0x404a40
mov eax, dword [ebx + edi*4 + 4]
inc edi
test eax, eax
je 0x407710
cmp byte [eax], 0
je 0x407710
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
push eax
call esi
mov dword [esp + 0x74], eax
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x404a4a
mov eax, dword [ebx + edi*4 + 4]
inc edi
test eax, eax
je 0x407710
cmp byte [eax], 0
je 0x407710
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
push eax
call esi
mov dword [esp + 0x68], eax
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x404a4a
push 1
call dword [sym.imp.imobiledevice.dll_idevice_set_debug_level]
add esp, 4
mov eax, dword [esp + 0x3c]
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
mov ecx, dword [esp + 0x40]
inc edi
cmp edi, dword [ebp + 8]
jl 0x404110
cmp eax, 0xffffffff
je 0x407703
cmp eax, 5
je 0x404afc
cmp eax, 7
je 0x404afc
test ecx, ecx
jne 0x404abd
push str.No_target_backup_directory_specified._n
jmp 0x407708
push str.No_argument_given_for_cloud_command__requires_either_on_or_off._n
jmp 0x407708
push str.No_argument_given_for_encryption_command__requires_either_on_or_off._n
jmp 0x407708
push str.Old_and_new_passwords_have_to_be_passed_as_arguments_for_the_changepw_command_n
jmp 0x407708
mov edx, ebx
call fcn.00403ec0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0xe0]
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
je 0x404b04
push dword [esp + 0x40]
push str.ERROR:_Backup_directory___s__does_not_exist__n
call fcn.004013c0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x40], str..this_folder_is_not_present_on_purpose
mov eax, dword [esp + 0x64]
mov dword [esp + 0x5c], 0
test eax, eax
je 0x404b50
push eax
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.imobiledevice.dll_idevice_new]
add esp, 8
test eax, eax
je 0x404b9b
push dword [esp + 0x64]
push str.No_device_found_with_udid__s__is_it_plugged_in__n
call fcn.004013c0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x5c]
push 0
push eax
call dword [sym.imp.imobiledevice.dll_idevice_new]
add esp, 8
test eax, eax
je 0x404b89
push str.No_device_found__is_it_plugged_in__n
call fcn.004013c0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x60]
call dword [sym.imp.imobiledevice.dll_idevice_get_udid]
add esp, 8
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x404bb2
push dword [esp + 0x64]
call esi
mov edx, eax
add esp, 4
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x3c]
xor ebx, ebx
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov edi, dword [sym.imp.plist.dll_plist_get_bool_val]
mov byte [esp + 0x8e], 0
mov dword [esp + 0x4c], ebx
cmp ecx, 5
jne 0x404c28
cmp dword [esp + 0x9c], ebx
jne 0x404eee
cmp dword [esp + 0x50], ebx
jne 0x404eee
cmp dword [esp + 0x48], ebx
jne 0x404eee
push dword [esp + 0x5c]
call dword [sym.imp.imobiledevice.dll_idevice_free]
add esp, 4
push str.ERROR:_Cant_get_password_input_in_non_interactive_mode._Either_pass_password_s__on_the_command_line__or_enable_interactive_mode_with__i_or___interactive._n
call fcn.004013c0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
cmp ecx, 7
je 0x404eee
push 0
push str.Info.plist
push edx
push dword [esp + 0x4c]
call fcn.00401080
mov ebx, eax
add esp, 0x10
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x4c], ebx
cmp eax, 1
je 0x404c5d
cmp eax, 4
jne 0x404da8
lea eax, [esp + 0xe0]
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
je 0x404cb7
push dword [esp + 0x5c]
call dword [sym.imp.imobiledevice.dll_idevice_free]
add esp, 4
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push dword [esp + 0x70]
push dword [esp + 0x44]
push str.ERROR:_Backup_directory___s__is_invalid._No_Info.plist_found_for_UDID__s._n
call fcn.004013c0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
push 0
push str.Manifest.plist
push dword [esp + 0x78]
push dword [esp + 0x4c]
call fcn.00401080
mov esi, eax
lea eax, [esp + 0xf0]
push eax
push esi
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 0x18
test eax, eax
je 0x404ced
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edx, esi
mov dword [esp + 0x60], 0
lea ecx, [esp + 0x60]
call fcn.004012a0
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x404d54
push dword [esp + 0x5c]
call dword [sym.imp.imobiledevice.dll_idevice_free]
add esp, 4
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call ebx
add esp, 4
push esi
call ebx
add esp, 4
push dword [esp + 0x70]
push dword [esp + 0x44]
push str.ERROR:_Backup_directory___s__is_invalid._No_Manifest.plist_found_for_UDID__s._n
call fcn.004013c0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
push str.IsEncrypted
push eax
call dword [sym.imp.plist.dll_plist_dict_get_item]
add esp, 8
mov dword [esp + 0x6c], eax
test eax, eax
je 0x404d8a
push eax
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
test eax, eax
jne 0x404d8a
lea eax, [esp + 0x8e]
push eax
push dword [esp + 0x70]
call edi
add esp, 8
push dword [esp + 0x60]
mov eax, dword [sym.imp.plist.dll_plist_free]
call eax
add esp, 4
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
mov eax, dword [0x40e018]
cmp eax, 1
jl 0x404dc8
push dword [esp + 0x40]
push str.Backup_directory_is___s__n
call fcn.004013c0
mov eax, dword [0x40e018]
add esp, 8
cmp byte [esp + 0x8e], 0
je 0x404eee
cmp eax, 1
jl 0x404de8
push str.This_is_an_encrypted_backup._n
call fcn.004013c0
add esp, 4
cmp dword [esp + 0x50], 0
jne 0x404eee
cmp dword [esp + 0x9c], 0
je 0x404e85
push str.Enter_backup_password
push str._s:
push 2
call esi
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 2
call esi
add esp, 4
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
add esp, 4
lea ecx, [esp + 0x138]
call fcn.00403ce0
push 2
call esi
add esp, 4
push eax
push 0xa
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
lea eax, [esp + 0x140]
push eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
call eax
mov esi, eax
add esp, 0xc
mov dword [esp + 0x50], esi
test esi, esi
je 0x404e85
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404e70
sub ecx, edx
jne 0x404eee
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push dword [esp + 0x5c]
call dword [sym.imp.imobiledevice.dll_idevice_free]
mov eax, dword [esp + 0x40]
add esp, 4
cmp eax, 1
jne 0x404ec0
push str.ERROR:_a_backup_password_is_required_to_restore_an_encrypted_backup._Cannot_continue._n
call fcn.004013c0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
cmp eax, 4
jne 0x407717
push str.ERROR:_a_backup_password_is_required_to_unback_an_encrypted_backup._Cannot_continue._n
call fcn.004013c0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
push str.idevicebackup2
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], 0
push eax
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_lockdownd_client_new_with_handshake]
add esp, 0xc
test eax, eax
je 0x404f47
push eax
push str.ERROR:_Could_not_connect_to_lockdownd__error_code__d_n
call fcn.004013c0
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_idevice_free]
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.imobiledevice.dll_lockdownd_get_value]
lea eax, [esp + 0x6c]
push eax
push str.WillEncrypt
push str.com.apple.mobile.backup
push dword [esp + 0x94]
mov byte [esp + 0x67], 0
mov dword [esp + 0x7c], 0
call esi
mov eax, dword [esp + 0x7c]
add esp, 0x10
test eax, eax
je 0x404faa
push eax
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
test eax, eax
jne 0x404f99
lea eax, [esp + 0x57]
push eax
push dword [esp + 0x70]
call edi
add esp, 8
push dword [esp + 0x6c]
mov edi, dword [sym.imp.plist.dll_plist_free]
call edi
add esp, 4
jmp 0x404fb0
mov edi, dword [sym.imp.plist.dll_plist_free]
lea eax, [esp + 0x6c]
mov dword [esp + 0xd4], 0
push eax
push str.ProductVersion
push 0
push dword [esp + 0x94]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x7c], 0
call esi
mov eax, dword [esp + 0x7c]
add esp, 0x10
test eax, eax
je 0x405023
push eax
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x405012
lea eax, [esp + 0xd4]
push eax
push dword [esp + 0x70]
call dword [sym.imp.plist.dll_plist_get_string_val]
add esp, 8
push dword [esp + 0x6c]
call edi
add esp, 4
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x4050a3
lea ecx, [esp + 0x118]
mov dword [esp + 0x110], 0
push ecx
lea ecx, [esp + 0x118]
mov dword [esp + 0x118], 0
push ecx
lea ecx, [esp + 0x118]
mov dword [esp + 0x120], 0
push ecx
push str._d._d._d
push eax
call fcn.00401400
add esp, 0x14
cmp eax, 2
jl 0x4050a3
movzx edi, byte [esp + 0x110]
movzx eax, byte [esp + 0x114]
shl edi, 8
or edi, eax
movzx eax, byte [esp + 0x118]
shl edi, 8
or edi, eax
mov dword [esp + 0x94], edi
mov esi, dword [sym.imp.imobiledevice.dll_lockdownd_start_service]
lea eax, [esp + 0x7c]
push eax
push str.com.apple.mobile.notification_proxy
push dword [esp + 0x90]
mov dword [esp + 0xc4], 0
call esi
add esp, 0xc
test eax, eax
jne 0x40515f
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x40515f
cmp word [eax], 0
je 0x40515f
lea ecx, [esp + 0xb8]
push ecx
push eax
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_np_client_new]
add esp, 0xc
push 0
push 0x401830
push dword [esp + 0xc0]
call dword [sym.imp.imobiledevice.dll_np_set_notify_callback]
add esp, 0xc
mov dword [esp + 0x120], str.com.apple.itunes_client.syncCancelRequest
lea eax, [esp + 0x120]
mov dword [esp + 0x124], str.com.apple.itunes_client.syncSuspendRequest
mov dword [esp + 0x128], str.com.apple.itunes_client.syncResumeRequest
mov dword [esp + 0x12c], str.com.apple.mobile.backup.domain_changed
push eax
push dword [esp + 0xbc]
mov dword [esp + 0x138], 0
call dword [sym.imp.imobiledevice.dll_np_observe_notifications]
jmp 0x40516e
push str.com.apple.mobile.notification_proxy
push str.ERROR:_Could_not_start_service__s._n
call fcn.004013c0
mov eax, dword [esp + 0x44]
add esp, 8
mov dword [esp + 0x80], 0
test eax, eax
je 0x405189
cmp eax, 1
jne 0x4051d3
mov eax, dword [esp + 0x7c]
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esp + 0x7c]
mov byte [eax + 2], cl
lea eax, [esp + 0x7c]
push eax
push str.com.apple.afc
push dword [esp + 0x90]
call esi
add esp, 0xc
test eax, eax
jne 0x4051d3
mov eax, dword [esp + 0x7c]
cmp word [eax], 0
je 0x4051d7
lea ecx, [esp + 0x80]
push ecx
push eax
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_afc_client_new]
add esp, 0xc
mov eax, dword [esp + 0x7c]
mov edi, dword [sym.imp.imobiledevice.dll_lockdownd_service_descriptor_free]
test eax, eax
je 0x4051ef
push eax
call edi
add esp, 4
mov dword [esp + 0x7c], 0
lea eax, [esp + 0x7c]
mov dword [esp + 0x58], 0
push eax
push str.com.apple.mobilebackup2
push dword [esp + 0x90]
call dword [sym.imp.imobiledevice.dll_lockdownd_start_service_with_escrow_bag]
add esp, 0xc
mov esi, eax
push dword [esp + 0x88]
call dword [sym.imp.imobiledevice.dll_lockdownd_client_free]
add esp, 4
mov dword [esp + 0x88], 0
test esi, esi
jne 0x407615
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x407615
movzx ecx, word [eax]
test cx, cx
je 0x407615
cmp dword [0x40e018], 1
jl 0x405271
push ecx
push str.com.apple.mobilebackup2
push str.Started___s__service_on_port__d._n
call fcn.004013c0
mov eax, dword [esp + 0x88]
add esp, 0xc
lea ecx, [esp + 0x58]
push ecx
push eax
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_client_new]
mov eax, dword [esp + 0x88]
add esp, 0xc
test eax, eax
je 0x40529d
push eax
call edi
add esp, 4
mov dword [esp + 0x7c], 0
movaps xmm0, xmmword [0x40bea0]
lea eax, [esp + 0x110]
push eax
push 2
lea eax, [esp + 0x128]
push eax
push dword [esp + 0x64]
movups xmmword [esp + 0x130], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x120], xmm0
call dword [sym.imp.imobiledevice.dll_mobilebackup2_version_exchange]
mov esi, dword [sym.imp.imobiledevice.dll_afc_file_close]
add esp, 0x10
test eax, eax
je 0x4052fd
push eax
push str.Could_not_perform_backup_protocol_version_exchange__error_code__d_n
call fcn.004013c0
mov edi, 6
add esp, 8
mov dword [esp + 0x3c], edi
jmp switch.0x004055fc
cmp dword [0x40e018], 1
jl 0x405324
movsd xmm0, qword [esp + 0x110]
sub esp, 8
movsd qword [esp], xmm0
push str.Negotiated_Protocol_Version__.1f_n
call fcn.004013c0
add esp, 0xc
cmp dword [0x40e484], 0
jle 0x405351
cmp dword [0x40e018], 1
jl 0x405343
push str.Aborting_as_requested_by_user..._n
call fcn.004013c0
add esp, 4
mov edi, 6
mov dword [esp + 0x3c], edi
jmp switch.0x004055fc
test ebx, ebx
je 0x4054fd
lea eax, [esp + 0xe0]
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
mov edi, dword [esp + 0x44]
add esp, 8
test eax, eax
jne 0x405501
cmp edi, 7
je 0x405501
cmp dword [0x40e018], 1
jl 0x405396
push str.Reading_Info.plist_from_backup._n
call fcn.004013c0
add esp, 4
mov edx, ebx
lea ecx, [esp + 0x90]
call fcn.004012a0
cmp dword [esp + 0x90], 0
jne 0x4053c6
push str.Could_not_read_Info.plist_n
call fcn.004013c0
add esp, 4
mov dword [esp + 0x98], 1
xorps xmm0, xmm0
movlpd qword [esp + 0xa0], xmm0
test edi, edi
je 0x4053df
cmp edi, 1
jne 0x4055f3
mov ecx, dword [esp + 0x5c]
mov edx, str.com.apple.itunes_mobdev.syncWillStart
call fcn.00402700
lea eax, [esp + 0xa0]
push eax
push 2
push str._com.apple.itunes.lock_sync
push dword [esp + 0x8c]
call dword [sym.imp.imobiledevice.dll_afc_file_open]
mov eax, dword [esp + 0xb0]
add esp, 0x10
or eax, dword [esp + 0xa4]
je 0x4055f3
mov ecx, dword [esp + 0x5c]
mov edx, str.com.apple.itunes_mobdev.syncLockRequest
call fcn.00402700
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xor edi, edi
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
nop dword [eax]
push 6
push dword [esp + 0xa8]
push dword [esp + 0xa8]
push dword [esp + 0x8c]
call dword [sym.imp.imobiledevice.dll_afc_file_lock]
add esp, 0x10
test eax, eax
je 0x405589
cmp eax, 0x13
jne 0x405531
lea eax, [esp + 0xd8]
push eax
call ebx
lea eax, [esp + 0xc0]
push eax
call esi
lea eax, [esp + 0xa8]
push eax
call esi
mov ecx, dword [esp + 0xa8]
sub ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xac]
sbb edx, dword [esp + 0xc4]
call fcn.00408860
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x74], xmm0
call fcn.00408860
movss xmm1, dword [esp + 0x74]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x40be94]
mulss xmm1, dword [0x40be90]
mulss xmm1, dword [0x40be90]
comiss xmm0, xmm1
ja 0x405485
jmp 0x40557d
mov edi, dword [esp + 0x3c]
cmp edi, 1
jne 0x4053bb
push str.Aborting_restore._Info.plist_is_missing._n
call fcn.004013c0
mov edi, 6
xorps xmm0, xmm0
add esp, 4
mov dword [esp + 0x3c], edi
movlpd qword [esp + 0xa0], xmm0
jmp switch.0x004055fc
push eax
push str.ERROR:_could_not_lock_file__error_code:__d_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push dword [esp + 0xa4]
push dword [esp + 0xa4]
push dword [esp + 0x88]
call dword [sym.imp.imobiledevice.dll_afc_file_close]
xorps xmm0, xmm0
mov dword [esp + 0x48], 6
add esp, 0xc
movlpd qword [esp + 0xa0], xmm0
inc edi
cmp edi, 0x32
jl 0x405440
jmp 0x405597
mov ecx, dword [esp + 0x5c]
mov edx, str.com.apple.itunes_mobdev.syncDidStart
call fcn.00402700
cmp edi, 0x32
jne 0x4055e9
push str.ERROR:_timeout_while_locking_for_sync_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401010
push dword [esp + 0xac]
mov esi, dword [sym.imp.imobiledevice.dll_afc_file_close]
push dword [esp + 0xac]
push dword [esp + 0x90]
call esi
xorps xmm0, xmm0
mov edi, 6
add esp, 0x14
movlpd qword [esp + 0xa0], xmm0
mov dword [esp + 0x3c], edi
jmp switch.0x004055fc
mov esi, dword [sym.imp.imobiledevice.dll_afc_file_close]
mov edi, dword [esp + 0x3c]
cmp edi, 7
ja case.0x4055fc.6
jmp dword [edi*4 + 0x407730]
mov eax, dword [sym.imp.plist.dll_plist_new_dict]
call eax
mov ecx, dword [esp + 0x44]
mov esi, eax
shr ecx, 0xa
and cl, 1
movzx ecx, cl
push ecx
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.CloudBackupState
push esi
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
push esi
push dword [esp + 0x74]
push dword [esp + 0x6c]
push str.EnableCloudBackup
push dword [esp + 0x68]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_request]
add esp, 0x14
mov edi, eax
mov eax, dword [sym.imp.plist.dll_plist_free]
push esi
call eax
add esp, 4
test edi, edi
je 0x40632b
push edi
push str.Error_setting_cloud_backup_state_on_device__error_code__d_n
call fcn.004013c0
add esp, 8
mov edi, 6
jmp 0x407595
cmp dword [0x40e018], 1
jl 0x405691
push str.Starting_backup..._n
call fcn.004013c0
add esp, 4
push 0
push dword [esp + 0x74]
push dword [esp + 0x48]
call fcn.00401080
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add esp, 0xc
mov edi, eax
push 0
push edi
call ebx
mov esi, eax
xor eax, eax
test esi, esi
push edi
sete al
mov dword [esp + 0xb4], eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 4
test esi, esi
jne 0x4056ef
call edi
cmp eax, 0xb7
je 0x4056ef
push str.Error_creating_the_backup_directory__error_code_n
call fcn.004013c0
lea edi, [esi + 6]
jmp 0x407592
mov esi, dword [esp + 0x64]
mov ecx, esi
mov eax, dword [esp + 0x70]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405720
test dl, dl
je 0x40571c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405720
add eax, 2
add ecx, 2
test dl, dl
jne 0x405700
xor eax, eax
jmp 0x405725
sbb eax, eax
or eax, 1
test eax, eax
je 0x405777
push 0
push esi
push dword [esp + 0x48]
call fcn.00401080
add esp, 0xc
mov esi, eax
push 0
push esi
call ebx
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push esi
call ebx
add esp, 4
push dword [esp + 0x4c]
call ebx
add esp, 4
push 0
push str.Info.plist
push dword [esp + 0x6c]
push dword [esp + 0x4c]
call fcn.00401080
mov esi, dword [esp + 0x74]
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x4c], ebx
jmp 0x40577b
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4057a0
push eax
mov eax, dword [sym.imp.plist.dll_plist_free]
call eax
mov esi, dword [esp + 0x68]
add esp, 4
mov dword [esp + 0x90], 0
push dword [esp + 0x80]
mov edx, dword [esp + 0x60]
mov ecx, esi
call fcn.00401dd0
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
jne 0x4057e1
push str.Failed_to_generate_Info.plist___aborting_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov dword [esp + 0x3c], 6
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4057ee
call edi
mov eax, dword [esp + 0x90]
mov dword [esp + 0x60], 0
test eax, eax
je 0x40586d
test ebx, ebx
je 0x40586d
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x64]
push ecx
push eax
call dword [sym.imp.plist.dll_plist_to_xml]
mov edi, dword [esp + 0x80]
add esp, 0xc
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xac], 0
push 0x409350
push dword [esp + 0x50]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x40585c
push esi
push edi
push 1
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x14
push dword [esp + 0x60]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ebx, dword [esp + 0x50]
add esp, 4
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, dword [sym.imp.plist.dll_plist_free]
add esp, 4
push dword [esp + 0x90]
call edi
add esp, 4
mov dword [esp + 0x90], 0
test dword [esp + 0x44], 0x200
je 0x4058da
cmp dword [0x40e018], 1
jl 0x4058b4
push str.Enforcing_full_backup_from_device._n
call fcn.004013c0
add esp, 4
mov eax, dword [sym.imp.plist.dll_plist_new_dict]
call eax
push 1
mov ebx, eax
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.ForceFullBackup
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
jmp 0x4058dc
xor ebx, ebx
cmp byte [esp + 0x57], 0
je 0x4058f3
cmp dword [0x40e018], 1
jl 0x405920
mov eax, str.Backup_will_be_encrypted._n
jmp 0x405901
cmp dword [0x40e018], 1
jl 0x405920
mov eax, str.Backup_will_be_unencrypted._n
push eax
call fcn.004013c0
add esp, 4
cmp dword [0x40e018], 1
jl 0x405920
push str.Requesting_backup_from_device..._n
call fcn.004013c0
add esp, 4
push ebx
push dword [esp + 0x74]
push dword [esp + 0x6c]
push str.Backup
push dword [esp + 0x68]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_request]
add esp, 0x14
mov esi, eax
test ebx, ebx
je 0x405947
push ebx
call edi
add esp, 4
test esi, esi
jne 0x40598c
cmp dword [esp + 0x98], esi
je 0x405970
cmp dword [0x40e018], 1
jl 0x40631e
push str.Full_backup_mode._n
call fcn.004013c0
jmp 0x40631b
cmp dword [0x40e018], 1
jl 0x40631e
push str.Incremental_backup_mode._n
call fcn.004013c0
jmp 0x40631b
cmp esi, 0xfffffffa
jne 0x4059a4
mov eax, str.ERROR:_Could_not_start_backup_process:_backup_protocol_version_mismatch__n
push eax
call fcn.004013c0
lea edi, [esi + 0xc]
jmp 0x407592
mov eax, str.ERROR:_Could_not_start_backup_process:_device_refused_to_start_the_backup_process._n
mov ecx, str.ERROR:_Could_not_start_backup_process:_unspecified_error_occurred_n
cmp esi, 0xfffffff9
cmovne eax, ecx
push eax
call fcn.004013c0
mov edi, 6
jmp 0x407592
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x44]
call fcn.00402600
add esp, 4
test eax, eax
jne 0x4059f0
push str.ERROR:_Cannot_ensure_we_restore_from_a_successful_backup._Aborting._n
call fcn.004013c0
add esp, 4
mov edi, 6
jmp 0x40759b
cmp dword [0x40e018], 1
jl 0x405a06
push str.Starting_Restore..._n
call fcn.004013c0
add esp, 4
mov eax, dword [sym.imp.plist.dll_plist_new_dict]
call eax
mov cl, byte [esp + 0x44]
mov ebx, eax
and cl, 2
movzx ecx, cl
push ecx
call dword [sym.imp.plist.dll_plist_new_bool]
mov edi, dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 4
push eax
push str.RestoreSystemFiles
push ebx
call edi
add esp, 0xc
mov eax, 0x40b21c
cmp dword [0x40e018], 1
mov esi, 0x40b220
jl 0x405a5e
test byte [esp + 0x44], 2
cmove eax, esi
push eax
push str.Restoring_system_files:__s_n
call fcn.004013c0
add esp, 8
mov ecx, dword [esp + 0x44]
and ecx, 4
mov dword [esp + 0x74], ecx
je 0x405a89
push 0
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.RestoreShouldReboot
push ebx
call edi
mov ecx, dword [esp + 0x80]
add esp, 0xc
cmp dword [0x40e018], 1
jl 0x405aac
test ecx, ecx
mov eax, esi
mov ecx, 0x40b21c
cmove eax, ecx
push eax
push str.Rebooting_after_restore:__s_n
call fcn.004013c0
add esp, 8
mov ecx, dword [esp + 0x44]
and ecx, 8
mov dword [esp + 0x74], ecx
jne 0x405ad7
push 1
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.RestoreDontCopyBackup
push ebx
call edi
mov ecx, dword [esp + 0x80]
add esp, 0xc
cmp dword [0x40e018], 1
jl 0x405af8
test ecx, ecx
mov eax, 0x40b21c
cmovne eax, esi
push eax
push str.Dont_copy_backup:__s_n
call fcn.004013c0
add esp, 8
mov eax, dword [esp + 0x44]
shr eax, 4
not al
and al, 1
movzx eax, al
push eax
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.RestorePreserveSettings
push ebx
call edi
add esp, 0xc
cmp dword [0x40e018], 1
jl 0x405b40
test byte [esp + 0x44], 0x10
mov eax, 0x40b21c
cmovne eax, esi
push eax
push str.Preserve_settings_of_device:__s_n
call fcn.004013c0
add esp, 8
mov ecx, dword [esp + 0x44]
and ecx, 0x20
mov dword [esp + 0x74], ecx
je 0x405b6b
push 1
call dword [sym.imp.plist.dll_plist_new_bool]
add esp, 4
push eax
push str.RemoveItemsNotRestored
push ebx
call edi
mov ecx, dword [esp + 0x80]
add esp, 0xc
cmp dword [0x40e018], 1
jl 0x405b8c
test ecx, ecx
mov eax, 0x40b21c
cmove eax, esi
push eax
push str.Remove_items_that_are_not_restored:__s_n
call fcn.004013c0
add esp, 8
mov eax, dword [esp + 0x50]
test eax, eax
je 0x405bae
push eax
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.Password
push ebx
call edi
mov eax, dword [esp + 0x5c]
add esp, 0xc
cmp dword [0x40e018], 1
jl 0x405bcf
test eax, eax
mov eax, 0x40b21c
cmovne esi, eax
push esi
push str.Backup_password:__s_n
call fcn.004013c0
add esp, 8
test dword [esp + 0x44], 0x1000
je 0x405bf0
cmp dword [0x40e018], 1
jl 0x405d92
push str.Not_writing_RestoreApplications.plist___apps_will_not_be_re_installed_after_restore_n
jmp 0x405d8a
mov esi, dword [esp + 0x80]
xorps xmm0, xmm0
push str.Applications
push dword [esp + 0x94]
movlpd qword [esp + 0xb0], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x68], 0
call dword [sym.imp.plist.dll_plist_dict_get_item]
add esp, 8
test eax, eax
je 0x405c43
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x7c]
push ecx
push eax
call dword [sym.imp.plist.dll_plist_to_xml]
add esp, 0xc
cmp dword [esp + 0x78], 0
jne 0x405c5c
push str.Error_preparing_RestoreApplications.plist_n
call fcn.004013c0
add esp, 4
jmp 0x405d34
push str._iTunesRestore
push esi
call dword [sym.imp.imobiledevice.dll_afc_make_directory]
add esp, 8
test eax, eax
je 0x405c7a
push eax
push str.Error_creating_directory__iTunesRestore__error_code__d_n
jmp 0x405d2c
lea eax, [esp + 0xa8]
push eax
push 4
push str._iTunesRestore_RestoreApplications.plist
push esi
call dword [sym.imp.imobiledevice.dll_afc_file_open]
add esp, 0x10
test eax, eax
jne 0x405d26
mov edx, dword [esp + 0xa8]
mov ecx, edx
mov edi, dword [esp + 0xac]
or ecx, edi
je 0x405d26
mov dword [esp + 0x94], eax
lea eax, [esp + 0x94]
push eax
push dword [esp + 0x64]
push dword [esp + 0x80]
push edi
push edx
push esi
call dword [sym.imp.imobiledevice.dll_afc_file_write]
mov ecx, dword [esp + 0x78]
add esp, 0x18
mov edx, dword [esp + 0x94]
test eax, eax
jne 0x405d14
cmp edx, ecx
jne 0x405d14
push dword [esp + 0xac]
push dword [esp + 0xac]
push esi
call dword [sym.imp.imobiledevice.dll_afc_file_close]
add esp, 0xc
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
test eax, eax
jne 0x405d34
xor edi, edi
jmp 0x405d37
push ecx
push edx
push eax
push str.Error_writing__iTunesRestore_RestoreApplications.plist__error_code__d__wrote__u_of__u_bytes_n
call fcn.004013c0
add esp, 0x10
jmp 0x405d34
push eax
push str.Error_creating__iTunesRestore_RestoreApplications.plist__error_code__d_n
call fcn.004013c0
add esp, 8
or edi, 0xffffffff
push dword [esp + 0x78]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0xac]
add esp, 4
mov edx, dword [esp + 0xac]
mov eax, ecx
or eax, edx
je 0x405d68
push edx
push ecx
push esi
mov esi, dword [sym.imp.imobiledevice.dll_afc_file_close]
call esi
add esp, 0xc
jmp 0x405d6e
mov esi, dword [sym.imp.imobiledevice.dll_afc_file_close]
test edi, edi
jns 0x405d7c
mov edi, 6
jmp 0x40759b
cmp dword [0x40e018], 1
jl 0x405d92
push str.Wrote_RestoreApplications.plist_n
call fcn.004013c0
add esp, 4
push ebx
push dword [esp + 0x74]
push dword [esp + 0x6c]
push str.Restore
push dword [esp + 0x68]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_request]
add esp, 0x14
mov esi, eax
mov eax, dword [sym.imp.plist.dll_plist_free]
push ebx
call eax
add esp, 4
test esi, esi
je 0x40632b
cmp esi, 0xfffffffa
jne 0x405dda
mov eax, str.ERROR:_Could_not_start_restore_process:_backup_protocol_version_mismatch__n
push eax
call fcn.004013c0
lea edi, [esi + 0xc]
jmp 0x407592
mov eax, str.ERROR:_Could_not_start_restore_process:_device_refused_to_start_the_restore_process._n
mov ecx, str.ERROR:_Could_not_start_restore_process:_unspecified_error_occurred_n
jmp 0x4059ae
cmp dword [0x40e018], 1
jl 0x405dff
push str.Requesting_backup_info_from_device..._n
call fcn.004013c0
add esp, 4
push 0
push dword [esp + 0x74]
push dword [esp + 0x6c]
push str.Info
push dword [esp + 0x68]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_request]
add esp, 0x14
test eax, eax
je 0x40632b
push eax
push str.Error_requesting_backup_info_from_device__error_code__d_n
call fcn.004013c0
add esp, 8
mov edi, 6
jmp 0x40759b
cmp dword [0x40e018], 1
jl 0x405e51
push str.Requesting_backup_list_from_device..._n
call fcn.004013c0
add esp, 4
push 0
push dword [esp + 0x74]
push dword [esp + 0x6c]
push str.List
push dword [esp + 0x68]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_request]
add esp, 0x14
test eax, eax
je 0x40632b
push eax
push str.Error_requesting_backup_list_from_device__error_code__d_n
call fcn.004013c0
add esp, 8
mov edi, 6
jmp 0x40759b
cmp dword [0x40e018], 1
jl 0x405ea3
push str.Starting_to_unpack_backup..._n
call fcn.004013c0
add esp, 4
mov edi, dword [esp + 0x50]
test edi, edi
je 0x405ed0
mov eax, dword [sym.imp.plist.dll_plist_new_dict]
call eax
push edi
mov ebx, eax
call dword [sym.imp.plist.dll_plist_new_string]
add esp, 4
push eax
push str.Password
push ebx
call dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 0xc
jmp 0x405ed2
xor ebx, ebx
cmp dword [0x40e018], 1
jl 0x405ef8
mov ecx, 0x40b21c
test edi, edi
mov eax, 0x40b220
cmovne eax, ecx
push eax
push str.Backup_password:__s_n
call fcn.004013c0
add esp, 8
push ebx
push dword [esp + 0x74]
push dword [esp + 0x6c]
push str.Unback
push dword [esp + 0x68]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_request]
add esp, 0x14
mov esi, eax
test edi, edi
je 0x405f24
mov eax, dword [sym.imp.plist.dll_plist_free]
push ebx
call eax
add esp, 4
test esi, esi
je 0x40632b
push esi
push str.Error_requesting_unback_operation_from_device__error_code__d_n
call fcn.004013c0
add esp, 8
mov edi, 6
jmp 0x407595
mov eax, dword [sym.imp.plist.dll_plist_new_dict]
call eax
push dword [esp + 0x64]
mov ebx, dword [sym.imp.plist.dll_plist_new_string]
mov edi, eax
call ebx
mov esi, dword [sym.imp.plist.dll_plist_dict_set_item]
add esp, 4
push eax
push str.TargetIdentifier
push edi
call esi
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov eax, ecx
and eax, 0x40
mov dword [esp + 0x74], eax
je 0x405ff3
cmp byte [esp + 0x57], 0
jne 0x405fbb
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x406193
lea edx, [eax + 1]
mov ecx, str.Enter_new_backup_password
call fcn.00403d70
mov dword [esp + 0x48], eax
test eax, eax
jne 0x406193
push str.No_backup_password_given._Aborting._n
call fcn.004013c0
add esp, 4
jmp 0x4061a5
push str.ERROR:_Backup_encryption_is_already_enabled._Aborting._n
call fcn.004013c0
mov eax, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x3c], 6
test eax, eax
je 0x4061a5
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esp + 0x48], 0
jmp 0x4061a5
test cl, cl
jns 0x4060a3
cmp byte [esp + 0x57], 0
je 0x40607d
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x40618b
push str.Enter_current_backup_password
push str._s:
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
call eax
add esp, 4
lea ecx, [esp + 0x238]
call fcn.00403ce0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
push 0xa
call eax
lea eax, [esp + 0x240]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
add esp, 0xc
mov dword [esp + 0x50], eax
jmp 0x40618b
push str.ERROR:_Backup_encryption_is_not_enabled._Aborting._n
call fcn.004013c0
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x3c], 6
test ecx, ecx
je 0x40618b
jmp 0x406179
test ecx, 0x100
je 0x40618b
cmp byte [esp + 0x57], 0
je 0x406144
cmp dword [esp + 0x50], 0
jne 0x40618b
push str.Enter_old_backup_password
push str._s:
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
call eax
add esp, 4
lea ecx, [esp + 0x338]
call fcn.00403ce0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
push 0xa
call eax
lea eax, [esp + 0x340]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
add esp, 0xc
mov dword [esp + 0x50], eax
mov edx, 1
mov ecx, str.Enter_new_backup_password
call fcn.00403d70
mov dword [esp + 0x48], eax
jmp 0x40618f
push str.ERROR:_Backup_encryption_is_not_enabled_so_cant_change_password._Aborting._n
call fcn.004013c0
mov eax, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x3c], 6
test eax, eax
je 0x406171
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
xor eax, eax
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x40618f
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0x54], 0
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4061a5
push eax
call ebx
add esp, 4
push eax
push str.NewPassword
push edi
call esi
add esp, 0xc
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4061c3
push eax
call ebx
add esp, 4
push eax
push str.OldPassword
push edi
call esi
mov eax, dword [esp + 0x5c]
add esp, 0xc
cmp dword [esp + 0x48], 0
jne 0x4061db
test eax, eax
jne 0x4061db
mov dword [esp + 0x3c], 6
jmp 0x406313
push edi
push str.ChangePassword
push dword [esp + 0x60]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_message]
add esp, 0xc
mov byte [esp + 0x8f], 0
cmp dword [esp + 0x94], 0xd0000
jb 0x406313
push str.idevicebackup2
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], 0
push eax
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_diagnostics_relay_client_start_service]
add esp, 0xc
test eax, eax
jne 0x4062bd
mov dword [esp + 0x60], eax
call dword [sym.imp.plist.dll_plist_new_array]
push str.PasswordConfigured
mov esi, eax
call ebx
add esp, 4
push eax
push esi
call dword [sym.imp.plist.dll_plist_array_append_item]
lea eax, [esp + 0x68]
push eax
push esi
push dword [esp + 0x88]
call dword [sym.imp.imobiledevice.dll_diagnostics_relay_query_mobilegestalt]
add esp, 0x14
test eax, eax
jne 0x40628e
push str.PasswordConfigured
push str.MobileGestalt
push 2
push dword [esp + 0x6c]
call dword [sym.imp.plist.dll_plist_access_path]
lea ecx, [esp + 0x9f]
push ecx
push eax
call dword [sym.imp.plist.dll_plist_get_bool_val]
add esp, 0x18
mov ebx, dword [sym.imp.plist.dll_plist_free]
push esi
call ebx
add esp, 4
push dword [esp + 0x60]
call ebx
add esp, 4
push dword [esp + 0x78]
call dword [sym.imp.imobiledevice.dll_diagnostics_relay_goodbye]
add esp, 4
push dword [esp + 0x78]
call dword [sym.imp.imobiledevice.dll_diagnostics_relay_client_free]
add esp, 4
cmp byte [esp + 0x8f], 0
je 0x406313
mov eax, dword [esp + 0x44]
test eax, 0x100
je 0x4062e2
cmp dword [0x40e018], 1
jl 0x406313
push str.Please_confirm_changing_the_backup_password_by_entering_the_passcode_on_the_device._n
jmp 0x40630b
cmp dword [esp + 0x74], 0
je 0x4062f9
cmp dword [0x40e018], 1
jl 0x406313
push str.Please_confirm_enabling_the_backup_encryption_by_entering_the_passcode_on_the_device._n
jmp 0x40630b
test al, al
jns 0x406313
cmp dword [0x40e018], 1
jl 0x406313
push str.Please_confirm_disabling_the_backup_encryption_by_entering_the_passcode_on_the_device._n
call fcn.004013c0
add esp, 4
mov eax, dword [sym.imp.plist.dll_plist_free]
push edi
call eax
add esp, 4
mov edi, dword [esp + 0x3c]
cmp edi, 6
je 0x407595
mov ebx, dword [sym.imp.plist.dll_plist_array_get_item]
xor eax, eax
xor edi, edi
mov dword [esp + 0x48], 0
mov dword [esp + 0x94], eax
mov dword [esp + 0x4c], edi
push 0
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esp + 0x78], 0
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x60]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_receive_message]
add esp, 0xc
cmp eax, 0xfffffffb
jne 0x40638e
cmp dword [0x40e018], 2
jl 0x40659e
push str.Device_is_not_ready_yet__retrying..._n
jmp 0x406596
test eax, eax
je 0x4063b4
cmp dword [0x40e018], 0
jl 0x4063a9
push eax
push str.ERROR:_Could_not_receive_from_mobilebackup2___d__n
call fcn.004013c0
add esp, 8
inc dword [0x40e484]
jmp 0x40659e
mov esi, dword [esp + 0x78]
mov ecx, str.DLMessageDownloadFiles
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4063e0
test dl, dl
je 0x4063dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4063e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4063c0
xor eax, eax
jmp 0x4063e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40661a
mov ecx, dword [esp + 0x48]
mov edx, esi
call fcn.00402870
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
mov dword [esp + 0x84], ebx
test esi, esi
je 0x4071a3
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 4
jne 0x4071a3
push esi
call dword [sym.imp.plist.dll_plist_array_get_size]
add esp, 4
cmp eax, 2
jb 0x4071a3
cmp dword [esp + 0x40], ebx
je 0x4071a3
push 1
push esi
call dword [sym.imp.plist.dll_plist_array_get_item]
mov esi, eax
push esi
mov dword [esp + 0xc8], esi
call dword [sym.imp.plist.dll_plist_array_get_size]
add esp, 0xc
mov dword [esp + 0x74], eax
xor edi, edi
test eax, eax
je 0x4064fd
mov ebx, eax
push edi
push esi
call dword [sym.imp.plist.dll_plist_array_get_item]
mov esi, eax
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 0xc
cmp eax, 3
jne 0x4064df
lea eax, [esp + 0xc8]
mov dword [esp + 0xc8], 0
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
mov eax, dword [esp + 0xd0]
add esp, 8
test eax, eax
je 0x4064df
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x6c]
push eax
call fcn.00402a00
add esp, 8
push dword [esp + 0xc8]
test eax, eax
js 0x4064ed
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
inc edi
cmp edi, ebx
jae 0x4064f6
mov esi, dword [esp + 0xbc]
jmp 0x406471
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x68]
lea eax, [esp + 0xa8]
push eax
push 4
lea eax, [esp + 0xe0]
mov dword [esp + 0xe0], 0
push eax
push edi
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_raw]
add esp, 0x10
test ebx, ebx
jne 0x406605
call dword [sym.imp.plist.dll_plist_new_dict]
mov esi, eax
push esi
push ebx
push ebx
push edi
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_status_response]
push esi
call dword [sym.imp.plist.dll_plist_free]
add esp, 0x14
mov ebx, dword [sym.imp.plist.dll_plist_array_get_item]
mov edi, dword [esp + 0x4c]
movsd xmm0, qword [0x40e488]
comisd xmm0, xmmword [0x40be58]
jbe 0x40659e
test edi, edi
jne 0x40659e
comisd xmm0, xmmword [0x40be68]
mov eax, 1
movaps xmm1, xmm0
cmovae edi, eax
mov dword [esp + 0x4c], edi
call fcn.004027c0
cmp dword [0x40e018], 1
jl 0x40659e
push str._Finished_n
call fcn.004013c0
add esp, 4
push dword [esp + 0x48]
call dword [sym.imp.plist.dll_plist_free]
add esp, 4
mov dword [esp + 0x48], 0
push dword [esp + 0x78]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esp + 0x78], 0
cmp dword [0x40e484], 0
jle 0x406348
xor ebx, ebx
push dword [esp + 0x48]
call dword [sym.imp.plist.dll_plist_free]
add esp, 4
push dword [esp + 0x78]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, dword [esp + 0x40]
add esp, 4
cmp edi, 7
ja case.0x4065fe.2
jmp dword [edi*4 + 0x407750]
push ebx
push str.Multi_status
push 0xfffffffffffffff3
push edi
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_status_response]
push ebx
jmp 0x406543
mov ecx, str.DLMessageUploadFiles
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406641
test dl, dl
je 0x40663d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406641
add eax, 2
add ecx, 2
test dl, dl
jne 0x406621
xor eax, eax
jmp 0x406646
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406675
mov ecx, dword [esp + 0x48]
mov edx, esi
call fcn.00402870
push dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x5c]
call fcn.00403020
add esp, 4
add dword [esp + 0x94], eax
jmp 0x406556
mov ecx, str.DLMessageGetFreeDiskSpace
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4066a0
test dl, dl
je 0x40669c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4066a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x406680
xor eax, eax
jmp 0x4066a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406706
push eax
push eax
lea eax, [esp + 0xc8]
xorps xmm0, xmm0
push eax
push dword [esp + 0x4c]
movlpd qword [esp + 0xd0], xmm0
or edi, 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
push dword [esp + 0xc4]
xor ecx, ecx
test eax, eax
push dword [esp + 0xc4]
cmovne edi, ecx
call dword [sym.imp.plist.dll_plist_new_uint]
mov esi, eax
push esi
push 0
push edi
push dword [esp + 0x6c]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_status_response]
push esi
call dword [sym.imp.plist.dll_plist_free]
add esp, 0x1c
jmp 0x406552
mov ecx, str.DLContentsOfDirectory
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406730
test dl, dl
je 0x40672c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406730
add eax, 2
add ecx, 2
test dl, dl
jne 0x406710
xor eax, eax
jmp 0x406735
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406752
push dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x5c]
call fcn.00403740
add esp, 4
jmp 0x406556
mov ecx, str.DLMessageCreateDirectory
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406780
test dl, dl
je 0x40677c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406780
add eax, 2
add ecx, 2
test dl, dl
jne 0x406760
xor eax, eax
jmp 0x406785
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4068b0
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
mov dword [esp + 0xbc], eax
test esi, esi
je 0x406556
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 4
jne 0x406556
push esi
call dword [sym.imp.plist.dll_plist_array_get_size]
add esp, 4
cmp eax, 2
jb 0x406556
cmp dword [esp + 0x40], 0
je 0x406556
push 1
push esi
call ebx
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd4], 0
push ecx
push eax
xor esi, esi
xor edi, edi
call dword [sym.imp.plist.dll_plist_get_string_val]
push edi
push dword [esp + 0xe0]
push dword [esp + 0x58]
call fcn.00401080
add esp, 0x1c
mov ebx, eax
push dword [esp + 0xcc]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, ebx
call fcn.00401a60
test eax, eax
jns 0x406877
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
call esi
push dword [eax]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
add esp, 4
mov edi, eax
call esi
cmp dword [eax], 0x11
je 0x406857
call esi
push dword [eax]
push edi
push str.mkdir:__s___d__n
call fcn.004013c0
add esp, 0xc
call esi
mov esi, dword [eax]
mov eax, esi
sub eax, 2
je 0x406872
sub eax, 0xf
je 0x40686b
neg esi
jmp 0x406877
mov esi, 0xfffffff9
jmp 0x406877
mov esi, 0xfffffffa
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 0
push edi
push esi
push dword [esp + 0xc8]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_status_response]
add esp, 0x10
test eax, eax
je 0x40654c
push eax
push str.Could_not_send_status_response__error__d_n
call fcn.004013c0
add esp, 8
jmp 0x40654c
mov ecx, str.DLMessageMoveFiles
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4068d7
test dl, dl
je 0x4068d3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4068d7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4068b7
xor eax, eax
jmp 0x4068dc
sbb eax, eax
or eax, 1
test eax, eax
je 0x406eec
mov ecx, str.DLMessageMoveItems
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406910
test dl, dl
je 0x40690c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406910
add eax, 2
add ecx, 2
test dl, dl
jne 0x4068f0
xor eax, eax
jmp 0x406915
sbb eax, eax
or eax, 1
test eax, eax
je 0x406eec
mov ecx, str.DLMessageRemoveFiles
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406944
test dl, dl
je 0x406940
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406944
add eax, 2
add ecx, 2
test dl, dl
jne 0x406924
xor eax, eax
jmp 0x406949
sbb eax, eax
or eax, 1
test eax, eax
je 0x406c55
mov ecx, str.DLMessageRemoveItems
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406978
test dl, dl
je 0x406974
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406978
add eax, 2
add ecx, 2
test dl, dl
jne 0x406958
xor eax, eax
jmp 0x40697d
sbb eax, eax
or eax, 1
test eax, eax
je 0x406c55
mov ecx, str.DLMessageCopyItem
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4069b0
test dl, dl
je 0x4069ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4069b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x406990
xor eax, eax
jmp 0x4069b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406b58
push 1
push dword [esp + 0x4c]
call ebx
push 2
push dword [esp + 0x54]
mov edi, eax
call ebx
push edi
mov esi, eax
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 0x14
cmp eax, 3
jne 0x406b1a
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x406b1a
lea eax, [esp + 0x84]
mov dword [esp + 0x84], 0
push eax
push edi
mov edi, dword [sym.imp.plist.dll_plist_get_string_val]
mov dword [esp + 0x70], 0
call edi
lea eax, [esp + 0x70]
push eax
push esi
call edi
mov eax, dword [esp + 0x94]
add esp, 0x10
test eax, eax
je 0x406b05
cmp dword [esp + 0x68], 0
je 0x406b05
mov edi, dword [esp + 0x40]
push 0
push eax
push edi
call fcn.00401080
add esp, 0xc
mov esi, eax
push 0
push dword [esp + 0x6c]
push edi
call fcn.00401080
add esp, 0xc
mov edi, eax
cmp dword [0x40e018], 1
jl 0x406a84
push dword [esp + 0x68]
push dword [esp + 0x88]
push str.Copying__s_to__s_n
call fcn.004013c0
add esp, 0xc
lea eax, [esp + 0xe0]
push eax
push esi
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
jne 0x406ab8
mov eax, dword [esp + 0xe6]
and eax, 0xf000
cmp eax, 0x4000
jne 0x406ab8
mov edx, edi
mov ecx, esi
call fcn.00403b00
jmp 0x406aea
lea eax, [esp + 0xe0]
push eax
push esi
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
jne 0x406aea
mov eax, dword [esp + 0xe6]
and eax, 0xf000
cmp eax, 0x8000
jne 0x406aea
mov edx, edi
mov ecx, esi
call fcn.004039e0
push edi
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call edi
add esp, 4
push esi
call edi
mov eax, dword [esp + 0x88]
add esp, 4
jmp 0x406b0b
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push eax
call edi
add esp, 4
push dword [esp + 0x68]
call edi
add esp, 4
call dword [sym.imp.plist.dll_plist_new_dict]
mov esi, eax
push esi
push 0
push 0
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_status_response]
push esi
mov edi, eax
call dword [sym.imp.plist.dll_plist_free]
add esp, 0x14
test edi, edi
je 0x406552
push edi
push str.Could_not_send_status_response__error__d_n
call fcn.004013c0
add esp, 8
jmp 0x406552
mov ecx, str.DLMessageDisconnect
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406b80
test dl, dl
je 0x406b7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406b80
add eax, 2
add ecx, 2
test dl, dl
jne 0x406b60
xor eax, eax
jmp 0x406b85
sbb eax, eax
or eax, 1
test eax, eax
je 0x4065d5
mov eax, str.DLMessageProcessMessage
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x406bb2
test cl, cl
je 0x406bae
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x406bb2
add esi, 2
add eax, 2
test cl, cl
jne 0x406b92
xor eax, eax
jmp 0x406bb7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406556
push 1
push dword [esp + 0x4c]
call ebx
mov ebx, dword [sym.imp.plist.dll_plist_get_node_type]
push eax
mov dword [esp + 0x78], eax
call ebx
add esp, 0xc
cmp eax, 5
je 0x406be9
push str.Unknown_message_received__n
call fcn.004013c0
add esp, 4
push str.ErrorCode
push dword [esp + 0x70]
or esi, 0xffffffff
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov edi, eax
add esp, 8
test edi, edi
je 0x4071b7
push edi
call ebx
add esp, 4
cmp eax, 1
jne 0x4071b7
lea eax, [esp + 0xa8]
xorps xmm0, xmm0
push eax
push edi
movlpd qword [esp + 0xb0], xmm0
call dword [sym.imp.plist.dll_plist_get_uint_val]
mov esi, dword [esp + 0xb0]
add esp, 8
mov eax, esi
test eax, eax
jne 0x4071ae
lea ebx, [esi + 1]
mov dword [esp + 0xb0], esi
jmp 0x4071b9
mov ecx, dword [esp + 0x48]
mov edx, esi
call fcn.00402870
push 1
push dword [esp + 0x4c]
call ebx
push eax
mov dword [esp + 0xc8], eax
call dword [sym.imp.plist.dll_plist_array_get_size]
add esp, 0xc
mov esi, eax
cmp dword [0x40e018], 1
mov dword [esp + 0xc0], esi
jl 0x406caa
cmp esi, 1
mov eax, 0x40b954
mov ecx, 0x409353
cmovne ecx, eax
push ecx
push esi
push str.Removing__d_file_s_n
call fcn.004013c0
add esp, 0xc
xor edi, edi
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x84], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x74], eax
test esi, esi
je 0x406eb0
nop word [eax + eax]
push eax
push dword [esp + 0xc0]
call dword [sym.imp.plist.dll_plist_array_get_item]
mov esi, eax
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 0xc
cmp eax, 3
jne 0x406e93
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
mov eax, dword [esp + 0xa0]
add esp, 8
test eax, eax
je 0x406e93
push 0x2f
push eax
call dword [sym.imp.VCRUNTIME140.dll_strchr]
add esp, 8
xor ebx, ebx
test eax, eax
je 0x406d66
mov ecx, str.Manifest.mbdx
inc eax
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406d57
test dl, dl
je 0x406d53
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406d57
add eax, 2
add ecx, 2
test dl, dl
jne 0x406d37
xor eax, eax
jmp 0x406d5c
sbb eax, eax
or eax, 1
test eax, eax
mov eax, 1
cmove ebx, eax
push 0
push dword [esp + 0x9c]
push dword [esp + 0x48]
call fcn.00401080
add esp, 0xc
mov edi, eax
push dword [esp + 0x98]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea eax, [esp + 0xe0]
push eax
push edi
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
jne 0x406dc1
mov eax, dword [esp + 0xe6]
and eax, 0xf000
cmp eax, 0x4000
jne 0x406dc1
mov ecx, edi
call fcn.00401cc0
mov esi, eax
jmp 0x406df3
push edi
xor esi, esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x406df3
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 2
je 0x406dee
sub eax, 0xb5
je 0x406de7
mov esi, 0xe
jmp 0x406df3
mov esi, 0x11
jmp 0x406df3
mov esi, 2
test esi, esi
je 0x406e85
cmp esi, 2
je 0x406e85
test ebx, ebx
jne 0x406e22
push esi
push esi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
add esp, 4
push eax
push edi
push str.Could_not_remove__s:__s___d__n
call fcn.004013c0
add esp, 0x10
mov eax, esi
sub eax, 2
je 0x406e68
sub eax, 0xf
je 0x406e4b
mov ebx, esi
neg ebx
push esi
mov dword [esp + 0x88], ebx
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
mov ebx, eax
add esp, 4
mov dword [esp + 0x68], ebx
jmp 0x406e89
push esi
mov dword [esp + 0x88], 0xfffffff9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
mov ebx, eax
add esp, 4
mov dword [esp + 0x68], ebx
jmp 0x406e89
push esi
mov dword [esp + 0x88], 0xfffffffa
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
mov ebx, eax
add esp, 4
mov dword [esp + 0x68], ebx
jmp 0x406e89
mov ebx, dword [esp + 0x68]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [esp + 0x74]
inc eax
mov dword [esp + 0x74], eax
cmp eax, dword [esp + 0xc0]
jb 0x406cd0
mov edi, dword [esp + 0x84]
call dword [sym.imp.plist.dll_plist_new_dict]
mov esi, eax
push esi
push ebx
push edi
push dword [esp + 0x64]
call dword [sym.imp.imobiledevice.dll_mobilebackup2_send_status_response]
push esi
mov edi, eax
call dword [sym.imp.plist.dll_plist_free]
add esp, 0x14
test edi, edi
je 0x40654c
push edi
push str.Could_not_send_status_response__error__d_n
call fcn.004013c0
add esp, 8
jmp 0x40654c
mov ecx, dword [esp + 0x48]
mov edx, esi
call fcn.00402870
push 1
push dword [esp + 0x4c]
call ebx
mov esi, eax
push esi
call dword [sym.imp.plist.dll_plist_dict_get_size]
add esp, 0xc
cmp dword [0x40e018], 1
jl 0x406f33
cmp eax, 1
mov edx, 0x40b954
mov ecx, 0x409353
cmovne ecx, edx
push ecx
push eax
push str.Moving__d_file_s_n
call fcn.004013c0
add esp, 0xc
lea eax, [esp + 0x60]
mov dword [esp + 0x60], 0
push eax
push esi
call dword [sym.imp.plist.dll_plist_dict_new_iter]
mov eax, dword [esp + 0x68]
add esp, 8
mov dword [esp + 0x68], 0
mov dword [esp + 0xc0], 0
test eax, eax
je 0x407176
mov dword [esp + 0xb4], 0
mov dword [esp + 0x9c], 0
nop
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0xb8]
push ecx
push eax
push esi
call dword [sym.imp.plist.dll_plist_dict_next_item]
add esp, 0x10
cmp dword [esp + 0xb4], 0
je 0x4070af
push dword [esp + 0x9c]
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x4070af
lea eax, [esp + 0xd0]
mov dword [esp + 0xd0], 0
push eax
push dword [esp + 0xa0]
call dword [sym.imp.plist.dll_plist_get_string_val]
mov eax, dword [esp + 0xd8]
add esp, 8
test eax, eax
je 0x407092
mov ebx, dword [esp + 0x40]
push 0
push eax
push ebx
call fcn.00401080
add esp, 0xc
mov edi, eax
push dword [esp + 0xd0]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 0
push dword [esp + 0xb8]
push ebx
call fcn.00401080
add esp, 0xc
mov ebx, eax
lea eax, [esp + 0xe0]
push eax
push edi
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
jne 0x40705e
mov ecx, dword [esp + 0xe6]
and ecx, 0xf000
cmp ecx, 0x4000
jne 0x40705e
mov ecx, edi
call fcn.00401cc0
jmp 0x40706f
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x40706f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
push ebx
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_rename]
add esp, 8
test eax, eax
js 0x4070c6
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call ebx
add esp, 4
push edi
call ebx
add esp, 4
jmp 0x407098
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push dword [esp + 0xb4]
call ebx
add esp, 4
mov dword [esp + 0xb4], 0
cmp dword [esp + 0x9c], 0
je 0x407163
mov eax, dword [esp + 0x60]
jmp 0x406f80
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov esi, dword [eax]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
push esi
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
push dword [eax]
call esi
add esp, 4
push eax
push edi
push ebx
push str.Renameing__s_to__s_failed:__s___d__n
call fcn.004013c0
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
add esp, 0x14
call edi
mov ebx, dword [eax]
mov eax, ebx
sub eax, 2
je 0x407144
sub eax, 0xf
je 0x407125
neg ebx
mov dword [esp + 0x68], ebx
call edi
push dword [eax]
call esi
add esp, 4
mov ebx, eax
push dword [esp + 0x60]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x40718d
mov dword [esp + 0x68], 0xfffffff9
call edi
push dword [eax]
call esi
add esp, 4
mov ebx, eax
push dword [esp + 0x60]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x40718d
mov dword [esp + 0x68], 0xfffffffa
call edi
push dword [eax]
call esi
add esp, 4
mov ebx, eax
push dword [esp + 0x60]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x40718d
push dword [esp + 0x60]
mov ebx, dword [esp + 0xc4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x40718d
push str.Could_not_create_dict_iterator_n
mov dword [esp + 0x6c], 0xffffffff
mov ebx, str.Could_not_create_dict_iterator
call fcn.004013c0
add esp, 4
call dword [sym.imp.plist.dll_plist_new_dict]
mov esi, eax
push esi
push ebx
push dword [esp + 0x70]
jmp 0x406ebb
mov ebx, dword [sym.imp.plist.dll_plist_array_get_item]
jmp 0x406556
neg eax
mov dword [esp + 0xb0], eax
xor ebx, ebx
push str.ErrorDescription
push dword [esp + 0x70]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov edi, eax
xor ecx, ecx
add esp, 8
mov dword [esp + 0x4c], ecx
test edi, edi
je 0x407201
push edi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x4071fd
lea eax, [esp + 0x4c]
push eax
push edi
mov edi, dword [sym.imp.plist.dll_plist_get_string_val]
call edi
mov ecx, dword [esp + 0x54]
add esp, 8
jmp 0x407207
mov ecx, dword [esp + 0x4c]
mov edi, dword [sym.imp.plist.dll_plist_get_string_val]
test esi, esi
je 0x407232
test ecx, ecx
je 0x407220
push ecx
push esi
push str.ErrorCode__d:__s_n
call fcn.004013c0
add esp, 0xc
jmp 0x40722e
push esi
push str.ErrorCode__d:__Unknown__n
call fcn.004013c0
add esp, 8
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x407240
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push str.Content
push dword [esp + 0x70]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x4065d7
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x4065d7
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0
push eax
push esi
call edi
add esp, 8
cmp dword [0x40e018], 1
jl 0x407298
push str.Content:_n
call fcn.004013c0
add esp, 4
push dword [esp + 0x4c]
push 0x409354
call fcn.004013c0
push dword [esp + 0x54]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0xc
jmp 0x4065d7
mov eax, dword [esp + 0x44]
test eax, 0x400
je 0x4072f5
test ebx, ebx
je 0x4072de
cmp dword [0x40e018], 1
jl 0x407595
push str.Cloud_backup_has_been_enabled_successfully._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.Could_not_enable_cloud_backup._n
jmp 0x40758d
test eax, 0x800
je 0x407595
test ebx, ebx
je 0x40731b
cmp dword [0x40e018], 1
jl 0x407595
push str.Cloud_backup_has_been_disabled_successfully._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.Could_not_disable_cloud_backup._n
jmp 0x40758d
mov eax, dword [0x40e018]
cmp eax, 1
jl 0x407356
mov eax, dword [esp + 0x94]
push eax
push str.Received__d_files_from_device._n
call fcn.004013c0
mov eax, dword [0x40e018]
add esp, 8
test ebx, ebx
je 0x40738b
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x44]
call fcn.00402600
add esp, 4
test eax, eax
je 0x407386
cmp dword [0x40e018], 1
jl 0x407595
push str.Backup_Successful._n
jmp 0x40758d
mov eax, dword [0x40e018]
cmp dword [0x40e484], 0
je 0x4073a7
cmp eax, 1
jl 0x407595
push str.Backup_Aborted._n
jmp 0x40758d
cmp eax, 1
jl 0x407595
mov eax, dword [esp + 0xb0]
neg eax
push eax
push str.Backup_Failed__Error_Code__d_._n
call fcn.004013c0
add esp, 8
jmp 0x407595
cmp dword [0x40e484], 0
je 0x4073ec
cmp dword [0x40e018], 1
jl 0x407595
push str.Unback_Aborted._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.The_files_can_now_be_found_in_the___unback___directory._n
call fcn.004013c0
add esp, 4
cmp dword [0x40e018], 1
jl 0x407595
push str.Unback_Successful._n
jmp 0x40758d
mov eax, dword [esp + 0x44]
test al, 0x40
je 0x407457
test ebx, ebx
je 0x407440
cmp dword [0x40e018], 1
jl 0x407595
push str.Backup_encryption_has_been_enabled_successfully._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.Could_not_enable_backup_encryption._n
jmp 0x40758d
test al, al
jns 0x40748d
test ebx, ebx
je 0x407476
cmp dword [0x40e018], 1
jl 0x407595
push str.Backup_encryption_has_been_disabled_successfully._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.Could_not_disable_backup_encryption._n
jmp 0x40758d
test eax, 0x100
je 0x407595
test ebx, ebx
je 0x4074b3
cmp dword [0x40e018], 1
jl 0x407595
push str.Backup_encryption_password_has_been_changed_successfully._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.Could_not_change_backup_encryption_password._n
jmp 0x40758d
test ebx, ebx
je 0x407506
test byte [esp + 0x44], 4
jne 0x4074ef
cmp dword [0x40e018], 1
jl 0x407595
push str.The_device_should_reboot_now._n
call fcn.004013c0
add esp, 4
cmp dword [0x40e018], 1
jl 0x407595
push str.Restore_Successful._n
jmp 0x40758d
mov esi, dword [sym.imp.imobiledevice.dll_afc_remove_path]
push str._iTunesRestore_RestoreApplications.plist
push dword [esp + 0x84]
call esi
push str._iTunesRestore
push dword [esp + 0x8c]
call esi
add esp, 0x10
cmp dword [0x40e484], 0
je 0x407544
cmp dword [0x40e018], 1
jl 0x407595
push str.Restore_Aborted._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
mov eax, dword [esp + 0xb0]
neg eax
push eax
push str.Restore_Failed__Error_Code__d_._n
call fcn.004013c0
add esp, 8
jmp 0x407595
cmp dword [0x40e484], 0
je 0x40757f
cmp dword [0x40e018], 1
jl 0x407595
push str.Operation_Aborted._n
jmp 0x40758d
cmp dword [0x40e018], 1
jl 0x407595
push str.Operation_Successful._n
call fcn.004013c0
add esp, 4
mov esi, dword [sym.imp.imobiledevice.dll_afc_file_close]
mov ecx, dword [esp + 0xa0]
mov eax, ecx
mov edx, dword [esp + 0xa4]
or eax, edx
je 0x4075fd
push 0xc
push edx
push ecx
push dword [esp + 0x8c]
call dword [sym.imp.imobiledevice.dll_afc_file_lock]
push dword [esp + 0xb4]
push dword [esp + 0xb4]
push dword [esp + 0x98]
call esi
add esp, 0x1c
xorps xmm0, xmm0
movlpd qword [esp + 0xa0], xmm0
test edi, edi
je 0x4075ef
cmp edi, 1
jne 0x4075fd
mov ecx, dword [esp + 0x5c]
mov edx, str.com.apple.itunes_mobdev.syncDidFinish
call fcn.00402700
mov eax, dword [esp + 0x88]
test eax, eax
je 0x407640
push eax
mov eax, dword [sym.imp.imobiledevice.dll_lockdownd_client_free]
call eax
add esp, 4
jmp 0x407635
push str.com.apple.mobilebackup2
push str.ERROR:_Could_not_start_service__s._n
call fcn.004013c0
push dword [esp + 0x90]
mov eax, dword [sym.imp.imobiledevice.dll_lockdownd_client_free]
call eax
add esp, 0xc
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40765a
push eax
call dword [sym.imp.imobiledevice.dll_mobilebackup2_client_free]
add esp, 4
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x80]
test eax, eax
je 0x40767a
push eax
call dword [sym.imp.imobiledevice.dll_afc_client_free]
add esp, 4
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x40769a
push eax
call dword [sym.imp.imobiledevice.dll_np_client_free]
add esp, 4
mov dword [esp + 0xb8], 0
push dword [esp + 0x5c]
call dword [sym.imp.imobiledevice.dll_idevice_free]
mov eax, dword [esp + 0x54]
add esp, 4
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0x5c], 0
test eax, eax
je 0x4076c3
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4076d9
push eax
call ebx
add esp, 4
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4076e7
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0xb0]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret
push str.No_command_specified._n
call fcn.004013c0
add esp, 4
mov edx, ebx
call fcn.00403ec0
mov ecx, dword [esp + 0x43c]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00407770
mov esp, ebp
pop ebp
ret