Function at 0x51bf20
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x51c1d6
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
mov eax, dword [ebp - 4]
test byte [eax + 0x20], 0x10
jne 0x51bf53
mov eax, dword [ebp - 4]
test byte [eax + 0x20], 1
je 0x51bf5a
mov esi, 0xffffff00
jmp 0x51bf78
mov eax, dword [ebp - 4]
call fcn.0051b0c8
test al, al
je 0x51bf72
mov eax, dword [ebp - 4]
call fcn.0051c1e8
test al, al
jne 0x51bf78
mov esi, dword [0x525460]
test esi, esi
jne 0x51c1c0
xor edx, edx
push ebp
push 0x51c18c
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8a]
mov edx, dword [0x514004]
call fcn.004031c8
mov ebx, eax
xor eax, eax
mov dword [ebx + 0xbe], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7d]
mov dword [ebx + 0x1af], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x46]
mov dword [ebx + 0x15b], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4a]
mov dword [ebx + 0x167], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x67]
mov dword [ebx + 0x18d], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6b]
mov dword [ebx + 0x191], eax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x81]
mov byte [ebx + 0x1c0], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x36]
mov byte [ebx + 0x126], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov dword [ebx + 0x119], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4e]
mov dword [ebx + 0x16b], edx
mov edx, dword [eax + 0x52]
mov dword [ebx + 0x16f], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov dword [ebx + 0x11d], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov dword [ebx + 0x121], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x3d]
mov eax, ebx
call fcn.00518e08
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x35]
mov byte [ebx + 0x125], al
lea eax, [ebx + 0x152]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x41]
call fcn.00403c9c
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x45]
mov byte [ebx + 0x156], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x87]
mov byte [ebx + 0xde], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x89]
mov byte [ebx + 0xdf], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x86]
mov byte [ebx + 0xdd], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x6f]
mov byte [ebx + 0xd3], al
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x56]
mov eax, dword [ebx + 0x173]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x5a]
mov eax, dword [ebx + 0x177]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5e]
mov dword [ebx + 0x17b], eax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x62]
mov byte [ebx + 0x17f], al
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0051b46c
mov edx, dword [ebp - 8]
lea eax, [ebx + 0x19f]
call fcn.00403c9c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, ebx
call fcn.00518fbc
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x87]
mov byte [ebx + 0xde], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x88]
mov byte [ebx + 0x1ce], al
lea eax, [ebx + 0x1ab]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x79]
call fcn.00403c9c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x37]
mov eax, ebx
call fcn.00513ee0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x82]
mov eax, ebx
call fcn.00512b9c
mov dl, 1
mov eax, ebx
call fcn.00518da0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [ebp - 4]
mov byte [eax + 0x78], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x34], 1
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x3b]
mov eax, ebx
call fcn.00513f64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51c1c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51c1dd
lea eax, [ebp - 8]
call fcn.00403c48
ret