Function at 0x4ea874
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4ead0a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4ea8b3
mov eax, dword [ebp - 4]
test byte [eax + 0x419], 1
je 0x4eab75
mov byte [ebp - 5], 0
test bl, bl
je 0x4ea8c9
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005026f0
test al, al
jne 0x4ea8cd
xor eax, eax
jmp 0x4ea8cf
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004e2ba8
xor eax, eax
push ebp
push 0x4eab6e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
mov edx, dword [eax]
call dword [edx + 0x38]
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
setle al
or al, byte [ebp + 0xc]
je 0x4ea93a
test esi, esi
jle 0x4ea924
mov eax, dword [ebp - 4]
call fcn.004ea3a0
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4ea93a
test esi, esi
jge 0x4ea93a
mov eax, dword [ebp - 4]
call fcn.004ea3a0
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4eab2e
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4eab0a
mov eax, dword [ebp - 4]
test byte [eax + 0x419], 0x10
je 0x4eaa89
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
cmp byte [eax + 0x15], 0
je 0x4eaa89
test bl, bl
je 0x4eaa81
mov eax, dword [ebp - 4]
cmp byte [eax + 0x425], 0
jne 0x4eaa0b
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
call fcn.00496f98
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x42c
call fcn.004046b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
call fcn.00496e90
mov edx, dword [ebp - 4]
mov byte [edx + 0x5ee], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x502], 0
je 0x4ea9eb
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x5ee]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4ea9fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 4]
mov byte [eax + 0x425], 1
mov byte [ebp - 5], 1
jmp 0x4eaa89
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00496f98
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x42c]
mov eax, dword [ebp - 0xc]
call fcn.00497000
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
pop edx
mov edi, edx
cdq
idiv edi
neg eax
cmp ecx, eax
setne byte [ebp - 5]
cmp byte [ebp - 5], 0
jne 0x4eaa89
mov eax, dword [ebp - 4]
cmp byte [eax + 0x502], 0
je 0x4eaa75
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x5ee]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4eaa89
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4eaa89
mov eax, dword [ebp - 4]
call fcn.004ea858
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0050c5e8
test eax, eax
jne 0x4eaab6
call fcn.00404108
call fcn.00404108
jmp 0x4eacef
cmp byte [ebp - 5], 0
je 0x4eaaf4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x502], 0
je 0x4eaae4
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x5ee]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4eaaf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp byte [ebp + 0xc], 0
jne 0x4eab02
test esi, esi
jle 0x4eab01
dec esi
jmp 0x4eab02
inc esi
test esi, esi
jne 0x4ea950
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4eab35
cmp byte [ebp - 6], 0
je 0x4eab2d
mov eax, dword [ebp - 4]
call fcn.004ea3a0
mov eax, dword [eax + 0x30]
call fcn.0043f398
ret
test bl, bl
je 0x4eab87
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.005026f0
test al, al
jne 0x4eab8b
xor eax, eax
jmp 0x4eab8d
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4eaba2
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.0050c5e8
jmp 0x4eacd8
mov eax, dword [ebp - 4]
call fcn.004e2ba8
xor edx, edx
push ebp
push 0x4eacd1
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
cmp byte [eax + 0x10], 1
je 0x4eac15
mov eax, dword [eax + 0xc]
call fcn.00507198
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x11c]
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
call fcn.00501ed0
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e2b2c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.005076d4
cmp byte [ebp + 0xc], 0
je 0x4eac48
dec esi
jne 0x4eac33
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
call fcn.0043cc68
call fcn.0043ff18
jmp 0x4eac52
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
call fcn.0043cc68
call fcn.0043fe40
jmp 0x4eac52
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.0050c5e8
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x11c]
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
call fcn.00501ed0
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e2b2c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.005076d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4eacd8
mov eax, dword [ebp - 4]
call fcn.004e2c80
mov eax, dword [ebp - 4]
cmp byte [eax + 0x453], 0
jne 0x4eacd0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x485], 0
je 0x4eacd0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x23c]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x453], 0
jne 0x4eacef
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x88]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ead11
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404688
ret