Function at 0x51c850
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x598eca
mov eax, dword fs:[0]
push eax
sub esp, 0x344
mov eax, dword [0x6de5c0]
xor eax, ebp
mov dword [ebp - 0x20], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x348], ecx
push 0
push 0
push 0
push 6
push 0
push 0
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x334]
call fcn.004d5a90
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.0040da70
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00435030
test eax, eax
jne 0x51c8d4
push 0x254
push 0x61a9bc
call fcn.004c6b20
test eax, eax
je 0x51c8d4
int3
lea ecx, [ebp - 0x334]
call fcn.004d5e50
add eax, 0x34
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x34c]
mov ecx, dword [eax]
or ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x34c]
mov dword [edx], ecx
lea ecx, [ebp - 0x10]
call fcn.0040da70
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
call fcn.0040da70
mov byte [ebp - 4], 3
cmp dword [ebp + 0x18], 0
je 0x51c94b
push 0x25c
push 0x61a9f4
mov eax, dword [ebp + 0x18]
push eax
call fcn.004c3b10
lea ecx, [ebp - 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x334]
call fcn.004d5e50
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0051c080
jmp 0x51c9c1
mov ecx, dword [ebp - 0x348]
add ecx, 4
call fcn.00496770
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x33c], 1
cmp dword [ebp - 0x340], 0
je 0x51c9c1
lea ecx, [ebp - 0x340]
push ecx
mov ecx, dword [ebp - 0x348]
add ecx, 4
call fcn.004967b0
mov edx, dword [eax]
mov dword [ebp + 0x18], edx
mov eax, dword [ebp - 0x33c]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x1c]
and eax, ecx
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x334]
call fcn.004d5e50
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0051c080
mov dword [ebp - 0x33c], 0
jmp 0x51c969
lea ecx, [ebp - 0x18]
call fcn.0040da70
mov byte [ebp - 4], 4
push 0xf002
lea ecx, [ebp - 0x18]
call fcn.00435030
test eax, eax
jne 0x51c9f2
push 0x26f
push 0x61aa2c
call fcn.004c6b20
test eax, eax
je 0x51c9f2
int3
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x10]
call fcn.00411160
push 0
lea ecx, [ebp - 0x10]
call fcn.004a3e30
push 0x61aa64
lea ecx, [ebp - 0x10]
call fcn.00413710
push 0
lea ecx, [ebp - 0x10]
call fcn.004a3e30
lea ecx, [ebp - 0x334]
call fcn.004d5e50
add eax, 0x14
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x350]
mov ecx, dword [eax]
add ecx, 1
mov edx, dword [ebp - 0x350]
mov dword [edx], ecx
lea ecx, [ebp - 0x10]
call fcn.00405cc0
mov esi, eax
lea ecx, [ebp - 0x334]
call fcn.004d5e50
mov dword [eax + 0xc], esi
lea ecx, [ebp - 0x14]
call fcn.00405cc0
mov esi, eax
lea ecx, [ebp - 0x334]
call fcn.004d5e50
mov dword [eax + 0x30], esi
push 0x104
mov ecx, dword [ebp + 8]
call fcn.0040f870
mov esi, eax
lea ecx, [ebp - 0x334]
call fcn.004d5e50
mov dword [eax + 0x1c], esi
lea ecx, [ebp - 0x334]
call fcn.004d5e70
mov dword [ebp - 0x338], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
call fcn.00419340
xor eax, eax
cmp dword [ebp - 0x338], 1
sete al
mov dword [ebp - 0x344], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.0040cab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
call fcn.0040cab0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call fcn.0040cab0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.0040cab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x334]
call fcn.004d5df0
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.00523400
mov esp, ebp
pop ebp
ret 0x14