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

Disassembly:
push 0xffffffffffffffff
push 0x52f4c9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x100
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 1
push ecx
lea eax, [esp + 0x128]
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.004065f0
lea ecx, [esp + 0x38]
call dword [sym.imp.XML.dll_public:_void___thiscall_CXmlNodeWrapper::constructor_class__com_ptr_t_class__com_IIID_struct_MSXML2::IXMLDOMNode__struct___s_GUID__GUID_2933bf80_7b36_11d2_b20e_00c04f983e60____int_]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x118], 0
call sub.MFC42u.DLL_CString::CString_3
lea ecx, [esp + 0x30]
mov byte [esp + 0x118], 1
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::Name_void_]
push eax
lea ecx, [esp + 0x20]
call sub.MFC42u.DLL_CString::operator
mov ecx, dword [esp + 0x1c]
mov edi, dword [sym.imp.MSVCRT.dll_wcscmp]
push str.HMI_Type
push ecx
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 8
test eax, eax
jne 0x40545a
call fcn.0047de30
mov ecx, eax
call fcn.0047e5d0
cmp dword [esi + 0x288], eax
jne 0x40521d
mov dword [esi + 0x28c], 1
jmp 0x406294
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_int___thiscall_CXmlNodeWrapper::NumAttributes_void_]
xor edi, edi
mov dword [esp + 0x44], eax
test eax, eax
mov dword [esp + 0x10], edi
jle 0x405a08
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribName_int_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 2
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 3
call sub.MFC42u.DLL_CString::Format
mov ecx, dword [esp + 0x24]
push 0x56a610
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 0x14
test eax, eax
jne 0x405353
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribVal_int_]
push eax
lea ecx, [esp + 0x44]
call sub.MFC42u.DLL_CString::CString_1
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x18]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 4
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x88]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x24]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0xdd]
mov byte [esp + 0xdc], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0xd8]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0xd0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0xd0]
push ecx
lea edi, [esi + 0x88]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
mov dword [esi + 0x288], eax
mov byte [esp + 0x118], 3
lea ecx, [esp + 0x40]
jmp 0x405419
mov ecx, dword [esp + 0x18]
push str.back_picture_name
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x405422
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribVal_int_]
push eax
lea ecx, [esp + 0x40]
call sub.MFC42u.DLL_CString::CString_1
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x18]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 5
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0xc8]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x24]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
push eax
lea eax, [esi + 0xc8]
push eax
call ebx
add esp, 0xc
mov byte [esp + 0x118], 3
lea ecx, [esp + 0x3c]
call sub.MFC42u.DLL_CString::CString
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 2
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 1
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
mov dword [esp + 0x10], edi
jl 0x405239
jmp 0x405a08
mov ecx, dword [esp + 0x1c]
push str.screen_size_cx
push ecx
call edi
add esp, 8
test eax, eax
jne 0x40554e
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetText_void_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 6
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 7
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x108]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
lea edi, [esi + 0x108]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [0x57def0], eax
mov byte [esp + 0x118], 6
call sub.MFC42u.DLL_CString::CString
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
jmp 0x405a03
mov ecx, dword [esp + 0x1c]
push str.screen_size_cy
push ecx
call edi
add esp, 8
test eax, eax
jne 0x405642
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetText_void_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 8
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 9
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x148]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
lea edi, [esi + 0x148]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [0x57def4], eax
mov byte [esp + 0x118], 8
call sub.MFC42u.DLL_CString::CString
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
jmp 0x405a03
mov ecx, dword [esp + 0x1c]
push str.back_picture_size_cx
push ecx
call edi
add esp, 8
test eax, eax
jne 0x405737
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetText_void_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 0xa
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 0xb
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x188]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
lea edi, [esi + 0x188]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esi + 0x294], eax
mov byte [esp + 0x118], 0xa
call sub.MFC42u.DLL_CString::CString
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
jmp 0x405a03
mov ecx, dword [esp + 0x1c]
push str.back_picture_size_cy
push ecx
call edi
add esp, 8
test eax, eax
jne 0x40582c
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetText_void_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 0xc
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 0xd
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x1c8]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
lea edi, [esi + 0x1c8]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esi + 0x290], eax
mov byte [esp + 0x118], 0xc
call sub.MFC42u.DLL_CString::CString
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
jmp 0x405a03
mov ecx, dword [esp + 0x1c]
push str.palette
push ecx
call edi
add esp, 8
test eax, eax
jne 0x405920
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetText_void_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 0xe
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 0xf
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x208]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
lea edi, [esi + 0x208]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [0x57deec], eax
mov byte [esp + 0x118], 0xe
call sub.MFC42u.DLL_CString::CString
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
jmp 0x405a03
mov ecx, dword [esp + 0x1c]
push str.HWFile
push ecx
call edi
add esp, 8
test eax, eax
jne 0x405a08
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetText_void_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 0x10
call sub.MFC42u.DLL_CString::CString_3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 0x11
call sub.MFC42u.DLL_CString::Format
lea edi, [esi + 0x248]
mov ecx, 0x10
xor eax, eax
mov edx, dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, 0xf
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
add esp, 0xc
rep stosd dword es:[edi], eax
push 0
push 0
lea ecx, [esp + 0x98]
push 0x40
push ecx
push 0xffffffffffffffff
stosw word es:[edi], ax
push edx
push 0x200
push 0
stosb byte es:[edi], al
call ebp
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
push eax
lea eax, [esi + 0x248]
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 0x10
call sub.MFC42u.DLL_CString::CString
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x1c]
mov edi, dword [sym.imp.MSVCRT.dll_wcscmp]
push str.Function_positions
push ecx
call edi
add esp, 8
test eax, eax
jne 0x405a37
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_long_int___thiscall_CXmlNodeWrapper::NumNodes_void_]
mov dword [esi + 0x2b8], eax
mov dword [esi + 0x300], eax
mov edx, dword [esp + 0x1c]
push 0x56a4e8
push edx
call edi
add esp, 8
test eax, eax
jne 0x40625e
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_int___thiscall_CXmlNodeWrapper::NumAttributes_void_]
xor edi, edi
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x10], edi
jle 0x405e48
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribName_int_]
push eax
lea ecx, [esp + 0x48]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 0x12
call sub.MFC42u.DLL_CString::CString_3
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x18]
push eax
push 0x56a618
push ecx
mov byte [esp + 0x124], 0x13
call sub.MFC42u.DLL_CString::Format
mov edx, dword [esp + 0x24]
push 0x56a4e4
push edx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 0x14
test eax, eax
jne 0x405b98
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribVal_int_]
push eax
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push 0x56a618
push ecx
mov byte [esp + 0x124], 0x14
call sub.MFC42u.DLL_CString::Format
lea eax, [esi + 0x2c0]
xor edx, edx
add esp, 0xc
lea ecx, [esp + 0x80]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov byte [esp + 0x80], dl
mov dword [eax + 0xc], edx
xor eax, eax
mov dword [esp + 0x81], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x85], eax
mov dword [esp + 0x89], eax
mov word [esp + 0x8d], ax
push eax
push eax
push 0x10
push ecx
push 0xffffffffffffffff
push edx
push 0x200
push eax
mov byte [esp + 0xaf], al
call ebp
lea edi, [esp + 0x80]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x80]
push ecx
lea edi, [esi + 0x2c0]
push eax
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x14]
jmp 0x405e0c
mov ecx, dword [esp + 0x18]
push 0x56a4e0
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x405c6c
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribVal_int_]
push eax
lea ecx, [esp + 0x40]
call sub.MFC42u.DLL_CString::CString_1
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x18]
push edx
push 0x56a618
push eax
mov byte [esp + 0x124], 0x15
call sub.MFC42u.DLL_CString::Format
lea eax, [esi + 0x2d0]
xor ecx, ecx
xor edx, edx
add esp, 0xc
mov dword [eax], ecx
mov dword [esp + 0x71], edx
mov dword [esp + 0x75], edx
mov dword [eax + 4], ecx
mov dword [esp + 0x79], edx
mov word [esp + 0x7d], dx
mov dword [eax + 8], ecx
push edx
push edx
mov byte [esp + 0x78], cl
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x78]
push 0x10
push eax
push 0xffffffffffffffff
push ecx
push 0x200
push edx
mov byte [esp + 0x9f], dl
call ebp
lea edi, [esp + 0x70]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x70]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esi + 0x2d0]
push ecx
push edx
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x3c]
jmp 0x405e0c
mov eax, dword [esp + 0x18]
push str.width
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x405d3d
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribVal_int_]
push eax
lea ecx, [esp + 0x44]
call sub.MFC42u.DLL_CString::CString_1
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x18]
push ecx
push 0x56a618
push edx
mov byte [esp + 0x124], 0x16
call sub.MFC42u.DLL_CString::Format
lea eax, [esi + 0x2e0]
xor ecx, ecx
xor edx, edx
add esp, 0xc
mov dword [eax], ecx
mov dword [esp + 0x51], edx
mov dword [esp + 0x55], edx
mov dword [eax + 4], ecx
mov dword [esp + 0x59], edx
mov word [esp + 0x5d], dx
mov dword [eax + 8], ecx
push edx
push edx
mov byte [esp + 0x58], cl
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x58]
push 0x10
push eax
push 0xffffffffffffffff
push ecx
push 0x200
push edx
mov byte [esp + 0x7f], dl
call ebp
lea edi, [esp + 0x50]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x50]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esi + 0x2e0]
push ecx
push edx
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x40]
jmp 0x405e0c
mov eax, dword [esp + 0x18]
push str.height
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x405e15
push edi
lea ecx, [esp + 0x34]
call dword [sym.imp.XML.dll_public:_unsigned_short_int____thiscall_CXmlNodeWrapper::GetAttribVal_int_]
push eax
lea ecx, [esp + 0x50]
call sub.MFC42u.DLL_CString::CString_1
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x18]
push ecx
push 0x56a618
push edx
mov byte [esp + 0x124], 0x17
call sub.MFC42u.DLL_CString::Format
lea eax, [esi + 0x2f0]
xor ecx, ecx
xor edx, edx
add esp, 0xc
mov dword [eax], ecx
mov dword [esp + 0x61], edx
mov dword [esp + 0x65], edx
mov dword [eax + 4], ecx
mov dword [esp + 0x69], edx
mov word [esp + 0x6d], dx
mov dword [eax + 8], ecx
push edx
push edx
mov byte [esp + 0x68], cl
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push 0x10
push eax
push 0xffffffffffffffff
push ecx
push 0x200
push edx
mov byte [esp + 0x8f], dl
call ebp
lea edi, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x60]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esi + 0x2f0]
push ecx
push edx
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x4c]
call sub.MFC42u.DLL_CString::CString
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 0x12
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x118], 1
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x48]
inc edi
cmp edi, eax
mov dword [esp + 0x10], edi
jl 0x405a6a
mov edi, str.SPN_057
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esi + 0xc8]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.SPN_057
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x405eb4
mov eax, dword [esi + 0x2b8]
mov edi, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub eax, edi
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
jmp 0x405eb8
mov ebp, dword [esp + 0x2c]
mov edi, str.SPN_104
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.SPN_104
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x405f18
mov edx, dword [esi + 0x2b8]
mov eax, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub edx, eax
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [edx], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, str.KG5300
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.KG5300
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x405f78
mov ecx, dword [esi + 0x2b8]
mov eax, dword [esi + 0x300]
mov edx, dword [0x57def8]
sub ecx, eax
mov eax, dword [esp + 0x24]
shl ecx, 4
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [ecx], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, str.KG5500
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.KG5500
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x405fd8
mov eax, dword [esi + 0x2b8]
mov edi, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub eax, edi
mov edx, dword [esp + 0x24]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, str.MT4200K
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.MT4200K
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x406038
mov edx, dword [esi + 0x2b8]
mov eax, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub edx, eax
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [edx], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, str.5300T_SANY
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.5300T_SANY
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x406098
mov ecx, dword [esi + 0x2b8]
mov eax, dword [esi + 0x300]
mov edx, dword [0x57def8]
sub ecx, eax
mov eax, dword [esp + 0x24]
shl ecx, 4
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [ecx], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, str.KW5300T
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.KW5300T
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x4060f8
mov eax, dword [esi + 0x2b8]
mov edi, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub eax, edi
mov edx, dword [esp + 0x24]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, str.KM5303T
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.KM5303T
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x406158
mov edx, dword [esi + 0x2b8]
mov eax, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub edx, eax
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [edx], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, 0x56a47c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56a47c
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x40619e
mov edi, str.CZ10
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.CZ10
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x4061db
mov ecx, dword [esi + 0x2b8]
mov eax, dword [esi + 0x300]
mov edx, dword [0x57def8]
sub ecx, eax
mov eax, dword [esp + 0x24]
shl ecx, 4
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [ecx], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov edi, 0x56a470
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56a470
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x406221
mov edi, 0x56a46c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56a46c
push ebx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x40625e
mov eax, dword [esi + 0x2b8]
mov edi, dword [esi + 0x300]
mov ecx, dword [0x57def8]
sub eax, edi
mov edx, dword [esp + 0x24]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
mov eax, dword [esi + 0x300]
dec eax
mov dword [esi + 0x300], eax
mov eax, dword [esi + 0x28c]
test eax, eax
jne 0x406294
lea ecx, [esp + 0x30]
call dword [sym.imp.XML.dll_public:_long_int___thiscall_CXmlNodeWrapper::NumNodes_void_]
mov ebx, eax
xor edi, edi
test ebx, ebx
jle 0x406294
mov ebp, dword [sym.imp.XML.dll_public:_struct_MSXML2::IXMLDOMNode____thiscall_CXmlNodeWrapper::GetNode_int_]
push edi
lea ecx, [esp + 0x34]
call ebp
push eax
mov ecx, esi
call fcn.00405160
inc edi
cmp edi, ebx
jl 0x406280
lea ecx, [esp + 0x1c]
mov byte [esp + 0x118], 0
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x30]
mov dword [esp + 0x118], 0xffffffff
call dword [sym.imp.XML.dll_public_virtual:_void___thiscall_CXmlNodeWrapper::destructor_void_]
mov ecx, dword [esp + 0x110]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x10c
ret 4