Function at 0x464090
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0xffffffffffffffff
push 0x473dc0
mov eax, dword fs:[0]
push eax
sub esp, 0x98
mov eax, dword [0x4c6b0c]
xor eax, esp
mov dword [esp + 0x94], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c6b0c]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
sub esp, 0x1c
mov edi, ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str._ndwgReader21::readDwgClasses
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 + 0xd0], 0
call fcn.00460470
or esi, 0xffffffff
mov ecx, eax
mov dword [esp + 0xd0], esi
call fcn.004601e0
lea eax, [esp + 0x2c]
push eax
lea ecx, [edi + 0x178]
mov dword [esp + 0x30], 3
call fcn.0045aea0
push eax
lea ecx, [esp + 0x44]
call fcn.0045a860
cmp dword [esp + 0x40], 0
mov dword [esp + 0xb4], 1
jge 0x46414d
lea ecx, [esp + 0x40]
mov dword [esp + 0xb4], esi
call fcn.0040d2e0
xor al, al
jmp 0x464a61
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str._nprepare_section_of_size
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 + 0xd0], 2
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 1
call fcn.004601e0
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
push ecx
push edx
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x476478
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 + 0xd0], 3
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 1
call fcn.004601e0
mov eax, dword [esp + 0x88]
push eax
call fcn.004697fb
add esp, 4
mov ebx, eax
push ebx
sub esp, 0x68
lea edx, [esp + 0xac]
mov ecx, esp
mov dword [esp + 0x84], esp
push edx
mov dword [esp + 0x9c], ebx
call fcn.0045a860
mov ecx, edi
call fcn.00461f00
test al, al
je 0x464136
mov eax, dword [esp + 0x88]
lea esi, [edi + 0x1b8]
push esi
push eax
push ebx
lea ecx, [esp + 0x3c]
call fcn.0045dd50
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.classes_section_sentinel
mov byte [esp + 0xd4], 4
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 + 0xd0], 5
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
push 1
push 3
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
call fcn.0044fae0
lea ecx, [esp + 0x30]
call fcn.0045e1d0
sub esp, 0x1c
mov ebx, eax
mov ecx, esp
mov dword [esp + 0x30], esp
push str._ndata_size_in_bytes
mov dword [esp + 0x38], 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 + 0xd0], 6
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
lea ecx, [esp + 0x30]
call fcn.0045e1d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], 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 + 0xd0], 7
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
lea ecx, [esp + 0x30]
call fcn.0045e980
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nMaximum_class_number
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 + 0xd0], 8
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
push ebp
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 + 0xd0], 9
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
lea ecx, [esp + 0x30]
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 + 0xd0], 0xa
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
lea ecx, [esp + 0x30]
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 + 0xd0], 0xb
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 4
call fcn.004601e0
lea ecx, [esp + 0x30]
call fcn.0045df20
movzx ecx, al
push ecx
call fcn.00460470
mov ecx, eax
call fcn.00460250
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x2c]
push esi
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.0045dd50
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrStartPos:
mov byte [esp + 0xd4], 0xc
add ebx, 0x9f
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 + 0xd0], 0xd
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
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
mov dl, bl
and dl, 7
movzx eax, dl
push eax
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 + 0xd0], 0xe
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
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 + 0xd0], 0xf
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
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 + 0xd0], 0x10
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
lea ecx, [esp + 0x1c]
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 + 0xd0], 0x11
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
push ebx
call fcn.00460470
mov ecx, eax
call fcn.00460270
mov eax, ebx
shr eax, 3
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.0045de20
mov cl, bl
and cl, 7
movzx edx, cl
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 + 0xd0], 0x12
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
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 + 0xd0], 0x13
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
movzx eax, byte [esp + 0x29]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
lea ecx, [esp + 0x1c]
call fcn.0045e0b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrDataSize:
movzx esi, 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 + 0xd0], 0x14
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
push esi
call fcn.00460470
mov ecx, eax
call fcn.00460270
test esi, 0x8000
je 0x4646f7
sub ebx, 0x10
mov ecx, ebx
shr ecx, 3
push 0
push ecx
lea ecx, [esp + 0x24]
call fcn.0045de20
mov dl, bl
and dl, 7
movzx eax, dl
push eax
lea ecx, [esp + 0x20]
call fcn.0045de40
lea ecx, [esp + 0x1c]
call fcn.0045e0b0
movzx eax, ax
and esi, 0x7fff
shl eax, 0xf
or eax, esi
mov esi, eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nstrStartPos:
sub ebx, esi
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 + 0xd0], 0x15
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
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 + 0xd0], 0x16
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
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 + 0xd0], 0x17
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
movzx eax, byte [esp + 0x29]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
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 + 0xd0], 0x18
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
lea ecx, [esp + 0x30]
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
test ebp, ebp
jbe 0x4648e8
lea ebx, [edi + 0x198]
push 0x6c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0xb4], 0x19
test eax, eax
je 0x464860
mov ecx, eax
call fcn.004588c0
mov esi, eax
jmp 0x464862
xor esi, esi
mov eax, dword [edi + 0x170]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
mov ecx, esi
mov byte [esp + 0xc0], 0xc
call fcn.00468640
movzx ecx, word [esi + 0x64]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
mov ecx, ebx
call fcn.004516b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push str._nbuff.getPosition:
mov dword [eax], esi
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 + 0xd0], 0x1a
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
lea ecx, [esp + 0x30]
call fcn.0045de00
push edx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602b0
sub ebp, 1
jne 0x46483b
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 + 0xd0], 0x1b
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
lea ecx, [esp + 0x30]
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 + 0xd0], 0x1c
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
movzx eax, byte [esp + 0x3d]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
mov ecx, dword [esp + 0x18]
add ecx, 0x14
push 0
push ecx
lea ecx, [esp + 0x38]
call fcn.0045de20
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], 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 + 0xd0], 0x1d
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
lea ecx, [esp + 0x30]
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 + 0x34], 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 + 0xd0], 0x1e
call fcn.00460470
mov ecx, eax
mov byte [esp + 0xd0], 0xc
call fcn.004601e0
push 1
push 3
lea edx, [esp + 0x38]
push edx
mov ecx, edi
call fcn.0044fae0
mov eax, dword [esp + 0x2c]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
lea ecx, [esp + 0x1c]
mov bl, al
mov byte [esp + 0xb4], 4
call fcn.0045ddf0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 1
call fcn.0045ddf0
lea ecx, [esp + 0x40]
mov dword [esp + 0xb4], 0xffffffff
call fcn.0040d2e0
mov al, bl
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.0046980b
add esp, 0xa4
ret