Function at 0x4d0e1c
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 0x4d128f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4d0e5b
mov eax, dword [ebp - 4]
test byte [eax + 0x361], 1
je 0x4d1107
mov byte [ebp - 5], 0
test bl, bl
je 0x4d0e71
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004dd88c
test al, al
jne 0x4d0e75
xor eax, eax
jmp 0x4d0e77
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004cd46c
xor eax, eax
push ebp
push 0x4d1100
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 0x4d0ee2
test esi, esi
jle 0x4d0ecc
mov eax, dword [ebp - 4]
call fcn.004d0644
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4d0ee2
test esi, esi
jge 0x4d0ee2
mov eax, dword [ebp - 4]
call fcn.004d0644
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4d10e3
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4d10bf
mov eax, dword [ebp - 4]
test byte [eax + 0x361], 0x10
je 0x4d1031
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
cmp byte [eax + 0x15], 0
je 0x4d1031
test bl, bl
je 0x4d1029
mov eax, dword [ebp - 4]
cmp byte [eax + 0x36d], 0
jne 0x4d0fb3
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004cbcc8
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x374
call fcn.00404760
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004cbd38
mov edx, dword [ebp - 4]
mov byte [edx + 0x45a], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3ae], 0
je 0x4d0f93
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.004cbfe0
jmp 0x4d0fa3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.004cbfe0
mov eax, dword [ebp - 4]
mov byte [eax + 0x36d], 1
mov byte [ebp - 5], 1
jmp 0x4d1031
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.004cbcc8
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x374]
mov eax, dword [ebp - 0xc]
call fcn.004cbcac
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 0x4d1031
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3ae], 0
je 0x4d101d
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x45a]
mov eax, dword [ebp - 0xc]
call fcn.004cbfe0
jmp 0x4d1031
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.004cbfe0
jmp 0x4d1031
mov eax, dword [ebp - 4]
call fcn.004d0dc8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0049c750
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.0049fa0c
test eax, eax
jne 0x4d106b
call fcn.00404154
call fcn.00404154
jmp 0x4d1274
cmp byte [ebp - 5], 0
je 0x4d10a9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3ae], 0
je 0x4d1099
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.004cbfe0
jmp 0x4d10a9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.004cbfe0
cmp byte [ebp + 0xc], 0
jne 0x4d10b7
test esi, esi
jle 0x4d10b6
dec esi
jmp 0x4d10b7
inc esi
test esi, esi
jne 0x4d0ef8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d10ea
cmp byte [ebp - 6], 0
je 0x4d10e2
mov eax, dword [ebp - 4]
call fcn.004d0644
mov eax, dword [eax + 0x30]
call fcn.0049ee14
ret
test bl, bl
je 0x4d1119
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004dd88c
test al, al
jne 0x4d111d
xor eax, eax
jmp 0x4d111f
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4d113f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0049c750
mov edx, esi
call fcn.0049fa0c
jmp 0x4d125d
mov eax, dword [ebp - 4]
call fcn.004cd46c
xor edx, edx
push ebp
push 0x4d1256
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 0x4d11b2
mov eax, dword [eax + 0xc]
call fcn.004df6c4
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.004dcf98
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004cd404
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004dfbac
cmp byte [ebp + 0xc], 0
je 0x4d11e5
dec esi
jne 0x4d11d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0049c750
call fcn.0049f970
jmp 0x4d11fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0049c750
call fcn.0049f898
jmp 0x4d11fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0049c750
mov edx, esi
call fcn.0049fa0c
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.004dcf98
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004cd404
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004dfbac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d125d
mov eax, dword [ebp - 4]
call fcn.004d0634
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3a4], 0
jne 0x4d1274
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 0x4d1296
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404730
ret