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

Disassembly:
push 0xffffffffffffffff
push 0x100dbb49
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x144
push ebx
mov ebx, dword [esp + 0x158]
push ebp
mov ebp, ecx
mov al, byte [ebp + 0x1f8]
test al, al
push esi
push edi
mov dword [esp + 0x14], 0
je 0x1004d122
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.10047c60
test al, al
je 0x1004d122
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0xb8]
imul esi, esi, 0x34
add eax, esi
add eax, 0x1c
push eax
lea ecx, [ebp + 0x80]
call fcn.10049a60
mov ebp, dword [ebp + 0xb8]
mov eax, dword [ebp + esi + 0x2c]
add ebp, esi
inc eax
mov dword [ebp + 0x2c], eax
mov ecx, dword [esp + 0x154]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x150
ret 8
mov eax, dword [ebp]
imul eax, dword [ebp + 4]
xor ecx, ecx
sub esp, 0xc
mov edi, esp
mov dword [edi], ecx
mov edx, ecx
mov dword [edi + 4], edx
lea esi, [ebp + 0x80]
mov dword [edi + 8], ecx
push eax
mov ecx, esi
call fcn.10049cf0
mov eax, dword [ebx + 0x14]
xor edi, edi
cmp eax, edi
jne 0x1004d1b9
mov eax, dword [ebp + 0x94]
cmp eax, edi
mov word [esp + 0x18], di
mov word [esp + 0x1a], di
mov word [esp + 0x1c], di
mov word [esp + 0x1e], di
mov dword [esp + 0x20], edi
je 0x1004d199
mov ecx, dword [ebp + 0x98]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x28], ecx
je 0x1004d199
mov word [esp + 0x18], 1
mov eax, dword [ebp + 0x88]
mov ebp, dword [ebp + 0x84]
lea edx, [esp + 0x18]
push edx
push eax
push ebp
call fcn.100d1790
add esp, 0xc
jmp 0x1004d107
mov eax, dword [esp + 0x168]
push edi
push 1
push eax
lea ecx, [esp + 0x24]
push ebx
push ecx
call dword [sym.imp.OgreMain.dll_public:_static_class_Ogre::ResourceGroupManager____cdecl_Ogre::ResourceGroupManager::getSingleton_void_]
mov ecx, eax
call dword [sym.imp.OgreMain.dll_public:_class_Ogre::SharedPtr_class_Ogre::DataStream____thiscall_Ogre::ResourceGroupManager::openResource_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___bool__class_Ogre::Resource__]
mov eax, dword [esp + 0x20]
cmp eax, edi
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x15c], edi
mov dword [esp + 0x2c], 0x100efd98
mov dword [esp + 0x30], 0x100e934c
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
je 0x1004d205
inc dword [eax]
push 4
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x164], 1
call fcn.1008f110
cmp dword [esp + 0x3c], 0x46454749
je 0x1004d2b1
push ebx
lea ecx, [esp + 0x84]
push str.Invalid_magic_of_grid_info_file_
push ecx
call fcn.10001480
push str.while_loading_terrain_
push eax
lea edx, [esp + 0xcc]
push edx
mov byte [esp + 0x174], 2
call fcn.10001500
add ebp, 0xc4
push ebp
push eax
lea eax, [esp + 0xbc]
push eax
mov byte [esp + 0x180], 3
call fcn.10001400
push 0x100efe3c
push eax
lea ecx, [esp + 0x78]
push ecx
mov byte [esp + 0x18c], 4
call fcn.10001500
add esp, 0x30
push 0x244
push str..CoreTerrainData.cpp
push str.TerrainData::load
push eax
push 4
mov byte [esp + 0x170], 5
call dword [sym.imp.OgreMain.dll_public:_static_void___cdecl_Ogre::Exception::_throw_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const___char_const___long_int_]
mov eax, dword [esp + 0x40]
cmp eax, 0x100002
jbe 0x1004d3e3
push 1
push 2
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov edx, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push str.You_should_run_lastest_version_software_to_support_this_version_grid_info_file.
push edx
push 0x100f02dc
push 0x100002
mov ecx, dword [esp + 0x50]
push 0x10046610
push str.Current_support_version_is__
mov esi, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
mov eax, edx
push eax
push 0x100efe3c
add ebp, 0xc4
push ebp
push str._found_while_loading_terrain_
push 0x100e9424
push ebx
push str._of_grid_info_file_
push 0x100f0280
push ecx
push 0x10046610
lea edx, [esp + 0x114]
push str.A_newest_version__
push edx
mov byte [esp + 0x1a4], 6
call esi
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base_____cdecl___class_std::ios_base___]
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
push eax
call esi
add esp, 8
push eax
call esi
add esp, 8
push eax
call fcn.100017c0
add esp, 8
push eax
call esi
add esp, 8
push eax
call esi
add esp, 8
push eax
call fcn.100017c0
add esp, 8
push eax
call esi
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push eax
call esi
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base_____cdecl___class_std::ios_base___]
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
push eax
call esi
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push eax
call esi
add esp, 8
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xd8]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov byte [esp + 0x15c], 7
push 0x250
push str..CoreTerrainData.cpp
push str.TerrainData::load
push eax
push 4
call dword [sym.imp.OgreMain.dll_public:_static_void___cdecl_Ogre::Exception::_throw_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const___char_const___long_int_]
cmp eax, 0x100000
jae 0x1004d474
push ebx
lea ecx, [esp + 0x50]
push str.Invalid_version_of_grid_info_file_
push ecx
call fcn.10001480
push str.while_loading_terrain_
push eax
lea edx, [esp + 0xb0]
push edx
mov byte [esp + 0x174], 8
call fcn.10001500
add ebp, 0xc4
push ebp
push eax
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x180], 9
call fcn.10001400
push 0x100efe3c
push eax
lea ecx, [esp + 0xac]
push ecx
mov byte [esp + 0x18c], 0xa
call fcn.10001500
add esp, 0x30
push 0x256
push str..CoreTerrainData.cpp
push str.TerrainData::load
push eax
push 4
mov byte [esp + 0x170], 0xb
call dword [sym.imp.OgreMain.dll_public:_static_void___cdecl_Ogre::Exception::_throw_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const___char_const___long_int_]
cmp eax, 0x100002
je 0x1004d582
push 1
push 2
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov edx, dword [esp + 0x40]
push str._you_should_upgrade_it_as_soon_as_possible_when_you_re_save_the_file.
mov esi, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
push 0x100f01fc
push 0x100002
push 0x10046610
push str._current_version__
push 0x100f01e4
push edx
push 0x10046610
push str._is_an_older_format_version__
push ebx
lea eax, [esp + 0xfc]
push str.WARNING:
push eax
mov byte [esp + 0x18c], 0xc
call esi
add esp, 8
push eax
call fcn.100017c0
add esp, 8
push eax
call esi
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base_____cdecl___class_std::ios_base___]
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
push eax
call esi
add esp, 8
push eax
call esi
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base_____cdecl___class_std::ios_base___]
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
push eax
call esi
add esp, 8
push eax
call esi
add esp, 8
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0xd8]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
push edi
push 2
push eax
mov byte [esp + 0x168], 0xd
call dword [sym.imp.OgreMain.dll_public:_static_class_Ogre::LogManager____cdecl_Ogre::LogManager::getSingleton_void_]
mov ecx, eax
call dword [sym.imp.OgreMain.dll_public:_void___thiscall_Ogre::LogManager::logMessage_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___enum_Ogre::LogMessageLevel__bool_]
lea ecx, [esp + 0x80]
mov byte [esp + 0x15c], 0xc
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xd4]
mov byte [esp + 0x15c], 1
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
cmp edx, dword [ebp]
jne 0x1004d80f
mov ecx, dword [esp + 0x48]
cmp ecx, dword [ebp + 4]
jne 0x1004d80f
cmp eax, 0x100002
mov byte [esp + 0x11], 0
jb 0x1004d5b8
push 1
lea edx, [esp + 0x15]
push edx
lea ecx, [esp + 0x34]
call fcn.1008f130
lea ecx, [ebp + 0x90]
call fcn.10046820
mov esi, dword [ebp + 0x84]
mov dword [esp + 0x28], eax
cmp esi, dword [ebp + 0x88]
jne 0x1004d675
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov esi, dword [ecx + 0x20]
call dword [eax + 0x20]
cmp eax, esi
je 0x1004d76c
push ebx
lea ecx, [esp + 0x50]
push str.Invalid_grid_info_file_
push ecx
call fcn.10001480
push str.while_loading_terrain_
push eax
lea edx, [esp + 0xb0]
push edx
mov byte [esp + 0x174], 0x14
call fcn.10001500
add ebp, 0xc4
push ebp
push eax
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x180], 0x15
call fcn.10001400
push 0x100efe3c
push eax
lea ecx, [esp + 0xac]
push ecx
mov byte [esp + 0x18c], 0x16
call fcn.10001500
add esp, 0x30
push 0x29c
push str..CoreTerrainData.cpp
push str.TerrainData::load
push eax
push 4
mov byte [esp + 0x170], 0x17
call dword [sym.imp.OgreMain.dll_public:_static_void___cdecl_Ogre::Exception::_throw_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const___char_const___long_int_]
xor edi, edi
mov al, byte [esp + 0x11]
test al, al
je 0x1004d6aa
push 1
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.1008f0f0
push 1
lea ecx, [esp + 0x16]
push ecx
lea ecx, [esp + 0x34]
call fcn.1008f150
mov dx, word [esp + 0x24]
movzx ax, byte [esp + 0x12]
jmp 0x1004d6c7
push 2
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.1008f150
mov ax, word [esp + 0x14]
movzx dx, al
movzx ax, ah
movzx ecx, dx
mov word [esi + edi*4 + 2], ax
cmp ecx, dword [esp + 0x28]
mov word [esi + edi*4], dx
ja 0x1004d71e
inc edi
cmp edi, 2
jb 0x1004d675
mov dword [esi + 8], 0
cmp dword [esp + 0x40], 0x100001
jb 0x1004d708
push 1
lea edx, [esp + 0x17]
push edx
lea ecx, [esp + 0x34]
call fcn.1008f150
movzx eax, byte [esp + 0x13]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x88]
add esi, 0xc
cmp esi, eax
jne 0x1004d673
jmp 0x1004d5d9
push ebx
lea ecx, [esp + 0x50]
push str.Invalid_pixmapId_in_grid_info_
push ecx
call fcn.10001480
push 0x100efe3c
push eax
lea edx, [esp + 0xb0]
push edx
mov byte [esp + 0x174], 0x12
call fcn.10001500
add esp, 0x18
push 0x28a
push str..CoreTerrainData.cpp
push str.TerrainData::_loadGridInfo
push eax
push 4
mov byte [esp + 0x170], 0x13
call dword [sym.imp.OgreMain.dll_public:_static_void___cdecl_Ogre::Exception::_throw_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const___char_const___long_int_]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x15c], 0
call fcn.10046d20
or edi, 0xffffffff
lea ecx, [esp + 0x18]
mov dword [esp + 0x15c], edi
call fcn.10003280
mov al, byte [ebp + 0x1f8]
test al, al
je 0x1004d107
mov ecx, ebp
call fcn.1004cf80
lea ecx, [esp + 0x4c]
call fcn.100499e0
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x160], 0x18
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea esi, [ebp + 0x80]
push esi
lea ecx, [esp + 0x6c]
call fcn.10049a60
mov ecx, esi
call fcn.100d1610
lea edx, [esp + 0x4c]
push edx
lea ecx, [ebp + 0xb4]
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], 1
call fcn.1004d000
lea ecx, [esp + 0x4c]
mov dword [esp + 0x15c], edi
call fcn.10049a20
jmp 0x1004d107
push ebx
lea eax, [esp + 0x50]
push str.Dimensions_of_grid_info_file_
push eax
call fcn.10001480
push str._doesnt_match_the_dimensions_of_the_terrain_
push eax
lea ecx, [esp + 0xb0]
push ecx
mov byte [esp + 0x174], 0xe
call fcn.10001500
add ebp, 0xc4
push ebp
push eax
lea edx, [esp + 0xd8]
push edx
mov byte [esp + 0x180], 0xf
call fcn.10001400
push 0x100efe3c
push eax
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x18c], 0x10
call fcn.10001500
add esp, 0x30
push 0x265
push str..CoreTerrainData.cpp
push str.TerrainData::load
push eax
push 4
mov byte [esp + 0x170], 0x11
call dword [sym.imp.OgreMain.dll_public:_static_void___cdecl_Ogre::Exception::_throw_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const___char_const___long_int_]
int3