Function at 0x45cdf0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0xffffffffffffffff
push 0x472fe8
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x4c6b0c]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c6b0c]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
sub esp, 0x1c
mov esi, ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str._ndwgReader18::readDwgClasses_n
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [esp + 0xcc], 0
call fcn.00460470
or edi, 0xffffffff
mov ecx, eax
mov dword [esp + 0xcc], edi
call fcn.004601e0
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x178]
mov dword [esp + 0x1c], 3
call fcn.0045aea0
push eax
lea ecx, [esp + 0x40]
call fcn.0045a860
cmp dword [esp + 0x3c], 0
mov dword [esp + 0xb0], 1
jge 0x45cead
lea ecx, [esp + 0x3c]
mov dword [esp + 0xb0], edi
call fcn.0040d2e0
xor al, al
jmp 0x45d893
sub esp, 0x68
lea edx, [esp + 0xa4]
mov ecx, esp
mov dword [esp + 0x80], esp
push edx
call fcn.0045a860
mov ecx, esi
call fcn.00459da0
mov ecx, dword [esp + 0x88]
mov bl, al
mov eax, dword [esp + 0x84]
mov dword [esi + 0x1e8], eax
mov dword [esi + 0x1ec], ecx
test bl, bl
je 0x45d864
lea ebp, [esi + 0x1b8]
push ebp
mov edx, eax
mov eax, dword [esi + 0x1e4]
push edx
push eax
lea ecx, [esp + 0x38]
call fcn.0045dd50
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.classes_section_sentinel
mov byte [esp + 0xd0], 2
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 3
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
push 1
push 3
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.0044fae0
lea ecx, [esp + 0x2c]
call fcn.0045e1d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str._ndata_size_in_bytes
mov edi, eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 4
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
push edi
call fcn.00460470
mov ecx, eax
call fcn.00460270
mov edi, 7
cmp dword [esi + 0x170], edi
jle 0x45cff9
cmp byte [esi + 0x164], 3
jbe 0x45cff9
lea ecx, [esp + 0x2c]
call fcn.0045e1d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str._n2010__MV__3__higth_32b:
mov ebx, eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 5
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
xor ebx, ebx
cmp dword [esi + 0x170], edi
jle 0x45d04b
lea ecx, [esp + 0x2c]
call fcn.0045e1d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str._ntotal_size_in_bits
mov ebx, eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 6
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
lea ecx, [esp + 0x2c]
call fcn.0045e980
sub esp, 0x1c
movzx edi, ax
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nMaximum_class_number
mov dword [esp + 0x38], edi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 7
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
push edi
call fcn.00460470
mov ecx, eax
call fcn.00460270
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nRc_1
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 8
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
lea ecx, [esp + 0x2c]
call fcn.0045e070
movzx edx, al
push edx
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nRc_2
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 9
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
lea ecx, [esp + 0x2c]
call fcn.0045e070
movzx eax, al
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nBit
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0xa
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 2
call fcn.004601e0
lea ecx, [esp + 0x2c]
call fcn.0045df20
movzx ecx, al
push ecx
call fcn.00460470
mov ecx, eax
call fcn.00460250
mov edx, dword [esi + 0x1e8]
mov eax, dword [esi + 0x1e4]
push ebp
push edx
push eax
lea ecx, [esp + 0x28]
lea edi, [esp + 0x38]
call fcn.0045dd50
cmp dword [esi + 0x170], 7
mov byte [esp + 0xb0], 0xb
jle 0x45d52f
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrStartPos:
lea edi, [esp + 0x3c]
add ebx, 0xbf
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0xc
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
mov ecx, ebx
shr ecx, 3
push 0
push ecx
mov ecx, edi
call fcn.0045de20
mov dl, bl
and dl, 7
movzx eax, dl
push eax
mov ecx, edi
call fcn.0045de40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_strings_buff.getPosition:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0xd
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
mov ecx, edi
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_strings_buff.getBitPos:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0xe
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
movzx ecx, byte [esp + 0x29]
push ecx
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nendBit
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0xf
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
mov ecx, edi
call fcn.0045df20
movzx edx, al
push edx
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrStartPos:
sub ebx, 0x10
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x10
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
mov eax, ebx
shr eax, 3
push 0
push eax
mov ecx, edi
call fcn.0045de20
mov cl, bl
and cl, 7
movzx edx, cl
push edx
mov ecx, edi
call fcn.0045de40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_strings_buff.getPosition:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x11
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
mov ecx, edi
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_strings_buff.getBitPos:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x12
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
movzx eax, byte [esp + 0x29]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
mov ecx, edi
call fcn.0045e0b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrDataSize:
movzx ebp, ax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x13
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
push ebp
call fcn.00460470
mov ecx, eax
call fcn.00460270
test ebp, 0x8000
je 0x45d446
sub ebx, 0x10
mov ecx, ebx
shr ecx, 3
push 0
push ecx
mov ecx, edi
call fcn.0045de20
mov dl, bl
and dl, 7
movzx eax, dl
push eax
mov ecx, edi
call fcn.0045de40
mov ecx, edi
call fcn.0045e0b0
movzx eax, ax
and ebp, 0x7fff
shl eax, 0xf
or eax, ebp
mov ebp, eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrStartPos:
sub ebx, ebp
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x14
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
mov ecx, ebx
shr ecx, 3
push 0
push ecx
lea ecx, [esp + 0x24]
call fcn.0045de20
and bl, 7
movzx edx, bl
push edx
lea ecx, [esp + 0x20]
call fcn.0045de40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_strings_buff.getPosition:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x15
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
lea ecx, [esp + 0x1c]
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_strings_buff.getBitPos:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x16
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
movzx eax, byte [esp + 0x29]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
mov ebp, dword [esp + 0x18]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nbuff.getPosition:
add ebp, 0xfffffe0d
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x17
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
lea ecx, [esp + 0x2c]
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
test ebp, ebp
jbe 0x45d635
push 0x6c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0xb0], 0x18
test eax, eax
je 0x45d5ad
mov ecx, eax
call fcn.004588c0
mov ebx, eax
jmp 0x45d5af
xor ebx, ebx
mov edx, dword [esi + 0x170]
push edi
lea ecx, [esp + 0x30]
push ecx
push edx
mov ecx, ebx
mov byte [esp + 0xbc], 0xb
call fcn.00468640
movzx eax, word [ebx + 0x64]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 0x198]
mov dword [esp + 0x1c], eax
call fcn.004516b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nbuff.getPosition:
mov dword [eax], ebx
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x19
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
lea ecx, [esp + 0x2c]
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub ebp, 1
jne 0x45d588
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nend_classes_data_buff.getPosition:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x1a
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
lea ecx, [esp + 0x2c]
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nend_classes_data_buff.getBitPos:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x1b
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
movzx edx, byte [esp + 0x39]
push edx
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nend_classes_strings_buff.getPosition:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x1c
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
mov ecx, edi
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nend_classes_strings_buff.getBitPos:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x1d
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
movzx eax, byte [edi + 0xd]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
mov ecx, edi
call fcn.0045de00
add eax, 1
adc edx, 0
push edx
push eax
mov ecx, edi
call fcn.0045de20
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nCRC:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x1e
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
mov ecx, edi
call fcn.0045e0b0
movzx eax, ax
cdq
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602f0
cmp dword [esi + 0x170], 6
jle 0x45d7f5
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nunknown_CRC:
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x1f
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
mov ecx, edi
call fcn.0045e0b0
movzx eax, ax
cdq
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nclasses_section_end_sentinel
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0xcc], 0x20
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xcc], 0xb
call fcn.004601e0
push 0
push 3
push edi
mov ecx, esi
call fcn.0044fae0
mov edi, dword [edi + 4]
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
mov ecx, edi
call eax
lea ecx, [esp + 0x1c]
mov bl, al
mov byte [esp + 0xb0], 2
call fcn.0045ddf0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb0], 1
call fcn.0045ddf0
or edi, 0xffffffff
mov eax, dword [esi + 0x1e4]
test eax, eax
je 0x45d881
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov dword [esi + 0x1e4], 0
lea ecx, [esp + 0x3c]
mov dword [esp + 0xb0], edi
call fcn.0040d2e0
mov al, bl
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.0046980b
add esp, 0xa0
ret