Function at 0x407ec0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41e975
mov eax, dword fs:[0]
push eax
sub esp, 0x22c
push ebx
push esi
push edi
mov eax, dword [0x43fe30]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x68], ebx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 4], edi
mov byte [ebp - 4], 1
call sub.TD_Root_22.12_15.dll_class_OdRxDynamicLinker____cdecl_odrxDynamicLinker_void_
mov esi, eax
push str.TD_PdfExport
mov ecx, dword [esi]
mov eax, dword [ecx + 0x40]
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x5c], eax
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push edi
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x94]
mov ecx, esi
push eax
call dword [ebp - 0x5c]
mov esi, dword [eax]
mov byte [ebp - 4], 3
test esi, esi
je 0x407f6a
mov eax, dword [esi]
mov edi, dword [eax + 4]
call sub.TD_Root_22.12_15.dll_public:_static_class_OdRxClass____cdecl_OdRxModule::desc_void_
push eax
mov ecx, esi
call edi
mov edi, eax
mov dword [ebp - 0x74], edi
test edi, edi
je 0x4093ff
mov dword [ebp - 0x7c], edi
mov ecx, dword [ebp - 0x94]
mov byte [ebp - 4], 4
test ecx, ecx
je 0x407f87
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x94], 0
lea ecx, [ebp - 0x98]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov eax, dword [edi]
lea ecx, [ebp - 0x48]
push ecx
mov ecx, edi
mov dword [ebp - 4], 0
call dword [eax + 0x40]
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 8
call fcn.004026a0
cmp byte [ebx + 0x1c8], 0
jne 0x407fc3
mov byte [ebx + 0x1c9], 0
mov eax, dword [ebx + 0x1b4]
xor esi, esi
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], 0x11
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x78], esi
mov byte [ebp - 4], 0xb
call sub.TD_DbCore_22.12_15.dll_class_OdRxSystemServices____cdecl_odSystemServices_void_
push 2
push 0x40
push 0x40000000
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
lea ecx, [ebx + 0x1bc]
push ecx
lea ecx, [ebp - 0x9c]
push ecx
mov ecx, eax
call edx
mov ecx, dword [eax]
mov byte [ebp - 4], 0xc
test ecx, ecx
je 0x408021
mov eax, dword [ecx]
mov esi, ecx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x78], esi
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x9c]
mov byte [ebp - 4], 0xd
test ecx, ecx
je 0x40803e
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x9c], 0
mov ecx, dword [ebp - 0x1c4]
mov dword [ebp - 4], 0xa
cmp ecx, esi
je 0x408069
test ecx, ecx
je 0x408058
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x1c4], esi
test esi, esi
je 0x408069
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
xor ecx, ecx
mov eax, 0x4000
cmp byte [ebx + 0x1d5], cl
mov edx, 0x2000
cmovne ecx, eax
xor eax, eax
cmp byte [ebx + 0x1d4], al
cmovne eax, edx
mov edx, 0x1000
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1d3], al
cmovne eax, edx
mov edx, 0x800
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1d6], al
cmovne eax, edx
mov edx, 0x400
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1d2], al
cmovne eax, edx
mov edx, 0x200
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1d1], al
cmovne eax, edx
mov edx, pe_nt_image_headers32
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1d0], al
cmovne eax, edx
mov edx, 0x80
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1cf], al
cmovne eax, edx
mov edx, 0x40
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1ca], al
cmovne eax, edx
mov edx, 0x20
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1c9], al
cmovne eax, edx
mov edx, 8
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1ce], al
cmovne eax, edx
mov edx, 2
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1cb], al
setne al
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1cd], al
cmovne eax, edx
mov edx, 4
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1cc], al
cmovne eax, edx
mov edx, 0x10
or ecx, eax
xor eax, eax
cmp byte [ebx + 0x1c8], al
cmovne eax, edx
or ecx, eax
cmp dword [ebx + 0x1ec], 8
lea eax, [ebx + 0x1d8]
mov dword [ebp - 0x198], ecx
jb 0x408187
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x10c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push eax
lea ecx, [ebp - 0x18c]
mov byte [ebp - 4], 0x12
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0xa
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
cmp dword [ebx + 0x204], 8
lea eax, [ebx + 0x1f0]
jb 0x4081c3
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x110]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push eax
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x13
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xa
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
cmp dword [ebx + 0x21c], 8
lea eax, [ebx + 0x208]
jb 0x4081ff
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x138]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push eax
lea ecx, [ebp - 0x184]
mov byte [ebp - 4], 0x14
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], 0xa
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
cmp dword [ebx + 0x234], 8
lea eax, [ebx + 0x220]
jb 0x40823b
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x108]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push eax
lea ecx, [ebp - 0x180]
mov byte [ebp - 4], 0x15
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0xa
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
cmp dword [ebx + 0x24c], 8
lea eax, [ebx + 0x238]
jb 0x408277
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x11c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push eax
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 0x16
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0xa
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
cmp dword [ebx + 0x264], 8
lea eax, [ebx + 0x250]
jb 0x4082b3
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xe4]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
push eax
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x17
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
lea ecx, [ebp - 0xe4]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov eax, dword [ebx + 0x268]
sub eax, 0
je 0x408307
sub eax, 1
je 0x4082fb
sub eax, 1
jne 0x408311
mov dword [ebp - 0x148], 2
jmp 0x408311
mov dword [ebp - 0x148], 1
jmp 0x408311
mov dword [ebp - 0x148], 0
mov al, byte [ebx + 0x26c]
mov byte [ebp - 0x140], al
mov al, byte [ebx + 0x26e]
mov byte [ebp - 0x16b], al
mov al, byte [ebx + 0x26f]
mov byte [ebp - 0x170], al
mov al, byte [ebx + 0x270]
mov byte [ebp - 0x16f], al
movzx eax, word [ebx + 0x274]
cmp eax, 0x64
jbe 0x408354
mov eax, 0x64
jmp 0x40835e
cmp eax, 0xa
jae 0x40835e
mov eax, 0xa
cmp byte [ebx + 0x27f], 1
mov cl, byte [ebx + 0x280]
mov word [ebp - 0x16e], ax
mov eax, dword [ebx + 0x278]
mov dword [ebp - 0x168], eax
mov al, byte [ebx + 0x27c]
mov byte [ebp - 0x16c], al
mov al, byte [ebx + 0x27d]
mov byte [ebp - 0x14b], al
mov al, byte [ebx + 0x27e]
mov byte [ebp - 0x14a], al
jne 0x4083ad
cmp cl, 1
jne 0x4083ad
mov al, cl
jmp 0x4083af
xor al, al
mov byte [ebp - 0x13c], al
mov al, byte [ebx + 0x281]
mov byte [ebp - 0x13b], al
test cl, cl
je 0x4083d5
cmp byte [ebx + 0x1cd], 0
je 0x4083d5
mov eax, 2
jmp 0x4083d7
xor eax, eax
test cl, cl
je 0x4083e7
cmp byte [ebx + 0x1cc], 0
je 0x4083e7
or eax, 1
mov dword [ebp - 0x194], eax
xor eax, eax
cmp byte [ebx + 0x282], 1
mov dword [ebp - 0x1c8], 0x11
setne al
mov byte [ebp - 4], 0x18
and dword [ebp - 0x198], 0xffffff7f
inc eax
mov dword [ebp - 0x164], eax
call sub.TD_Root_22.12_15.dll_class_OdRxDynamicLinker____cdecl_odrxDynamicLinker_void_
mov esi, eax
push 0x2e
push str.OdPrcModule
mov ecx, dword [esi]
mov edi, dword [ecx + 0x40]
lea ecx, [ebp - 0xa0]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_char_const___enum_OdCodePageId_
push 0
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
call edi
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1b
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x4084ea
call sub.TD_Root_22.12_15.dll_class_OdRxDynamicLinker____cdecl_odrxDynamicLinker_void_
mov esi, eax
push 0x2e
push str.OdDwg2PrcExport
mov ecx, dword [esi]
mov edi, dword [ecx + 0x40]
lea ecx, [ebp - 0xa8]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_char_const___enum_OdCodePageId_
push 0
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x1c
push eax
lea eax, [ebp - 0xa4]
mov ecx, esi
push eax
call edi
mov esi, dword [eax]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1d
cmp ecx, esi
je 0x4084bf
test ecx, ecx
je 0x4084b1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x18], esi
test esi, esi
je 0x4084bf
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
mov ecx, dword [ebp - 0xa4]
mov byte [ebp - 4], 0x1e
test ecx, ecx
je 0x4084dc
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xa4], 0
lea ecx, [ebp - 0xa8]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1f
test ecx, ecx
je 0x40851b
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x18], 0
jmp 0x40851b
mov ecx, dword [ebx + 0x284]
xor eax, eax
mov dword [ebp - 4], 0xa
mov dl, 1
sub ecx, eax
je 0x408546
sub ecx, 2
je 0x40853f
sub ecx, 1
jne 0x408548
lea eax, [ecx + 2]
jmp 0x408548
mov eax, 1
jmp 0x408548
xor dl, dl
mov cl, byte [ebx + 0x288]
test dl, dl
jne 0x40855f
test cl, cl
jne 0x408566
and dword [ebp - 0x160], 0xfffffff3
jmp 0x408574
or eax, 4
test cl, cl
je 0x40856b
or eax, 8
jmp 0x40856e
and eax, 0xfffffff7
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0xac]
push eax
call fcn.0040a320
add esp, 4
mov edi, dword [eax]
xor esi, esi
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0xe8], esi
test edi, edi
je 0x4085ba
mov eax, dword [edi]
mov esi, dword [eax + 4]
call sub.TD_PdfExport_22.12_15.tx_public:_static_class_OdRxClass____cdecl_OdPrcContextForPdfExport::desc_void_
push eax
mov ecx, edi
call esi
mov esi, eax
mov dword [ebp - 0x5c], esi
test esi, esi
je 0x40942b
mov dword [ebp - 0xe8], esi
mov ecx, dword [ebp - 0xac]
mov byte [ebp - 4], 0x24
test ecx, ecx
je 0x4085d7
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0x15c]
mov byte [ebp - 4], 0x23
cmp ecx, esi
je 0x4085ff
test ecx, ecx
je 0x4085ee
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x15c], esi
test esi, esi
je 0x4085ff
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
mov eax, dword [ebx + 0x28c]
sub eax, 1
je 0x408638
sub eax, 1
je 0x40862c
sub eax, 1
je 0x408620
mov dword [ebp - 0x1a4], 0
jmp 0x408642
mov dword [ebp - 0x1a4], 3
jmp 0x408642
mov dword [ebp - 0x1a4], 2
jmp 0x408642
mov dword [ebp - 0x1a4], 1
mov eax, dword [ebx + 0x290]
mov dword [ebp - 0x1a0], 0
sub eax, 1
jne 0x408661
mov dword [ebp - 0x1a0], 1
mov eax, dword [ebx + 0x294]
mov dword [ebp - 0x19c], 0
sub eax, 1
jne 0x408680
mov dword [ebp - 0x19c], 1
movzx eax, word [ebx + 0x298]
mov esi, 0x9bf8
movzx edx, word [ebp - 0x1aa]
lea ecx, [eax - 0x48]
cmp cx, si
movzx esi, word [ebx + 0x29c]
cmovbe edx, eax
mov word [ebp - 0x1aa], dx
cmp esi, 0x48
jb 0x4086c5
movzx ecx, word [ebp - 0x1a6]
cmp si, dx
mov eax, esi
cmovbe ecx, eax
mov word [ebp - 0x1a6], cx
movzx esi, word [ebx + 0x2a0]
cmp esi, 0x48
jb 0x4086e7
movzx ecx, word [ebp - 0x1a8]
cmp si, dx
mov eax, esi
cmovbe ecx, eax
mov word [ebp - 0x1a8], cx
mov eax, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
add eax, 0x10
mov dword [ebp - 0x1d0], eax
add eax, 0xfffffff0
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 0xd8]
mov eax, 1
lock xadd dword [edx], eax
inc eax
mov eax, dword [ebx + 0x2b0]
mov byte [ebp - 0x12], 0
sub eax, 1
je 0x408739
sub eax, 1
je 0x40872d
sub eax, 1
jne 0x408743
mov byte [ebp - 0x12], 1
jmp 0x408743
mov dword [ebp - 0x190], 2
jmp 0x408743
mov dword [ebp - 0x190], 1
xor edi, edi
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0xc8], edi
mov ecx, dword [ebx + 0x1b4]
push 0x2e
mov byte [ebp - 4], 0x26
mov eax, dword [ecx]
mov eax, dword [eax + 0x2f0]
call eax
cmp al, 1
mov edx, str.monochrome.stb
mov ecx, str.monochrome.ctb
cmovne ecx, edx
push ecx
lea ecx, [ebp - 0x4c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_char_const___enum_OdCodePageId_
cmp byte [ebp - 0x12], 0
mov byte [ebp - 4], 0x27
je 0x408b51
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
call dword [eax + 0xe8]
test eax, eax
je 0x4087b0
mov edx, dword [eax]
mov edi, eax
mov ecx, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0xc8], edi
call dword [edx + 0x10]
mov eax, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
add eax, 0x10
mov dword [ebp - 0x40], eax
add eax, 0xfffffff0
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x60]
mov eax, 1
lock xadd dword [edx], eax
inc eax
mov eax, dword [edi]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, edi
mov byte [ebp - 4], 0x28
call dword [eax + 0x78]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [eax - 4]
cmp dword [ecx + 0xc], 0
mov dword [ebp - 0x84], esi
jne 0x408806
cmp dword [ecx + 0x10], 0
je 0x408806
lea ecx, [ebp - 0x4c]
call sub.TD_Root_22.12_15.dll_protected:_void___thiscall_OdString::syncUnicode_void_const
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x54], edx
xor edx, edx
mov dword [ebp - 0x64], edx
test esi, esi
je 0x40898f
nop dword [eax]
cmp edx, dword [eax - 4]
jae 0x409475
add eax, 0xfffffff0
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x30]
mov eax, 0
lock xadd dword [edx], eax
cmp eax, 1
setg al
test al, al
je 0x408968
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax - 0xc]
lea esi, [eax - 0x10]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0xb0], ecx
mov edx, dword [eax - 8]
mov dword [ebp - 0x24], edx
test ecx, ecx
jle 0x408875
lea eax, [edx - 1]
xor edx, edx
add eax, ecx
div ecx
mov esi, eax
imul esi, ecx
jmp 0x408896
mov esi, dword [esi + 0xc]
mov eax, 0x51eb851f
mov ecx, esi
imul ecx, dword [ebp - 0xb0]
neg ecx
mul ecx
shr edx, 5
add esi, edx
cmp esi, dword [ebp - 0x24]
cmovb esi, dword [ebp - 0x24]
lea eax, [esi*4 + 0x10]
cmp eax, esi
jbe 0x409457
push eax
call sub.TD_Alloc_22.12_15.dll_odrxAlloc
mov ecx, eax
add esp, 4
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x409457
mov dword [ecx], 0
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x88]
mov eax, 1
lock xchg dword [edx], eax
mov eax, dword [ebp - 0xb0]
mov dword [ecx + 8], esi
mov esi, dword [ebp - 0x50]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0xc], 0
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0x10]
cmp edx, dword [ebp - 0x24]
lea edi, [eax + 0x10]
cmovae edx, dword [ebp - 0x24]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x88], edx
test edx, edx
je 0x40892e
mov eax, dword [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x50], eax
mov ebx, dword [ebp - 0x50]
lea ecx, [ecx + 4]
mov eax, dword [ecx - 4]
mov dword [ebx + ecx - 4], eax
mov ebx, dword [ebp - 0x68]
sub edx, 1
jne 0x408916
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x88]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x50], esi
mov edx, dword [ebp - 0x50]
mov eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jne 0x408962
cmp esi, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
je 0x408962
push esi
call sub.TD_Alloc_22.12_15.dll_odrxFree
add esp, 4
mov esi, dword [ebp - 0x84]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x54]
mov edx, dword [eax + edx*4]
mov cx, word [ecx]
cmp cx, word [edx]
je 0x408b48
mov edx, dword [ebp - 0x64]
inc edx
mov dword [ebp - 0x64], edx
cmp edx, esi
jb 0x408820
lea ecx, [eax - 0x10]
mov byte [ebp - 4], 0x27
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x54]
mov eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jne 0x4089bb
cmp ecx, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
je 0x4089bb
push ecx
call sub.TD_Alloc_22.12_15.dll_odrxFree
add esp, 4
cmp byte [ebp - 0x11], 0
je 0x408b51
mov ecx, dword [ebx + 0x1b4]
lea eax, [ebp - 0x1d4]
push 1
push eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdDbObjectId___thiscall_OdDbDatabase::getLayoutDictionaryId_bool_
push 0
push 0
lea ecx, [ebp - 0xb4]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x29
call fcn.00402240
mov ecx, dword [ebp - 0xb4]
mov byte [ebp - 4], 0x2c
test ecx, ecx
je 0x408a15
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xb4], 0
mov ecx, dword [ebp - 0x1c0]
xor esi, esi
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x30], esi
mov eax, dword [ecx - 4]
test eax, eax
je 0x408b2a
cmp esi, eax
jae 0x4094c0
lea eax, [ecx - 0x10]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
mov eax, 0
lock xadd dword [edx], eax
cmp eax, 1
setg al
test al, al
je 0x408a6b
mov eax, dword [ebp - 0x1c0]
lea ecx, [ebp - 0x1c0]
push 0
push 0
push dword [eax - 8]
call fcn.00407280
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x20]
push 0
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x1f4]
push eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdDbObjectId___thiscall_OdDbDictionary::getAt_class_OdString_const___enum_OdResult__
push 0
push 1
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
mov eax, dword [eax]
xor esi, esi
mov byte [ebp - 4], 0x2d
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0x24], eax
test eax, eax
je 0x408ad2
mov eax, dword [eax]
push 0x52
mov esi, dword [eax + 4]
call sub.TD_DbCore_22.12_15.dll_class_OdRxClass____cdecl_oddbDwgClassMapDesc_unsigned_short_int_
mov ecx, dword [ebp - 0x24]
add esp, 4
push eax
call esi
mov esi, eax
test esi, esi
je 0x409491
mov dword [ebp - 0xfc], esi
mov ecx, dword [ebp - 0xb8]
mov byte [ebp - 4], 0x30
test ecx, ecx
je 0x408aef
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xb8], 0
mov eax, dword [edi]
lea ecx, [ebp - 0x4c]
push ecx
push esi
mov ecx, edi
mov byte [ebp - 4], 0x2f
call dword [eax + 0x58]
mov byte [ebp - 4], 0x31
test esi, esi
je 0x408b0e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x1c0]
mov esi, dword [ebp - 0x30]
inc esi
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x30], esi
mov eax, dword [ecx - 4]
cmp esi, eax
jb 0x408a37
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0x32
test eax, eax
je 0x408b42
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov ecx, dword [ebp - 0x1c0]
mov byte [ebp - 4], 0x27
jmp 0x408b57
mov byte [ebp - 0x11], 1
jmp 0x40898f
mov ecx, dword [ebp - 0x1c0]
cmp dword [ebx + 0x2a8], 1
je 0x408b7a
cmp dword [ebx + 0x2ac], 1
je 0x408b7a
lea ecx, [ebp - 0x1c0]
call fcn.00406b30
mov ecx, dword [ebp - 0x1c0]
mov ecx, dword [ecx - 4]
mov eax, 1
movd xmm5, dword [ebx + 0x1c0]
cmp ecx, eax
movaps xmm0, xmmword [0x423260]
movsd xmm4, qword [0x4231f0]
cmovb ecx, eax
mov eax, dword [sym.imp.TD_Ge_22.12_15.dll_class_OdGeTol_OdGeContext::gZeroTol]
movd xmm3, dword [ebx + 0x1c4]
cvtdq2pd xmm5, xmm5
movsd xmm1, qword [eax + 8]
movaps xmm2, xmm5
subsd xmm2, xmm1
movups xmmword [ebp - 0x234], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x224], xmm0
comisd xmm4, xmm2
movups xmmword [ebp - 0x214], xmm0
cvtdq2pd xmm3, xmm3
ja 0x408c09
movaps xmm0, xmm3
subsd xmm0, xmm1
comisd xmm4, xmm0
ja 0x408c09
xorps xmm1, xmm1
comisd xmm1, xmm2
jae 0x408c09
comisd xmm1, xmm0
jae 0x408c09
movsd qword [ebp - 0x234], xmm5
movsd qword [ebp - 0x22c], xmm3
lea eax, [ebp - 0x234]
push eax
push ecx
lea ecx, [ebp - 0x1bc]
call fcn.0040b790
mov ecx, dword [ebx + 0x1b4]
lea edx, [ebp - 0x1d8]
mov ax, word [ebx + 0x2a4]
mov word [ebp - 0x1ac], ax
push edx
mov eax, dword [ecx]
call dword [eax + 0xb5c]
push 0
push 0
lea ecx, [ebp - 0xd4]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x33
call fcn.00402170
mov ecx, dword [ebp - 0xd4]
mov byte [ebp - 4], 0x36
test ecx, ecx
je 0x408c7b
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xd4], 0
mov ecx, dword [ebp - 0x60]
lea eax, [ebp - 0x1dc]
push eax
mov byte [ebp - 4], 0x35
call sub.TD_DbCore_22.12_15.dll_public:_class_OdDbObjectId___thiscall_OdDbBlockTableRecord::getLayoutId_void_
push 0
push 0
lea ecx, [ebp - 0xbc]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
push eax
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 0x37
call fcn.004022b0
mov ecx, dword [ebp - 0xbc]
mov byte [ebp - 4], 0x3a
test ecx, ecx
je 0x408ccd
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x39
call sub.TD_DbCore_22.12_15.dll_public:_class_OdString___thiscall_OdDbLayout::getLayoutName_void_
push eax
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 0x3b
call fcn.0040b490
lea ecx, [ebp - 0x3c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov eax, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
add eax, 0x10
mov dword [ebp - 0xe0], eax
add eax, 0xfffffff0
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
mov eax, 1
lock xadd dword [edx], eax
inc eax
mov eax, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
add eax, 0x10
mov dword [ebp - 0x44], eax
add eax, 0xfffffff0
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
mov eax, 1
lock xadd dword [edx], eax
inc eax
mov eax, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
add eax, 0x10
mov dword [ebp - 0x28], eax
add eax, 0xfffffff0
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
mov eax, 1
lock xadd dword [edx], eax
inc eax
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0x3e
push eax
lea eax, [ebp - 0x28]
mov ecx, ebx
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004095b0
xor edi, edi
mov dword [ebp - 0x58], edi
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x3f
cmp dword [ecx - 4], edi
jne 0x408dce
mov ecx, dword [ebx + 0x1b4]
lea eax, [ebp - 0x1e0]
push 1
push eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdDbObjectId___thiscall_OdDbDatabase::getLayoutDictionaryId_bool_
push edi
push edi
lea ecx, [ebp - 0x8c]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x40
call fcn.00403f70
mov ecx, dword [ebp - 0x8c]
mov byte [ebp - 4], 0x41
test ecx, ecx
je 0x408dc4
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x3f
mov esi, dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [esi - 4], eax
jbe 0x409135
nop
mov edx, dword [ecx - 4]
test edx, edx
je 0x408efa
cmp eax, edx
jae 0x40953a
lea eax, [ecx - 0x10]
mov dword [ebp - 0x8c], eax
mov edx, dword [ebp - 0x8c]
mov eax, 0
lock xadd dword [edx], eax
cmp eax, 1
setg al
test al, al
je 0x408e27
push 0
push 0
push dword [ecx - 8]
lea ecx, [ebp - 0x28]
call fcn.00407140
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
xor esi, esi
mov dword [ebp - 0x90], esi
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x408e5c
mov eax, dword [eax]
mov esi, dword [eax + 4]
call sub.TD_DbCore_22.12_15.dll_public:_static_class_OdRxClass____cdecl_OdDbDatabase::desc_void_
mov ecx, dword [ebp - 0x20]
push eax
call esi
mov esi, eax
test esi, esi
je 0x4094dc
mov dword [ebp - 0x90], esi
push 1
lea eax, [ebp - 0x1e4]
mov byte [ebp - 4], 0x42
push eax
mov ecx, esi
call sub.TD_DbCore_22.12_15.dll_public:_class_OdDbObjectId___thiscall_OdDbDatabase::getLayoutDictionaryId_bool_
push 0
push 0
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
mov eax, dword [eax]
mov byte [ebp - 4], 0x43
mov dword [ebp - 0x34], eax
test edi, edi
je 0x408e9e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [ebp - 0x34]
xor edi, edi
mov dword [ebp - 0x58], edi
test eax, eax
je 0x408ec4
mov eax, dword [eax]
push 0x2a
mov edi, dword [eax + 4]
call sub.TD_DbCore_22.12_15.dll_class_OdRxClass____cdecl_oddbDwgClassMapDesc_unsigned_short_int_
mov ecx, dword [ebp - 0x34]
add esp, 4
push eax
call edi
mov edi, eax
test edi, edi
je 0x40950b
mov dword [ebp - 0x58], edi
mov ecx, dword [ebp - 0xc0]
mov byte [ebp - 4], 0x44
test ecx, ecx
je 0x408ee1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xc0], 0
mov byte [ebp - 4], 0x45
test esi, esi
je 0x408ef0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x3f
cmp eax, dword [esi - 4]
jae 0x409585
lea eax, [esi - 0x10]
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x90]
mov eax, 0
lock xadd dword [edx], eax
cmp eax, 1
setg al
test al, al
je 0x408f37
push 0
push 0
push dword [esi - 8]
lea ecx, [ebp - 0x44]
call fcn.00407280
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov ecx, edi
push 0
lea eax, [esi + eax*4]
push eax
lea eax, [ebp - 0x1e8]
push eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdDbObjectId___thiscall_OdDbDictionary::getAt_class_OdString_const___enum_OdResult__
push 0
push 1
lea ecx, [ebp - 0xc4]
push ecx
mov ecx, eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdSmartPtr_class_OdDbObject____thiscall_OdDbObjectId::safeOpenObject_enum_OdDb::OpenMode__bool_
mov eax, dword [eax]
xor esi, esi
mov byte [ebp - 4], 0x46
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x20], eax
test eax, eax
je 0x408f9a
mov eax, dword [eax]
push 0x52
mov esi, dword [eax + 4]
call sub.TD_DbCore_22.12_15.dll_class_OdRxClass____cdecl_oddbDwgClassMapDesc_unsigned_short_int_
mov ecx, dword [ebp - 0x20]
add esp, 4
push eax
call esi
mov esi, eax
test esi, esi
je 0x409556
mov dword [ebp - 0x114], esi
mov ecx, dword [ebp - 0xc4]
mov byte [ebp - 4], 0x49
test ecx, ecx
je 0x408fb7
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0xc4], 0
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x48
push eax
mov ecx, esi
call sub.TD_DbCore_22.12_15.dll_public:_class_OdString___thiscall_OdDbPlotSettings::getPlotCfgName_void_
push str.DWG_To_PDF.pc3
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x4a
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
mov ecx, dword [ebp - 0x1c]
or ecx, 1
mov byte [ebp - 4], 0x4b
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x6c]
push eax
call fcn.00406be0
test eax, eax
je 0x409028
push str.Custom_Device
lea ecx, [ebp - 0x118]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
mov ecx, dword [ebp - 0x1c]
or ecx, 2
mov dword [ebp - 4], 0x4c
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x6c]
push eax
call fcn.00406be0
mov byte [ebp - 0x11], 1
test eax, eax
jne 0x40902c
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 0x1c]
test al, 2
je 0x409047
and eax, 0xfffffffd
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x1c], eax
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov eax, dword [ebp - 0x1c]
and eax, 0xfffffffe
mov dword [ebp - 4], 0x4a
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x1c], eax
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
cmp byte [ebp - 0x11], 0
je 0x409103
lea eax, [ebp - 0x1fc]
mov ecx, esi
push eax
lea eax, [ebp - 0x204]
push eax
call sub.TD_DbCore_22.12_15.dll_public:_void___thiscall_OdDbPlotSettings::getPlotPaperSize_double___double__const
mov ecx, esi
call sub.TD_DbCore_22.12_15.dll_public:_enum_OdDbPlotSettings::PlotPaperUnits___thiscall_OdDbPlotSettings::plotPaperUnits_void_
cmp dword [ebp - 0x2c], 0
jne 0x4090a8
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
call dword [eax + 0xe8]
mov ecx, eax
test ecx, ecx
je 0x409103
mov edx, dword [ecx]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc8], eax
call dword [edx + 0x10]
lea eax, [ebp - 0xd0]
mov ecx, esi
push eax
call sub.TD_DbCore_22.12_15.dll_public:_class_OdString___thiscall_OdDbPlotSettings::getCanonicalMediaName_void_
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0xcc]
push str.DWG_To_PDF.pc3
mov byte [ebp - 4], 0x4d
mov eax, dword [eax]
mov ebx, dword [eax + 0x2c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_unsigned_short_int_const__
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 0x4e
push eax
push esi
call ebx
lea ecx, [ebp - 0xcc]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
lea ecx, [ebp - 0xd0]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov ebx, dword [ebp - 0x68]
lea ecx, [ebp - 0x6c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov byte [ebp - 4], 0x4f
test esi, esi
je 0x40911a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x44]
inc eax
mov byte [ebp - 4], 0x3f
mov dword [ebp - 0x18], eax
cmp eax, dword [esi - 4]
jae 0x409135
mov ecx, dword [ebp - 0x28]
jmp 0x408de0
mov byte [ebp - 4], 0x50
test edi, edi
je 0x409144
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov edi, dword [ebp - 0x28]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x51
mov dword [ebp - 0x38], edi
mov edx, dword [ebp - 0x38]
mov eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jne 0x40917f
cmp edi, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
je 0x40917f
push dword [edi + 0xc]
lea eax, [edi + 0x10]
push eax
call fcn.00407b00
push edi
call sub.TD_Alloc_22.12_15.dll_odrxFree
add esp, 0xc
lea ecx, [esi - 0x10]
call fcn.0040b5b0
mov ecx, dword [ebp - 0xe0]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x39
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
mov eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jne 0x4091b9
cmp ecx, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
je 0x4091b9
push ecx
call sub.TD_Alloc_22.12_15.dll_odrxFree
add esp, 4
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x1cc]
mov byte [ebp - 0x158], 0
mov byte [ebp - 0x14c], 1
mov dword [ebp - 0x1b4], 0xffffff
mov eax, dword [ecx]
push edx
call dword [eax + 0x2c]
mov esi, dword [ebp - 0x48]
mov edi, eax
mov dword [ebp - 0x1ec], esi
test esi, esi
je 0x4091f6
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x10]
mov byte [ebp - 4], 0x52
test esi, esi
jne 0x409200
jmp 0x409225
mov eax, dword [esi]
lea ecx, [ebp - 0x134]
push edi
push ecx
mov ecx, esi
call dword [eax + 0x30]
lea ecx, [ebp - 0x134]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov eax, dword [esi]
mov ecx, esi
mov byte [ebp - 4], 0x54
call dword [eax + 0x14]
mov eax, dword [ebp - 0xdc]
mov byte [ebp - 4], 0x55
test eax, eax
je 0x40923a
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov eax, dword [ebp - 0x60]
mov byte [ebp - 4], 0x56
test eax, eax
je 0x40924c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
lea ecx, [ebp - 0x4c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x57
test eax, eax
je 0x409266
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
mov eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jne 0x409291
cmp ecx, dword [sym.imp.TD_Root_22.12_15.dll_struct_OdArrayBuffer_OdArrayBuffer::g_empty_array_buffer]
je 0x409291
push ecx
call sub.TD_Alloc_22.12_15.dll_odrxFree
add esp, 4
mov ecx, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x58
test ecx, ecx
je 0x4092a1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, dword [ebp - 0x70]
mov byte [ebp - 4], 0x59
test eax, eax
je 0x4092b3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
lea ecx, [ebp - 0x1cc]
call fcn.00403a90
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 0x5a
test ecx, ecx
je 0x4092d5
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [ebp - 0x48], 0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 4], 0x5b
test eax, eax
je 0x4092ea
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call sub.TD_Root_22.12_15.dll_public:_static_class_OdRxClass____cdecl_OdRxModule::desc_void_
mov edx, dword [esi]
mov ecx, esi
mov edi, eax
call dword [edx + 0xc]
push edi
push eax
lea ecx, [ebp - 0xf0]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_NotThatKindOfClass::constructor_class_OdRxClass_const___class_OdRxClass_const__
push 0x4323f0
lea eax, [ebp - 0xf0]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call sub.TD_PdfExport_22.12_15.tx_public:_static_class_OdRxClass____cdecl_OdPrcContextForPdfExport::desc_void_
mov edx, dword [edi]
mov ecx, edi
mov esi, eax
call dword [edx + 0xc]
push esi
push eax
lea ecx, [ebp - 0xec]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_NotThatKindOfClass::constructor_class_OdRxClass_const___class_OdRxClass_const__
push 0x4323f0
lea eax, [ebp - 0xec]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push 9
lea ecx, [ebp - 0xf4]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError::constructor_enum_OdResult_
push 0x4323bc
lea eax, [ebp - 0xf4]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
lea ecx, [ebp - 0xf8]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_InvalidIndex::constructor_void_
push 0x432428
lea eax, [ebp - 0xf8]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.00407af0
mov esi, eax
mov eax, dword [ebp - 0x24]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push esi
push eax
lea ecx, [ebp - 0x100]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_NotThatKindOfClass::constructor_class_OdRxClass_const___class_OdRxClass_const__
push 0x4323f0
lea eax, [ebp - 0x100]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
lea ecx, [ebp - 0x104]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_InvalidIndex::constructor_void_
push 0x432428
lea eax, [ebp - 0x104]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call sub.TD_DbCore_22.12_15.dll_public:_static_class_OdRxClass____cdecl_OdDbDatabase::desc_void_
mov esi, eax
mov eax, dword [ebp - 0x20]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push esi
push eax
lea ecx, [ebp - 0x120]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_NotThatKindOfClass::constructor_class_OdRxClass_const___class_OdRxClass_const__
push 0x4323f0
lea eax, [ebp - 0x120]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.00407ae0
mov esi, eax
mov eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push esi
push eax
lea ecx, [ebp - 0x124]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_NotThatKindOfClass::constructor_class_OdRxClass_const___class_OdRxClass_const__
push 0x4323f0
lea eax, [ebp - 0x124]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
lea ecx, [ebp - 0x128]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_InvalidIndex::constructor_void_
push 0x432428
lea eax, [ebp - 0x128]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.00407af0
mov esi, eax
mov eax, dword [ebp - 0x20]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push esi
push eax
lea ecx, [ebp - 0x12c]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_NotThatKindOfClass::constructor_class_OdRxClass_const___class_OdRxClass_const__
push 0x4323f0
lea eax, [ebp - 0x12c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
lea ecx, [ebp - 0x130]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_InvalidIndex::constructor_void_
push 0x432428
lea eax, [ebp - 0x130]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3