Function at 0x4ff230
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 0x4ff6e9
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x4ff26f
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 1
je 0x4ff53e
mov byte [ebp - 5], 0
test bl, bl
je 0x4ff285
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00510670
test al, al
jne 0x4ff289
xor eax, eax
jmp 0x4ff28b
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.004fa88c
xor eax, eax
push ebp
push 0x4ff537
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 0x4ff2f6
test esi, esi
jle 0x4ff2e0
mov eax, dword [ebp - 4]
call fcn.004fea60
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x4ff2f6
test esi, esi
jge 0x4ff2f6
mov eax, dword [ebp - 4]
call fcn.004fea60
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x4ff4f7
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4ff4d3
mov eax, dword [ebp - 4]
test byte [eax + 0x3c1], 0x10
je 0x4ff445
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
cmp byte [eax + 0x15], 0
je 0x4ff445
test bl, bl
je 0x4ff43d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3cd], 0
jne 0x4ff3c7
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.004cd850
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x3d4
call fcn.0040489c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.004cd748
mov edx, dword [ebp - 4]
mov byte [edx + 0x4f6], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4ff3a7
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 0x4ff3b7
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 0x4ff445
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.004cd850
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3d4]
mov eax, dword [ebp - 0xc]
call fcn.004cd8b8
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 0x4ff445
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4ff431
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f6]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4ff445
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x4ff445
mov eax, dword [ebp - 4]
call fcn.004ff1d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1204
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.004a63fc
test eax, eax
jne 0x4ff47f
call fcn.00404268
call fcn.00404268
jmp 0x4ff6ce
cmp byte [ebp - 5], 0
je 0x4ff4bd
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44e], 0
je 0x4ff4ad
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 0x4ff4bd
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 0x4ff4cb
test esi, esi
jle 0x4ff4ca
dec esi
jmp 0x4ff4cb
inc esi
test esi, esi
jne 0x4ff30c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff4fe
cmp byte [ebp - 6], 0
je 0x4ff4f6
mov eax, dword [ebp - 4]
call fcn.004fea60
mov eax, dword [eax + 0x30]
call fcn.004a57cc
ret
test bl, bl
je 0x4ff550
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00510670
test al, al
jne 0x4ff554
xor eax, eax
jmp 0x4ff556
mov al, 1
mov ebx, eax
test bl, bl
jne 0x4ff576
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1204
mov edx, esi
call fcn.004a63fc
jmp 0x4ff6b7
mov eax, dword [ebp - 4]
call fcn.004fa88c
xor edx, edx
push ebp
push 0x4ff6b0
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 0x4ff5e9
mov eax, dword [eax + 0xc]
call fcn.00512a00
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.0050fe70
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004fa824
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00512f3c
cmp byte [ebp + 0xc], 0
je 0x4ff61c
dec esi
jne 0x4ff607
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1204
call fcn.004a6360
jmp 0x4ff631
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1204
call fcn.004a6288
jmp 0x4ff631
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1204
mov edx, esi
call fcn.004a63fc
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.0050fe70
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004fa824
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00512f3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff6b7
mov eax, dword [ebp - 4]
call fcn.004fea50
mov eax, dword [ebp - 4]
cmp byte [eax + 0x408], 0
jne 0x4ff6af
mov eax, dword [ebp - 4]
cmp byte [eax + 0x43d], 0
je 0x4ff6af
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 0x4ff6ce
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 0x4ff6f0
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040486c
ret