Function at 0x100db300
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x1019a1c8
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x10279264]
xor eax, esp
mov dword [esp + 0x40], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x68]
mov esi, dword [ebp + 0x1a8]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0x41], eax
mov dword [esp + 0x45], eax
mov dword [esp + 0x49], eax
mov word [esp + 0x4d], ax
mov byte [esp + 0x4f], al
test esi, esi
je 0x100db830
lea eax, [esp + 0x30]
push eax
call fcn.1013c5a0
test eax, eax
setge cl
mov byte [ebp + 0x1a5], cl
test cl, cl
je 0x100db7f0
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
cmp byte [ebp + 0x45], bl
je 0x100db684
mov eax, dword [ebp + 0x84]
mov edx, dword [ebp + 0x88]
lea ecx, [eax + 0x80]
lea eax, [edx + eax + 0x80]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
add edx, esi
mov eax, ebx
adc eax, edi
cmp eax, ebx
jb 0x100db684
ja 0x100db3cc
cmp edx, ecx
jbe 0x100db684
xor ebx, ebx
cmp ebx, edi
jb 0x100db684
ja 0x100db3e2
cmp dword [esp + 0x28], esi
jbe 0x100db684
mov ebx, esi
and ebx, 0xf
mov dword [esp + 0x34], ebx
mov ebx, 0
jne 0x100db3f6
test ebx, ebx
je 0x100db435
push edi
push esi
push str.offset_0x_x_is_not_block_aligned
lea edi, [esp + 0x4c]
mov dword [esp + 0x4c], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x50], 0x657
mov byte [esp + 0x54], 0xff
mov dword [esp + 0x58], str._ERROR:
mov dword [esp + 0x5c], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
add esp, 0xc
xor eax, eax
jmp 0x100db86a
test dword [esp + 0x6c], 0xf
je 0x100db47e
push edi
push esi
push str.length_0x_x_is_not_block_aligned
lea edi, [esp + 0x4c]
mov dword [esp + 0x4c], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x50], 0x65e
mov byte [esp + 0x54], 0xff
mov dword [esp + 0x58], str._ERROR:
mov dword [esp + 0x5c], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
add esp, 0xc
xor eax, eax
jmp 0x100db86a
xor ebx, ebx
cmp edi, ebx
ja 0x100db4ba
jb 0x100db48a
cmp esi, ecx
jae 0x100db4ba
mov ebx, dword [esp + 0x70]
mov esi, ecx
xor edi, edi
sub esi, ebx
cmp eax, edi
ja 0x100db4ac
jb 0x100db4a0
cmp edx, dword [esp + 0x28]
ja 0x100db4ac
sub ebx, ecx
add ebx, dword [esp + 0x6c]
mov dword [esp + 0x2c], ebx
jmp 0x100db4e4
mov eax, dword [esp + 0x28]
sub eax, ecx
mov dword [esp + 0x2c], eax
mov ebx, eax
jmp 0x100db4e4
xor edi, edi
xor esi, esi
cmp eax, edi
jb 0x100db4da
ja 0x100db4ca
cmp edx, dword [esp + 0x28]
jbe 0x100db4da
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
mov ebx, eax
jmp 0x100db4e4
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x2c], edx
mov ebx, edx
mov eax, dword [esp + 0x28]
push eax
push ecx
push str.cipher_start_0x_x__cipher_end_0x_x
lea edi, [esp + 0x20]
mov dword [esp + 0x20], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x24], 0x67c
mov byte [esp + 0x28], 0
mov dword [esp + 0x2c], str._DEBUG:
mov dword [esp + 0x30], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
add esp, 0xc
push ecx
push edx
push eax
push str.offset_0x_016I64x__buf_len_0x_x
lea edi, [esp + 0x24]
mov dword [esp + 0x24], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x28], 0x67d
mov byte [esp + 0x2c], 0
mov dword [esp + 0x30], str._DEBUG:
mov dword [esp + 0x34], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
push ebx
push esi
push str.buf_dec_start_0x_x__buf_dec_len_0x_x
lea edi, [esp + 0x30]
mov dword [esp + 0x30], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x34], 0x67e
mov byte [esp + 0x38], 0
mov dword [esp + 0x3c], str._DEBUG:
mov dword [esp + 0x40], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
add esp, 0x1c
lea ecx, [ebp + 0x4c]
push ecx
mov ebx, str.CHECKSUM_LOCK
lea edi, [esp + 0x38]
call fcn.100f7d10
mov edx, dword [esp + 0x2c]
lea eax, [edx + esi]
mov dword [esp + 0x60], 0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
cmp esi, eax
jae 0x100db60e
lea edi, [esi + ebx]
lea ecx, [ecx]
mov eax, dword [ebp + 0x90]
push eax
lea ecx, [esp + 0x44]
call fcn.1014e1e0
add esp, 4
test eax, eax
jne 0x100db634
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [edi], ecx
mov ecx, dword [esp + 0x4c]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
add esi, 0x10
add edi, 0x10
cmp esi, dword [esp + 0x28]
jb 0x100db5d0
mov esi, ebp
mov byte [ebp + 0x47], 1
call fcn.100d76f0
lea edi, [esp + 0x34]
mov dword [esp + 0x60], 0xffffffff
call fcn.100f7da0
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
jmp 0x100db688
push str.AES_decryption_fail
lea edi, [esp + 0x18]
mov dword [esp + 0x18], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x1c], 0x689
mov byte [esp + 0x20], 0
mov dword [esp + 0x24], str._DEBUG:
mov dword [esp + 0x28], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
add esp, 4
lea edi, [esp + 0x34]
xor esi, esi
mov dword [esp + 0x60], 0xffffffff
call fcn.100f7da0
mov eax, esi
jmp 0x100db86a
mov ebx, dword [esp + 0x30]
mov eax, dword [ebp + 0x19c]
xor ecx, ecx
cmp esi, eax
jne 0x100db7bf
cmp edi, ecx
jne 0x100db7bf
mov edx, dword [ebx]
push edx
mov esi, str._DEBUG:
push str.sparse_magic_detect_0x_x
lea edi, [esp + 0x1c]
mov dword [esp + 0x1c], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x20], 0x69b
mov byte [esp + 0x24], cl
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
mov eax, dword [ebp + 0x198]
push eax
push str.m_p_rom_chksum_obj___p_.
lea edi, [esp + 0x24]
mov dword [esp + 0x24], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x28], 0x69c
mov byte [esp + 0x2c], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
mov eax, dword [ebp + 0x198]
add esp, 0x10
cmp dword [ebx], 0xed26ff3a
jne 0x100db7b3
mov edx, dword [esp + 0x6c]
mov byte [eax + 0x10], 1
xor ecx, ecx
mov word [eax + 0xc0], cx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], ebx
mov eax, dword [ebx + 0x10]
mul dword [ebx + 0xc]
mov ecx, dword [ebp + 0x198]
push str.current_image_is_SPARSE_image
lea edi, [esp + 0x18]
mov dword [ecx + 0xc8], eax
mov dword [ecx + 0xcc], edx
mov dword [esp + 0x18], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x1c], 0x6a0
mov byte [esp + 0x20], 0
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
movzx eax, word [ebx + 8]
add esp, 4
and eax, 0x80000007
jns 0x100db798
dec eax
or eax, 0xfffffff8
inc eax
jne 0x100db7bf
movzx ecx, word [ebx + 0xa]
and ecx, 0x80000007
jns 0x100db7ab
dec ecx
or ecx, 0xfffffff8
inc ecx
jne 0x100db7bf
mov byte [ebp + 0x48], 1
jmp 0x100db7bf
xor edx, edx
mov word [eax + 0xc0], dx
mov byte [eax + 0x10], dl
cmp byte [ebp + 0x48], 0
jne 0x100db7dc
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebp + 0x198]
push eax
push ebx
push ecx
call fcn.100d7c00
jmp 0x100db868
mov edx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x198]
push edx
push ebx
push eax
call fcn.100d7ce0
jmp 0x100db868
mov esi, dword [esp + 0x30]
push esi
push eax
push str.GetNextPackage___failed__len__d___p_buf__p_.
lea edi, [esp + 0x20]
mov dword [esp + 0x20], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x24], 0x6b0
mov byte [esp + 0x28], 0xff
mov dword [esp + 0x2c], str._ERROR:
mov dword [esp + 0x30], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
add esp, 0xc
mov eax, esi
jmp 0x100db86a
push 0
push str.invalid_argument_m_stream_io_mgr__p_.
lea edi, [esp + 0x1c]
mov dword [esp + 0x1c], str.FlashToolLib_source_common_handle_src_flashtool_handle_internal.cpp
mov dword [esp + 0x20], 0x6b3
mov byte [esp + 0x24], 0xff
mov dword [esp + 0x28], str._ERROR:
mov dword [esp + 0x2c], str.FileLoadUnit::GetDLPackageBuf
call fcn.10017c90
add esp, 8
mov eax, ebx
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.1016cb16
add esp, 0x50
ret 0x10