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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d0eb6
mov eax, dword fs:[0]
push eax
sub esp, 0x4b4
mov eax, dword [0x50d4cc]
xor eax, esp
mov dword [esp + 0x4ac], eax
push esi
push edi
mov eax, dword [0x50d4cc]
xor eax, esp
push eax
lea eax, [esp + 0x4c0]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x14]
lea ecx, [esp + 0x84]
push str.Scan::CScanImage::Internal_Deskew
mov dword [esp + 0x4c], eax
call fcn.00473d80
mov dword [esp + 0x4c8], 0
lea ecx, [esp + 0x58]
mov eax, dword [esi + 4]
movdqa xmm0, xmmword [0x4e8c20]
mov edi, dword [sym.imp.gdiplus.dll_GdipGetImageHorizontalResolution]
push ecx
push dword [eax + 4]
movdqu xmmword [esp + 0x40], xmm0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], 0
call edi
mov ecx, eax
test ecx, ecx
je 0x470962
mov eax, dword [esp + 0x64]
mov dword [eax + 8], ecx
movss xmm0, dword [esp + 0x58]
ucomiss xmm0, dword [0x4e8b64]
lahf
test ah, 0x44
jnp 0x4709ae
mov eax, dword [esi + 4]
lea ecx, [esp + 0x58]
push ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], 0
push dword [eax + 4]
call edi
mov ecx, eax
test ecx, ecx
je 0x47099b
mov eax, dword [esp + 0x64]
mov dword [eax + 8], ecx
movss xmm0, dword [0x4e8b64]
divss xmm0, dword [esp + 0x58]
cvtps2pd xmm0, xmm0
jmp 0x4709b3
movsd xmm0, qword [ebp + 0x18]
cvtpd2ps xmm2, xmm0
xor edi, edi
movsd qword [esp + 0x4c], xmm0
movss dword [esp + 0x58], xmm2
mov eax, dword [esp + edi*4 + 0x38]
mov ecx, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push dword [ebp + 8]
call fcn.00471b30
xorps xmm1, xmm1
movsd qword [esp + 0x24], xmm0
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x470a09
movss xmm2, dword [esp + 0x58]
inc edi
cmp edi, 4
jl 0x4709c5
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x470a23
movapd xmm1, xmm0
movsd xmm0, qword [0x4e89f0]
andpd xmm1, xmmword [0x4e8fe0]
comisd xmm0, xmm1
jbe 0x470a2d
mov byte [esp + 0xf], 1
jmp 0x471094
mov edi, dword [esi + 4]
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], 0
push dword [edi + 4]
call dword [sym.imp.gdiplus.dll_GdipGetImageHorizontalResolution]
test eax, eax
je 0x470a4d
mov dword [edi + 8], eax
mov edi, dword [esi + 4]
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x68], 0
push dword [edi + 4]
call dword [sym.imp.gdiplus.dll_GdipGetImageVerticalResolution]
test eax, eax
je 0x470a6d
mov dword [edi + 8], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x470a8c
mov edi, dword [esi + 4]
push dword [esp + eax*4 + 0x38]
push dword [edi + 4]
call dword [sym.imp.gdiplus.dll_GdipImageRotateFlip]
test eax, eax
je 0x470a8c
mov dword [edi + 8], eax
mov ecx, dword [esi + 4]
xor edi, edi
xor eax, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x470af2
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
push eax
push dword [ecx + 4]
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
mov ecx, eax
test ecx, ecx
je 0x470ac2
mov eax, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov esi, dword [esi + 4]
lea eax, [esp + 0x58]
mov edi, dword [esp + 0x58]
push eax
mov dword [esp + 0x18], edi
push dword [esi + 4]
mov dword [esp + 0x60], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
test eax, eax
je 0x470aea
mov dword [esi + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
movss xmm0, dword [esp + 0x70]
lea ecx, [edi + edi]
comiss xmm0, dword [0x4e8b80]
mov dword [esp + 0x68], ecx
lea ecx, [eax + eax]
mov dword [esp + 0x74], ecx
jb 0x470b19
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], eax
jmp 0x470b1d
mov edi, dword [esp + 0x68]
push 0x10
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov esi, eax
mov dword [esp + 0x58], esi
test esi, esi
je 0x47108f
mov eax, dword [esp + 0x74]
xorps xmm0, xmm0
movdqu xmmword [esi], xmm0
mov dword [esi], vtable.Gdiplus::Bitmap.0
mov dword [esp + 0x5c], 0
movd xmm0, eax
lea eax, [esp + 0x5c]
cvtdq2ps xmm0, xmm0
push eax
push 0
push 0x26200a
push 0
cvttss2si edx, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push edx
cvttss2si ecx, xmm0
push ecx
call dword [sym.imp.gdiplus.dll_GdipCreateBitmapFromScan0]
mov ecx, dword [esp + 0x5c]
xorps xmm0, xmm0
mov dword [esi + 8], eax
mov eax, edi
cdq
sub eax, edx
mov dword [esi + 4], ecx
mov esi, eax
movq qword [esp + 0x7c], xmm0
mov eax, dword [esp + 0x74]
cdq
sub eax, edx
sar esi, 1
mov edi, eax
mov dword [esp + 0x54], 0
lea eax, [esp + 0x54]
sar edi, 1
push eax
mov eax, dword [esp + 0x5c]
push dword [eax + 4]
call dword [sym.imp.gdiplus.dll_GdipGetImageGraphicsContext]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x5c]
mov byte [esp + 0x4c8], 1
push eax
push 0xffffffffffffffff
mov dword [esp + 0x64], 0
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
mov eax, dword [esp + 0x74]
sub esp, 0x10
mov ecx, dword [esp + 0x78]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push dword [esp + 0x6c]
push dword [esp + 0x68]
call dword [sym.imp.gdiplus.dll_GdipFillRectangle]
mov ecx, dword [esp + 0x10]
test eax, eax
push dword [esp + 0x5c]
cmovne ecx, eax
mov dword [esp + 0x14], ecx
call dword [sym.imp.gdiplus.dll_GdipDeleteBrush]
push 2
push dword [esp + 0x58]
call dword [sym.imp.gdiplus.dll_GdipSetInterpolationMode]
movsd xmm0, qword [esp + 0x24]
test eax, eax
mulsd xmm0, qword [0x4e8af8]
mov ecx, dword [esp + 0x10]
cmovne ecx, eax
mov dword [esp + 0x10], ecx
divsd xmm0, qword [0x4e8a90]
movsd qword [esp + 0x24], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push 0
sub esp, 8
movss dword [esp + 4], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push dword [esp + 0x60]
call dword [sym.imp.gdiplus.dll_GdipTranslateWorldTransform]
movsd xmm0, qword [esp + 0x24]
test eax, eax
xorpd xmm0, xmmword [0x4e8ff0]
mov ecx, dword [esp + 0x10]
cvtsd2ss xmm0, xmm0
cmovne ecx, eax
push 0
push ecx
mov dword [esp + 0x18], ecx
movss dword [esp], xmm0
push dword [esp + 0x5c]
call dword [sym.imp.gdiplus.dll_GdipRotateWorldTransform]
mov ecx, dword [esp + 0x10]
test eax, eax
movss xmm0, dword [esp + 0x70]
cmovne ecx, eax
comiss xmm0, dword [0x4e8b80]
mov dword [esp + 0x10], ecx
jb 0x470d42
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x470cf5
mov edx, dword [eax + 4]
jmp 0x470cf7
xor edx, edx
mov ecx, dword [esp + 0x1c]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push ecx
push dword [esp + 0x18]
xorps xmm0, xmmword [0x4e9000]
cvttss2si eax, xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push eax
xorps xmm0, xmmword [0x4e9000]
cvttss2si eax, xmm0
push eax
push edx
push dword [esp + 0x68]
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
test eax, eax
je 0x470dc8
mov dword [esp + 0x10], eax
jmp 0x470dc8
mov ecx, dword [esp + 0x1c]
mov eax, ecx
cdq
sub eax, edx
movd xmm1, edi
sar eax, 1
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
xorps xmm1, xmmword [0x4e9000]
cvttss2si eax, xmm1
movd xmm1, esi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
cdq
sub eax, edx
sar eax, 1
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esp + 0x18]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 4]
subss xmm1, xmm0
xorps xmm1, xmmword [0x4e9000]
cvttss2si edx, xmm1
test eax, eax
je 0x470da4
mov eax, dword [eax + 4]
jmp 0x470da6
xor eax, eax
push ecx
push dword [esp + 0x18]
push dword [esp + 0x64]
push edx
push eax
push dword [esp + 0x68]
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
mov ecx, dword [esp + 0x10]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x10], ecx
push 0
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], 0
push dword [esp + 0x60]
call dword [sym.imp.gdiplus.dll_GdipTranslateWorldTransform]
mov ecx, dword [esp + 0x10]
test eax, eax
movss xmm0, dword [esp + 0x70]
cmovne ecx, eax
comiss xmm0, dword [0x4e8b80]
mov dword [esp + 0x80], ecx
jb 0x470e5e
xorps xmm0, xmm0
movq qword [esp + 0x5c], xmm0
push 0
mov dword [esp + 0x60], vtable._CommUI::CUIImage.0
mov dword [esp + 0x64], 0
call dword [sym.imp.ole32.dll_CoInitialize]
push ecx
lea ecx, [esp + 0x60]
call fcn.0040f180
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], vtable._CommUI::CUIImage.0
mov eax, dword [esi + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 4], eax
call fcn.00411c90
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x470fe8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
push 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
movd xmm3, eax
cdq
sub eax, edx
movd xmm2, edi
sar eax, 1
cvtdq2ps xmm2, xmm2
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
cdq
sub eax, edx
sar eax, 1
movd xmm4, ecx
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm4, xmm4
subss xmm2, xmm0
movss dword [esp + 0x44], xmm3
xorps xmm0, xmm0
movss dword [esp + 0x48], xmm4
movq qword [esp + 0x6c], xmm0
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x30], xmm3
movss dword [esp + 0x2c], xmm2
movss dword [esp + 0x34], xmm4
mov dword [esp + 0x6c], vtable._CommUI::CUIImage.0
mov dword [esp + 0x70], 0
call dword [sym.imp.ole32.dll_CoInitialize]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0040f180
mov eax, dword [esp + 0x58]
xorps xmm0, xmm0
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x18]
movq qword [esp + 0x74], xmm0
mov ecx, dword [eax + 4]
xor eax, eax
mov dword [esp + 0x58], eax
test ecx, ecx
je 0x470f3b
lea eax, [esp + 0x58]
push eax
push dword [ecx + 4]
call dword [sym.imp.gdiplus.dll_GdipGetImageGraphicsContext]
mov edi, eax
mov eax, dword [esp + 0x58]
jmp 0x470f3f
mov edi, dword [esp + 0x78]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x5c]
push eax
push 0xffffffffffffffff
mov dword [esp + 0x64], 0
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
mov ecx, dword [esp + 0x1c]
sub esp, 0x10
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x6c]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push esi
push dword [esp + 0x6c]
call dword [sym.imp.gdiplus.dll_GdipFillRectangle]
test eax, eax
push esi
cmovne edi, eax
mov dword [esp + 0x7c], edi
call dword [sym.imp.gdiplus.dll_GdipDeleteBrush]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x74]
call fcn.00410b50
push dword [esp + 0x74]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], vtable._CommUI::CUIImage.0
call fcn.00411c90
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
dec eax
je 0x470ffd
dec eax
je 0x470ff9
dec eax
jne 0x471013
push 1
jmp 0x470fff
push 3
jmp 0x470fff
push 2
mov edi, dword [esi + 4]
mov eax, dword [sym.imp.gdiplus.dll_GdipImageRotateFlip]
push dword [edi + 4]
call eax
test eax, eax
je 0x471013
mov dword [edi + 8], eax
movss xmm0, dword [esp + 0x64]
sub esp, 8
mov edi, dword [esi + 4]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x78]
movss dword [esp], xmm0
push dword [edi + 4]
call dword [sym.imp.gdiplus.dll_GdipBitmapSetResolution]
test eax, eax
je 0x471040
mov dword [edi + 8], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 0x10]
inc word [ecx]
movzx eax, word [ecx]
cmp eax, edx
jb 0x471062
push dword [esp + 0x54]
mov byte [esp + 0x13], 1
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x471094
movsd xmm0, qword [esp + 0x4c]
sub esp, 8
movsd qword [esp], xmm0
push ecx
push edx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.004708c0
push dword [esp + 0x54]
mov byte [esp + 0x13], al
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x471094
mov byte [esp + 0xf], 0
lea ecx, [esp + 0x84]
mov dword [esp + 0x4c8], 0xffffffff
call fcn.00473790
mov al, byte [esp + 0xf]
mov ecx, dword [esp + 0x4c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x4ac]
xor ecx, esp
call fcn.0048b090
mov esp, ebp
pop ebp
ret 0x18