Function at 0x4d26c8
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 0x4d2b3b
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4d2707
mov eax, dword [ebp - 4]
test byte [eax + 0x361], 1
je 0x4d29b3
mov byte [ebp - 5], 0
test bl, bl
je 0x4d271d
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004df330
test al, al
jne 0x4d2721
xor eax, eax
jmp 0x4d2723
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004ced18
xor eax, eax
push ebp
push 0x4d29ac
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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 0x4d278e
test esi, esi
jle 0x4d2778
mov eax, dword [ebp - 4]
call fcn.004d1ef0
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4d278e
test esi, esi
jge 0x4d278e
mov eax, dword [ebp - 4]
call fcn.004d1ef0
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4d298f
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4d296b
mov eax, dword [ebp - 4]
test byte [eax + 0x361], 0x10
je 0x4d28dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
cmp byte [eax + 0x15], 0
je 0x4d28dd
test bl, bl
je 0x4d28d5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x36d], 0
jne 0x4d285f
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004cd56c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x374
call fcn.00404598
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004cd5dc
mov edx, dword [ebp - 4]
mov byte [edx + 0x45a], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3ae], 0
je 0x4d283f
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x45a]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004cd88c
jmp 0x4d284f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.004cd88c
mov eax, dword [ebp - 4]
mov byte [eax + 0x36d], 1
mov byte [ebp - 5], 1
jmp 0x4d28dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.004cd56c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x374]
mov eax, dword [ebp - 0xc]
call fcn.004cd540
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 0x4d28dd
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3ae], 0
je 0x4d28c9
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x45a]
mov eax, dword [ebp - 0xc]
call fcn.004cd88c
jmp 0x4d28dd
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.004cd88c
jmp 0x4d28dd
mov eax, dword [ebp - 4]
call fcn.004d2674
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004899b4
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.0048e648
test eax, eax
jne 0x4d2917
call fcn.00403fe8
call fcn.00403fe8
jmp 0x4d2b20
cmp byte [ebp - 5], 0
je 0x4d2955
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3ae], 0
je 0x4d2945
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x45a]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004cd88c
jmp 0x4d2955
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.004cd88c
cmp byte [ebp + 0xc], 0
jne 0x4d2963
test esi, esi
jle 0x4d2962
dec esi
jmp 0x4d2963
inc esi
test esi, esi
jne 0x4d27a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d2996
cmp byte [ebp - 6], 0
je 0x4d298e
mov eax, dword [ebp - 4]
call fcn.004d1ef0
mov eax, dword [eax + 0x30]
call fcn.0048da18
ret
test bl, bl
je 0x4d29c5
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004df330
test al, al
jne 0x4d29c9
xor eax, eax
jmp 0x4d29cb
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4d29eb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004899b4
mov edx, esi
call fcn.0048e648
jmp 0x4d2b09
mov eax, dword [ebp - 4]
call fcn.004ced18
xor edx, edx
push ebp
push 0x4d2b02
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
cmp byte [eax + 0x10], 2
je 0x4d2a5e
mov eax, dword [eax + 0xc]
call fcn.004e1174
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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.004de9e4
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004cecb0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004e165c
cmp byte [ebp + 0xc], 0
je 0x4d2a91
dec esi
jne 0x4d2a7c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004899b4
call fcn.0048e5ac
jmp 0x4d2aa6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004899b4
call fcn.0048e4d4
jmp 0x4d2aa6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004899b4
mov edx, esi
call fcn.0048e648
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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.004de9e4
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004cecb0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004e165c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d2b09
mov eax, dword [ebp - 4]
call fcn.004d1ee0
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3a4], 0
jne 0x4d2b20
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 0x4d2b42
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404568
ret