Function at 0x40da20
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d4920
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x659fd4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [edi], vtable.srl::System.0
mov dword [ebp - 4], 0
mov dword [edi + 0x64], vtable.srl::SystemValues.0
lea ecx, [edi + 0x68]
mov byte [ebp - 4], 1
call fcn.00414470
lea ecx, [edi + 0x54]
mov dword [ebp - 4], 0xffffffff
call fcn.00416b50
lea ecx, [edi + 0x48]
mov dword [ebp - 4], 3
call fcn.00416660
lea ecx, [edi + 0x30]
mov byte [ebp - 4], 2
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
or esi, 0xffffffff
mov ecx, dword [edi + 0x18]
mov eax, esi
sub ecx, 0x10
lock xadd dword [ecx + 0xc], eax
dec eax
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x40daf3
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40dc4d
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40dc43
push 0
push dword [edx + 4]
call ebx
mov ecx, dword [edi + 0x14]
mov eax, esi
sub ecx, 0x10
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x40db44
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40dc61
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40dc57
push 0
push dword [edx + 4]
call ebx
mov ecx, dword [edi + 0x10]
mov eax, esi
sub ecx, 0x10
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x40db95
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40dc75
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40dc6b
push 0
push dword [edx + 4]
call ebx
mov ecx, dword [edi + 0xc]
mov eax, esi
sub ecx, 0x10
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x40dbe6
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40dc89
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40dc7f
push 0
push dword [edx + 4]
call ebx
mov ecx, dword [edi + 8]
sub ecx, 0x10
lock xadd dword [ecx + 0xc], esi
dec esi
test esi, esi
jg 0x40dc31
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40dc93
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40dc93
push 0
push dword [edx + 4]
call ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40daf3
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40daf3
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40db44
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40db44
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40db95
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40db95
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40dbe6
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40dbe6
mov ecx, edx
call esi
jmp 0x40dc31