Function at 0x52f7e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5a04e6
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6a3b20]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x74]
mov eax, dword [edi + 4]
cmp dword [eax + 0x30], 0
jle 0x52fd8a
cmp dword [eax + 0x34], 0
jle 0x52fd8a
lea ecx, [eax + 0x44]
call fcn.0052b240
test al, al
je 0x52fd8a
mov ebp, dword [esp + 0x78]
or ebx, 0xffffffff
cmp ebp, ebx
je 0x52fd8a
push 0
mov ecx, edi
call fcn.00510420
test eax, eax
jne 0x52f897
fldz
lea eax, [esp + 0x40]
push eax
fst qword [esp + 0x44]
lea ecx, [esp + 0x34]
fst qword [esp + 0x4c]
push ecx
fst qword [esp + 0x58]
push ebp
fstp qword [esp + 0x64]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
call fcn.0052ada0
mov esi, dword [esp + 0x7c]
add esp, 4
push eax
push esi
mov ecx, edi
call fcn.0052f430
jmp 0x52fdc6
lea edx, [esp + 0x74]
push edx
mov ecx, edi
call fcn.0052d5a0
cmp dword [esi], 0
mov ebx, 2
mov dword [esp + 0x68], ebx
jne 0x52f8d9
push 8
call fcn.00580794
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x68], 3
test eax, eax
je 0x52f8d1
mov ecx, eax
call fcn.00515e70
jmp 0x52f8d3
xor eax, eax
mov byte [esp + 0x68], bl
mov dword [esi], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
call fcn.00513f50
mov ecx, dword [esi + 8]
push ecx
mov ecx, dword [esi]
call fcn.00513f90
mov edx, dword [esi + 0xc]
mov ecx, dword [esi]
push edx
call fcn.00513fd0
lea ecx, [esp + 0x74]
call fcn.0052b270
mov ecx, dword [esi]
push eax
call fcn.00513e90
mov ecx, dword [esi]
push ebp
call fcn.00513ea0
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
push ecx
mov ecx, dword [esi]
push eax
call fcn.00513e00
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
push ecx
mov ecx, dword [esi]
push eax
call fcn.00513e20
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esi]
push eax
call fcn.00513ed0
lea ecx, [esp + 0x74]
call fcn.0052b450
lea ecx, [esp + 0x74]
movzx ebx, al
call fcn.0052b2c0
add eax, ebx
push eax
lea ecx, [esp + 0x18]
call fcn.0052d4b0
lea ecx, [esp + 0x74]
mov byte [esp + 0x68], 4
call fcn.0052b2c0
add eax, ebx
push eax
lea ecx, [esp + 0x24]
call fcn.00440f30
lea ecx, [esp + 0x74]
mov byte [esp + 0x68], 5
xor ebp, ebp
call fcn.0052b2c0
test eax, eax
jle 0x52f9ea
lea ecx, [esp + 0x14]
call fcn.0052e660
lea ecx, [ebp*4]
add eax, ecx
push ebp
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.00510420
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
lea ecx, [esp + 0x20]
call fcn.0046ce00
lea ecx, [ebp*4]
add eax, ecx
push ebp
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.00510310
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x74]
mov dword [edx], eax
inc ebp
call fcn.0052b2c0
cmp ebp, eax
jl 0x52f994
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x74]
call fcn.0052d3f0
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
mov byte [esp + 0x70], 6
call fcn.00510490
lea edx, [esp + 0x1c]
push edx
mov ecx, eax
mov byte [esp + 0x6c], 7
call dword [0x5a7b54]
lea ecx, [esp + 0x40]
mov byte [esp + 0x68], 9
call dword [0x5a7bec]
lea ecx, [esp + 0x28]
mov byte [esp + 0x68], 0xa
call dword [0x5a7d90]
test ebx, ebx
jle 0x52fa69
lea ecx, [esp + 0x14]
call fcn.0052e660
lea ecx, [esp + 0x1c]
mov ebx, eax
call dword [0x5a7d9c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 4]
lea ecx, [esp + 0x20]
call fcn.0046ce00
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [esi]
mov ebx, dword [ecx]
add eax, ebp
push eax
push edx
mov edx, dword [ebx + 0xc]
call edx
test al, al
jne 0x52fb46
push 0x58
call fcn.00580794
add esp, 4
mov dword [esp + 0x78], eax
mov byte [esp + 0x68], 0xb
test eax, eax
je 0x52faae
mov ecx, eax
call fcn.0052dcb0
jmp 0x52fab0
xor eax, eax
mov esi, dword [esp + 0x70]
push eax
mov ecx, esi
mov byte [esp + 0x6c], 0xa
call fcn.00510260
lea ecx, [esp + 0x1c]
mov dword [esi], vtable.FAV::VideoFrame.0
mov dword [esp + 0x24], 1
mov byte [esp + 0x68], 5
call dword [0x5a7d74]
mov eax, dword [ebp]
mov edi, dword [0x5a7a74]
test eax, eax
je 0x52fb00
cmp eax, 0xffffffff
je 0x52fb0a
mov eax, ebp
or ecx, 0xffffffff
lock xadd dword [eax], ecx
setne al
test al, al
jne 0x52fb0a
push 4
push 4
push ebp
call edi
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
test eax, eax
je 0x52fb29
cmp eax, 0xffffffff
je 0x52fb33
mov edx, ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
setne al
test al, al
jne 0x52fb33
push 4
push 4
push ecx
call edi
add esp, 0xc
lea ecx, [esp + 0x74]
mov byte [esp + 0x68], 0
call fcn.0052be80
jmp 0x52fdc6
mov ecx, dword [esp + 0x78]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0052c710
mov ecx, dword [esi]
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x6c], 0xc
call fcn.00513d90
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x30]
push eax
lea eax, [esp + 0x1c]
push eax
push edx
push ecx
lea ecx, [esp + 0x48]
mov byte [esp + 0x78], 0xd
call fcn.0052e0a0
mov bl, 0xf
lea ecx, [esp + 0x2c]
mov byte [esp + 0x68], bl
call dword [0x5a7d74]
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esi]
call fcn.00514d00
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x6c], 0x10
call fcn.005106f0
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
mov byte [esp + 0x68], bl
test eax, eax
je 0x52fbd4
cmp eax, 0xffffffff
je 0x52fbe2
or edx, 0xffffffff
lock xadd dword [ecx], edx
setne al
test al, al
jne 0x52fbe2
mov ecx, dword [esp + 0x78]
push 4
push 4
push ecx
call dword [0x5a7a74]
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x78]
push eax
call fcn.00514d30
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x6c], 0x11
call fcn.005107d0
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
mov byte [esp + 0x68], bl
test eax, eax
je 0x52fc22
cmp eax, 0xffffffff
je 0x52fc34
or edx, 0xffffffff
lock xadd dword [ecx], edx
setne al
test al, al
jne 0x52fc34
mov ecx, dword [esp + 0x78]
mov ebx, dword [0x5a7a74]
push 4
push 4
push ecx
call ebx
add esp, 0xc
jmp 0x52fc3a
mov ebx, dword [0x5a7a74]
mov ecx, edi
call fcn.00510100
sub esp, 8
lea ecx, [esp + 0x40]
fstp qword [esp]
call fcn.00510110
fldz
mov ecx, dword [edi + 4]
fcom dword [ecx + 0x40]
fnstsw ax
test ah, 5
jp 0x52fc66
fstp st(0)
fld dword [ecx + 0x40]
jmp 0x52fc86
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x78], eax
test eax, eax
jle 0x52fc86
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x30], ecx
test ecx, ecx
jle 0x52fc86
fstp st(0)
fild dword [esp + 0x78]
fidiv dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp dword [eax + 0x40]
mov edi, dword [edi + 4]
mov eax, dword [edi + 0x28]
mov ecx, dword [esp + 0x3c]
mov edi, dword [edi + 0x2c]
mov dword [ecx + 0x28], eax
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
mov dword [edx + 0x2c], edi
call fcn.0052b4f0
test al, al
je 0x52fcd5
lea ecx, [esp + 0x18]
call fcn.0052b4d0
mov edx, dword [esp + 0x3c]
xor ecx, ecx
test al, al
setne cl
lea eax, [ecx + 1]
mov dword [edx + 0x38], eax
jmp 0x52fce0
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x38], 0
mov esi, dword [esp + 0x70]
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.00510230
lea ecx, [esp + 0x38]
mov dword [esi], vtable.FAV::VideoFrame.0
mov dword [esp + 0x24], 1
mov byte [esp + 0x68], 0xc
mov dword [esp + 0x38], vtable.FAV::VideoFrame.0
call fcn.00510290
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0xa
call fcn.0052be80
lea ecx, [esp + 0x1c]
mov byte [esp + 0x68], 5
call dword [0x5a7d74]
mov eax, dword [ebp]
test eax, eax
je 0x52fd4d
cmp eax, 0xffffffff
je 0x52fd57
mov edx, ebp
or eax, 0xffffffff
lock xadd dword [edx], eax
setne al
test al, al
jne 0x52fd57
push 4
push 4
push ebp
call ebx
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
test eax, eax
je 0x52fd7e
cmp eax, 0xffffffff
je 0x52fb33
mov edx, ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
setne al
test al, al
jne 0x52fb33
push 4
push 4
push ecx
call ebx
jmp 0x52fb30
push 0x58
call fcn.00580794
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x68], 1
test eax, eax
je 0x52fdad
mov ecx, eax
call fcn.0052dcb0
jmp 0x52fdaf
xor eax, eax
mov esi, dword [esp + 0x70]
push eax
mov ecx, esi
mov byte [esp + 0x6c], 0
call fcn.00510260
mov dword [esi], vtable.FAV::VideoFrame.0
mov eax, esi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0xc