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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x8b0
mov ebx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x68], ecx
mov eax, dword [0x6c4578c0]
test eax, eax
je 0x6c226200
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
mov eax, dword [eax]
test ah, 0x20
jne 0x6c226198
mov eax, dword [0x6c4578c4]
test eax, eax
je 0x6c22658c
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
add eax, 8
mov dword [esp + 0x40], eax
mov byte [0x6c4578e0], 0
mov eax, dword [0x6c457ce0]
test eax, eax
je 0x6c2261d8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 0x50], eax
cmp eax, 4
je 0x6c226508
mov eax, dword [0x6c457ce4]
test eax, eax
je 0x6c22652c
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov edx, dword [eax]
and dh, 0x20
je 0x6c2261f8
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x3c0
mov dword [esp + 4], eax
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strncpy
mov byte [0x6c457cdf], 0
mov dword [esp + 4], 0x2f
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strchr
test eax, eax
je 0x6c226908
mov eax, dword [0x6c457ce8]
test eax, eax
je 0x6c22654c
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 0x3c], eax
mov eax, dword [0x6c457cec]
test eax, eax
je 0x6c2264e8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
mov esi, eax
mov eax, dword [0x6c457cf0]
test eax, eax
je 0x6c2264c8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
sar eax, 1
mov dword [esp + 0x60], eax
mov eax, dword [0x6c457cf4]
test eax, eax
je 0x6c2264a8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
sar eax, 1
mov dword [esp + 0x64], eax
mov eax, dword [0x6c457cf8]
test eax, eax
je 0x6c226488
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
sar eax, 1
mov dword [esp + 0x58], eax
mov eax, dword [0x6c457cfc]
test eax, eax
je 0x6c226468
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
fld qword [eax + 8]
fstp dword [esp + 0x5c]
fld dword [0x6c367b58]
fld st(0)
fimul dword [esp + 0x60]
fstp dword [esp + 0x54]
fld st(0)
fimul dword [esp + 0x64]
fstp dword [esp + 0x4c]
fimul dword [esp + 0x58]
fstp dword [esp + 0x48]
movss xmm0, dword [esp + 0x48]
movss xmm2, dword [esp + 0x5c]
unpcklps xmm0, xmm2
movaps xmm1, xmm0
movss xmm3, dword [esp + 0x54]
movss xmm2, dword [esp + 0x4c]
unpcklps xmm3, xmm2
movaps xmm0, xmm3
movlhps xmm0, xmm1
movaps xmmword [esp + 0x870], xmm0
mov eax, dword [0x6c457d00]
test eax, eax
je 0x6c226448
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 2
je 0x6c226518
mov dword [ebx + 8], 0
mov esi, 0x200
mov dword [ebx + 4], esi
mov eax, dword [0x6c457d04]
test eax, eax
je 0x6c226428
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 2
sete al
movzx eax, al
mov edi, eax
or edi, esi
mov dword [ebx + 4], edi
mov eax, dword [0x6c457d08]
test eax, eax
je 0x6c226408
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 2
sete al
movzx eax, al
lea esi, [eax + eax]
or esi, edi
mov dword [ebx + 4], esi
mov eax, dword [0x6c457d0c]
test eax, eax
je 0x6c2263e8
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov edi, 0x10
cmp eax, 2
mov eax, 0
cmovne edi, eax
or edi, esi
mov dword [ebx + 4], edi
mov eax, dword [0x6c457d10]
test eax, eax
je 0x6c2263c8
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov esi, 0x20
cmp eax, 2
mov eax, 0
cmovne esi, eax
or esi, edi
mov dword [ebx + 4], esi
mov eax, dword [0x6c457d14]
test eax, eax
je 0x6c2263a8
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov edi, 0x40
cmp eax, 2
mov eax, 0
cmovne edi, eax
or edi, esi
mov dword [ebx + 4], edi
mov eax, dword [0x6c457d18]
test eax, eax
je 0x6c226388
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb4]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
xor edx, edx
mov esi, 0x100
cmp eax, 2
cmovne esi, edx
or esi, edi
fld1
fld dword [esp + 0x5c]
fxch st(1)
fcompi st(1)
fstp st(0)
mov eax, pe_nt_image_headers32
cmova edx, eax
or esi, edx
mov dword [ebx + 4], esi
mov eax, dword [0x6c457d1c]
test eax, eax
je 0x6c226368
mov edx, eax
shl edx, 8
or edx, 0xe
mov eax, dword [0x6c457d20]
test eax, eax
je 0x6c226340
mov edi, eax
shl edi, 8
or edi, 0xe
mov eax, dword [0x6c457d24]
test eax, eax
je 0x6c226318
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
mov edx, 0x400
cmp eax, 2
mov eax, 0
cmovne edx, eax
or edx, esi
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], 0x3f800000
mov dword [ebx + 0x10], 0x3f800000
mov eax, dword [0x6c488ecc]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 4
mov dword [ebx + 0x1c], 4
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], 0
movaps xmm0, xmmword [0x6c367b60]
movaps xmmword [ebx + 0xd0], xmm0
mov dword [ebx + 0x30], 0x3f800000
mov dword [ebx + 0x34], 0x3f800000
mov eax, dword [0x6c488ed0]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], 4
mov dword [ebx + 0x40], 4
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x48], 1
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x70], 2
mov dword [ebx + 0x74], 3
movaps xmmword [ebx + 0x60], xmm0
movaps xmm0, xmmword [0x6c367b70]
movaps xmmword [ebx + 0xc0], xmm0
and dh, 1
je 0x6c225eea
mov dword [esp + 0x870], 0x3f800000
mov dword [esp + 0x874], 0x3f800000
mov dword [esp + 0x878], 0x3f800000
mov dword [ebx + 0x78], 0x3f800000
mov dword [ebx + 0x7c], 0x3cf5c28f
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x84], 0
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.6c2236f8
mov dword [ebx + 0xa8], 0
mov dword [ebx + 0xa4], 0x3f800000
mov dword [ebx + 0xac], 0
mov dword [ebx + 0xb0], 0
mov dword [ebx + 0xb4], 0
mov dword [ebx + 0xb8], 0
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.6c224f0c
mov dword [ebx + 0x88], 0x3f800000
mov dword [ebx + 0x8c], 0x3f800000
mov dword [ebx + 0x94], 0
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x9c], 0
mov dword [ebx + 0x90], 0
mov dword [ebx + 0xa0], 0
cmp byte [0x6c4578e0], 0
jne 0x6c226220
lea eax, [esp + 0x870]
mov dword [esp + 0x60], eax
mov dword [esp + 0x8a0], 1
mov dword [esp + 4], str.watershader
mov edx, dword [esp + 0x40]
mov dword [esp], edx
call sub.msvcrt.dll_strstr
test eax, eax
je 0x6c226898
mov dword [ebx + 0x3c], pe_nt_image_headers32
mov dword [ebx + 0x40], pe_nt_image_headers32
mov dword [ebx + 0x30], 0x3c000000
mov dword [ebx + 0x34], 0x3c000000
mov eax, dword [0x6c488ed4]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x74], 1
or dword [ebx + 4], 0xc
mov dword [ebx + 0x7c], 0x3cf5c28f
mov dword [ebx + 0x80], 0x3f19999a
cmp dword [0x6c488ed0], eax
je 0x6c226c50
mov edx, str._uvlmap
mov eax, 0x6c4585a0
call fcn.6c221b28
test eax, eax
je 0x6c2269cc
mov dword [esp], 0
lea ecx, [esp + 0x89c]
lea edx, [esp + 0x898]
mov eax, 0x6c4585a0
call fcn.6c221de4
mov dword [esp + 0x58], eax
test eax, eax
je 0x6c2269d4
mov edx, dword [esp + 0x898]
fld1
fld st(0)
push edx
fidiv dword [esp]
fstp dword [ebx + 0x30]
mov eax, dword [esp + 0x8a0]
mov dword [esp], eax
fidiv dword [esp]
pop ecx
fstp dword [ebx + 0x34]
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], edx
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], 4
mov eax, dword [esp + 0x8a0]
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x74], 1
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.6c2236f8
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.6c2253a8
lea edi, [ebx + 0x60]
mov ecx, 4
mov esi, dword [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x870]
mov dword [ebx + 0xc0], eax
mov eax, dword [esp + 0x874]
mov dword [ebx + 0xc4], eax
mov eax, dword [esp + 0x878]
mov dword [ebx + 0xc8], eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.6c224980
movaps xmm0, xmmword [ebx + 0x60]
subps xmm0, xmmword [ebx + 0xc0]
movaps xmmword [esp + 0x880], xmm0
fldz
fld dword [esp + 0x880]
fcompi st(1)
jne 0x6c226178
fld dword [esp + 0x884]
fcompi st(1)
jne 0x6c22617c
fld dword [esp + 0x888]
fcompi st(1)
fstp st(0)
jne 0x6c22617e
jmp 0x6c22618c
fstp st(0)
jmp 0x6c22617e
fstp st(0)
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x74], 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x6c4578c8]
test eax, eax
je 0x6c22656c
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
mov eax, dword [eax + 0xc]
mov dword [esp + 0x40], eax
mov byte [0x6c4578e0], 0
mov eax, dword [0x6c457ce0]
test eax, eax
jne 0x6c225a01
mov dword [esp + 4], 7
mov dword [esp], 0x6c367791
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457ce0], eax
jmp 0x6c225a01
add eax, 8
jmp 0x6c225a59
mov dword [esp + 4], 4
mov dword [esp], 0x6c3676ac
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c4578c0], eax
jmp 0x6c22599e
mov dword [esp + 0x890], 0
mov dword [esp + 0x894], 0
lea edx, [ebx + 4]
mov dword [esp + 0x30], edx
mov dword [esp], edx
lea ecx, [esp + 0x894]
lea edx, [esp + 0x890]
mov eax, 0x6c4578e0
call fcn.6c221de4
mov dword [esp + 0x34], eax
test eax, eax
je 0x6c226e90
mov dword [esp + 4], str._frame0
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x6c22629d
mov dword [esp + 4], 0x2e
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strrchr
cmp eax, 0x6c4578e0
ja 0x6c2265ac
mov dword [esp + 4], str._frame_00
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x6c2262d6
mov dword [esp + 4], 0x2e
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strrchr
cmp eax, 0x6c4578e0
ja 0x6c227269
mov dword [esp + 4], str._frame_0
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x6c22630f
mov dword [esp + 4], 0x2e
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strrchr
cmp eax, 0x6c4578e0
ja 0x6c226de6
xor edx, edx
jmp 0x6c2265bd
mov dword [esp + 4], 0xd
mov dword [esp], 0x6c3676f0
mov dword [esp + 0x2c], edx
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d24], eax
mov edx, dword [esp + 0x2c]
jmp 0x6c225def
mov dword [esp + 4], 4
mov dword [esp], 0x6c3676eb
mov dword [esp + 0x2c], edx
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d20], eax
mov edx, dword [esp + 0x2c]
jmp 0x6c225dda
mov dword [esp + 4], 7
mov dword [esp], str.reflect
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d1c], eax
jmp 0x6c225dc5
mov dword [esp + 4], 7
mov dword [esp], str.isMatte
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d18], eax
jmp 0x6c225d6f
mov dword [esp + 4], 0xa
mov dword [esp], str.isAdditive
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d14], eax
jmp 0x6c225d2c
mov dword [esp + 4], 0xd
mov dword [esp], str.isHighdensity
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d10], eax
jmp 0x6c225ce9
mov dword [esp + 4], 0xa
mov dword [esp], str.isNoshadow
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d0c], eax
jmp 0x6c225ca6
mov dword [esp + 4], 0xc
mov dword [esp], str.isLowdensity
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d08], eax
jmp 0x6c225c67
mov dword [esp + 4], 0xc
mov dword [esp], str.isFullbright
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d04], eax
jmp 0x6c225c29
mov dword [esp + 4], 9
mov dword [esp], str.isEmitter
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457d00], eax
jmp 0x6c225be3
mov dword [esp + 4], 5
mov dword [esp], str.alpha
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457cfc], eax
jmp 0x6c225b66
mov dword [esp + 4], 4
mov dword [esp], 0x6c36773b
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457cf8], eax
jmp 0x6c225b3f
mov dword [esp + 4], 5
mov dword [esp], 0x6c367735
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457cf4], eax
jmp 0x6c225b18
mov dword [esp + 4], 3
mov dword [esp], 0x6c367731
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457cf0], eax
jmp 0x6c225af1
mov dword [esp + 4], 5
mov dword [esp], 0x6c36772b
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457cec], eax
jmp 0x6c225aca
mov dword [esp + 0x3c], 4
jmp 0x6c225abd
mov dword [ebx + 8], 1
mov esi, 0x201
jmp 0x6c225c19
mov dword [esp + 4], 8
mov dword [esp], 0x6c367799
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457ce4], eax
jmp 0x6c225a33
mov dword [esp + 4], 0xb
mov dword [esp], str.image_width
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c457ce8], eax
jmp 0x6c225aa1
mov dword [esp + 4], 4
mov dword [esp], 0x6c3676ac
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c4578c8], eax
jmp 0x6c2261a5
mov dword [esp + 4], 4
mov dword [esp], 0x6c3676ac
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c4578c4], eax
jmp 0x6c2259ce
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
mov edx, str._frame_d
lea ecx, [esp + 0x70]
mov dword [esp + 0x54], ecx
mov eax, ecx
call fcn.6c221b28
test eax, eax
je 0x6c2268f8
mov esi, 1
lea eax, [esp + 0x470]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x54]
mov edi, eax
jmp 0x6c226605
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_fclose
inc esi
cmp esi, 0x100
je 0x6c226e5c
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], 0x6c367980
mov dword [esp], edi
call sub.msvcrt.dll_fopen
test eax, eax
jne 0x6c2265f0
mov ebx, dword [esp + 0x44]
cmp esi, 1
je 0x6c2268f8
mov dword [ebx + 0x24], esi
mov ecx, dword [esp + 0x890]
imul ecx, dword [esp + 0x894]
shl ecx, 2
imul esi, ecx
mov dword [esp], esi
mov dword [esp + 0x2c], ecx
call sub.msvcrt.dll_malloc
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x2c]
mov edi, eax
mov esi, dword [esp + 0x34]
rep movsb byte es:[edi], byte [esi]
cmp dword [ebx + 0x24], 1
jle 0x6c22670d
mov eax, 1
lea edx, [esp + 0x8ac]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ebx
mov ebx, eax
nop
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x10], 4
lea edx, [esp + 0x8a4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 8], edx
lea ecx, [esp + 0x8a8]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.6c288c84
mov edx, eax
mov ecx, dword [esp + 0x8a8]
imul ecx, dword [esp + 0x8ac]
shl ecx, 2
mov eax, ebx
imul eax, ecx
add eax, dword [esp + 0x44]
mov edi, eax
mov esi, edx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], edx
call sub.msvcrt.dll_free
inc ebx
mov eax, dword [esp + 0x48]
cmp ebx, dword [eax + 0x24]
jl 0x6c22668c
mov ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x6c226e90
test byte [ebx + 4], 8
je 0x6c22678b
mov eax, dword [0x6c458584]
test eax, eax
je 0x6c226e3c
mov edi, eax
shl edi, 8
or edi, 0xe
mov eax, dword [0x6c458588]
test eax, eax
je 0x6c226e1c
mov esi, eax
shl esi, 8
or esi, 0xe
mov eax, dword [0x6c45858c]
test eax, eax
je 0x6c226dfc
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 2
je 0x6c226e65
mov eax, dword [0x6c458590]
test eax, eax
je 0x6c226980
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld1
fdiv qword [eax + 8]
fstp dword [esp + 0x60]
mov eax, dword [0x6c458594]
test eax, eax
je 0x6c226960
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld1
fdiv qword [eax + 8]
fld dword [esp + 0x60]
fstp dword [ebx + 0xc]
fstp dword [ebx + 0x10]
mov dword [ebx + 0x14], 0
mov eax, dword [esp + 0x890]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x894]
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], 4
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x2c], eax
lea edi, [ebx + 0xd0]
lea edx, [esp + 0x870]
mov dword [esp + 0x60], edx
mov ecx, 4
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x6c458598]
test eax, eax
je 0x6c226940
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call sub.msvcrt_ruby200.dll_rb_funcall
sar eax, 1
cmp eax, 1
je 0x6c2269a0
cmp eax, 2
jne 0x6c225fc6
movaps xmm1, xmmword [0x6c367b70]
movss xmm2, dword [esp + 0x87c]
movss xmm1, xmm2
movaps xmm0, xmmword [0x6c367b70]
shufps xmm0, xmm1, 0x24
movaps xmmword [esp + 0x870], xmm0
jmp 0x6c225fc6
mov dword [esp + 4], str.WaterShader
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
call sub.msvcrt.dll_strstr
test eax, eax
jne 0x6c225fed
lea eax, [esp + 0x8a0]
mov dword [esp + 0xc], eax
lea edx, [esp + 0x89c]
mov dword [esp + 8], edx
lea edx, [esp + 0x898]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
call fcn.6c2245a4
mov dword [esp + 0x58], eax
test eax, eax
jne 0x6c226082
mov eax, dword [ebx + 0x38]
jmp 0x6c226034
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], eax
jmp 0x6c226725
mov dword [esp + 4], 0x5c
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strchr
test eax, eax
jne 0x6c225a94
mov edx, dword [esp + 0x40]
mov dword [esp + 4], edx
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strcat
jmp 0x6c225a94
mov dword [esp + 4], 0xc
mov dword [esp], str.materialType
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458598], eax
jmp 0x6c22683d
mov dword [esp + 4], 6
mov dword [esp], 0x6c367a2b
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458594], eax
jmp 0x6c2267c6
mov dword [esp + 4], 5
mov dword [esp], 0x6c367a25
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458590], eax
jmp 0x6c226798
movaps xmm1, xmmword [0x6c367b70]
movss xmm0, dword [esp + 0x87c]
movss xmm1, xmm0
movaps xmm0, xmmword [0x6c367b70]
shufps xmm0, xmm1, 0x24
movaps xmmword [esp + 0x870], xmm0
jmp 0x6c225fc6
mov dword [esp + 0x58], 0
mov edx, str._specmap
mov eax, 0x6c4585a0
call fcn.6c221b28
test eax, eax
je 0x6c2260d8
mov dword [esp], 0
lea ecx, [esp + 0x89c]
lea edx, [esp + 0x898]
mov eax, 0x6c4585a0
call fcn.6c221de4
mov dword [esp + 0x54], eax
test eax, eax
je 0x6c2260d8
mov ecx, dword [esp + 0x890]
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x898]
je 0x6c226a48
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov esi, dword [esp + 0x58]
test esi, esi
je 0x6c2260d8
jmp 0x6c226082
mov ecx, dword [esp + 0x894]
mov dword [esp + 0x5c], ecx
cmp ecx, dword [esp + 0x89c]
jne 0x6c226a2a
mov eax, dword [esp + 0x64]
imul eax, ecx
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x5c]
test edx, edx
jle 0x6c226a2a
mov ecx, dword [esp + 0x64]
shl ecx, 2
mov dword [esp + 0x40], ecx
mov esi, dword [esp + 0x44]
mov dword [esp + 0x50], 0
sub eax, esi
mov dword [esp + 0x4c], eax
fld dword [0x6c367ba4]
mov dword [esp + 0x48], ebx
lea esi, [esi]
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cdq
idiv dword [esp + 0x5c]
imul edx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
add edi, edx
mov ebx, dword [esp + 0x4c]
add ebx, esi
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x6c226bc6
xor ecx, ecx
movzx eax, byte [esi + ecx*4 + 1]
fld st(0)
push eax
fimul dword [esp]
movzx eax, byte [esi + ecx*4]
fld dword [0x6c367ba8]
fld st(0)
mov dword [esp], eax
fimul dword [esp]
faddp st(2)
movzx eax, byte [esi + ecx*4 + 2]
fld dword [0x6c367bac]
fld st(0)
mov dword [esp], eax
fimul dword [esp]
faddp st(3)
fld dword [0x6c367b58]
fmul st(3), st(0)
inc ecx
mov eax, ecx
cdq
idiv dword [esp + 0x68]
shl edx, 2
movzx eax, byte [edi + ecx*4 - 3]
fld st(4)
mov dword [esp], eax
fimul dword [esp]
movzx eax, byte [edi + ecx*4 - 4]
fld st(3)
mov dword [esp], eax
fimul dword [esp]
faddp st(1)
movzx eax, byte [edi + ecx*4 - 2]
fld st(2)
mov dword [esp], eax
fimul dword [esp]
faddp st(1)
fmul st(1)
fld1
fsub st(5)
movzx eax, byte [esi + edx + 1]
fld st(6)
mov dword [esp], eax
fimul dword [esp]
fxch st(4)
movzx eax, byte [esi + edx + 2]
mov dword [esp], eax
fimul dword [esp]
faddp st(4)
fxch st(4)
movzx eax, byte [esi + edx]
mov dword [esp], eax
fimul dword [esp]
pop eax
faddp st(3)
fxch st(2)
fmulp st(1)
faddp st(2)
fld dword [0x6c367bb0]
fmul st(2), st(0)
fxch st(2)
fisttp word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov byte [ebx + ecx*4 - 4], al
fsub st(2)
fld1
faddp st(1)
fmulp st(1)
fisttp word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov byte [ebx + ecx*4 - 3], al
fmul dword [0x6c367bb4]
fisttp word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov byte [ebx + ecx*4 - 2], al
mov byte [ebx + ecx*4 - 1], al
cmp ecx, dword [esp + 0x64]
jne 0x6c226ad0
add esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0x50], ecx
jne 0x6c226aa4
fstp st(0)
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x894]
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x890]
test eax, eax
jle 0x6c226a2a
lea edx, [esi*4]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x54]
xor edi, edi
mov eax, dword [esp + 0x58]
sub eax, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], ebx
nop
mov ecx, dword [esp + 0x5c]
add ecx, edx
test esi, esi
jle 0x6c226c39
xor eax, eax
mov bl, byte [edx + eax*4 + 2]
mov byte [ecx + eax*4 + 2], bl
mov bl, byte [edx + eax*4 + 3]
mov byte [ecx + eax*4 + 3], bl
inc eax
cmp eax, esi
jne 0x6c226c24
inc edi
add edx, dword [esp + 0x50]
cmp edi, dword [esp + 0x64]
jne 0x6c226c18
mov ebx, dword [esp + 0x44]
jmp 0x6c226a2a
mov dword [esp + 4], str.water
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x6c2273f9
cmp byte [0x6c4578e0], 0
je 0x6c227222
lea ecx, [esp + 0x470]
mov dword [esp + 0x5c], ecx
mov edx, str._normal_d
mov eax, ecx
call fcn.6c221b28
test eax, eax
je 0x6c226040
xor esi, esi
lea eax, [esp + 0x70]
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], ebx
mov edi, eax
mov ebx, dword [esp + 0x5c]
jmp 0x6c226cc5
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_fclose
inc esi
cmp esi, 0x100
je 0x6c2273f0
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], 0x6c367980
mov dword [esp], edi
call sub.msvcrt.dll_fopen
test eax, eax
jne 0x6c226cb0
mov ebx, dword [esp + 0x64]
test esi, esi
je 0x6c226040
mov dword [ebx + 0x48], esi
xor eax, eax
lea edx, [esp + 0x8ac]
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x89c]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x898]
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], ebx
mov ebx, eax
jmp 0x6c226d62
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x50]
mov ecx, dword [esp + 0x898]
imul ecx, dword [esp + 0x89c]
shl ecx, 2
mov esi, ebx
imul esi, ecx
add eax, esi
mov edi, eax
mov esi, edx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], edx
call sub.msvcrt.dll_free
inc ebx
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 0x48]
cmp ebx, eax
jge 0x6c226e71
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x10], 4
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x54]
mov dword [esp], ecx
call fcn.6c288c84
mov edx, eax
test ebx, ebx
jne 0x6c226d24
mov eax, dword [esp + 0x898]
imul eax, dword [esp + 0x89c]
shl eax, 2
mov ecx, dword [esp + 0x64]
imul eax, dword [ecx + 0x48]
mov dword [esp], eax
mov dword [esp + 0x2c], edx
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x64]
mov dword [ecx + 0x50], eax
mov edx, dword [esp + 0x2c]
jmp 0x6c226d2b
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
mov edx, str._frame__02d
jmp 0x6c2265bd
mov dword [esp + 4], 0xd
mov dword [esp], 0x6c3676f0
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c45858c], eax
jmp 0x6c226762
mov dword [esp + 4], 4
mov dword [esp], 0x6c3676eb
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458588], eax
jmp 0x6c22674d
mov dword [esp + 4], 6
mov dword [esp], str.masked
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458584], eax
jmp 0x6c226738
mov ebx, dword [esp + 0x44]
jmp 0x6c226636
and dword [ebx + 4], 0xffffff77
jmp 0x6c22678b
mov ebx, edx
mov ecx, dword [edx + 0x50]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x8a0], eax
test ecx, ecx
jne 0x6c226082
jmp 0x6c226040
mov dword [esp], 0x6c4578e0
call fcn.6c265f58
mov esi, eax
mov edx, dword [esp + 0x3c]
sar edx, 1
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.6c265f8c
add eax, esi
mov esi, dword [esp + 0x3c]
add esi, eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.6c265f8c
add esi, eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.6c265f8c
add eax, esi
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6c4578e0
mov dword [esp], 0x6c457d40
call fcn.6c221ba4
mov dword [esp + 4], 0x2e
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strrchr
test eax, eax
je 0x6c2273ca
mov edi, str..bmp
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x6c22738a
mov edi, 0x6c457d40
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
mov dword [ecx + 0x6c457d3f], 0x706d622e
mov byte [ecx + 0x6c457d43], 0
mov edx, dword [esp + 0x30]
mov dword [esp], edx
lea ecx, [esp + 0x894]
lea edx, [esp + 0x890]
mov eax, 0x6c457d40
call fcn.6c221de4
test eax, eax
jne 0x6c227542
mov eax, dword [0x6c458140]
test eax, eax
je 0x6c227204
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb0]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov edi, eax
cmp eax, 4
je 0x6c2270c4
mov eax, dword [0x6c458144]
test eax, eax
je 0x6c22729d
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
sar eax, 1
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], str.Extracting_texture___s____d_x__d_
lea esi, [esp + 0x470]
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp], esi
call fcn.6c210120
mov eax, dword [0x6c458148]
test eax, eax
je 0x6c22727f
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov edx, dword [esp + 0x38]
mov dword [esp], edx
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, dword [0x6c453eac]
je 0x6c2272bb
mov eax, dword [0x6c458160]
test eax, eax
je 0x6c22736c
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 4
je 0x6c227193
mov dword [esp], 0x6c457d40
call sub.msvcrt_ruby200.dll_rb_str_new_cstr
mov esi, eax
mov eax, dword [0x6c458164]
test eax, eax
je 0x6c22743a
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_rb_funcall
shr eax, 1
jne 0x6c227193
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
lea ecx, [esp + 0x894]
lea edx, [esp + 0x890]
mov eax, 0x6c457d40
call fcn.6c221de4
mov dword [esp + 0x44], eax
test eax, eax
jne 0x6c226725
mov dword [esp], 0x4000
call sub.msvcrt.dll_malloc
mov esi, eax
xor eax, eax
mov byte [esi + eax*4], 0xff
mov byte [esi + eax*4 + 1], 0
mov byte [esi + eax*4 + 2], 0
mov byte [esi + eax*4 + 3], 0xff
inc eax
cmp eax, 0x1000
jne 0x6c2270d4
mov edi, 0x6c4578e0
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx + 1]
cmp eax, 0x15
jbe 0x6c22725f
lea edi, [ecx + 0x6c4578cc]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], edi
mov dword [esp + 4], 0x200
mov dword [esp], esi
call fcn.6c215e88
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], edi
mov dword [esp + 4], 0x200
mov dword [esp], esi
call fcn.6c215e88
mov dword [ebx + 0xc], 0x3c000000
mov dword [ebx + 0x10], 0x3d000000
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], pe_nt_image_headers32
mov dword [ebx + 0x1c], 0x20
mov dword [ebx + 0x20], 4
mov dword [ebx + 0x2c], esi
mov dword [esp + 0x44], 0
jmp 0x6c225fbb
mov dword [esp + 0xc], 0x6c4578e0
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov dword [esp + 4], str.LightUp:_Failed_to_read_texture_for_Material__s___s_.
mov dword [esp], 0x6c458180
call sub.msvcrt.dll_sprintf
mov dword [esp], 0x6c458180
call sub.msvcrt_ruby200.dll_rb_str_new_cstr
mov edi, eax
mov esi, dword [0x6c458580]
test esi, esi
je 0x6c22741a
mov dword [esp], 0x6c367a1b
call sub.msvcrt_ruby200.dll_rb_eval_string
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], edi
mov dword [esp + 8], 2
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
jmp 0x6c2270c4
mov dword [esp + 4], 0x15
mov dword [esp], str.create_texture_writer
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458140], eax
jmp 0x6c226f75
mov dword [esp + 4], 0x6c453680
mov dword [esp], 0x6c4578e0
call sub.msvcrt.dll_strcpy
mov edi, 0x6c4578e0
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx + 0x6c4578df]
mov esi, str.Textures_water.tga
mov ecx, 0x13
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x6c226c79
mov edi, 0x6c4578e0
jmp 0x6c227111
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
mov edx, str._frame__03d
jmp 0x6c2265bd
mov dword [esp + 4], 5
mov dword [esp], 0x6c3679c6
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458148], eax
jmp 0x6c227000
mov dword [esp + 4], 0xc
mov dword [esp], str.image_height
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458144], eax
jmp 0x6c226fa6
mov eax, dword [0x6c45814c]
test eax, eax
je 0x6c227458
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov edx, dword [esp + 0x38]
mov dword [esp], edx
call sub.msvcrt_ruby200.dll_rb_funcall
cmp dword [esp + 0x68], eax
je 0x6c227476
mov eax, dword [0x6c458158]
test eax, eax
je 0x6c227506
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 4
je 0x6c227193
mov dword [esp], 0x6c457d40
call sub.msvcrt_ruby200.dll_rb_str_new_cstr
mov esi, eax
mov eax, dword [0x6c45815c]
test eax, eax
je 0x6c227524
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 3
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_rb_funcall
jmp 0x6c227091
mov dword [esp + 4], 4
mov dword [esp], str.load
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458160], eax
jmp 0x6c227031
mov edi, str..BMP
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x6c226f20
mov edi, str..jpg
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x6c226f20
mov dword [esp + 4], str..JPG
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x6c226f20
mov edi, 0x6c457d40
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
mov dword [ecx + 0x6c457d3f], 0x676e702e
mov byte [ecx + 0x6c457d43], 0
jmp 0x6c226f41
mov ebx, dword [esp + 0x64]
jmp 0x6c226cf5
mov dword [esp + 4], str.Water
mov edx, dword [esp + 0x40]
mov dword [esp], edx
call sub.msvcrt.dll_strstr
test eax, eax
jne 0x6c226c6c
jmp 0x6c226040
mov dword [esp + 4], 0xa
mov dword [esp], 0x6c367a10
call sub.msvcrt_ruby200.dll_rb_intern2
mov esi, eax
mov dword [0x6c458580], eax
jmp 0x6c2271d3
mov dword [esp + 4], 5
mov dword [esp], str.write
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458164], eax
jmp 0x6c227071
mov dword [esp + 4], 8
mov dword [esp], 0x6c3679cc
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c45814c], eax
jmp 0x6c2272c8
mov eax, dword [0x6c458150]
test eax, eax
jne 0x6c227498
mov dword [esp + 4], 4
mov dword [esp], str.load
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458150], eax
mov dword [esp + 0x10], 2
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_rb_funcall
cmp eax, 4
je 0x6c227193
mov dword [esp], 0x6c457d40
call sub.msvcrt_ruby200.dll_rb_str_new_cstr
mov esi, eax
mov eax, dword [0x6c458154]
test eax, eax
jne 0x6c2274f5
mov dword [esp + 4], 5
mov dword [esp], str.write
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458154], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 2
jmp 0x6c22734b
mov dword [esp + 4], 4
mov dword [esp], str.load
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c458158], eax
jmp 0x6c2272f7
mov dword [esp + 4], 5
mov dword [esp], str.write
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c45815c], eax
jmp 0x6c22733f
mov dword [esp + 0x44], eax
jmp 0x6c226725