Function at 0x40fc50
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43af40
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push esi
push edi
lea eax, [ebp + 8]
lea ecx, [esp + 0xc]
push eax
mov dword [esp + 0x44], 1
call fcn.0042e50a
xor ebx, ebx
push 0x45e768
lea ecx, [esp + 0x14]
mov byte [esp + 0x44], 2
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], ebx
call fcn.0042e803
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x40], 3
push ecx
lea ecx, [esp + 0x10]
call fcn.0042c5e0
cmp eax, 0xffffffff
je 0x40fe9a
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xc]
push edx
call fcn.0042c5e0
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x14]
call fcn.0042c546
xor esi, esi
mov byte [esp + 0x40], 4
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esi + 0x460d20]
call fcn.0042c546
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
push edx
call fcn.0041e05e
add esp, 8
lea ecx, [esp + 0x24]
test eax, eax
sete bl
call fcn.0042e795
test bl, bl
je 0x40fdea
mov eax, dword [esi + 0x45fe20]
push eax
call fcn.0041e007
fadd qword [esp + 0x30]
mov eax, dword [esi + 0x45f6a0]
push eax
fstp qword [esp + 0x34]
call fcn.0041dffc
mov ecx, dword [esp + 0x24]
add esp, 8
add ecx, eax
mov dword [esp + 0x1c], ecx
push 0x45e768
lea ecx, [esp + 0x18]
call fcn.0042e803
mov eax, dword [esi + 0x45e7a0]
mov ecx, dword [esi + 0x45ef20]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s_s
push edx
mov byte [esp + 0x50], 5
call fcn.0042c966
mov eax, dword [esp + 0x24]
add esp, 0x10
lea ecx, [esp + 0x10]
push eax
call fcn.0042c5e0
cmp eax, 0xffffffff
jne 0x40fdd4
mov edi, dword [esp + 0x10]
or ecx, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x40fdc6
push 0x45a0e4
lea ecx, [esp + 0x14]
call fcn.0042ea7e
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
call fcn.0042eaba
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], 1
mov byte [esp + 0x40], 4
call fcn.0042e795
add esi, 4
cmp esi, 0x780
jl 0x40fcf1
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40ff91
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xc]
push edx
call fcn.0042c5e0
cmp eax, 0xffffffff
je 0x40fe72
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0xc]
push eax
mov esi, eax
call fcn.0042c5e0
mov edi, dword [esp + 0xc]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
mov ebx, ecx
or ecx, 0xffffffff
sub ebx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x28]
sub ebx, ecx
lea ecx, [esp + 0xc]
push ebx
push eax
call fcn.0042c4ca
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x44], 6
call fcn.0042e882
lea ecx, [esp + 0x28]
mov byte [esp + 0x40], 4
call fcn.0042e795
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 3
call fcn.0042e795
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [esp + 0x10]
call fcn.0042c5e0
cmp eax, 0xffffffff
jne 0x40fcca
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov esi, dword [ebp + 0x10]
push edx
push eax
push 0x45a0e0
push esi
call fcn.0042c966
add esp, 0x10
mov ecx, esi
push 0x45a0dc
call fcn.0042c5e0
mov edx, eax
mov edi, 0x45a0d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x28]
add edx, ecx
mov ecx, esi
push edx
push eax
call fcn.0042c546
push eax
mov ecx, esi
mov byte [esp + 0x44], 7
call fcn.0042e882
lea ecx, [esp + 0x28]
mov byte [esp + 0x40], 3
call fcn.0042e795
mov esi, dword [ebp + 0x14]
test ebx, ebx
je 0x40ff12
push ebx
push 0x45a0cc
push esi
call fcn.0042c966
add esp, 0xc
mov edi, dword [esi]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x40ff3a
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x40ff3a
push 0x45a0e4
mov ecx, esi
call fcn.0042ea7e
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.0042eaba
lea ecx, [esp + 0x10]
mov byte [esp + 0x40], 2
call fcn.0042e795
lea ecx, [esp + 0xc]
mov byte [esp + 0x40], 1
call fcn.0042e795
lea ecx, [ebp + 8]
mov byte [esp + 0x40], 0
call fcn.0042e795
lea ecx, [ebp + 0xc]
mov dword [esp + 0x40], 0xffffffff
call fcn.0042e795
mov ecx, dword [esp + 0x38]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
push 0x45e768
call fcn.0042e8d2
mov ecx, dword [ebp + 0x14]
push 0x45e768
call fcn.0042e8d2
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 3
call fcn.0042e795
jmp 0x40ff46