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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov byte [esp + 0x13], 0
cmp dword [esi], 0
jne 0x61572d
call fcn.006150f0
mov byte [esp + 0x13], 1
mov eax, dword [str.Preview]
mov edi, dword [esp + 0x74]
push 0
push eax
mov ecx, edi
call fcn.0050aca0
mov ecx, dword [esi]
lea eax, [esp + 0x1c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [str.Preview]
push eax
push str.Size
push ecx
mov ecx, edi
call fcn.0050cfa0
mov ecx, dword [0x821c78]
xor ebx, ebx
xor ebp, ebp
mov edx, dword [ecx]
call dword [edx + 0x80]
mov ecx, dword [0x821c78]
mov edi, eax
mov eax, dword [ecx]
call dword [eax + 0x7c]
imul edi, eax
mov ecx, dword [0x821c78]
mov edx, dword [ecx]
call dword [edx + 0x70]
imul edi, eax
mov ecx, dword [0x821c78]
push ebp
push ebx
mov eax, dword [ecx]
call dword [eax + 0x5c]
push edi
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], vtable.Pipe.0
call fcn.00438140
push 0x2000
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x34], vtable.BufferPipe.0
call fcn.0053cbd0
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x4c]
call fcn.00606530
mov ecx, dword [esi]
xor edx, edx
mov byte [esp + 0x18], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x1a], 0
mov edi, dword [ecx]
xor eax, eax
push edx
push eax
call dword [edi + 0x5c]
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 0x80]
test eax, eax
jle 0x6158b9
mov ecx, dword [esi]
xor edi, edi
mov eax, dword [ecx]
call dword [eax + 0x7c]
test eax, eax
jle 0x6158a6
mov ecx, dword [esi]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebp
lea eax, [esp + 0x1c]
mov edx, dword [ecx]
push eax
call dword [edx + 0x28]
mov cx, word [0x83b2c8]
mov edx, eax
shr dx, cl
mov ecx, dword [0x83b2cc]
push 3
shl dl, cl
mov cx, word [0x83b2d8]
mov byte [esp + 0x18], dl
mov edx, eax
shr dx, cl
mov ecx, dword [0x83b2dc]
shl dl, cl
mov cx, word [0x83b2d0]
shr ax, cl
mov ecx, dword [0x83b2d4]
mov byte [esp + 0x19], dl
lea edx, [esp + 0x1c]
push edx
shl al, cl
mov cx, word [esp + 0x1c]
mov word [esp + 0x20], cx
lea ecx, [esp + 0x50]
mov byte [esp + 0x22], al
call fcn.0053cc70
mov ecx, dword [esi]
add ebx, eax
inc edi
mov eax, dword [ecx]
call dword [eax + 0x7c]
cmp edi, eax
jl 0x615820
mov ecx, dword [esi]
inc ebp
mov edx, dword [ecx]
call dword [edx + 0x80]
cmp ebp, eax
jl 0x61580f
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x60]
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x48]
call dword [edx + 4]
mov edi, dword [esp + 0x74]
add ebx, eax
mov eax, dword [str.PreviewPack]
push 0
push eax
mov ecx, edi
call fcn.0050aca0
test ebx, ebx
jle 0x615910
mov ecx, dword [0x821c78]
xor edx, edx
xor eax, eax
push ebx
mov ebp, dword [ecx]
push edx
push eax
call dword [ebp + 0x5c]
mov ecx, dword [str.PreviewPack]
push eax
push ecx
mov ecx, edi
call fcn.0050c2c0
mov ecx, dword [0x821c78]
mov edx, dword [ecx]
call dword [edx + 0x60]
mov ecx, dword [0x821c78]
mov eax, dword [ecx]
call dword [eax + 0x60]
mov al, byte [esp + 0x13]
test al, al
je 0x615935
mov ecx, dword [esi]
test ecx, ecx
je 0x61592f
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi], 0
lea ecx, [esp + 0x48]
call fcn.0053cc30
lea ecx, [esp + 0x38]
call fcn.00438290
lea ecx, [esp + 0x2c]
call fcn.006064f0
pop edi
pop esi
test ebx, ebx
pop ebp
pop ebx
setg al
add esp, 0x60
ret 4