Function at 0x5963f4
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add edi, 0xffffffec
xor eax, eax
push ebp
push 0x596aba
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
xor edx, edx
mov eax, 0x596ad0
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0x80], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596ae4
call fcn.00592808
mov ebx, eax
mov eax, dword [edi]
mov dword [eax + 0x54], ebx
push 1
push 0xffffffffffffffff
mov ecx, ebx
mov eax, dword [edi]
mov edx, 0x596af8
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x58], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
mov ecx, dword [eax + 0x54]
mov eax, dword [edi]
mov edx, 0x596b10
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x5c], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
mov ecx, dword [eax + 0x54]
mov eax, dword [edi]
mov edx, 0x596b28
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x60], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
mov ecx, 0x11
mov edx, 0x596b40
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x70], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
mov ecx, 2
mov edx, 0x596b50
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x78], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
mov ecx, 0xd
mov edx, 0x596b60
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x74], eax
push ebp
mov edx, 0x44000000
mov eax, 0x596b70
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0xa0], eax
push ebp
mov edx, 0x99000000
mov eax, 0x596b80
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0xa4], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596b90
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x84], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596ba0
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x64], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596bb0
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x68], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596bc0
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x6c], eax
xor ebx, ebx
mov esi, dword [0x63eb18]
push 1
push 0xffffffffffffffff
mov edx, dword [esi]
lea eax, [ebp - 4]
mov ecx, 0x596bd0
call fcn.00405b48
mov edx, dword [ebp - 4]
mov eax, dword [edi]
xor ecx, ecx
call fcn.00592808
xor edx, edx
mov dl, bl
mov ecx, dword [edi]
mov dword [ecx + edx*4 + 0x284], eax
push ebp
xor edx, edx
mov eax, 0x596be4
call fcn.005963c0
pop ecx
push eax
xor eax, eax
mov al, bl
mov edx, dword [edi]
lea eax, [edx + eax*4 + 0x268]
mov ecx, 1
mov edx, dword [0x4996d8]
call fcn.00407034
add esp, 4
inc ebx
add esi, 4
cmp bl, 5
jne 0x596571
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596bfc
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x3c], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
or ecx, 0xffffffff
mov edx, 0x596c14
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x38], eax
push ebp
xor edx, edx
mov eax, 0x596c28
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0x7c], eax
push 1
push 0xffffffffffffffff
mov eax, dword [edi]
xor ecx, ecx
mov edx, 0x596c44
call fcn.00592808
mov edx, dword [edi]
mov dword [edx + 0x94], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596c58
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0x98], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596c70
call fcn.005963c0
pop ecx
mov ebx, eax
mov eax, dword [edi]
mov dword [eax + 0x90], ebx
cmp ebx, 0xffffffff
je 0x59667d
mov edx, ebx
mov eax, dword [edi]
mov eax, dword [eax + 0x14]
or ecx, 0xffffffff
call fcn.00590bc0
mov edx, dword [edi]
mov dword [edx + 0x90], eax
push ebp
mov edx, 2
mov eax, 0x596c88
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0x88], eax
mov eax, dword [edi]
cmp dword [eax + 0x88], 1
jne 0x5966b8
mov eax, dword [edi]
cmp dword [eax + 0x20], 0x8f
jle 0x5966b8
mov eax, dword [edi]
mov dword [eax + 0x88], 2
push ebp
mov edx, 1
mov eax, 0x596c9c
call fcn.005963c0
pop ecx
mov edx, dword [edi]
mov dword [edx + 0x8c], eax
push 2
mov eax, dword [edi]
add eax, 0x528
mov ecx, 1
mov edx, dword [0x58305c]
call fcn.00407034
add esp, 4
mov eax, dword [edi]
mov eax, dword [eax + 0x528]
lea esi, [eax + 0x44]
mov dword [esi + 4], 0xff00ff
push ebp
or edx, 0xffffffff
mov eax, 0x596cb4
call fcn.005963c0
pop ecx
mov dword [esi + 0x20], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596cc8
call fcn.005963c0
pop ecx
mov dword [esi + 0x28], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596cdc
call fcn.005963c0
pop ecx
mov dword [esi + 0x24], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596cf0
call fcn.005963c0
pop ecx
mov dword [esi + 0x2c], eax
mov eax, dword [edi]
mov ebx, dword [eax + 0x14]
push ebp
mov edx, 3
mov eax, 0x596d04
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x10], eax
push ebp
mov edx, 3
mov eax, 0x596d18
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x18], eax
push ebp
mov edx, 2
mov eax, 0x596d2c
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x14], eax
push ebp
mov edx, 5
mov eax, 0x596d40
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x1c], eax
push ebp
mov edx, 9
mov eax, 0x596d54
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x34], eax
push ebp
mov edx, 5
mov eax, 0x596d6c
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x30], eax
push ebp
xor edx, edx
mov eax, 0x596d80
call fcn.005963c0
pop ecx
mov dword [esi], eax
push ebp
mov edx, 0x3c
mov eax, 0x596d94
call fcn.005963c0
pop ecx
mov dword [esi + 0x40], eax
push ebp
mov edx, 2
mov eax, 0x596da8
call fcn.005963c0
pop ecx
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x528]
add eax, 0x44
mov edx, 0x596dbc
call fcn.00595668
pop ecx
mov eax, dword [edi]
mov ebx, dword [eax + 0x14]
mov edx, dword [esi + 0x20]
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x20], eax
mov edx, dword [esi + 0x28]
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0x24]
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x24], eax
mov edx, dword [esi + 0x2c]
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x2c], eax
mov eax, dword [edi]
mov esi, dword [eax + 0x528]
push ebp
mov edx, 0xffffff
mov eax, 0x596dcc
call fcn.005963c0
pop ecx
xor edx, edx
call fcn.00572850
mov dword [esi], eax
push ebp
mov edx, 0xffffff
mov eax, 0x596de0
call fcn.005963c0
pop ecx
xor edx, edx
call fcn.00572850
mov dword [esi + 8], eax
push ebp
xor edx, edx
mov eax, 0x596df4
call fcn.005963c0
pop ecx
xor edx, edx
call fcn.00572850
mov dword [esi + 4], eax
push ebp
mov edx, 0xffffff
mov eax, 0x596e08
call fcn.005963c0
pop ecx
xor edx, edx
call fcn.00572850
mov dword [esi + 0xc], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596e1c
call fcn.005963c0
pop ecx
mov dword [esi + 0x20], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596e30
call fcn.005963c0
pop ecx
mov dword [esi + 0x28], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596e44
call fcn.005963c0
pop ecx
mov dword [esi + 0x24], eax
push ebp
or edx, 0xffffffff
mov eax, 0x596e58
call fcn.005963c0
pop ecx
mov dword [esi + 0x2c], eax
mov eax, dword [edi]
mov ebx, dword [eax + 0x14]
push ebp
mov edx, 2
mov eax, 0x596e6c
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x10], eax
push ebp
mov edx, 2
mov eax, 0x596e80
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x18], eax
push ebp
mov edx, 2
mov eax, 0x596e94
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x14], eax
push ebp
mov edx, 4
mov eax, 0x596ea8
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x1c], eax
push ebp
mov edx, 9
mov eax, 0x596ebc
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x34], eax
push ebp
mov edx, 5
mov eax, 0x596ed4
call fcn.005963c0
pop ecx
mov edx, eax
or ecx, 0xffffffff
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x30], eax
push ebp
mov edx, 2
mov eax, 0x596ee8
call fcn.005963c0
pop ecx
mov dword [esi + 0x3c], eax
push ebp
mov edx, 0xc8
mov eax, 0x596efc
call fcn.005963c0
pop ecx
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x528]
mov edx, 0x596f10
call fcn.00595668
pop ecx
mov eax, dword [edi]
mov ebx, dword [eax + 0x14]
or ecx, 0xffffffff
mov edx, dword [esi + 0x20]
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x20], eax
or ecx, 0xffffffff
mov edx, dword [esi + 0x28]
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x28], eax
or ecx, 0xffffffff
mov edx, dword [esi + 0x24]
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x24], eax
or ecx, 0xffffffff
mov edx, dword [esi + 0x2c]
mov eax, ebx
call fcn.00590bc0
mov dword [esi + 0x2c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x596ac1
lea eax, [ebp - 4]
call fcn.00405820
ret