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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x94
push ebx
push esi
push edi
mov esi, dword [ebp + 0x2c]
mov eax, dword [esi + 0x60]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x10]
and eax, 0xffffc000
cdq
mov ecx, dword [esi + 0x64]
and edx, 0x3fff
add eax, edx
mov ebx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x18]
sar ebx, 0xe
lea eax, [ecx - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x14]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x28], eax
mov edi, dword [esi + 0x1c]
lea eax, [edi - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x48]
dec eax
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x4c]
dec eax
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x28]
sar eax, 0xe
mov dword [esp + 0x20], eax
lea eax, [edx + 1]
mov edx, dword [esi + 0x14]
shl eax, 0xe
sub eax, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, edx
shl eax, 0xe
sub edi, eax
add edi, 0x4000
mov dword [esp + 0x88], edi
mov edi, dword [esi + 0x10]
lea eax, [ebx + 1]
shl eax, 0xe
sub eax, edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x68]
mov edi, eax
shl edi, 0xe
sub ecx, edi
mov dword [esp + 0x9c], ebx
add ecx, 0x4000
sub eax, ebx
cmp eax, 2
mov dword [esp + 0x44], ecx
mov dword [esp + 0x74], eax
jge 0x541d85
mov eax, dword [esi + 0x18]
sub eax, dword [esi + 0x10]
mov dword [esp + 0x40], eax
sub edx, dword [esp + 0x28]
cmp edx, 2
mov dword [esp + 0x70], edx
jge 0x541d9c
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0x14]
mov dword [esp + 0x30], eax
fild dword [esp + 0x40]
mov edi, dword [esi + 0x44]
push 0
fmul dword [0x5e9724]
fstp dword [esp + 0x68]
fild dword [esp + 0x48]
fmul dword [0x5e9724]
fstp dword [esp + 0x64]
call sym.vidcap60.exe__SfGetCPUSupport_4
mov ecx, dword [esp + 0x20]
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esi + 0x38]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x34]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x38]
push ebx
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push edx
sar eax, 0xe
dec ecx
mov edx, edi
and edx, 0x80003fff
mov dword [esp + 0xa8], ecx
jns 0x541e0e
dec edx
or edx, 0xffffc000
inc edx
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esi + 0x40]
push edx
xor edx, edx
cmp eax, ecx
setne dl
add edx, eax
imul edx, dword [esp + 0x5c]
mov ecx, edx
mov edx, dword [esi + 0x34]
add ecx, edx
push ecx
mov ecx, dword [esp + 0x60]
imul ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x54]
add ecx, edx
mov edx, dword [esi + 4]
push ecx
add eax, edx
push eax
call fcn.00541220
mov eax, dword [esp + 0x4c]
imul dword [esp + 0x30]
shrd eax, edx, 0xe
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add edi, eax
mov eax, dword [esp + 0x28]
inc eax
dec ecx
cmp eax, ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], ecx
jge 0x542491
mov edx, ebx
shl edx, 4
mov dword [esp + 0x8c], edx
jmp 0x541ea0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x8c]
lea ecx, [ecx]
mov ebx, dword [esi + 8]
imul ebx, eax
mov eax, dword [esi + 4]
add ebx, edx
add ebx, eax
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
and edi, 0x80003fff
jns 0x541ecb
dec edi
or edi, 0xffffc000
inc edi
mov edx, dword [esi + 0x38]
imul edx, eax
xor eax, eax
cmp dword [esp + 0x48], ecx
mov ecx, dword [ebp + 0x20]
sete al
mov dword [esp + 0x20], edi
mov edi, dword [esi + 0x34]
fild dword [esp + 0x20]
lea esi, [edi + edx]
fmul dword [0x5e9724]
dec eax
and eax, ecx
mov ecx, dword [ebp + 0x2c]
mov ecx, dword [ecx + 0x40]
add eax, edi
add eax, edx
mov edi, eax
mov eax, ecx
cdq
and edx, 0x3fff
add eax, edx
mov dword [esp + 0x28], ecx
sar eax, 0xe
and ecx, 0x80003fff
fstp dword [esp + 0x24]
jns 0x541f26
dec ecx
or ecx, 0xffffc000
inc ecx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
xor edx, edx
fmul dword [0x5e9724]
dec ecx
fld dword [0x5e971c]
cmp eax, ecx
setne dl
fsub st(1)
fld dword [0x5e971c]
fsub dword [esp + 0x24]
fst dword [esp + 0x2c]
fmul st(1)
mov ecx, edx
add ecx, eax
shl eax, 4
fstp dword [esp + 0x1c]
shl ecx, 4
fld dword [esp + 0x2c]
fmul st(2)
fstp dword [esp + 0x18]
fmul dword [esp + 0x24]
fxch st(1)
fmul dword [esp + 0x24]
fld dword [esp + 0x1c]
fmul dword [eax + esi + 8]
fld st(2)
fmul dword [eax + edi + 8]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [ecx + esi + 8]
faddp st(1)
fld st(1)
fmul dword [ecx + edi + 8]
faddp st(1)
fstp dword [esp + 0x80]
fld dword [esp + 0x1c]
fmul dword [eax + esi + 4]
fld st(2)
fmul dword [eax + edi + 4]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [ecx + esi + 4]
faddp st(1)
fld st(1)
fmul dword [ecx + edi + 4]
faddp st(1)
fstp dword [esp + 0x7c]
fld dword [esp + 0x1c]
fmul dword [eax + esi]
fld dword [esp + 0x18]
fmul dword [ecx + esi]
faddp st(1)
fld st(1)
fmul dword [ecx + edi]
faddp st(1)
fld st(2)
fmul dword [eax + edi]
faddp st(1)
fstp dword [esp + 0x78]
fld dword [esp + 0x1c]
fmul dword [eax + esi + 0xc]
fxch st(2)
fmul dword [eax + edi + 0xc]
mov eax, dword [ebp + 0x34]
test eax, eax
faddp st(2)
fld dword [esp + 0x18]
fmul dword [ecx + esi + 0xc]
faddp st(2)
fmul dword [ecx + edi + 0xc]
faddp st(1)
fstp dword [esp + 0x84]
je 0x542041
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov eax, ebx
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x5420cf
fld dword [esp + 0x64]
sub esp, 0x18
fstp qword [esp + 0x10]
fld dword [esp + 0x90]
fstp qword [esp + 8]
fld dword [ebx]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx]
sub esp, 0x18
fld dword [esp + 0x7c]
fstp qword [esp + 0x10]
fld dword [esp + 0x94]
fstp qword [esp + 8]
fld dword [ebx + 4]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx + 4]
sub esp, 0x18
fld dword [esp + 0x7c]
fstp qword [esp + 0x10]
fld dword [esp + 0x98]
fstp qword [esp + 8]
fld dword [ebx + 8]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx + 8]
sub esp, 0x18
fld dword [esp + 0x7c]
fstp qword [esp + 0x10]
fld dword [esp + 0x9c]
fstp qword [esp + 8]
fld dword [ebx + 0xc]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx + 0xc]
add ebx, 0x10
mov eax, dword [esp + 0x40]
imul dword [esp + 0x38]
shrd eax, edx, 0xe
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x74]
add eax, 0xfffffffe
test eax, eax
mov dword [esp + 0x28], ecx
jle 0x542227
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
and edx, 0x3fff
add eax, edx
xor edx, edx
sar eax, 0xe
dec ecx
cmp eax, ecx
setne dl
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x80003fff
jns 0x54213b
dec ecx
or ecx, 0xffffc000
inc ecx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
add ecx, eax
shl eax, 4
fmul dword [0x5e9724]
shl ecx, 4
fld dword [0x5e971c]
add ebx, 0x10
fsub st(1)
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x2c]
fmul st(2)
fstp dword [esp + 0x1c]
fmul dword [esp + 0x24]
fxch st(1)
fmul dword [esp + 0x24]
fld dword [esp + 0x18]
fmul dword [eax + esi + 8]
fld st(2)
fmul dword [eax + edi + 8]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [ecx + esi + 8]
faddp st(1)
fld st(1)
fmul dword [ecx + edi + 8]
faddp st(1)
fstp dword [ebx - 8]
fld dword [esp + 0x18]
fmul dword [eax + esi + 4]
fld st(2)
fmul dword [eax + edi + 4]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [ecx + esi + 4]
faddp st(1)
fld st(1)
fmul dword [ecx + edi + 4]
faddp st(1)
fstp dword [ebx - 0xc]
fld dword [esp + 0x18]
fmul dword [eax + esi]
fld st(1)
fmul dword [ecx + edi]
faddp st(1)
fld st(2)
fmul dword [eax + edi]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [ecx + esi]
faddp st(1)
fstp dword [ebx - 0x10]
fld dword [esp + 0x18]
fmul dword [eax + esi + 0xc]
fxch st(2)
fmul dword [eax + edi + 0xc]
mov eax, dword [esp + 0x20]
faddp st(2)
fld dword [esp + 0x1c]
fmul dword [ecx + esi + 0xc]
faddp st(2)
fmul dword [ecx + edi + 0xc]
mov ecx, dword [esp + 0x38]
add edx, ecx
dec eax
faddp st(1)
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], eax
mov ecx, edx
fstp dword [ebx - 4]
jne 0x542107
mov eax, dword [esp + 0x74]
xor edx, edx
cmp eax, 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], edx
jle 0x542460
cmp eax, 2
jle 0x54226f
mov eax, dword [esp + 0x38]
imul dword [esp + 0x44]
shrd eax, edx, 0xe
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x94]
sub eax, dword [esp + 0x38]
add ecx, eax
mov eax, ecx
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 0xe
dec edx
cmp eax, edx
jne 0x5422dc
fld dword [esp + 0x24]
mov eax, edx
shl eax, 4
fmul dword [eax + edi + 8]
fld dword [esp + 0x2c]
fmul dword [eax + esi + 8]
faddp st(1)
fstp dword [esp + 0x58]
fld dword [esp + 0x24]
fmul dword [eax + edi + 4]
fld dword [esp + 0x2c]
fmul dword [eax + esi + 4]
faddp st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x24]
fmul dword [eax + edi]
fld dword [esp + 0x2c]
fmul dword [eax + esi]
faddp st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x24]
fmul dword [eax + edi + 0xc]
fld dword [esp + 0x2c]
jmp 0x5423ad
and ecx, 0x80003fff
jns 0x5422ec
dec ecx
or ecx, 0xffffc000
inc ecx
mov dword [esp + 0x6c], ecx
fild dword [esp + 0x6c]
shl eax, 4
fmul dword [0x5e9724]
fld dword [0x5e971c]
fsub st(1)
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x2c]
fmul st(2)
fstp dword [esp + 0x18]
fmul dword [esp + 0x24]
fxch st(1)
fmul dword [esp + 0x24]
fld st(0)
fmul dword [eax + edi + 0x18]
fld st(2)
fmul dword [eax + edi + 8]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [eax + esi + 0x18]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [eax + esi + 8]
faddp st(1)
fstp dword [esp + 0x58]
fld st(0)
fmul dword [eax + edi + 0x14]
fld st(2)
fmul dword [eax + edi + 4]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [eax + esi + 0x14]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [eax + esi + 4]
faddp st(1)
fstp dword [esp + 0x54]
fld st(0)
fmul dword [eax + edi + 0x10]
fld dword [esp + 0x18]
fmul dword [eax + esi + 0x10]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [eax + esi]
faddp st(1)
fld st(2)
fmul dword [eax + edi]
faddp st(1)
fstp dword [esp + 0x50]
fmul dword [eax + edi + 0x1c]
fxch st(1)
fmul dword [eax + edi + 0xc]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [eax + esi + 0x1c]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [eax + esi + 0xc]
mov eax, dword [ebp + 0x34]
test eax, eax
faddp st(1)
fstp dword [esp + 0x5c]
je 0x5423de
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [ebx], ecx
mov ecx, dword [esp + 0x5c]
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
jmp 0x542460
fld dword [esp + 0x60]
sub esp, 0x18
fstp qword [esp + 0x10]
fld dword [esp + 0x68]
fstp qword [esp + 8]
fld dword [ebx]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx]
sub esp, 0x18
fld dword [esp + 0x78]
fstp qword [esp + 0x10]
fld dword [esp + 0x6c]
fstp qword [esp + 8]
fld dword [ebx + 4]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx + 4]
sub esp, 0x18
fld dword [esp + 0x78]
fstp qword [esp + 0x10]
fld dword [esp + 0x70]
fstp qword [esp + 8]
fld dword [ebx + 8]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx + 8]
sub esp, 0x18
fld dword [esp + 0x78]
fstp qword [esp + 0x10]
fld dword [esp + 0x74]
fstp qword [esp + 8]
fld dword [ebx + 0xc]
fstp qword [esp]
call fcn.004a99d0
fstp dword [ebx + 0xc]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
add esi, edx
inc eax
cmp eax, ecx
mov dword [esp + 0x30], esi
mov esi, dword [ebp + 0x2c]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
jl 0x541e92
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x70]
cmp eax, 1
jle 0x54253c
cmp eax, 2
jle 0x5424c0
mov eax, dword [esp + 0x4c]
imul dword [esp + 0x88]
shrd eax, edx, 0xe
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x4c]
add edi, eax
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [ebp + 0x34]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
sar eax, 0xe
and edi, 0x80003fff
push edx
jns 0x5424fa
dec edi
or edi, 0xffffc000
inc edi
mov edx, dword [esp + 0x54]
push edi
mov edi, dword [esp + 0xac]
xor ebx, ebx
cmp eax, edi
mov edi, dword [esi + 0x38]
setne bl
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x34]
add ebx, eax
imul eax, edi
imul ebx, edi
add eax, edx
add ebx, edx
mov edx, dword [esi + 4]
push ebx
push eax
mov eax, dword [esi + 8]
imul eax, ecx
add eax, edx
push eax
call fcn.00541220
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x30