Function at 0x51c42c
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
mov ebx, eax
xor eax, eax
push ebp
push 0x51c7f7
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x4c5894]
call fcn.004060ec
add esp, 4
push 0
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x4c5894]
call fcn.004060ec
add esp, 4
push 0
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x4c5894]
call fcn.004060ec
add esp, 4
push 0
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, dword [0x4c5894]
call fcn.004060ec
add esp, 4
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
call fcn.00405f30
test eax, eax
jle 0x51c7d6
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
call fcn.00405f30
dec eax
push eax
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4c5894]
call fcn.004060ec
add esp, 4
mov eax, dword [ebp - 4]
call fcn.00405f30
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
inc eax
call fcn.004030c8
cmp dword [ebx + 0x118], 0
je 0x51c514
lea eax, [ebx + 0x118]
call fcn.004c8868
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov esi, dword [eax + 4]
mov eax, esi
mov edx, dword [0x519124]
call fcn.00403e68
test al, al
je 0x51c599
mov ecx, dword [ebx + 0x48]
mov dl, 1
mov eax, dword [0x51f210]
call fcn.0052190c
mov esi, eax
mov dword [ebx + 0x118], esi
mov dl, 1
mov eax, esi
call fcn.00522544
mov eax, dword [ebp - 4]
call fcn.00405f30
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x118]
mov esi, dword [eax]
call dword [esi + 0x2c]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [ebx + 0x118]
call fcn.00522484
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 0x118]
call fcn.005224e4
jmp 0x51c7d6
mov eax, esi
mov edx, dword [0x519190]
call fcn.00403e68
test al, al
je 0x51c608
mov ecx, dword [ebx + 0x48]
mov dl, 1
mov eax, dword [0x51f210]
call fcn.0052190c
mov esi, eax
mov dword [ebx + 0x118], esi
mov eax, dword [ebp - 4]
call fcn.00405f30
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, esi
mov esi, dword [eax]
call dword [esi + 0x2c]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [ebx + 0x118]
call fcn.005224e4
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 0x118]
call fcn.00522464
jmp 0x51c7d6
mov eax, esi
mov edx, dword [0x519090]
call fcn.00403e68
test al, al
je 0x51c656
mov ecx, dword [ebx + 0x48]
mov dl, 1
mov eax, dword [0x51f210]
call fcn.0052190c
mov esi, eax
mov dword [ebx + 0x118], esi
mov dl, 1
mov eax, esi
call fcn.00522544
mov eax, dword [ebp - 4]
call fcn.00405f30
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x118]
mov ebx, dword [eax]
call dword [ebx + 0x2c]
jmp 0x51c7d6
mov eax, esi
mov edx, dword [0x519218]
call fcn.00403e68
test al, al
je 0x51c72c
mov ecx, dword [ebx + 0x48]
mov dl, 1
mov eax, dword [0x51f3c4]
call fcn.00524dd8
mov dword [ebx + 0x118], eax
lea eax, [ebp - 8]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 8]
mov ecx, dword [0x4c5894]
call fcn.00406228
lea eax, [ebp - 0x10]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov ecx, dword [0x4c5894]
call fcn.00406228
lea eax, [ebp - 0xc]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x10]
mov ecx, dword [0x4c5894]
call fcn.00406228
lea eax, [ebp - 0x14]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x14]
mov ecx, dword [0x4c5894]
call fcn.00406228
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00405f30
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00405f30
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x14]
call fcn.00405f30
push eax
mov eax, dword [ebp - 8]
call fcn.00405f30
mov ecx, eax
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x118]
call fcn.00525734
jmp 0x51c7d6
mov eax, esi
mov edx, dword [0x5192bc]
call fcn.00403e68
test al, al
je 0x51c7d6
mov ecx, dword [ebx + 0x48]
mov dl, 1
mov eax, dword [0x51f57c]
call fcn.00526518
mov dword [ebx + 0x118], eax
lea eax, [ebp - 8]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 8]
mov ecx, dword [0x4c5894]
call fcn.00406228
lea eax, [ebp - 0xc]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x10]
mov ecx, dword [0x4c5894]
call fcn.00406228
lea eax, [ebp - 0x14]
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x14]
mov ecx, dword [0x4c5894]
call fcn.00406228
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00405f30
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x14]
call fcn.00405f30
push eax
mov eax, dword [ebp - 8]
call fcn.00405f30
mov ecx, eax
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x118]
call fcn.005265b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51c7fe
lea eax, [ebp - 0x14]
mov edx, dword [0x4c5894]
mov ecx, 5
call fcn.00405824
ret