Function at 0x5041d0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x542b84
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x598c90]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x20], ebx
mov ecx, dword [ebx + 0x84]
mov eax, ecx
call fcn.004053d0
mov edx, dword [ebp + 0xc]
cmp edx, eax
jge 0x504447
cmp dword [ecx + 0x3c], 0
jg 0x50422a
cmp dword [ecx + 0x60], 0
jle 0x5045ca
cmp byte [ebp + 0x18], 0
je 0x504384
fild dword [ebp + 0x10]
sub esp, 8
lea eax, [esp + 0x2c]
add ebx, 4
fstp dword [esp + 0x24]
mov ecx, ebx
fild dword [ebp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fadd qword [0x572c38]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp + 4]
fld1
fstp dword [esp]
push 0
push 0x1000900
push eax
call fcn.00434820
fld1
push eax
sub esp, 0xc
fst dword [esp + 8]
lea ecx, [esp + 0x40]
fst dword [esp + 4]
fstp dword [esp]
push 0
push 0x1000900
push ecx
mov ecx, ebx
call fcn.00434820
lea esi, [esp + 0x44]
mov edx, eax
call fcn.00476750
push eax
lea edx, [esp + 0x4c]
push edx
xor al, al
call fcn.00476b70
mov edi, dword [ebp + 8]
lea eax, [esp + 0x34]
push eax
mov esi, edi
mov dword [esp + 0x6c], 0
call fcn.004789d0
fld dword [esp + 0x1c]
fld qword [0x572c40]
sub esp, 0x10
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x28]
fsubr dword [esp + 0x24]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp + 0xc]
fld dword [esp + 0x28]
fstp dword [esp + 8]
fld1
fst dword [esp + 4]
fstp dword [esp]
push edi
call fcn.00478f40
fld dword [0x572f78]
push ecx
fstp dword [esp]
push 0
push 0x1000900
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebx
call fcn.00434820
lea esi, [esp + 0x18]
mov edx, eax
call fcn.00476750
push eax
mov esi, edi
call fcn.00478940
fld1
sub esp, 0x10
fst dword [esp + 0xc]
fld dword [esp + 0x28]
fstp dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push edi
call fcn.00478f40
push 0
push 0x1000800
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.00434820
push eax
call fcn.00478940
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x6c], 0xffffffff
call fcn.00476c70
mov ebx, dword [esp + 0x20]
jmp 0x5043af
mov eax, ecx
call fcn.00405330
test byte [eax], 1
lea eax, [esp + 0x2c]
je 0x50439b
mov ecx, 0xfff3f6fa
jmp 0x50439e
or ecx, 0xffffffff
call fcn.00453820
mov edi, dword [ebp + 8]
mov ecx, eax
mov esi, edi
call fcn.00478ff0
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebp + 0xc]
cmp edx, ecx
jne 0x5043ed
push 0x59f7a0
mov esi, edi
call fcn.00478940
mov ecx, dword [ebp + 0x10]
push 2
push ecx
push edi
xor ecx, ecx
xor eax, eax
call fcn.00478ee0
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [ebx + 0x84]
mov eax, ebx
call fcn.004053d0
dec eax
cmp edx, eax
jne 0x5045ca
mov eax, ebx
call fcn.004053d0
cmp ecx, eax
jne 0x5045ca
push 0x59f7a0
mov esi, edi
call fcn.00478940
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
push 2
push edx
add ecx, 0xfffffffe
push edi
xor eax, eax
call fcn.00478ee0
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ecx + 0x60], 0
jle 0x5045ca
cmp byte [ebp + 0x18], 0
je 0x5045b2
fild dword [ebp + 0x10]
sub esp, 8
lea eax, [esp + 0x34]
lea edi, [ebx + 4]
fstp dword [esp + 0x24]
mov ecx, edi
fild dword [ebp + 0x14]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fadd qword [0x572c38]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld1
fstp dword [esp]
push 0
push 0x1000900
push eax
call fcn.00434820
fld1
push eax
sub esp, 0xc
fst dword [esp + 8]
lea ecx, [esp + 0x40]
fst dword [esp + 4]
fstp dword [esp]
push 0
push 0x1000900
push ecx
mov ecx, edi
call fcn.00434820
lea esi, [esp + 0x3c]
mov edx, eax
call fcn.00476750
push eax
lea edx, [esp + 0x4c]
push edx
xor al, al
call fcn.00476b70
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x34]
push eax
mov esi, ebx
mov dword [esp + 0x6c], 1
call fcn.004789d0
fld dword [esp + 0x1c]
fld qword [0x572c40]
sub esp, 0x10
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x24]
fsubr dword [esp + 0x28]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 0xc]
fld dword [esp + 0x24]
fstp dword [esp + 8]
fld1
fst dword [esp + 4]
fstp dword [esp]
push ebx
call fcn.00478f40
fld dword [0x572f78]
push ecx
fstp dword [esp]
push 0
push 0x1000900
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call fcn.00434820
lea esi, [esp + 0x20]
mov edx, eax
call fcn.00476750
push eax
mov esi, ebx
call fcn.00478940
fld1
sub esp, 0x10
fst dword [esp + 0xc]
fld dword [esp + 0x24]
fstp dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
call fcn.00478f40
push 0
push 0x1000800
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.00434820
push eax
call fcn.00478940
lea eax, [esp + 0x34]
push eax
call fcn.00476c70
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, 0xffeeffee
lea eax, [esp + 0x30]
call fcn.00453820
mov esi, dword [ebp + 8]
mov ecx, eax
call fcn.00478ff0
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14