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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xdc0
mov dword [esp + 0x40], eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], ecx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x58], ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x48], ebx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x6c], ebx
mov dword [esp + 4], 8
mov dword [esp], str.Compress
call sub.msvcrt_ruby200.dll_rb_str_new
mov ebx, eax
mov dword [esp + 4], 7
mov dword [esp], 0x6c365197
call sub.msvcrt_ruby200.dll_rb_str_new
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 3
mov eax, dword [0x6c453e80]
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb0]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
xor ebx, ebx
cmp eax, 2
sete bl
mov dword [esp + 0x4c], ebx
cmp dword [esp + 0x6c], 2
je 0x6c20c788
mov dword [esp + 8], 0x400
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
lea ebx, [esp + 0xa0]
mov dword [esp + 0x5c], ebx
mov dword [esp], ebx
call sub.msvcrt.dll_strncpy
cmp dword [esp + 0x6c], 3
je 0x6c20c7d9
mov eax, dword [esp + 0x78]
shl eax, 2
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x78]
imul edx, eax
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x78]
imul ebx, ebx
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x78]
sar eax, 1
mov dword [esp + 0x90], eax
shl ebx, 2
mov dword [esp + 0x50], ebx
mov dword [esp + 0x88], 0x6c454e60
mov ebx, dword [esp + 0x48]
lea eax, [ebx + ebx*2]
mov edx, eax
shl edx, 5
add edx, 0x6c454ec8
mov dword [esp + 0x7c], edx
lea ebx, [eax*8 + 0x6c366ec0]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x80], 0
lea edx, [esp + 0xda0]
mov dword [esp + 0x9c], edx
shl eax, 1
mov dword [esp + 0x54], eax
lea ebx, [esp + 0x8a0]
mov dword [esp + 0x98], ebx
jmp 0x6c20c042
cmp dword [esp + 0x6c], 1
je 0x6c20c20f
jle 0x6c20c2d0
cmp dword [esp + 0x6c], 2
je 0x6c20c435
cmp dword [esp + 0x6c], 3
je 0x6c20c2dc
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sub.msvcrt.dll_free
inc dword [esp + 0x80]
add dword [esp + 0x88], 0x10
add dword [esp + 0x7c], 0x10
add dword [esp + 0x68], 4
cmp dword [esp + 0x80], 6
je 0x6c20c496
mov ecx, 4
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x54]
add eax, dword [esp + 0x80]
shl eax, 4
movaps xmm0, xmmword [eax + 0x6c454ec0]
mov eax, dword [esp + 0x80]
shl eax, 4
movaps xmm2, xmmword [eax + 0x6c454e60]
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm0, xmm0, 0xc9
mulps xmm0, xmm2
subps xmm0, xmm1
shufps xmm0, xmm0, 0xc9
movaps xmmword [esp + 0xdb0], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0x6c487500
call fcn.6c267718
mov dword [esp], 0x6c487500
call fcn.6c2677b4
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov eax, dword [ebx - 4]
mov dword [esp + 0x20], eax
mov eax, dword [ebx - 8]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x88]
mov eax, dword [edx + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x6c487500
call fcn.6c267d30
mov dword [esp + 4], 0
mov dword [esp], 0x6c487500
call fcn.6c267718
mov edx, dword [esp + 0x70]
fld dword [edx + 8]
fchs
fstp dword [esp + 0xc]
fld dword [edx + 4]
fchs
fstp dword [esp + 8]
fld dword [edx]
fchs
fstp dword [esp + 4]
mov dword [esp], 0x6c487500
call fcn.6c2678b0
mov eax, dword [0x6c454f80]
mov dword [esp + 0xdac], eax
cmp dword [0x6c2e3090], 1
sbb eax, eax
and eax, 0xfffffffe
add eax, 6
mov dword [esp + 0x18], 0x3f800000
mov dword [esp + 0x14], 0
lea ebx, [esp + 0xdb0]
mov dword [esp + 0x10], ebx
lea edx, [esp + 0xda0]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x42b40000
mov dword [esp], eax
mov ecx, dword [esp + 0x84]
mov edx, ecx
mov eax, dword [esp + 0x58]
call fcn.6c2098cc
mov dword [esp + 0x74], eax
mov eax, dword [0x6c2e3090]
test eax, eax
jne 0x6c20bfe8
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov ebx, eax
mov dword [esp + 4], 4
mov dword [esp], eax
mov ecx, dword [esp + 0x84]
mov edx, ecx
mov eax, dword [esp + 0x74]
call fcn.6c208230
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp + 0x74], ebx
cmp dword [esp + 0x6c], 1
jne 0x6c20bff3
mov esi, str.LightUp_for_SketchUp
mov ecx, 0x15
mov edi, dword [esp + 0x98]
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.RGBA_for___.185s
lea eax, [esp + 0x8e0]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x6c20c267
xor eax, eax
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x60]
nop
mov cl, byte [edx + eax*4]
mov bl, byte [edx + eax*4 + 2]
mov byte [edx + eax*4], bl
mov byte [edx + eax*4 + 2], cl
inc eax
cmp eax, esi
jne 0x6c20c254
mov ebx, dword [esp + 0x68]
mov eax, dword [ebx]
mov edx, dword [esp + 0x4c]
test edx, edx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
jne 0x6c20c3f5
mov dword [esp + 4], str._s__s.tif
lea ebx, [esp + 0x4a0]
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x14], 0
lea eax, [esp + 0x8a0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x78]
mov dword [esp + 8], edx
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.6c22bed4
jmp 0x6c20c00f
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x6c20c00f
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x6c20c37e
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x8c], 0
mov edx, dword [esp + 0x78]
lea edx, [edx*4 - 4]
mov dword [esp + 0x64], edx
nop
mov edi, dword [esp + 0x90]
test edi, edi
jle 0x6c20c363
mov edx, dword [esp + 0x64]
add edx, ecx
xor eax, eax
nop
movzx edi, byte [ecx + eax*4]
movzx esi, byte [ecx + eax*4 + 1]
mov bl, byte [ecx + eax*4 + 2]
mov byte [esp + 0x94], bl
mov bl, byte [edx]
mov byte [ecx + eax*4], bl
mov bl, byte [edx + 1]
mov byte [ecx + eax*4 + 1], bl
mov bl, byte [edx + 2]
mov byte [ecx + eax*4 + 2], bl
mov ebx, edi
mov byte [edx], bl
mov ebx, esi
mov byte [edx + 1], bl
mov bl, byte [esp + 0x94]
mov byte [edx + 2], bl
inc eax
sub edx, 4
cmp eax, dword [esp + 0x90]
jne 0x6c20c31c
inc dword [esp + 0x8c]
add ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x8c], eax
jne 0x6c20c308
mov esi, dword [esp + 0x60]
test esi, esi
jle 0x6c20c3a3
xor eax, eax
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x60]
mov cl, byte [edx + eax*4]
mov bl, byte [edx + eax*4 + 2]
mov byte [edx + eax*4], bl
mov byte [edx + eax*4 + 2], cl
inc eax
cmp esi, eax
jne 0x6c20c390
mov ebx, dword [esp + 0x68]
mov eax, dword [ebx]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
jne 0x6c20c3f5
mov dword [esp + 4], str._s__s.tga
lea ebx, [esp + 0x4a0]
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x78]
mov dword [esp + 8], edx
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.6c22b9d8
jmp 0x6c20c00f
mov dword [esp + 4], str._s__s.jpg
lea ebx, [esp + 0x4a0]
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x10], 0x55
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x78]
mov dword [esp + 8], edx
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.6c22b37c
jmp 0x6c20c00f
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x6c20c45b
xor eax, eax
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x60]
nop
mov cl, byte [edx + eax*4]
mov bl, byte [edx + eax*4 + 2]
mov byte [edx + eax*4], bl
mov byte [edx + eax*4 + 2], cl
inc eax
cmp esi, eax
jne 0x6c20c448
lea edi, [esp + 0xca0]
mov esi, section..data
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x80]
imul eax, dword [esp + ebx*4 + 0xca0]
add eax, dword [esp + 0x3c]
mov edi, eax
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x50]
rep movsb byte es:[edi], byte [esi]
jmp 0x6c20c00f
cmp dword [esp + 0x6c], 2
je 0x6c20c6ed
cmp dword [esp + 0x6c], 3
je 0x6c20c4b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x6c3654d2
mov edi, dword [esp + 0x4c]
test edi, edi
mov edx, 0x6c3654d6
cmove eax, edx
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x48]
lea eax, [ebx + ebx*2]
mov eax, dword [eax*8 + 0x6c366ec0]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s__s._s
lea eax, [esp + 0x8a0]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 0xc], 0xff
mov eax, dword [esp + 0x78]
shl eax, 1
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x84]
mov dword [esp + 4], ebx
lea eax, [esp + 0x8a0]
mov dword [esp], eax
call fcn.6c231ab8
mov ebx, eax
lea edx, [esp + 0xca0]
mov dword [esp + 0x9c], edx
mov esi, str.LightUp_for_SketchUp
mov ecx, 0x15
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov dword [esp + 4], str.RGBA_for___.185s
lea eax, [esp + 0xce0]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov eax, dword [ebx]
shl eax, 2
mov dword [esp + 0x94], eax
mov esi, dword [ebx + 4]
mov ecx, eax
imul ecx, esi
mov dword [esp], ecx
mov dword [esp + 0x38], ecx
call sub.msvcrt.dll_malloc
mov dword [esp + 0x90], eax
test eax, eax
mov ecx, dword [esp + 0x38]
je 0x6c20c5e2
test esi, esi
jle 0x6c20c5c5
xor edx, edx
nop
dec esi
sub esi, edx
imul esi, dword [esp + 0x94]
add esi, dword [ebx + 8]
mov edi, eax
mov ecx, dword [esp + 0x94]
rep movsb byte es:[edi], byte [esi]
inc edx
mov esi, dword [ebx + 4]
mov eax, edi
cmp edx, esi
jl 0x6c20c598
mov ecx, dword [esp + 0x94]
imul ecx, esi
mov eax, dword [ebx + 8]
mov edi, eax
mov esi, dword [esp + 0x90]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
test esi, esi
mov dword [esp + 8], eax
je 0x6c20c69b
mov dword [esp + 4], str._s_pano.jpg
lea edx, [esp + 0x8a0]
mov dword [esp], edx
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x10], 0x55
mov eax, dword [ebx + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
lea eax, [esp + 0x8a0]
mov dword [esp], eax
call fcn.6c22b37c
mov eax, dword [ebx + 8]
test eax, eax
je 0x6c20c662
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x6c20c654
mov eax, dword [edx - 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 8]
cmp eax, 0x6c4590a0
jb 0x6c20c691
cmp eax, 0x6c4598a0
ja 0x6c20c691
mov dword [ebx + 8], 0
mov eax, ebx
sub eax, 0x6c4598a0
cmp eax, 0x3f
jg 0x6c20c681
cmp ebx, 0x6c4598a0
jae 0x6c20c4a8
mov dword [esp], ebx
call sub.msvcrt.dll_free
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x6c20c662
mov dword [esp + 4], str._s_pano.tif
lea edx, [esp + 0x8a0]
mov dword [esp], edx
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x14], 0
lea eax, [esp + 0xca0]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
lea edx, [esp + 0x8a0]
mov dword [esp], edx
call fcn.6c22bed4
jmp 0x6c20c638
lea ebx, [esp + 0xca0]
mov esi, str.LightUp_for_SketchUp
mov ecx, 0x15
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 4], str.RGBA_for___.185s
lea eax, [esp + 0xce0]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x6c20c7fa
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s_strip.jpg
lea ebx, [esp + 0x8a0]
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x10], 0x55
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*2]
shl eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.6c22b37c
mov eax, dword [esp + 0x3c]
mov dword [ebp + 8], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp sub.msvcrt.dll_free
mov eax, dword [esp + 0x78]
imul eax, eax
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x3c], eax
test eax, eax
mov eax, 1
cmovne eax, dword [esp + 0x6c]
mov dword [esp + 0x6c], eax
mov dword [esp + 8], 0x400
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
lea ebx, [esp + 0xa0]
mov dword [esp + 0x5c], ebx
mov dword [esp], ebx
call sub.msvcrt.dll_strncpy
jmp 0x6c20bf55
mov dword [esp], ebx
call fcn.6c265f58
mov dword [esp + 8], eax
mov dword [esp + 4], str.snapcube
mov dword [esp], ebx
call fcn.6c221ba4
jmp 0x6c20bf55
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_strip.tif
lea esi, [esp + 0x8a0]
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*2]
shl eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.6c22bed4
jmp 0x6c20c775