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

Disassembly:
push 0xffffffffffffffff
push 0x100a71b7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xabc
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x78]
mov dword [esp + 0x20], esi
call fcn.10005110
mov al, byte [esp + 0x13]
xor ebp, ebp
push ebp
lea ecx, [esp + 0x58]
mov dword [esp + 0xad8], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x58], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x48], cl
lea ecx, [esp + 0x48]
mov byte [esp + 0xad8], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x68]
mov byte [esp + 0xad8], 2
mov byte [esp + 0x68], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x38]
mov byte [esp + 0xad8], 3
mov byte [esp + 0x38], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x28], cl
lea ecx, [esp + 0x28]
mov byte [esp + 0xad8], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, 0x13f
xor eax, eax
lea edi, [esp + 0x5cd]
mov byte [esp + 0x5cc], 0
rep stosd dword es:[edi], eax
add esi, 0x514
lea edx, [esp + 0x5cc]
stosw word es:[edi], ax
push esi
push 0x500
push edx
mov byte [esp + 0xae0], 5
mov dword [esp + 0x20], ebp
stosb byte es:[edi], al
call fcn.1000e420
lea eax, [esp + 0x5cc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea ecx, [esp + 0x5cc]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
mov edx, dword [esp + 0xae0]
mov esi, dword [esp + 0xadc]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
cmp eax, 1
je 0x1003d201
push ebp
push ebp
push esi
lea ecx, [esp + 0x84]
call fcn.100077e0
mov al, byte [esp + 0xa4]
test al, al
jne 0x1003d201
push str.TenSLX
lea ecx, [esp + 0x7c]
call fcn.100045a0
mov esi, eax
cmp esi, ebp
je 0x1003d201
mov edx, dword [esi]
lea eax, [esp + 0x1c]
push eax
push str.major
mov ecx, esi
call dword [edx + 0x14]
mov ecx, eax
call fcn.10004b00
mov edx, dword [esi]
lea eax, [esp + 0x18]
push eax
push str.minor
mov ecx, esi
call dword [edx + 0x14]
mov ecx, eax
call fcn.10004b00
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
je 0x1003d201
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x1003d201
cmp eax, 1
je 0x1003ced5
cmp ecx, 1
jne 0x1003d201
push str.CheckSum
mov ecx, esi
call fcn.10004810
mov ebx, eax
cmp ebx, ebp
je 0x1003d201
lea eax, [esp + 0x74]
mov ecx, ebx
push eax
push str.DetectType
call fcn.10004b90
cmp dword [esp + 0x74], ebp
je 0x1003d201
push str.Main
mov ecx, ebx
call fcn.10004810
cmp eax, ebp
je 0x1003d201
push str.FileVer
mov ecx, eax
call fcn.10004ae0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x28]
push ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x1003cf66
mov edi, dword [esp + 0x28]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1003d1ff
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x1003cf7f
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
mov eax, dword [esp + 0x24]
add eax, 0x14
push 0x500
push eax
call fcn.1000e420
push str.List
mov ecx, ebx
call fcn.10004810
push str.File
mov ecx, eax
call fcn.10004810
mov ebx, eax
test ebx, ebx
je 0x1003d1ff
mov ecx, 0x143
xor eax, eax
lea edi, [esp + 0xc0]
push str.PathName
rep stosd dword es:[edi], eax
mov ecx, ebx
call fcn.10004ae0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x58]
push ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x1003d010
mov edi, dword [esp + 0x58]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x58]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push str.CheckSum
mov ecx, ebx
call fcn.10004ae0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x48]
push ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x1003d05c
mov edi, dword [esp + 0x48]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push str.Size
mov ecx, ebx
call fcn.10004ae0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x68]
push ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x1003d0a8
mov edi, dword [esp + 0x68]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x68]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push str.Type
mov ecx, ebx
call fcn.10004ae0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x38]
push ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x1003d0f4
mov edi, dword [esp + 0x38]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x1003d101
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [esp + 0x5cc]
push eax
push ecx
push str._s_s
lea edx, [esp + 0xd8]
push 0x500
push edx
call fcn.10001950
mov eax, dword [esp + 0x5c]
add esp, 0x14
test eax, eax
jne 0x1003d131
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov esi, dword [sym.imp.SHLWAPI.dll_StrToIntExA]
lea ecx, [esp + 0x14]
push ecx
push 1
push eax
call esi
test eax, eax
je 0x1003d1ee
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0xc8], edx
mov dword [esp + 0x14], 0
jne 0x1003d169
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [esp + 0x14]
push ecx
push 1
push eax
call esi
test eax, eax
je 0x1003d1ee
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1003d1ee
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x1003d193
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x100f41ac
push eax
call esi
add esp, 8
test eax, eax
jne 0x1003d1b5
mov dword [esp + 0xc0], 1
jmp 0x1003d1dd
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x1003d1c2
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push str.unlaw
push eax
call esi
add esp, 8
neg eax
sbb eax, eax
and al, 0xfd
add eax, 3
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0xc0]
push edx
call fcn.1003d440
mov ecx, ebx
call fcn.10004850
mov ebx, eax
test ebx, ebx
jne 0x1003cfb4
xor ebp, ebp
mov eax, dword [esp + 0x28]
cmp eax, ebp
je 0x1003d226
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1003d21d
cmp al, 0xff
je 0x1003d21d
dec al
mov byte [ecx], al
jmp 0x1003d226
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], ebp
cmp eax, ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
je 0x1003d257
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1003d24e
cmp al, 0xff
je 0x1003d24e
dec al
mov byte [ecx], al
jmp 0x1003d257
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], ebp
cmp eax, ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
je 0x1003d288
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1003d27f
cmp al, 0xff
je 0x1003d27f
dec al
mov byte [ecx], al
jmp 0x1003d288
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x68], ebp
cmp eax, ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
je 0x1003d2b9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1003d2b0
cmp al, 0xff
je 0x1003d2b0
dec al
mov byte [ecx], al
jmp 0x1003d2b9
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x58]
mov dword [esp + 0x48], ebp
cmp eax, ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
je 0x1003d2ea
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1003d2e1
cmp al, 0xff
je 0x1003d2e1
dec al
mov byte [ecx], al
jmp 0x1003d2ea
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0xac]
pop edi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
pop esi
pop ebp
cmp eax, 0x101408d8
mov dword [esp + 0xac8], 0xffffffff
mov dword [esp + 0x6c], 0x100a877c
pop ebx
je 0x1003d324
push eax
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
lea ecx, [esp + 0x68]
call fcn.10004210
mov ecx, dword [esp + 0xabc]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0xac8
ret 8