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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x64], edx
mov dword [esp + 0x50], eax
mov ebx, edi
mov dword [esp + 0x78], ecx
sar ebx, 0x10
test edx, edx
setne dl
test ecx, ecx
setne al
cmp dl, al
je 0x684c7c40
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0xb4]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
test ebp, ebp
je 0x684c7692
mov eax, dword [eax + 0x504]
cmp eax, 1
je 0x684c7c61
cmp eax, 3
jne 0x684c7ca0
mov dword [esp + 0x40], 0
movsx ebx, bx
movsx edi, di
mov edx, 7
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], 7
mov esi, dword [esp + 0xb4]
xor eax, eax
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x48]
test esi, esi
mov esi, dword [esp + 0xbc]
setne al
imul ebp, dword [esp + 0xb0]
add eax, 4
mov eax, dword [esi + eax*4 + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x1c]
mov esi, dword [esp + 0x4c]
imul esi, dword [esp + 0xac]
mov dword [esp + 0x60], eax
cmp eax, dword [ecx + 0x4fc]
je 0x684c79f4
mov eax, dword [esp + 0x34]
add eax, 0x580
cmp dword [esp + 0xbc], eax
je 0x684c7d03
mov edx, dword [esp + 0x40]
shl ebp, 4
lea eax, [edi + edi]
mov ecx, dword [esp + 0x44]
test edx, edx
cmove edi, eax
shl esi, 4
test ecx, ecx
lea eax, [ebp + edi]
mov dword [esp + 0x3c], eax
lea eax, [ebx + ebx]
cmove ebx, eax
mov eax, dword [esp + 0xc0]
shl eax, 4
add eax, dword [esp + 0x34]
add esi, ebx
mov ecx, dword [eax + 0x78c]
mov dword [esp + 0x58], eax
mov eax, esi
imul ecx
mov esi, eax
lea eax, [ecx*8 - 0x20000]
mov edi, edx
cdq
add esi, eax
adc edi, edx
mov ebx, edi
sar ebx, 0x1f
mov ebp, ebx
xor ebp, esi
mov eax, ebp
mov ebp, ebx
xor ebp, edi
sub eax, ebx
mov edx, ebp
sbb edx, ebx
add eax, 0x80
adc edx, 0
shrd eax, edx, 8
test edi, edi
jns 0x684c77a5
neg eax
add eax, 0x20
mov edi, dword [esp + 0x34]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc0]
shl eax, 4
mov eax, dword [edi + eax + 0x794]
lea esi, [eax*8 - 0x20000]
imul dword [esp + 0x3c]
mov edi, esi
sar edi, 0x1f
add esi, eax
adc edi, edx
mov ebx, edi
sar ebx, 0x1f
mov ebp, ebx
xor ebp, esi
mov eax, ebp
mov ebp, ebx
xor ebp, edi
sub eax, ebx
mov edx, ebp
sbb edx, ebx
add eax, 0x80
adc edx, 0
shrd eax, edx, 8
test edi, edi
jns 0x684c77fc
neg eax
mov edi, dword [esp + 0x54]
lea ebx, [eax + 0x20]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x58]
imul ecx, dword [esp + 0xa4]
mov dword [esp + 0x6c], ebx
mov eax, edi
sar eax, 0xa
mov edx, dword [esi + 0x790]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x3c], eax
mov eax, ebx
sar eax, 0xa
mov dword [esp + 0x4c], edx
mov ebp, dword [esi + 0x20]
mov dword [esp + 0x5c], eax
lea eax, [ecx - 1]
imul eax, edx
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x48]
imul ecx, dword [esp + 0xa8]
add eax, edi
sar eax, 0xa
mov dword [esp + 0x48], ecx
lea edx, [eax + 1]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xc0]
shl edx, 4
add edx, dword [esp + 0x34]
mov edi, dword [edx + 0x798]
mov dword [esp + 0x7c], edx
lea edx, [ecx - 1]
imul edx, edi
add edx, ebx
mov ebx, dword [esp + 0x60]
sar edx, 0xa
lea ecx, [edx + 1]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x44]
add ebx, ecx
sar ebx, cl
mov ecx, dword [esp + 0x40]
add ebp, ecx
sar ebp, cl
cmp dword [esp + 0x3c], 2
mov ecx, ebp
mov ebp, dword [esp + 0xb4]
mov ebp, dword [esi + ebp*4 + 8]
jle 0x684c78d0
cmp dword [esp + 0x5c], 2
jle 0x684c78d0
add eax, 4
cmp eax, ebx
jge 0x684c78d0
add edx, 4
cmp edx, ecx
jl 0x684c7ce0
nop
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov eax, dword [edi + 0x818]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
lea edx, [esi + 0x16380]
mov dword [esp + 0x1c], 0x280
mov dword [esp + 0x18], edx
lea edx, [ebp - 3]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], ebx
sub edx, 3
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x74]
sub edx, ebp
add edx, 7
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x3c]
add edx, 7
mov dword [esp], edx
call dword [eax + 0x14c]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x38], 0x280
lea ecx, [esi + 0x16b06]
shl eax, 4
mov edi, dword [edi + eax + 0x798]
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x790]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
mov edx, dword [eax + 0x818]
mov ebx, dword [eax + 0xabc]
and ebp, 0x3ff
mov eax, dword [esp + 0x54]
and eax, 0x3ff
test esi, esi
je 0x684c7be2
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x20], ebx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x1c], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [edx + eax*4 + 0xa8]
add esp, 0x8c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ecx + 0x500]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x54], eax
cmp dword [ecx + 0x20], eax
jne 0x684c7714
mov ecx, dword [esp + 0x44]
mov eax, ebx
add ecx, 3
sar eax, cl
lea eax, [eax + esi]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov eax, edi
lea ecx, [esi + 3]
sar eax, cl
lea eax, [eax + ebp]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xbc]
mov ebp, dword [ebp + 0x4e8]
cmp dword [eax + 8], ebp
je 0x684c7f22
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x40]
add eax, ecx
sar eax, cl
mov ecx, esi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x54]
add eax, esi
sar eax, cl
mov ecx, eax
and ebx, edx
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0xb4]
cmp ebx, 1
sbb ebp, ebp
imul eax, dword [esp + 0xa4]
and edi, dword [esp + 0x3c]
not ebp
and ebp, 3
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0xa8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xbc]
mov edx, dword [eax + esi*4 + 8]
cmp ebp, dword [esp + 0x58]
jg 0x684c7d32
test edi, edi
je 0x684c7dc0
cmp dword [esp + 0x5c], 2
jg 0x684c7f55
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x50]
mov eax, dword [eax + 0x818]
add esi, 0x16380
mov eax, dword [eax + 0x14c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x5c]
sub eax, 3
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
sub eax, ebp
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
add eax, 7
mov dword [esp + 0x50], eax
test ebx, ebx
jne 0x684c7df0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], edx
add ebp, 0x240
mov dword [esp + 0x1c], 0x180
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
mov dword [esp + 0x38], 0x180
lea esi, [esi + ebp*2]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
xor ecx, 1
mov eax, dword [edx + 0x818]
mov edx, dword [edx + 0xabc]
shl edi, cl
mov ecx, dword [esp + 0x44]
xor ecx, 1
shl ebx, cl
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x684c7ee0
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xa0]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edi, dword [esp + 0xc4]
call dword [eax + edi*4 + pe_nt_image_headers32]
jmp 0x684c79e7
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], ebp
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], ecx
call dword [edx + eax*4 + 0xf8]
add esp, 0x8c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x3cb
mov dword [esp + 4], str..._src_recon_tmpl.c
mov dword [esp], str._dst8___NULL____dst16___NULL_
call fcn.684d2880
jmp 0x684c7664
movsx ebx, bx
movsx edi, di
mov dword [esp + 0x40], 1
mov edx, 0xf
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], 2
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], 0xf
jmp 0x684c76c5
movsx ebx, bx
movsx edi, di
mov dword [esp + 0x40], 0
mov edx, 0xf
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], 2
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], 7
jmp 0x684c76c5
test byte [esp + 0x38], 1
jne 0x684c7ea0
mov eax, dword [esp + 0x38]
sar eax, 1
imul eax, dword [esp + 0x5c]
add eax, dword [esp + 0x3c]
lea ecx, [ebp + eax*2]
jmp 0x684c7968
mov dword [esp + 8], 0x3fa
mov dword [esp + 4], str..._src_recon_tmpl.c
mov dword [esp], str.refp___f__sr_cur
call fcn.684d2880
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
jmp 0x684c772a
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x50]
mov eax, dword [eax + 0x818]
add esi, 0x16380
mov eax, dword [eax + 0x14c]
mov dword [esp + 0x4c], eax
test edi, edi
jne 0x684c7ae9
mov eax, dword [esp + 0x58]
sub eax, ebp
mov dword [esp + 0x50], eax
test ebx, ebx
je 0x684c7e50
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0x180
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
add eax, 7
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
jmp 0x684c7b60
mov eax, dword [esp + 0x5c]
test eax, eax
jns 0x684c7f55
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x50]
mov eax, dword [eax + 0x818]
add esi, 0x16380
mov eax, dword [eax + 0x14c]
mov dword [esp + 0x4c], eax
jmp 0x684c7d58
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], edx
add ebp, 0x240
mov dword [esp + 0x1c], 0x180
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
add eax, 7
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
jmp 0x684c7b60
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0x180
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
jmp 0x684c7b60
mov dword [esp + 8], 0x50
mov dword [esp + 4], str...include_common_bitdepth.h
mov dword [esp], str.__x__1_
call fcn.684d2880
mov eax, dword [esp + 0x7c]
mov edi, dword [eax + 0x798]
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x790]
mov dword [esp + 0x4c], eax
jmp 0x684c7ceb
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov edi, dword [esp + 0x78]
mov dword [esp], edi
mov edi, dword [esp + 0xc4]
call dword [eax + edi*4 + 0xd0]
jmp 0x684c79e7
mov eax, dword [esp + 0x34]
movzx ecx, byte [esp + 0x44]
mov esi, dword [eax + 0x860]
mov eax, dword [eax + 0x864]
shl esi, 2
mov dword [esp + 0x54], eax
shl eax, 2
sar esi, cl
movzx ecx, byte [esp + 0x40]
mov dword [esp + 0x60], esi
sar eax, cl
mov ecx, eax
jmp 0x684c7a6c
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x3c]
test ebx, ebx
lea esi, [eax + 4]
cmovne eax, esi
cmp dword [esp + 0x60], eax
jl 0x684c7d32
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x48]
test edi, edi
je 0x684c7fa6
add eax, 4
cmp ecx, eax
jl 0x684c7acb
test byte [esp + 0x38], 1
jne 0x684c7fb0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x58]
sar eax, 1
imul eax, dword [esp + 0x5c]
add esi, eax
lea esi, [edx + esi*2]
jmp 0x684c7b6b
cmp eax, ecx
jg 0x684c7dcc
jmp 0x684c7f86
mov dword [esp + 8], 0x50
mov dword [esp + 4], str...include_common_bitdepth.h
mov dword [esp], str.__x__1_
mov dword [esp + 0x4c], edx
call fcn.684d2880
mov edx, dword [esp + 0x4c]
jmp 0x684c7f8d