Function at 0x415600
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41fcf0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
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 - 0x18], ecx
mov eax, dword [ecx]
call dword [eax + 0x64]
mov edi, dword [ebp + 8]
mov eax, dword [edi]
cmp dword [eax + 0xc], 0
jne 0x41564a
cmp dword [eax + 0x10], 0
je 0x41564a
mov ecx, edi
call sub.TD_Root_22.12_15.dll_protected:_void___thiscall_OdString::syncUnicode_void_const
mov eax, dword [edi]
cmp dword [eax + 4], 0
jne 0x415665
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4157ef
cmp dword [eax - 0xc], 0
je 0x4157ef
mov ebx, dword [ebp + 0x10]
mov edx, ebx
sar edx, 0x1f
mov ecx, ebx
mov eax, edx
and edx, 0x80000000
and eax, 0x10000000
mov esi, eax
or esi, 0x80
and ecx, 0x40000000
cmove esi, eax
mov eax, edx
or eax, 0x40000000
test ecx, ecx
mov ecx, esi
cmove eax, edx
or ecx, 0x100
mov dword [ebp - 0x14], eax
mov eax, ebx
and eax, 0x20000000
mov eax, ebx
cmove ecx, esi
and eax, 0x10000000
mov edx, eax
mov ebx, ecx
neg edx
sbb edx, edx
or ebx, 0x4000000
and edx, 4
test eax, eax
mov eax, dword [ebp + 0xc]
cmove ebx, ecx
mov dword [ebp + 8], ebx
mov ebx, edx
cmp eax, 0x30
je 0x4156e0
cmp eax, 0x10
je 0x4156e0
or ebx, 1
cmp eax, 0x20
je 0x4156ed
cmp eax, 0x10
je 0x4156ed
or ebx, 2
mov eax, dword [ebp + 0x14]
xor esi, esi
dec eax
cmp eax, 4
ja case.default.0x4156f8
jmp dword [eax*4 + 0x415868]
mov esi, 1
jmp case.default.0x4156f8
mov esi, 2
jmp case.default.0x4156f8
mov esi, 3
jmp case.default.0x4156f8
mov esi, 4
jmp case.default.0x4156f8
mov esi, 5
push edi
lea ecx, [ebp - 0x10]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::constructor_class_OdString_const__
mov eax, dword [edi]
mov dword [ebp - 4], 0
cmp dword [eax + 0xc], 0
jne 0x415747
cmp dword [eax + 0x10], 0
je 0x415747
mov ecx, edi
call sub.TD_Root_22.12_15.dll_protected:_void___thiscall_OdString::syncUnicode_void_const
mov eax, dword [edi]
push 0
push dword [ebp + 8]
push esi
push 0
push ebx
push dword [ebp - 0x14]
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, dword [ebp - 0x18]
mov dword [esi + 0xc], eax
cmp eax, 0xffffffff
jne 0x4157bb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
sub ecx, 2
je 0x4157a5
sub ecx, 3
je 0x415787
sub ecx, 0x1b
je 0x415835
jmp 0x415807
lea eax, [ebp + 0x10]
push 5
push eax
call fcn.004160c0
add esp, 8
push eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 1
push eax
push 0x35
jmp 0x415851
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 0xc]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_FileNotFound::constructor_class_OdString_const__
push 0x433ac4
jmp 0x41585e
lea eax, [ebp - 0x10]
push eax
lea ecx, [esi + 0x10]
call sub.TD_Root_22.12_15.dll_public:_class_OdString____thiscall_OdString::operator_class_OdString_const__
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x10]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1c], eax
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdString::destructor_void_
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x33
lea ecx, [ebp + 0xc]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError::constructor_enum_OdResult_
push 0x4323bc
lea eax, [ebp + 0xc]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push eax
lea eax, [ebp + 8]
push eax
call fcn.004160c0
add esp, 8
push eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 3
push eax
push 0x30
lea ecx, [ebp + 0x10]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_FileException::constructor_enum_OdResult__class_OdString_const___class_OdString_const__
push 0x433b1c
lea eax, [ebp + 0x10]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
lea eax, [ebp + 0x10]
push 0x20
push eax
call fcn.004160c0
add esp, 8
push eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 2
push eax
push 0x150
lea ecx, [ebp + 0xc]
call sub.TD_Root_22.12_15.dll_public:_void___thiscall_OdError_FileException::constructor_enum_OdResult__class_OdString_const___class_OdString_const__
push 0x433b1c
lea eax, [ebp + 0xc]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call dword [esi + 0x41]
add byte [esi], al
push edi
inc ecx
add byte [0x14004157], cl
push edi
inc ecx
add byte [ebx], bl
push edi
inc ecx
add ah, cl
int3