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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d5e90
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x65bfd4]
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.004143d0
lea ecx, [edi + 0x54]
mov dword [ebp - 4], 0xffffffff
call fcn.00416ab0
lea ecx, [edi + 0x48]
mov dword [ebp - 4], 3
call fcn.004165c0
lea ecx, [edi + 0x30]
mov byte [ebp - 4], 2
call fcn.00407500
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 0x40d983
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 0x40dadd
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 0x40dad3
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 0x40d9d4
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 0x40daf1
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 0x40dae7
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 0x40da25
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 0x40db05
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 0x40dafb
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 0x40da76
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 0x40db19
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 0x40db0f
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 0x40dac1
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40db23
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40db23
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 0x40d983
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40d983
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40d9d4
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40d9d4
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40da25
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40da25
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40da76
mov ecx, edx
call dword [ebp - 0x10]
jmp 0x40da76
mov ecx, edx
call esi
jmp 0x40dac1