Function at 0x40b810
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x460
mov eax, dword [0x436008]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [eax], 0
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x450], edi
mov dword [ebp - 0x44c], eax
cmp dword [edi + 0x58], 8
jle 0x40b852
test byte [edi], 8
je 0x40ba2d
push str.checking_for_local_shsh_n
call fcn.00404d10
mov eax, dword [edi + 0x50]
add esp, 4
test eax, eax
je 0x40b9f5
mov ecx, dword [edi + 0x60]
push eax
mov eax, dword [edi + 0x44]
push dword [eax]
lea eax, [ebp - 0x40c]
push dword [edi + 0x14]
push dword [edi + 0x10]
test ecx, ecx
je 0x40b894
push ecx
push str._s_shsh__I64u__s__s.shsh
push eax
call fcn.00403e30
add esp, 0x1c
jmp 0x40b8a2
push str.shsh__I64u__s__s.shsh
push eax
call fcn.00403e30
add esp, 0x18
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x40c]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
add esp, 8
test eax, eax
lea eax, [ebp - 0x40c]
jne 0x40b9e5
push 0x43c890
push eax
call dword [sym.imp.zlib.dll_gzopen]
add esp, 8
mov dword [ebp - 0x440], eax
test eax, eax
je 0x40ba02
push 0x4000
xor esi, esi
mov dword [ebp - 0x444], 0x4000
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov ebx, eax
push 0x4000
push eax
push dword [ebp - 0x440]
call dword [sym.imp.zlib.dll_gzread]
add esp, 0xc
test eax, eax
js 0x40b9c4
add esi, eax
cmp eax, 0x4000
jge 0x40b939
push dword [ebp - 0x440]
call dword [sym.imp.zlib.dll_gzeof]
add esp, 4
test eax, eax
jne 0x40b96a
mov eax, dword [ebp - 0x444]
add eax, 0x4000
push eax
push ebx
mov dword [ebp - 0x444], eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
push dword [ebp - 0x440]
mov ebx, eax
call dword [sym.imp.zlib.dll_gzeof]
add esp, 0xc
test eax, eax
lea eax, [ebx + esi]
je 0x40b900
push dword [ebp - 0x440]
call dword [sym.imp.zlib.dll_gzclose]
add esp, 4
test esi, esi
jle 0x40b9bb
mov eax, dword [ebx]
cmp eax, dword [str.bplist00]
jne 0x40b9ab
mov eax, dword [ebx + 4]
cmp eax, dword [0x43c8bc]
jne 0x40b9ab
push dword [ebp - 0x44c]
push esi
push ebx
call sym.fixios.exe_plist_from_bin
add esp, 0xc
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x40b9ff
push dword [ebp - 0x44c]
push esi
push ebx
call sym.fixios.exe_plist_from_xml
add esp, 0xc
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x40b9ff
push str.Error_reading_gz_compressed_data_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.00401090
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push eax
push str.no_local_file__s_n
call fcn.00404d10
add esp, 8
jmp 0x40ba02
push str.No_version_found___n
call fcn.00404d10
add esp, 4
mov eax, dword [ebp - 0x44c]
cmp dword [eax], 0
je 0x40ba2d
push str.Using_cached_SHSH_n
call fcn.00404cb0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0042eb3e
mov esp, ebp
pop ebp
ret
push str.Trying_to_fetch_new_SHSH_blob_n
call fcn.00404cb0
add esp, 4
push 1
push 0x18
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov edx, eax
mov dword [eax + 0x10], 5
call fcn.0042c770
mov esi, dword [edi + 0x10]
mov ebx, eax
mov edi, dword [edi + 0x14]
push 1
push 0x18
mov dword [ebp - 0x448], ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov edx, eax
mov dword [eax + 0x10], 1
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], 8
mov dword [eax + 0xc], 0
call fcn.0042c770
push eax
push 0x43c920
push ebx
call sym.fixios.exe_plist_dict_set_item
mov edi, dword [ebp - 0x450]
add esp, 0x1c
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x444], eax
test eax, eax
je 0x40bb0c
mov eax, dword [edi + 0x1c]
cdq
push 1
push 0x18
mov edi, eax
mov ebx, edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov esi, eax
push edi
mov dword [esi + 0x10], 7
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 0xc
mov dword [esi], eax
push edi
push dword [ebp - 0x444]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 8], edi
mov edx, esi
mov dword [esi + 0xc], ebx
call fcn.0042c770
mov ebx, dword [ebp - 0x448]
push eax
push 0x43c928
push ebx
call sym.fixios.exe_plist_dict_set_item
mov edi, dword [ebp - 0x450]
add esp, 0xc
lea eax, [ebp - 0x444]
mov dword [ebp - 0x440], 0
push eax
lea edx, [ebp - 0x440]
mov dword [ebp - 0x444], 0
mov ecx, edi
call fcn.0040b240
add esp, 4
cmp dword [ebp - 0x440], 0
je 0x40bbb1
mov eax, dword [ebp - 0x444]
cdq
push 1
push 0x18
mov edi, eax
mov ebx, edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov esi, eax
push edi
mov dword [esi + 0x10], 7
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 0xc
mov dword [esi], eax
push edi
push dword [ebp - 0x440]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 8], edi
mov edx, esi
mov dword [esi + 0xc], ebx
call fcn.0042c770
mov ebx, dword [ebp - 0x448]
push eax
push 0x43c930
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push dword [ebp - 0x440]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, dword [ebp - 0x450]
add esp, 4
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
push 1
push 0x18
call esi
mov edx, eax
mov dword [eax + 0x10], 0
mov byte [eax], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0
call fcn.0042c770
push eax
push 0x43c93c
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0x14
cmp dword [edi + 0x20], 0
push 1
push 0x18
je 0x40bc52
call esi
mov edx, eax
mov dword [eax + 0x10], 0
mov byte [eax], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0
call fcn.0042c770
push eax
push 0x43c950
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0x14
push 1
push 0x18
call esi
mov edx, eax
mov dword [eax + 0x10], 0
mov byte [eax], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0
call fcn.0042c770
push eax
push 0x43c960
jmp 0x40bc79
call esi
mov edx, eax
mov dword [eax + 0x10], 0
mov byte [eax], 0
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0
call fcn.0042c770
push eax
push 0x43c970
push ebx
call sym.fixios.exe_plist_dict_set_item
mov edx, dword [ebp - 0x458]
add esp, 0x14
mov ecx, ebx
call fcn.0041c270
call fcn.0041c0f0
mov esi, eax
test esi, esi
jne 0x40bcc6
push str.ERROR:_Unable_to_create_TSS_request_n
call fcn.00404d10
add esp, 4
test ebx, ebx
je 0x40bcb2
mov ecx, ebx
call fcn.00427a00
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0042eb3e
mov esp, ebp
pop ebp
ret
push 0
mov edx, ebx
mov ecx, esi
call fcn.0041cf50
add esp, 4
test eax, eax
jns 0x40bcee
push 0x43c9a8
call fcn.00404d10
add esp, 4
mov ecx, esi
call fcn.00427a00
jmp 0x40bca7
push ecx
mov edx, ebx
mov ecx, esi
call fcn.0041d520
add esp, 4
test eax, eax
jns 0x40bd15
push str.ERROR:_Unable_to_add_common_tags_to_TSS_request_n
call fcn.00404d10
add esp, 4
mov ecx, esi
call fcn.00427a00
jmp 0x40bca7
cmp dword [edi + 0x20], 0
mov edx, ebx
mov ecx, esi
je 0x40bd41
call fcn.0041cb60
test eax, eax
jns 0x40bd63
push str.ERROR:_Unable_to_add_img4_tags_to_TSS_request_n
call fcn.00404d10
add esp, 4
mov ecx, esi
call fcn.00427a00
jmp 0x40bca7
call fcn.0041cd80
test eax, eax
jns 0x40bd63
push str.ERROR:_Unable_to_add_img3_tags_to_TSS_request_n
call fcn.00404d10
add esp, 4
mov ecx, esi
call fcn.00427a00
jmp 0x40bca7
mov eax, dword [edi + 0x4c]
cmp dword [eax], 4
jne 0x40bfd6
push str.FirmwarePreflightInfo
mov ecx, edi
mov dword [ebp - 0x444], 0
call fcn.00413d40
add esp, 4
mov dword [ebp - 0x440], eax
test eax, eax
je 0x40bfc0
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x40bfc0
cmp dword [ecx + 0x10], 5
jne 0x40bfc0
push 0x43ca70
push eax
mov dword [ebp - 0x444], eax
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40bddb
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43ca78
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push 0x43ca80
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40be0a
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43ca88
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push 0x43ca94
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40be39
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43ca9c
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push 0x43caac
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40be68
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43cabc
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push ecx
mov edx, ebx
mov ecx, esi
call fcn.0041d890
add esp, 4
push str.EUICCChipID
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
mov dword [ebp - 0x448], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x45c], xmm0
test eax, eax
je 0x40bfcd
push eax
call sym.fixios.exe_plist_get_node_type
add esp, 4
cmp eax, 1
jne 0x40bfcd
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x448]
call sym.fixios.exe_plist_get_uint_val
push dword [ebp - 0x448]
call sym.fixios.exe_plist_copy
add esp, 0xc
push eax
push 0x43cad0
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
cmp dword [ebp - 0x458], 0
ja 0x40bef8
cmp dword [ebp - 0x45c], 5
jb 0x40bfcd
push str.EUICCCSN
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40bf27
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43caec
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push str.EUICCCertIdentifier
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40bf56
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43cb0c
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push 0x43cb24
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40bf85
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43cb34
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push 0x43cb44
push dword [ebp - 0x440]
call sym.fixios.exe_plist_dict_get_item
add esp, 8
test eax, eax
je 0x40bfb4
push eax
call sym.fixios.exe_plist_copy
add esp, 4
push eax
push 0x43cb54
push ebx
call sym.fixios.exe_plist_dict_set_item
add esp, 0xc
push ecx
mov edx, ebx
mov ecx, esi
call fcn.0041e970
jmp 0x40bfca
push str.ERROR:_Unable_to_get_FirmwarePreflightInfo_n
call fcn.00404d10
add esp, 4
mov eax, dword [ebp - 0x444]
mov dword [edi + 0x24], eax
mov edx, dword [edi + 8]
mov ecx, esi
call fcn.0041f450
mov edi, eax
test edi, edi
jne 0x40bfff
push str.ERROR:_Unable_to_send_TSS_request_n
call fcn.00404cb0
add esp, 4
mov ecx, esi
call fcn.00427a00
jmp 0x40bca7
push str.Received_SHSH_blobs_n
call fcn.00404cb0
add esp, 4
mov ecx, esi
call fcn.00427a00
test ebx, ebx
je 0x40c01e
mov ecx, ebx
call fcn.00427a00
mov eax, dword [ebp - 0x44c]
mov ecx, dword [ebp - 8]
xor ecx, ebp
mov dword [eax], edi
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.0042eb3e
mov esp, ebp
pop ebp
ret