Function at 0x4596d0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4fb5e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebp
push esi
push edi
mov ebp, ecx
call fcn.004998d0
call fcn.004e5159
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], 0
call fcn.004e5159
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x10], esi
lea edi, [ebp + 0x38]
mov ecx, edi
mov byte [esp + 0x30], 1
mov dword [esp + 0x24], edi
call fcn.00401300
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push edx
mov ecx, ebp
mov byte [esp + 0x3c], 2
call fcn.004587e0
test eax, eax
je 0x4598b7
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x18], eax
push ebx
lea eax, [esi + 8]
mov dword [esp + 0x24], ecx
push eax
lea ecx, [esp + 0x14]
call fcn.00403fd0
mov dl, byte [esi + 0x10]
mov ebx, dword [esi + 0xc]
lea eax, [esp + 0x18]
push eax
mov ecx, esi
mov byte [esp + 0x24], dl
call fcn.00458ed0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 3
call fcn.00403fd0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x34], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4597bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [edi]
mov ecx, edi
mov byte [esp + 0x34], 1
call dword [eax + 0x14]
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jne 0x459857
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
push 1
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x30]
push eax
push ebx
push ecx
push edx
call fcn.004991f0
mov esi, eax
xor ebx, ebx
add esp, 0x1c
cmp esi, ebx
jne 0x459831
mov ecx, edi
call fcn.00401300
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x18]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x20], ebx
call fcn.004588c0
cmp eax, 1
jne 0x45982a
mov edx, dword [esp + 0x18]
mov dword [edx + 0x18], ebx
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
push 0x11d
push str..VDiskMgr.cpp
call fcn.00407270
mov ecx, eax
call fcn.0040a520
push esi
push str.CreateNetDisk__ld_.
push 4
call fcn.0047fc80
add esp, 0xc
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x34], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
pop ebx
jg 0x45987b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x30], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4598a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop edi
mov eax, esi
pop esi
pop ebp
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret 4
mov eax, dword [edi]
mov ecx, edi
mov byte [esp + 0x30], 1
call dword [eax + 0x14]
add esi, 0xfffffff0
mov byte [esp + 0x30], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4598e2
mov ecx, dword [esi]
mov eax, dword [ecx]
push esi
call dword [eax + 4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x30], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459908
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x28]
pop edi
pop esi
or eax, 0xffffffff
pop ebp
mov dword fs:[0], ecx
add esp, 0x28
ret 4