Function at 0x579920
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x6c65a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
push ebx
push esi
mov esi, ecx
mov eax, dword [esp + 0x3c]
push edi
fld dword [esi + 0x15c]
fmul dword [0x6d1c28]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0xc], ecx
fcom dword [esi + 0x3a4]
fnstsw ax
test ah, 0x41
jnp 0x579ac7
fchs
fcomp dword [esi + 0x3a4]
fnstsw ax
and eax, 0x100
je 0x579ac9
fld dword [esi + 0x25c]
fmul dword [0x6d1c28]
fcom dword [esi + 0x3a4]
fnstsw ax
test ah, 0x41
jnp 0x579c32
fchs
fcomp dword [esi + 0x3a4]
fnstsw ax
and eax, 0x100
je 0x579c34
mov eax, dword [esi + 0xc]
mov dword [esi + 0x65c], 0
test eax, 0x10000
je 0x579a61
fld dword [esp + 0xc]
fadd dword [esi + 0x660]
fst dword [esi + 0x660]
fcomp dword [esi + 0x264]
fnstsw ax
and eax, 0x100
jne 0x579a61
mov eax, dword [0x72d944]
mov dl, byte [esi + 0x26c]
push edx
push 0x3f800000
mov ecx, dword [eax + 0x6c]
call fcn.0047f7d0
fld dword [esi + 0x230]
fst dword [esi + 0x6b8]
fstp dword [esi + 0x6b4]
mov eax, dword [esi + 0x6c0]
mov dword [esi + 0x6d8], eax
mov ecx, dword [esi + 0x6c4]
mov dword [esi + 0x6dc], ecx
mov edx, dword [esi + 0x6c8]
mov dword [esi + 0x6e0], edx
mov eax, dword [esi + 0x6cc]
mov dword [esi + 0x6e4], eax
mov ecx, dword [esi + 0x6d0]
mov dword [esi + 0x6e8], ecx
mov edx, dword [esi + 0x6d4]
mov dword [esi + 0x6ec], edx
mov eax, dword [esi + 0xc]
and eax, 0xfffeffff
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
test ah, ah
jns 0x579a8b
mov edi, eax
and edi, 0xffff7fff
mov dword [esi + 0xc], edi
mov eax, dword [0x72d944]
mov edx, dword [esi + 0x350]
mov ecx, dword [eax + 0x18]
mov al, byte [edx + 8]
push eax
push esi
call fcn.00453e30
mov ecx, dword [esi + 0x5c]
push 8
call fcn.004e22a0
mov edi, eax
mov ecx, edi
call fcn.00456820
mov ecx, edi
mov bl, al
call fcn.00456800
or bl, al
je 0x579cf8
mov ecx, dword [esi + 0x5c]
push 0
push 8
call fcn.004e22a0
mov ecx, eax
call fcn.00456690
jmp 0x579cf8
fstp st(0)
mov eax, dword [esi + 0xc]
test al, 8
je 0x57997a
test al, 0x10
je 0x57997a
fld dword [esi + 0x388]
fcomp dword [esi + 0x298]
fnstsw ax
and eax, 0x100
jne 0x57997a
mov eax, dword [esi + 0x214]
test eax, eax
je 0x579b55
mov edx, dword [0x72d944]
fld dword [esi + 0x218]
mov ecx, dword [edx + 0x6c]
mov edx, dword [ecx + 0x474]
mov dword [esi + 0x658], edx
mov edx, dword [ecx + 0x474]
cmp edx, eax
je 0x579b43
mov dword [ecx + 0x470], eax
mov al, byte [ecx + 0x46c]
test al, 0x20
jne 0x579b43
fstp dword [ecx + 0x7e8]
mov byte [ecx + 0x7ec], 0
jmp 0x579b45
fstp st(0)
mov eax, dword [esi + 0x1c]
push 0
push 0x3f800000
push eax
call fcn.0047b2c0
mov ecx, dword [esi + 0x5c]
push 0
push 9
call fcn.004e22a0
mov ecx, eax
call fcn.004565d0
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x360], 1
mov eax, dword [ecx + 4]
add eax, 0x40
mov edx, dword [eax]
mov dword [esi + 0x608], edx
mov ecx, dword [eax + 4]
mov dword [esi + 0x60c], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0x610], edx
mov eax, dword [esi + 0xc]
or al, 0x40
mov dword [esi + 0xc], eax
fld dword [esi + 0x3a8]
fcomp dword [0x6d035c]
fld dword [esi + 0x3a8]
fnstsw ax
test ah, 5
jp 0x579bb8
fchs
fmul dword [esi + 0xec]
pop edi
fstp dword [esi + 0x620]
fld dword [esi + 0x230]
fst dword [esi + 0x6b8]
fstp dword [esi + 0x6b4]
mov eax, dword [esi + 0x6c0]
mov dword [esi + 0x6d8], eax
mov ecx, dword [esi + 0x6c4]
mov dword [esi + 0x6dc], ecx
mov edx, dword [esi + 0x6c8]
mov dword [esi + 0x6e0], edx
mov eax, dword [esi + 0x6cc]
mov dword [esi + 0x6e4], eax
mov ecx, dword [esi + 0x6d0]
mov dword [esi + 0x6e8], ecx
mov edx, dword [esi + 0x6d4]
mov dword [esi + 0x6ec], edx
pop esi
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret 4
fstp st(0)
mov ecx, dword [esi + 0xc]
mov eax, 0x8000
test eax, ecx
jne 0x579c91
mov edi, ecx
or edi, eax
mov dword [esi + 0xc], edi
mov ecx, dword [esi + 0x350]
mov dword [ecx + 4], esi
mov edx, dword [0x72d944]
mov eax, dword [esi + 0x350]
mov ecx, dword [edx + 0x18]
push eax
call fcn.00453d10
call fcn.00404010
and eax, 0xffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
fild qword [esp + 0x1c]
fmul dword [0x6d179c]
fadd dword [0x6d3ae8]
fstp dword [esi + 0x6ac]
fld dword [esi + 0x6ac]
fsub dword [esp + 0xc]
fst dword [esi + 0x6ac]
fcomp dword [0x6d035c]
fnstsw ax
test ah, 0x41
jp 0x579cf8
call fcn.00404010
and eax, 0xffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 0x358]
fild qword [esp + 0x1c]
fmul dword [0x6d179c]
fadd dword [0x6d3ae8]
fstp dword [esi + 0x6ac]
mov dword [ecx + 4], esi
mov edx, dword [0x72d944]
mov eax, dword [esi + 0x358]
mov ecx, dword [edx + 0x18]
push eax
call fcn.00453d10
mov edi, dword [esp + 0xc]
mov ecx, esi
push edi
call fcn.00578b80
push edi
mov ecx, esi
call fcn.00577af0
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
call dword [edx + 0x54]
fcomp dword [esi + 0x380]
fnstsw ax
test ah, 0x41
jp 0x579d42
mov dword [esi + 0x360], 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret 4
fld dword [esi + 0x678]
fcomp dword [0x6d035c]
fnstsw ax
test ah, 0x41
jp 0x57a035
fld dword [esi + 0xfc]
mov ecx, dword [esi + 0x5c]
push ebp
fchs
fstp dword [esi + 0x678]
push 0
push 0xd
call fcn.004e22a0
mov ecx, eax
call fcn.004565d0
push esi
lea ecx, [esi + 0x1fc]
call fcn.004b36f0
mov eax, dword [0x72d944]
mov ecx, dword [eax + 0x88]
mov edx, dword [ecx]
call dword [edx + 0x15c]
mov dword [esi + 0x360], 3
mov edi, dword [esi + 0xc]
and edi, 0xfffffff7
mov edx, edi
mov dword [esi + 0xc], edi
and dh, 0xf7
mov dword [esi + 0xc], edx
mov ebp, dword [esi + 0x328]
mov eax, dword [0x72d944]
mov ecx, ebp
mov edx, dword [ebp]
mov edi, dword [eax + 0x5c]
call dword [edx + 0x50]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x4c]
test al, al
je 0x579e96
mov al, byte [edi + 0x20]
test al, al
mov byte [esp + 0x44], al
jne 0x579df4
mov dword [esp + 0x18], 0
jmp 0x579dfb
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x18], ecx
test al, al
mov byte [esp + 0x14], 0
jbe 0x579f1e
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, ebx
and edx, 0xff
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov edi, ecx
mov dword [esp + 0x20], ecx
mov edx, dword [edi]
call dword [edx + 0x14]
mov edx, dword [edi]
mov ecx, edi
shl eax, 6
mov dword [esp + 0x20], eax
call dword [edx + 0x10]
mov ecx, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
je 0x579e5a
mov cl, byte [esp + 0x44]
mov al, bl
inc al
cmp al, cl
mov byte [esp + 0x14], al
jb 0x579e08
jmp 0x579f1e
mov eax, dword [esp + 0x18]
and ebx, 0xff
push esi
push ebp
mov ecx, dword [eax + ebx*4]
lea ebx, [eax + ebx*4]
mov edx, dword [ecx]
call dword [edx + 0x84]
mov ecx, dword [ebx]
mov al, byte [ecx + 8]
mov dl, al
and dl, 1
cmp dl, 1
jne 0x579f1e
test al, 2
jne 0x579f1e
mov eax, dword [ecx]
jmp 0x579f1b
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x54]
mov byte [esp + 0x20], al
lea ecx, [esp + 0x44]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x1c]
push eax
push ecx
push edx
mov ecx, edi
call fcn.00411f90
mov cl, byte [esp + 0x44]
mov edi, eax
xor al, al
test cl, cl
mov byte [esp + 0x14], al
jbe 0x579f1e
mov ecx, dword [esp + 0x14]
mov edx, ecx
and edx, 0xff
mov edx, dword [edi + edx*4]
mov dl, byte [edx + 8]
mov bl, dl
and bl, 1
cmp bl, 1
jne 0x579ee9
test dl, 2
je 0x579ef9
mov cl, byte [esp + 0x44]
inc al
cmp al, cl
mov byte [esp + 0x14], al
jb 0x579ec8
jmp 0x579f1e
and ecx, 0xff
push ebp
lea edi, [edi + ecx*4]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x7c]
mov ecx, dword [edi]
push esi
mov edx, dword [ecx]
call dword [edx + pe_nt_image_headers32]
mov edi, dword [edi]
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0x5c]
mov ecx, dword [0x72d944]
mov eax, dword [ecx + 0x6c]
mov edx, dword [eax + 0x554]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x558]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0x55c]
mov dword [esp + 0x30], eax
fld dword [esi + 0x32c]
mov eax, dword [ecx + 0x6c]
mov ebx, dword [esi + 0x88]
fld st(0)
fmul dword [eax + 0x584]
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], 0
push ecx
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld st(0)
fmul dword [eax + 0x588]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fmul dword [eax + 0x58c]
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [esp + 0x30]
fadd dword [esi + 0x330]
fstp dword [esp + 0x30]
mov edi, dword [ebx + 4]
add edi, 0x10
lea ecx, [edi + 0x30]
call fcn.00420920
mov ebp, dword [edi + 0xc]
and ebp, 0xfffdffff
mov dword [edi + 0xc], ebp
mov edx, dword [ebx + 4]
push edx
call fcn.00404040
mov eax, dword [0x72d944]
mov ecx, dword [esi + 0x88]
add esp, 4
mov eax, dword [eax + 0x6c]
add eax, 0x584
push 0x72c608
push eax
call fcn.00433270
mov eax, dword [esi + 0x88]
mov ebx, dword [eax + 0x10]
or bh, 4
mov dword [eax + 0x10], ebx
mov eax, dword [eax + 0x54]
mov edi, dword [eax + 4]
or edi, 0xa
mov dword [eax + 4], edi
mov ecx, dword [esi + 0x324]
push ecx
mov ecx, dword [esi + 0x320]
call fcn.00418920
mov eax, dword [esi + 0x320]
mov ecx, dword [eax + 0x14]
or ch, 1
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 0x344]
call fcn.00477270
mov edi, dword [esp + 0x10]
mov dword [esp + 0x3c], 0xffffffff
pop ebp
mov ebx, dword [esi + 0xc]
test bl, 0x20
je 0x57a09d
fld dword [esi + 0x630]
fadd dword [esi + 0x3a4]
mov dword [esp + 0x10], 0xffffffff
fcom dword [0x6d035c]
fnstsw ax
test ah, 5
jnp 0x57a066
mov dword [esp + 0x10], 1
fstp dword [esp + 0x14]
and dword [esp + 0x14], 0x7fffffff
fld dword [esp + 0x14]
fld qword [0x6de5d8]
call fcn.006b1550
fmul dword [esi + 0x144]
fimul dword [esp + 0x10]
fchs
fld dword [esi + 0x3a8]
fmul dword [esi + 0x148]
fsubp st(1)
jmp 0x57a0ab
fld dword [esi + 0x3a8]
fmul dword [esi + 0x148]
fchs
fstp dword [esi + 0x3ac]
fld dword [esp + 0xc]
fmul dword [esi + 0x3ac]
test bh, bh
fadd dword [esi + 0x3a8]
fst dword [esi + 0x3a8]
jns 0x57a2e2
fcomp dword [0x6d035c]
fnstsw ax
test ah, 5
jp 0x57a0e1
or ecx, 0xffffffff
jmp 0x57a0e6
mov ecx, 1
fld dword [esi + 0x3a4]
fcomp dword [0x6d035c]
fnstsw ax
test ah, 5
jp 0x57a0fe
or eax, 0xffffffff
jmp 0x57a103
mov eax, 1
cmp ecx, eax
jne 0x57a2e4
test bl, 8
jne 0x57a1f6
fld dword [esp + 0xc]
fadd dword [esi + 0x65c]
fst dword [esi + 0x65c]
fcomp dword [esi + 0x260]
fnstsw ax
and eax, 0x100
jne 0x57a2e4
test ebx, 0x10000
jne 0x57a2e4
mov dl, byte [esi + 0x26c]
mov eax, dword [esi + 0x268]
mov dword [esi + 0x660], 0
mov ecx, dword [0x72d944]
push edx
push eax
mov ecx, dword [ecx + 0x6c]
call fcn.0047f7d0
fld dword [esi + 0x230]
fst dword [esi + 0x6b8]
fstp dword [esi + 0x6b4]
mov edx, dword [0x72c69c]
mov dword [esi + 0x708], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x70c], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x710], ecx
mov edx, dword [esi + 0x6c0]
mov dword [esi + 0x6d8], edx
mov eax, dword [esi + 0x6c4]
mov dword [esi + 0x6dc], eax
mov ecx, dword [esi + 0x6c8]
mov dword [esi + 0x6e0], ecx
mov edx, dword [esi + 0x6cc]
mov dword [esi + 0x6e4], edx
mov eax, dword [esi + 0x6d0]
mov dword [esi + 0x6e8], eax
mov ecx, dword [esi + 0x6d4]
mov dword [esi + 0x6ec], ecx
mov eax, dword [esi + 0xc]
or eax, 0x10000
mov dword [esi + 0xc], eax
jmp 0x57a2e4
test ebx, 0x10000
mov dword [esi + 0x65c], 0
je 0x57a2a9
fld dword [esp + 0xc]
fadd dword [esi + 0x660]
fst dword [esi + 0x660]
fcomp dword [esi + 0x264]
fnstsw ax
and eax, 0x100
jne 0x57a2a9
mov dl, byte [esi + 0x26c]
mov eax, dword [0x72d944]
push edx
push 0x3f800000
mov ecx, dword [eax + 0x6c]
call fcn.0047f7d0
fld dword [esi + 0x230]
fst dword [esi + 0x6b8]
fstp dword [esi + 0x6b4]
mov ecx, dword [esi + 0x6c0]
mov dword [esi + 0x6d8], ecx
mov edx, dword [esi + 0x6c4]
mov dword [esi + 0x6dc], edx
mov eax, dword [esi + 0x6c8]
mov dword [esi + 0x6e0], eax
mov ecx, dword [esi + 0x6cc]
mov dword [esi + 0x6e4], ecx
mov edx, dword [esi + 0x6d0]
mov dword [esi + 0x6e8], edx
mov eax, dword [esi + 0x6d4]
mov dword [esi + 0x6ec], eax
mov eax, dword [esi + 0xc]
and eax, 0xfffeffff
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x5c]
push 8
call fcn.004e22a0
mov edi, eax
mov ecx, edi
call fcn.00456820
mov ecx, edi
mov bl, al
call fcn.00456800
or bl, al
je 0x57a2dc
mov ecx, dword [esi + 0x5c]
push 0
push 8
call fcn.004e22a0
mov ecx, eax
call fcn.00456690
mov edi, dword [esp + 0xc]
jmp 0x57a2e4
fstp st(0)
fld dword [esp + 0xc]
fdiv dword [esi + 0x134]
push edi
mov ecx, esi
fmul dword [esi + 0x388]
fmul dword [esi + 0x3a8]
fadd dword [esi + 0x3a4]
fstp dword [esi + 0x3a4]
call fcn.00578200
push edi
push 1
mov ecx, esi
call fcn.005768d0
push edi
mov ecx, esi
call fcn.00577730
mov ecx, esi
call fcn.005788c0
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x30
ret 4