Function at 0x40c544
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x67794d
mov eax, dword fs:[0]
push eax
sub esp, 0x1fc
push esi
push edi
mov eax, dword [0x6f2bf0]
xor eax, esp
push eax
lea eax, [esp + 0x208]
mov dword fs:[0], eax
push 0x6b8dc0
lea ecx, [esp + 0x2c]
call fcn.004040f0
lea eax, [esp + 0x28]
xor esi, esi
push eax
mov dword [esp + 0x214], esi
call fcn.0045947d
mov ecx, eax
call fcn.0045a1f8
or dword [esp + 0x210], 0xffffffff
push esi
push 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x14], eax
call fcn.00403f7a
fild dword [esp + 0xc]
sub esp, 0xc
lea eax, [esp + 0x90]
fdiv qword [0x6b9e88]
fstp dword [esp + 0x1c]
fld1
fstp dword [esp + 8]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.0046914b
add esp, 0x10
lea ecx, [esp + 0x44]
call fcn.004078f0
mov eax, dword [ebx + 8]
mov eax, dword [eax + 8]
push 2
push 2
push esi
lea ecx, [eax + 0x80914]
call fcn.0045787d
mov ecx, eax
call fcn.0045fb13
mov eax, dword [ebx + 8]
mov eax, dword [eax + 8]
cmp dword [eax + 0x2060], esi
je 0x40c6a5
fldz
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [esp + 0xd0]
fld dword [esp + 0x1c]
fmul qword [0x6b9eb0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fmul qword [0x6b9de0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0x48]
call fcn.00407a2f
fldz
push 0xffffffffffffffff
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x50]
fstp dword [esp]
push eax
lea eax, [esp + 0xd4]
lea esi, [ebx + 0x5ebfc]
mov edi, dword [esi]
push eax
lea ecx, [esp + 0x98]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov eax, dword [ebx + 8]
cmp dword [eax + 0xc], 1
mov eax, dword [eax + 8]
je 0x40c6b9
mov ecx, dword [eax + 0x80114]
jmp 0x40c6bf
mov ecx, dword [eax + 0x80118]
call fcn.00446f1e
fldz
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x1c]
lea eax, [esp + 0xd0]
fmul qword [0x6ba208]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fmul qword [0x6ba200]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
push eax
lea ecx, [esp + 0x48]
call fcn.00407a2f
fldz
push 0xffffffffffffffff
push ecx
push ecx
fst dword [esp + 4]
lea eax, [esp + 0x50]
fstp dword [esp]
push eax
lea eax, [esp + 0xd4]
lea esi, [ebx + 0x5ec90]
mov edi, dword [esi]
push eax
lea ecx, [esp + 0x98]
call fcn.0040a033
push eax
mov ecx, esi
call dword [edi + 0x5c]
mov eax, dword [ebx + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0x138d0]
mov eax, dword [eax + 0x138d4]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x5eef4]
sub eax, dword [ebx + 0x5eef0]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
push 0x78
cdq
fdiv qword [0x6b9e88]
pop ecx
idiv ecx
and dword [esp + 0x18], 0
fstp dword [esp + 0xc]
test eax, eax
jle 0x40c88a
lea edi, [ebx + 0x5edd0]
mov dword [esp + 0x14], edi
jmp 0x40c79d
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call dword [eax + 0x30]
fldz
sub esp, 0xc
fstp dword [esp + 8]
fild dword [esp + 0x30]
lea eax, [esp + 0x110]
fchs
fstp dword [esp + 4]
fild dword [esp + 0x2c]
fchs
fstp dword [esp]
push eax
call fcn.004690e4
fldz
pop ecx
fstp dword [esp + 8]
fild dword [esp + 0x30]
lea eax, [esp + 0x150]
fdiv dword [esp + 0x18]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fild dword [esp + 0x2c]
fdiv dword [esp + 0x18]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
call fcn.004690e4
add esp, 0x10
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x188]
push eax
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x1d0]
push eax
lea ecx, [esp + 0x94]
call fcn.0040a033
mov ecx, eax
call fcn.0040a033
mov edx, dword [edi]
sub esp, 0x40
push 0x10
pop ecx
mov edi, esp
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
push 0xffffffffffffffff
call dword [edx + 0x48]
mov eax, dword [ebx + 0x5eef4]
sub eax, dword [ebx + 0x5eef0]
push 0x78
cdq
pop ecx
idiv ecx
inc dword [esp + 0x18]
add dword [esp + 0x14], 0x84
cmp dword [esp + 0x18], eax
jl 0x40c799
mov ecx, dword [esp + 0x208]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret