Function at 0x4de5a8
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 0x4dea1b
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4de5e7
mov eax, dword [ebp - 4]
test byte [eax + 0x361], 1
je 0x4de893
mov byte [ebp - 5], 0
test bl, bl
je 0x4de5fd
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004eef1c
test al, al
jne 0x4de601
xor eax, eax
jmp 0x4de603
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004dab48
xor eax, eax
push ebp
push 0x4de88c
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 0x4de66e
test esi, esi
jle 0x4de658
mov eax, dword [ebp - 4]
call fcn.004dddd8
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4de66e
test esi, esi
jge 0x4de66e
mov eax, dword [ebp - 4]
call fcn.004dddd8
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4de86f
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4de84b
mov eax, dword [ebp - 4]
test byte [eax + 0x361], 0x10
je 0x4de7bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
cmp byte [eax + 0x15], 0
je 0x4de7bd
test bl, bl
je 0x4de7b5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x36d], 0
jne 0x4de73f
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004d8ef8
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x374
call fcn.00404334
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004d8f68
mov edx, dword [ebp - 4]
mov byte [edx + 0x47e], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3df], 0
je 0x4de71f
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x47e]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004d9210
jmp 0x4de72f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.004d9210
mov eax, dword [ebp - 4]
mov byte [eax + 0x36d], 1
mov byte [ebp - 5], 1
jmp 0x4de7bd
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.004d8ef8
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x374]
mov eax, dword [ebp - 0xc]
call fcn.004d8edc
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 0x4de7bd
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3df], 0
je 0x4de7a9
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x47e]
mov eax, dword [ebp - 0xc]
call fcn.004d9210
jmp 0x4de7bd
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.004d9210
jmp 0x4de7bd
mov eax, dword [ebp - 4]
call fcn.004de54c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0048381c
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.0048842c
test eax, eax
jne 0x4de7f7
call fcn.00403dac
call fcn.00403dac
jmp 0x4dea00
cmp byte [ebp - 5], 0
je 0x4de835
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3df], 0
je 0x4de825
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x47e]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.004d9210
jmp 0x4de835
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.004d9210
cmp byte [ebp + 0xc], 0
jne 0x4de843
test esi, esi
jle 0x4de842
dec esi
jmp 0x4de843
inc esi
test esi, esi
jne 0x4de684
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4de876
cmp byte [ebp - 6], 0
je 0x4de86e
mov eax, dword [ebp - 4]
call fcn.004dddd8
mov eax, dword [eax + 0x30]
call fcn.00487828
ret
test bl, bl
je 0x4de8a5
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004eef1c
test al, al
jne 0x4de8a9
xor eax, eax
jmp 0x4de8ab
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4de8cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0048381c
mov edx, esi
call fcn.0048842c
jmp 0x4de9e9
mov eax, dword [ebp - 4]
call fcn.004dab48
xor edx, edx
push ebp
push 0x4de9e2
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 0x4de93e
mov eax, dword [eax + 0xc]
call fcn.004f0ee4
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.004ee62c
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004daae0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004f13cc
cmp byte [ebp + 0xc], 0
je 0x4de971
dec esi
jne 0x4de95c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0048381c
call fcn.00488390
jmp 0x4de986
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0048381c
call fcn.004882b8
jmp 0x4de986
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.0048381c
mov edx, esi
call fcn.0048842c
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.004ee62c
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004daae0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.004f13cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4de9e9
mov eax, dword [ebp - 4]
call fcn.004dddc8
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3a8], 0
jne 0x4dea00
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 0x4dea22
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404304
ret