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

Disassembly:
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
sub esp, 0x11c
push ebp
mov ebp, dword [esp + 0x13c]
push esi
mov esi, dword [esp + 0x148]
push esi
push eax
push ebp
push ecx
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x54]
push edx
call sym.vidcap60.exe__SfDibPrepareSet_32
test eax, eax
jl 0x4e3ee4
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
push esi
push eax
mov eax, dword [esp + 0x130]
push ecx
push edx
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x68]
push eax
call sym.vidcap60.exe__SfDibPrepareSet_32
test eax, eax
jl 0x4e3ee4
call fcn.004e3260
mov eax, dword [esp + 0x38]
shl eax, 0xe
cdq
idiv dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov esi, 0x2000
mov dword [esp + 0x58], esi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x84]
shl eax, 0xe
mov dword [esp + 0x7c], edx
cdq
idiv ecx
test ecx, ecx
mov dword [esp + 0x7c], eax
jle 0x4e3ee2
mov edx, dword [esp + 0x20]
push ebx
add edx, 8
push edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ecx
jmp 0x4e34a0
mov esi, dword [esp + 0x60]
nop
mov eax, esi
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
and esi, 0x80003fff
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], 0x2000
jns 0x4e34ca
dec esi
or esi, 0xffffc000
inc esi
mov eax, dword [esp + 0x8c]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0xa4]
push edx
shl esi, 4
call fcn.004ea1b0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xa4]
imul eax, ebp
mov edi, dword [esp + 0x94]
imul ecx, ebp
mov ebx, dword [esp + 0x9c]
add eax, edi
imul ebx, ebp
mov edi, dword [esp + 0xa0]
add ecx, eax
imul edi, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xa8]
imul ecx, ebp
add ecx, eax
add edi, eax
add ebx, eax
cmp dword [esp + 0x150], 4
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], edi
mov ecx, 0xffffff9c
mov dword [esp + 0x20], 0
jne 0x4e3a37
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x4e3eaf
mov edx, dword [esp + 0x5c]
add edx, 0xfffffffa
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], eax
jmp 0x4e3570
mov ecx, dword [esp + 0x38]
nop
mov edi, dword [esp + 0x34]
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
and edi, 0x80003fff
mov dword [esp + 0x14], eax
jns 0x4e3596
dec edi
or edi, 0xffffc000
inc edi
mov ebp, eax
sub ebp, ecx
mov ecx, dword [esp + 0x40]
sub ecx, eax
shl edi, 4
add edi, 0x663640
sub ecx, 2
lea edx, [eax - 2]
or ecx, edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x38], eax
jge 0x4e35d9
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x6c]
push edx
call fcn.004ea1b0
mov eax, dword [esp + 0x14]
jmp 0x4e35f9
mov dword [esp + 0x64], 0xfffffffe
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 1
mov ecx, 4
cmp ebp, ecx
jl 0x4e3612
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x20], ecx
jmp 0x4e361c
sub ecx, ebp
test ebp, ebp
je 0x4e3805
mov edx, dword [esp + 0x64]
add edx, eax
shl edx, 2
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x68]
add edx, eax
shl edx, 2
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x6c]
add edx, eax
shl edx, 2
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x70]
add edx, eax
shl edx, 2
test ebp, ebp
mov dword [esp + 0x70], edx
jle 0x4e3805
mov edi, dword [esp + 0x20]
mov ebp, dword [esi + 0x66364c]
lea eax, [esp + ecx*4 + 0x64]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [edx]
mov eax, dword [esp + 0x50]
movzx edx, byte [ecx + eax]
mov eax, dword [esp + 0x4c]
imul edx, ebp
movzx eax, byte [ecx + eax]
imul eax, dword [esi + 0x663648]
add edx, eax
mov eax, dword [esp + 0x48]
movzx eax, byte [ecx + eax]
imul eax, dword [esi + 0x663644]
add edx, eax
movzx eax, byte [ecx + ebx]
mov ebp, dword [esi + 0x663640]
imul eax, ebp
lea eax, [edx + eax + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
movzx edx, byte [ecx + ebx + 1]
imul edx, ebp
and edi, 3
shl edi, 2
mov dword [esp + edi + 0xac], eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [ecx + eax + 1]
imul eax, dword [esi + 0x663648]
add edx, eax
mov eax, dword [esp + 0x50]
movzx eax, byte [ecx + eax + 1]
imul eax, dword [esi + 0x66364c]
add edx, eax
mov eax, dword [esp + 0x48]
movzx eax, byte [ecx + eax + 1]
imul eax, dword [esi + 0x663644]
lea eax, [edx + eax + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
movzx edx, byte [ecx + ebx + 2]
sar eax, 0xe
imul edx, ebp
mov dword [esp + edi + 0xbc], eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [ecx + eax + 2]
imul eax, dword [esi + 0x663648]
add edx, eax
mov eax, dword [esp + 0x50]
movzx eax, byte [ecx + eax + 2]
imul eax, dword [esi + 0x66364c]
add edx, eax
mov eax, dword [esp + 0x48]
movzx eax, byte [ecx + eax + 2]
imul eax, dword [esi + 0x663644]
lea eax, [edx + eax + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
movzx edx, byte [ecx + ebx + 3]
sar eax, 0xe
imul edx, ebp
mov dword [esp + edi + 0xcc], eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [ecx + eax + 3]
imul eax, dword [esi + 0x663648]
mov ebp, dword [esi + 0x66364c]
add edx, eax
mov eax, dword [esp + 0x50]
movzx eax, byte [ecx + eax + 3]
imul eax, ebp
add edx, eax
mov eax, dword [esp + 0x48]
movzx ecx, byte [ecx + eax + 3]
imul ecx, dword [esi + 0x663644]
lea eax, [edx + ecx + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov edx, dword [esp + 0x18]
mov dword [esp + edi + 0xdc], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add edx, 4
inc edi
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], eax
jne 0x4e3676
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x18], edx
mov edx, dword [edi + 8]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 4]
mov edi, dword [edi]
mov dword [esp + 0x30], edx
add ecx, ebp
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
lea ebp, [eax - 2]
mov edx, dword [esp + 0x20]
and edx, 3
shl edx, 2
mov dword [esp + 0x10], edx
mov edx, dword [esp + edx + 0xac]
imul edx, edi
dec ecx
and ecx, 3
shl ecx, 2
and ebp, 3
shl ebp, 2
inc eax
and eax, 3
shl eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + eax + 0xac]
imul eax, dword [esp + 0x30]
add edx, eax
mov eax, dword [esp + ebp + 0xac]
imul eax, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + ecx + 0xac]
imul eax, dword [esp + 0x18]
lea eax, [edx + eax + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x10]
sar eax, 0xe
mov dword [esp + 0x28], eax
mov eax, dword [esp + edx + 0xbc]
mov edx, dword [esp + 0x24]
imul eax, edi
mov edx, dword [esp + edx + 0xbc]
imul edx, dword [esp + 0x30]
add eax, edx
mov edx, dword [esp + ebp + 0xbc]
imul edx, dword [esp + 0x1c]
add eax, edx
mov edx, dword [esp + ecx + 0xbc]
imul edx, dword [esp + 0x18]
lea eax, [eax + edx + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax + 0xcc]
mov eax, dword [esp + 0x24]
imul edx, edi
mov eax, dword [esp + eax + 0xcc]
imul eax, dword [esp + 0x30]
add edx, eax
mov eax, dword [esp + ebp + 0xcc]
imul eax, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + ecx + 0xcc]
imul eax, dword [esp + 0x18]
lea eax, [edx + eax + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x10]
sar eax, 0xe
mov dword [esp + 0x98], eax
mov eax, dword [esp + edx + 0xdc]
mov dword [esp + 0x14], edi
imul eax, edi
mov edx, dword [esp + 0x24]
mov edx, dword [esp + edx + 0xdc]
imul edx, dword [esp + 0x30]
mov ecx, dword [esp + ecx + 0xdc]
imul ecx, dword [esp + 0x18]
add eax, edx
mov edx, dword [esp + ebp + 0xdc]
imul edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
add eax, edx
lea eax, [eax + ecx + 0x2000]
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
test edi, edi
jge 0x4e39a1
xor ecx, ecx
jmp 0x4e39b0
cmp edi, 0xff
mov ecx, 0xff
jg 0x4e39b0
mov ecx, edi
mov edi, dword [esp + 0x3c]
mov byte [edi - 2], cl
mov ecx, dword [esp + 0x90]
test ecx, ecx
jge 0x4e39c6
xor ecx, ecx
jmp 0x4e39d3
cmp ecx, 0xff
jle 0x4e39d3
mov ecx, 0xff
mov byte [edi - 1], cl
mov ecx, dword [esp + 0x98]
test ecx, ecx
jge 0x4e39e5
xor ecx, ecx
jmp 0x4e39f2
cmp ecx, 0xff
jle 0x4e39f2
mov ecx, 0xff
test eax, eax
mov byte [edi], cl
jge 0x4e39fc
xor eax, eax
jmp 0x4e3a08
cmp eax, 0xff
jle 0x4e3a08
mov eax, 0xff
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
mov byte [edi + 1], al
mov eax, dword [esp + 0x2c]
add ebp, edx
add edi, 4
dec eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], eax
jne 0x4e356b
jmp 0x4e3ea8
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x4e3eaf
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edx
jmp 0x4e3a60
mov ecx, dword [esp + 0x38]
lea esp, [esp]
mov ebp, dword [esp + 0x34]
mov eax, ebp
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
and ebp, 0x80003fff
mov dword [esp + 0x2c], eax
jns 0x4e3a86
dec ebp
or ebp, 0xffffc000
inc ebp
mov edx, eax
sub edx, ecx
mov ecx, dword [esp + 0x40]
sub ecx, eax
shl ebp, 4
mov dword [esp + 0x10], edx
sub ecx, 2
lea edx, [eax - 2]
add ebp, 0x623640
or ecx, edx
mov dword [esp + 0x38], eax
jge 0x4e3ac5
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x7c]
push edx
call fcn.004ea1b0
mov eax, dword [esp + 0x2c]
jmp 0x4e3ae8
mov dword [esp + 0x74], 0xfffffffe
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 1
mov ecx, dword [esp + 0x10]
cmp ecx, 4
jl 0x4e3b01
xor edx, edx
mov dword [esp + 0x10], 4
mov dword [esp + 0x20], edx
jmp 0x4e3b10
mov edx, 4
sub edx, ecx
test ecx, ecx
je 0x4e3c8f
mov ecx, dword [esp + 0x74]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x78]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x7c]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x80]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x4e3c8f
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
lea edx, [esp + edx*4 + 0x74]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x3c], eax
mov edi, edi
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov edx, dword [esp + 0x4c]
fld dword [eax + edx]
mov edx, dword [esp + 0x50]
fmul dword [esi + 0x623648]
and ecx, 3
fld dword [esi + 0x62364c]
shl ecx, 2
fmul dword [eax + edx]
faddp st(1)
fld dword [esi + 0x623644]
fmul dword [eax + edi]
faddp st(1)
fld dword [esi + 0x623640]
fmul dword [eax + ebx]
faddp st(1)
fstp dword [esp + ecx + 0xec]
fld dword [eax + edi + 4]
fmul dword [esi + 0x623644]
fld dword [eax + edx + 4]
mov edx, dword [esp + 0x4c]
fmul dword [esi + 0x62364c]
faddp st(1)
fld dword [eax + edx + 4]
mov edx, dword [esp + 0x50]
fmul dword [esi + 0x623648]
faddp st(1)
fld dword [eax + ebx + 4]
fmul dword [esi + 0x623640]
faddp st(1)
fstp dword [esp + ecx + 0xfc]
fld dword [eax + edi + 8]
fmul dword [esi + 0x623644]
fld dword [eax + edx + 8]
mov edx, dword [esp + 0x4c]
fmul dword [esi + 0x62364c]
faddp st(1)
fld dword [eax + edx + 8]
mov edx, dword [esp + 0x50]
fmul dword [esi + 0x623648]
faddp st(1)
fld dword [eax + ebx + 8]
fmul dword [esi + 0x623640]
faddp st(1)
fstp dword [esp + ecx + 0x10c]
fld dword [eax + edi + 0xc]
fmul dword [esi + 0x623644]
fld dword [eax + edx + 0xc]
mov edx, dword [esp + 0x4c]
fmul dword [esi + 0x62364c]
faddp st(1)
fld dword [eax + edx + 0xc]
fmul dword [esi + 0x623648]
faddp st(1)
fld dword [eax + ebx + 0xc]
mov eax, dword [esp + 0x14]
fmul dword [esi + 0x623640]
add eax, 4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
faddp st(1)
fstp dword [esp + ecx + 0x11c]
mov ecx, dword [esp + 0x2c]
inc ecx
dec eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], eax
jne 0x4e3b70
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
add edx, ecx
lea eax, [edx - 1]
lea ecx, [edx - 2]
mov dword [esp + 0x20], edx
and eax, 3
shl eax, 2
and ecx, 3
shl ecx, 2
inc edx
and edx, 3
shl edx, 2
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
and edx, 3
shl edx, 2
fld dword [esp + edx + 0xec]
mov dword [esp + 0x10], edx
fmul dword [ebp]
mov edx, dword [esp + 0x24]
fld dword [esp + edx + 0xec]
mov edx, dword [esp + 0x10]
fmul dword [ebp + 4]
faddp st(1)
fld dword [esp + ecx + 0xec]
fmul dword [ebp + 8]
faddp st(1)
fld dword [esp + eax + 0xec]
fmul dword [ebp + 0xc]
faddp st(1)
fld dword [esp + edx + 0xfc]
mov edx, dword [esp + 0x24]
fmul dword [ebp]
fld dword [esp + edx + 0xfc]
mov edx, dword [esp + 0x10]
fmul dword [ebp + 4]
faddp st(1)
fld dword [esp + ecx + 0xfc]
fmul dword [ebp + 8]
faddp st(1)
fld dword [esp + eax + 0xfc]
fmul dword [ebp + 0xc]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + edx + 0x10c]
mov edx, dword [esp + 0x24]
fmul dword [ebp]
fld dword [esp + edx + 0x10c]
mov edx, dword [esp + 0x10]
fmul dword [ebp + 4]
faddp st(1)
fld dword [esp + ecx + 0x10c]
fmul dword [ebp + 8]
faddp st(1)
fld dword [esp + eax + 0x10c]
fmul dword [ebp + 0xc]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + edx + 0x11c]
mov edx, dword [esp + 0x24]
fmul dword [ebp]
fld dword [esp + edx + 0x11c]
fmul dword [ebp + 4]
faddp st(1)
fld dword [esp + ecx + 0x11c]
fmul dword [ebp + 8]
faddp st(1)
fld dword [esp + eax + 0x11c]
fmul dword [ebp + 0xc]
faddp st(1)
fstp dword [esp + 0x1c]
fcom dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x4e3dbb
fstp st(0)
fld dword [0x5e9720]
jmp 0x4e3dd0
fcom dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x4e3dd0
fstp st(0)
fld dword [0x5e971c]
mov ecx, dword [esp + 0x30]
fstp dword [ecx - 8]
fld dword [esp + 0x14]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x4e3df0
fld dword [0x5e9720]
jmp 0x4e3e0d
fld dword [esp + 0x14]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x4e3e09
fld dword [0x5e971c]
jmp 0x4e3e0d
fld dword [esp + 0x14]
fstp dword [ecx - 4]
fld dword [esp + 0x18]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x4e3e29
fld dword [0x5e9720]
jmp 0x4e3e46
fld dword [esp + 0x18]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x4e3e42
fld dword [0x5e971c]
jmp 0x4e3e46
fld dword [esp + 0x18]
fstp dword [ecx]
fld dword [esp + 0x1c]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x4e3e61
fld dword [0x5e9720]
jmp 0x4e3e7e
fld dword [esp + 0x1c]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x4e3e7a
fld dword [0x5e971c]
jmp 0x4e3e7e
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
fstp dword [ecx + 4]
mov ebp, dword [esp + 0x34]
add ebp, eax
mov eax, dword [esp + 0x28]
add ecx, 0x10
dec eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], eax
jne 0x4e3a55
mov ebp, dword [esp + 0x148]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
add edx, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x84]
add ecx, edx
dec eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], eax
jne 0x4e349b
pop edi
pop ebx
xor eax, eax
pop esi
pop ebp
add esp, 0x11c
ret 0x24