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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x472220
mov eax, dword fs:[0]
push eax
sub esp, 0x468
mov eax, dword [0x4c6b0c]
xor eax, esp
mov dword [esp + 0x430], eax
push ebx
push esi
push edi
mov eax, dword [0x4c6b0c]
xor eax, esp
push eax
lea eax, [esp + 0x478]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0x170], 6
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], eax
mov byte [esp + 0x32], 1
mov dword [esp + 0x4c], ebx
jge 0x45699a
mov eax, dword [edi + 0x1f0]
mov dword [esp + 0x3c], eax
cmp eax, ebx
je 0x4568da
lea ebx, [ebx]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esi + 4]
call fcn.004501e0
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x50], ecx
cmp ecx, ebx
je 0x4565b0
cmp ecx, eax
je 0x4565ba
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x50]
cmp edi, dword [esp + 0x68]
jne 0x456609
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + 0x1f4]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x54], esp
push str._nWARNING:_pline_vertex_not_found_n
mov dword [esp + 0x5c], edx
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 + 0x49c], ebx
call fcn.00460470
mov ecx, eax
mov dword [esp + 0x49c], 0xffffffff
call fcn.004601e0
mov byte [esp + 0x32], bl
jmp 0x4568cc
cmp ecx, ebx
jne 0x456993
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x50]
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x45662c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x50]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
push edi
push ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x18]
push ecx
lea ecx, [esi + 4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
call fcn.0040bf10
lea ecx, [esp + 0x9c]
call fcn.00401b00
fldz
fst qword [esp + 0x1f4]
mov dword [esp + 0x9c], vtable.DRW_Vertex.0
fst qword [esp + 0x1fc]
mov dword [esp + 0xa4], 0x1c
fst qword [esp + 0x21c]
mov dword [esp + 0x260], ebx
fst qword [esp + 0x214]
mov dword [esp + 0x25c], ebx
fst qword [esp + 0x204]
mov dword [esp + 0x258], ebx
fld1
mov dword [esp + 0x254], ebx
fstp qword [esp + 0x224]
mov dword [esp + 0x264], ebx
mov dword [esp + 0x244], ebx
fst qword [esp + 0x20c]
fst qword [esp + 0x23c]
fst qword [esp + 0x234]
fstp qword [esp + 0x22c]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x48]
push ebx
push edx
mov ecx, edi
mov dword [esp + 0x488], 1
call fcn.0045de20
mov ecx, edi
call fcn.0045ffe0
cmp dword [esi + 0x170], 7
mov dword [esp + 0x38], eax
jle 0x456724
mov ecx, edi
call fcn.0045fc80
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
push eax
call fcn.004697fb
mov ecx, dword [esp + 0x3c]
add esp, 4
push ecx
mov ecx, dword [esp + 0x4c]
mov edi, eax
push edi
call fcn.0045e470
mov eax, dword [esp + 0x38]
lea edx, [esi + 0x1b8]
push edx
push eax
push edi
lea ecx, [esp + 0x78]
call fcn.0045dd50
mov ecx, dword [esi + 0x170]
push ecx
lea ecx, [esp + 0x70]
mov byte [esp + 0x484], 2
call fcn.0045f080
movzx edx, ax
push ebx
push ebx
lea ecx, [esp + 0x74]
mov dword [esp + 0x40], edx
call fcn.0045de20
push ebx
lea ecx, [esp + 0x70]
call fcn.0045de40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str._object_type
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 + 0x49c], 3
call fcn.00460470
mov ecx, eax
mov byte [esp + 0x49c], 2
call fcn.004601e0
movsx eax, word [esp + 0x38]
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], 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 + 0x49c], 4
call fcn.00460470
mov ecx, eax
mov byte [esp + 0x49c], 2
call fcn.004601e0
mov ecx, dword [esp + 0x44]
fld qword [ecx + 0x168]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esi + 0x170]
sub esp, 8
fstp qword [esp]
push edx
lea eax, [esp + 0x78]
push eax
push ecx
lea ecx, [esp + 0xb0]
call fcn.00424ec0
push edi
mov byte [esp + 0x37], al
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
sub esp, 0x1cc
lea edx, [esp + 0x26c]
mov ecx, esp
mov dword [esp + 0x204], esp
push edx
call fcn.00456460
mov edi, dword [esp + 0x214]
mov ecx, edi
call fcn.0042ddf0
mov eax, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1a4]
mov dword [esi + 0x1dc], eax
mov dword [esi + 0x1e0], ecx
cmp byte [esp + 0x32], bl
je 0x45688a
mov byte [esp + 0x32], 1
cmp byte [esp + 0x33], bl
jne 0x45688e
mov byte [esp + 0x32], bl
lea ecx, [esp + 0x6c]
mov byte [esp + 0x480], 1
call fcn.0045ddf0
lea ecx, [esp + 0x9c]
mov dword [esp + 0x480], 0xffffffff
call fcn.00401f50
mov edx, dword [esp + 0x3c]
cmp edx, dword [edi + 0x1f4]
je 0x4568da
mov eax, dword [esi + 0x1dc]
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], ebx
jne 0x456580
mov edi, dword [esp + 0x44]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str._nRemoved_SEQEND_entity:
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 + 0x49c], 0xd
call fcn.00460470
mov ecx, eax
mov dword [esp + 0x49c], 0xffffffff
call fcn.004601e0
mov eax, dword [edi + 0x1fc]
add edi, 0x1fc
push ebx
push eax
call fcn.00460470
mov ecx, eax
call fcn.004602f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], 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 dword [esp + 0x49c], 0xe
call fcn.00460470
mov ecx, eax
mov dword [esp + 0x49c], 0xffffffff
call fcn.004601e0
push edi
lea ecx, [esi + 4]
call fcn.00450c70
mov al, byte [esp + 0x32]
mov ecx, dword [esp + 0x478]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x430]
xor ecx, esp
call fcn.0046980b
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ecx]
jmp 0x45661d
mov eax, dword [edi + 0x1e8]
mov ecx, dword [eax]
mov eax, dword [edi + 0x1d4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov edx, dword [edi + 0x1e8]
mov ecx, dword [edi + 0x1d4]
mov dword [esp + 0x68], edx
cmp eax, ebx
je 0x4569c8
cmp eax, ecx
je 0x4569d2
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x40], ecx
je 0x4568da
cmp eax, ebx
jne 0x456a8f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x40]
cmp edx, dword [eax + 0x14]
jne 0x4569ff
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x98]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + 4]
push eax
call fcn.004501e0
mov ecx, dword [eax]
mov edx, dword [esi + 0x1c]
mov edi, dword [eax + 4]
mov eax, dword [esi + 4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x90], edx
cmp ecx, ebx
je 0x456a3d
cmp ecx, eax
je 0x456a47
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x50]
cmp edi, dword [esp + 0x90]
jne 0x456a96
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str._nWARNING:_Entity_of_block_not_found_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 + 0x49c], 5
call fcn.00460470
mov ecx, eax
mov dword [esp + 0x49c], 0xffffffff
call fcn.004601e0
mov byte [esp + 0x32], bl
jmp 0x456dc9
mov eax, dword [eax]
jmp 0x4569f0
cmp ecx, ebx
jne 0x456dfb
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x50]
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x456ab9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x50]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
push edi
push ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x18]
push ecx
lea ecx, [esi + 4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
call fcn.0040bf10
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str._nPline_vertex__parsing_entity:
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 + 0x49c], 6
call fcn.00460470
or edi, 0xffffffff
mov ecx, eax
mov dword [esp + 0x49c], edi
call fcn.004601e0
mov edx, dword [esp + 0x5c]
push ebx
push edx
call fcn.00460470
mov ecx, eax
call fcn.004602f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.__pos:
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 + 0x49c], 7
call fcn.00460470
mov ecx, eax
mov dword [esp + 0x49c], edi
call fcn.004601e0
mov edi, dword [esp + 0x60]
push edi
call fcn.00460470
mov ecx, eax
call fcn.00460270
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], 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 dword [esp + 0x49c], 8
call fcn.00460470
mov ecx, eax
mov dword [esp + 0x49c], 0xffffffff
call fcn.004601e0
lea ecx, [esp + 0x26c]
call fcn.004020d0
fldz
fst qword [esp + 0x40c]
mov dword [esp + method.DRW_Vertex.virtual_0], vtable.DRW_Vertex.0
fst qword [esp + 0x404]
mov dword [esp + 0x274], 0x1c
fstp qword [esp + 0x3fc]
mov dword [esp + 0x430], ebx
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x428], ebx
mov dword [esp + 0x424], ebx
mov dword [esp + 0x434], ebx
mov dword [esp + 0x414], ebx
push ebx
push edi
mov edi, dword [esp + 0x50]
mov ecx, edi
mov dword [esp + 0x488], 9
call fcn.0045de20
mov ecx, edi
call fcn.0045ffe0
mov edi, eax
cmp dword [esi + 0x170], 7
jle 0x456c37
mov ecx, dword [esp + 0x48]
call fcn.0045fc80
mov dword [esp + 0x4c], eax
push edi
call fcn.004697fb
mov ecx, dword [esp + 0x4c]
add esp, 4
push edi
push eax
mov dword [esp + 0x40], eax
call fcn.0045e470
mov ecx, dword [esp + 0x38]
lea eax, [esi + 0x1b8]
push eax
push edi
push ecx
lea ecx, [esp + 0x88]
call fcn.0045dd50
mov edx, dword [esi + 0x170]
push edx
lea ecx, [esp + 0x80]
mov byte [esp + 0x484], 0xa
call fcn.0045f080
push ebx
push ebx
lea ecx, [esp + 0x84]
movzx edi, ax
call fcn.0045de20
push ebx
lea ecx, [esp + 0x80]
call fcn.0045de40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str._object_type
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 + 0x49c], 0xb
call fcn.00460470
mov ecx, eax
mov byte [esp + 0x49c], 0xa
call fcn.004601e0
movsx eax, di
push eax
call fcn.00460470
mov ecx, eax
call fcn.00460250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], 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 + 0x49c], 0xc
call fcn.00460470
mov ecx, eax
mov byte [esp + 0x49c], 0xa
call fcn.004601e0
mov edi, dword [esp + 0x44]
fld qword [edi + 0x168]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esi + 0x170]
sub esp, 8
fstp qword [esp]
push ecx
lea edx, [esp + 0x88]
push edx
push eax
lea ecx, [esp + 0x280]
call fcn.00424ec0
mov ecx, dword [esp + 0x38]
push ecx
mov byte [esp + 0x37], al
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
sub esp, 0x1cc
lea edx, [esp + 0x43c]
mov ecx, esp
mov dword [esp + 0x204], esp
push edx
call fcn.00456460
mov ecx, edi
call fcn.0042ddf0
mov eax, dword [esp + 0x370]
mov ecx, dword [esp + 0x374]
mov dword [esi + 0x1dc], eax
mov dword [esi + 0x1e0], ecx
cmp byte [esp + 0x32], bl
je 0x456d9d
mov byte [esp + 0x32], 1
cmp byte [esp + 0x33], bl
jne 0x456da1
mov byte [esp + 0x32], bl
lea ecx, [esp + 0x7c]
mov byte [esp + 0x480], 9
call fcn.0045ddf0
lea ecx, [esp + 0x26c]
mov dword [esp + 0x480], 0xffffffff
call fcn.00401f50
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jne 0x456e02
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edi, dword [esp + 0x40]
cmp edi, dword [eax + 0x14]
jne 0x456de8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [edi]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], edx
jmp 0x4569b0
mov eax, dword [ecx]
jmp 0x456aaa
mov eax, dword [eax]
jmp 0x456dd9