Function at 0x4fdc48
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 0x4fe101
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4fdc87
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 1
je 0x4fdf56
mov byte [ebp - 5], 0
test bl, bl
je 0x4fdc9d
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0050efc4
test al, al
jne 0x4fdca1
xor eax, eax
jmp 0x4fdca3
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004f94a4
xor eax, eax
push ebp
push 0x4fdf4f
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 0x4fdd0e
test esi, esi
jle 0x4fdcf8
mov eax, dword [ebp - 4]
call fcn.004fd478
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4fdd0e
test esi, esi
jge 0x4fdd0e
mov eax, dword [ebp - 4]
call fcn.004fd478
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4fdf0f
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4fdeeb
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 0x10
je 0x4fde5d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
cmp byte [eax + 0x15], 0
je 0x4fde5d
test bl, bl
je 0x4fde55
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3cd], 0
jne 0x4fdddf
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.004cc488
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.004cc380
mov edx, dword [ebp - 4]
mov byte [edx + 0x4f6], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4fddbf
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 0x4fddcf
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 0x4fde5d
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.004cc488
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3d4]
mov eax, dword [ebp - 0xc]
call fcn.004cc4f0
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 0x4fde5d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4fde49
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4fde5d
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4fde5d
mov eax, dword [ebp - 4]
call fcn.004fdbec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a0394
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.004a55a8
test eax, eax
jne 0x4fde97
call fcn.004041d0
call fcn.004041d0
jmp 0x4fe0e6
cmp byte [ebp - 5], 0
je 0x4fded5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4fdec5
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 0x4fded5
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 0x4fdee3
test esi, esi
jle 0x4fdee2
dec esi
jmp 0x4fdee3
inc esi
test esi, esi
jne 0x4fdd24
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fdf16
cmp byte [ebp - 6], 0
je 0x4fdf0e
mov eax, dword [ebp - 4]
call fcn.004fd478
mov eax, dword [eax + 0x30]
call fcn.004a4978
ret
test bl, bl
je 0x4fdf68
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0050efc4
test al, al
jne 0x4fdf6c
xor eax, eax
jmp 0x4fdf6e
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4fdf8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a0394
mov edx, esi
call fcn.004a55a8
jmp 0x4fe0cf
mov eax, dword [ebp - 4]
call fcn.004f94a4
xor edx, edx
push ebp
push 0x4fe0c8
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 0x4fe001
mov eax, dword [eax + 0xc]
call fcn.00511354
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.0050e7c4
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004f943c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00511890
cmp byte [ebp + 0xc], 0
je 0x4fe034
dec esi
jne 0x4fe01f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a0394
call fcn.004a550c
jmp 0x4fe049
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a0394
call fcn.004a5434
jmp 0x4fe049
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a0394
mov edx, esi
call fcn.004a55a8
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.0050e7c4
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004f943c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00511890
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fe0cf
mov eax, dword [ebp - 4]
call fcn.004fd468
mov eax, dword [ebp - 4]
cmp byte [eax + 0x408], 0
jne 0x4fe0c7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x43d], 0
je 0x4fe0c7
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 0x4fe0e6
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 0x4fe108
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.004047f4
ret