Function at 0x4e7104
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 0x4e75bd
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4e7143
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 1
je 0x4e7412
mov byte [ebp - 5], 0
test bl, bl
je 0x4e7159
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004f8480
test al, al
jne 0x4e715d
xor eax, eax
jmp 0x4e715f
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004e2960
xor eax, eax
push ebp
push 0x4e740b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
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 0x4e71ca
test esi, esi
jle 0x4e71b4
mov eax, dword [ebp - 4]
call fcn.004e6934
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4e71ca
test esi, esi
jge 0x4e71ca
mov eax, dword [ebp - 4]
call fcn.004e6934
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4e73cb
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4e73a7
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 0x10
je 0x4e7319
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
cmp byte [eax + 0x15], 0
je 0x4e7319
test bl, bl
je 0x4e7311
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3cd], 0
jne 0x4e729b
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.004b5944
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x3d4
call fcn.00404824
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.004b583c
mov edx, dword [ebp - 4]
mov byte [edx + 0x4f6], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4e727b
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4e728b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 4]
mov byte [eax + 0x3cd], 1
mov byte [ebp - 5], 1
jmp 0x4e7319
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.004b5944
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3d4]
mov eax, dword [ebp - 0xc]
call fcn.004b59ac
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 0x4e7319
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4e7305
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4e7319
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4e7319
mov eax, dword [ebp - 4]
call fcn.004e70a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00482024
push eax
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
pop eax
call fcn.00487238
test eax, eax
jne 0x4e7353
call fcn.004041d0
call fcn.004041d0
jmp 0x4e75a2
cmp byte [ebp - 5], 0
je 0x4e7391
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4e7381
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4e7391
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp byte [ebp + 0xc], 0
jne 0x4e739f
test esi, esi
jle 0x4e739e
dec esi
jmp 0x4e739f
inc esi
test esi, esi
jne 0x4e71e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e73d2
cmp byte [ebp - 6], 0
je 0x4e73ca
mov eax, dword [ebp - 4]
call fcn.004e6934
mov eax, dword [eax + 0x30]
call fcn.00486608
ret
test bl, bl
je 0x4e7424
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004f8480
test al, al
jne 0x4e7428
xor eax, eax
jmp 0x4e742a
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4e744a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00482024
mov edx, esi
call fcn.00487238
jmp 0x4e758b
mov eax, dword [ebp - 4]
call fcn.004e2960
xor edx, edx
push ebp
push 0x4e7584
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
cmp byte [eax + 0x10], 2
je 0x4e74bd
mov eax, dword [eax + 0xc]
call fcn.004fa810
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
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.004f7c80
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e28f8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004fad4c
cmp byte [ebp + 0xc], 0
je 0x4e74f0
dec esi
jne 0x4e74db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00482024
call fcn.0048719c
jmp 0x4e7505
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00482024
call fcn.004870c4
jmp 0x4e7505
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00482024
mov edx, esi
call fcn.00487238
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
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.004f7c80
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e28f8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004fad4c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e758b
mov eax, dword [ebp - 4]
call fcn.004e6924
mov eax, dword [ebp - 4]
cmp byte [eax + 0x408], 0
jne 0x4e7583
mov eax, dword [ebp - 4]
cmp byte [eax + 0x43d], 0
je 0x4e7583
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x158]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x408], 0
jne 0x4e75a2
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 0x4e75c4
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.004047f4
ret