Function at 0x586f40
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x66bbdf
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x719254]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x28], 0x6e65704f
mov byte [ebp - 0x24], 0
push 2
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x586fd5
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x586fcb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58aaff
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 1
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 2
test edi, edi
je 0x587046
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587032
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x587034
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x587048
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 1
push edi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
cmp dword [ebx + 8], 5
jne 0x587071
or dword [esi + 0x48], 1
jmp 0x5870ce
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 3
test edi, edi
je 0x5870bb
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5870a7
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x5870a9
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x5870bd
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 1
push edi
push eax
call fcn.004ca4c0
add esp, 8
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 4
test edi, edi
je 0x587119
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587105
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x587107
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OFileOpen.0
jmp 0x58711b
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 1
push edi
push eax
call fcn.004ca4c0
or dword [esi + 0x48], 2
add esp, 8
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x587155
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x58714c
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x587158
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587192
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587183
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587185
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
mov edi, dword [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x587223
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x54], esi
cmp edi, esi
je 0x5871ec
mov eax, esi
mov esi, dword [edi + 4]
test esi, esi
je 0x5871e2
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x5871df
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x5871df
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x54]
add edi, 8
cmp edi, eax
jne 0x5871b7
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
sub eax, edi
sar eax, 3
lea ecx, [eax*8]
mov eax, edi
cmp ecx, 0x1000
jb 0x587219
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58aaff
push ecx
push edi
call fcn.0061db3a
add esp, 8
mov eax, dword [str.Create]
mov dword [ebp - 0x40], eax
mov ax, word [0x68f650]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 6
mov word [ebp - 0x3c], ax
mov byte [ebp - 0x3a], 0
push 2
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 6
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x2c]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x587298
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x58728e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab04
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 7
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 8
test edi, edi
je 0x587309
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5872f5
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x5872f7
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x58730b
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 7
push edi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
cmp dword [ebx + 8], 5
jne 0x587334
or dword [esi + 0x48], 1
jmp 0x587391
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 9
test edi, edi
je 0x58737e
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58736a
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x58736c
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x587380
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 7
push edi
push eax
call fcn.004ca4c0
add esp, 8
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0xa
test edi, edi
je 0x5873dc
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5873c8
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x5873ca
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OFileCreate.0
jmp 0x5873de
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 7
push edi
push eax
call fcn.004ca4c0
or dword [esi + 0x48], 2
add esp, 8
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x587418
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x58740f
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x58741b
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587455
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587446
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587448
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
mov edi, dword [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x5874ec
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x54], esi
cmp edi, esi
je 0x5874b5
mov eax, esi
nop word [eax + eax]
mov esi, dword [edi + 4]
test esi, esi
je 0x5874ab
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x5874a8
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x5874a8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x54]
add edi, 8
cmp edi, eax
jne 0x587480
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
sub eax, edi
sar eax, 3
lea ecx, [eax*8]
mov eax, edi
cmp ecx, 0x1000
jb 0x5874e2
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab04
push ecx
push edi
call fcn.0061db3a
add esp, 8
mov eax, dword [str.Close]
mov dword [ebp - 0x40], eax
mov al, byte [0x68f850]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 5
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x3b], 0
push 1
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0xc
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x2c]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x58755f
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x587555
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab09
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0xd
jne 0x587591
or dword [esi + 0x48], 1
jmp 0x5875ee
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0xe
test edi, edi
je 0x5875db
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5875c7
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x5875c9
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x5875dd
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0xd
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587621
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileClose.0
jmp 0x587623
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x587655
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x58764c
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x587658
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587692
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587683
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587685
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 4
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x6929d8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x587725
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x58771b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab0e
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x10
jne 0x587757
or dword [esi + 0x48], 1
jmp 0x5877b4
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x11
test edi, edi
je 0x5877a1
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58778d
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x58778f
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x5877a3
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x10
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5877e7
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileFree.0
jmp 0x5877e9
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x58781b
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x587812
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x58781e
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587858
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587849
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x58784b
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 3
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x6929f0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x12
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x5878eb
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5878e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab13
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x13
jne 0x58791d
or dword [esi + 0x48], 1
jmp 0x58797a
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x14
test edi, edi
je 0x587967
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587953
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x587955
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x587969
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x13
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5879ad
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileOwn.0
jmp 0x5879af
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x5879e1
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x5879d8
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x5879e4
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587a1e
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587a0f
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587a11
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 0xb
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.isAllocated
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x15
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x587ab1
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x587aa7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab18
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x16
jne 0x587ae3
or dword [esi + 0x48], 1
jmp 0x587b40
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x17
test edi, edi
je 0x587b2d
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587b19
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x587b1b
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x587b2f
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x16
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587b73
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileIsAllocated.0
jmp 0x587b75
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x587ba7
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x587b9e
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x587baa
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587be4
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587bd5
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587bd7
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 7
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.isValid
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x18
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x587c77
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x587c6d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab1d
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x19
jne 0x587ca9
or dword [esi + 0x48], 1
jmp 0x587d06
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x1a
test edi, edi
je 0x587cf3
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587cdf
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x587ce1
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x587cf5
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x19
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587d39
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileIsValid.0
jmp 0x587d3b
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x587d6d
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x587d64
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x587d70
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587daa
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587d9b
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587d9d
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 8
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.Allocate
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x1b
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x587e3d
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x587e33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab22
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x1c
jne 0x587e6f
or dword [esi + 0x48], 1
jmp 0x587ecc
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x1d
test edi, edi
je 0x587eb9
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587ea5
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x587ea7
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x587ebb
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x1c
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587eff
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OAllocateFile.0
jmp 0x587f01
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
or dword [esi + 0x48], 2
add esp, 8
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x587f37
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x587f2e
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x587f3a
mov al, byte [esi + 0x5c]
test al, 1
jne 0x587f74
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x587f65
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x587f67
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 5
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.Flush
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x1f
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x588007
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x587ffd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab27
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x20
jne 0x588039
or dword [esi + 0x48], 1
jmp 0x588096
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x21
test edi, edi
je 0x588083
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58806f
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x588071
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x588085
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x20
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5880c9
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileFlush.0
jmp 0x5880cb
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x5880fd
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x5880f4
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x588100
mov al, byte [esi + 0x5c]
test al, 1
jne 0x58813a
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58812b
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x58812d
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 9
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.ReadChars
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 4
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x22
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x5881cd
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5881c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab2c
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x23
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x24
test esi, esi
je 0x58823e
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58822a
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 0
jmp 0x58822c
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588240
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x23
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 0xc
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x25
test esi, esi
je 0x5882a5
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588291
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x588293
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5882a7
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x23
push esi
push eax
call fcn.004ca4c0
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x26
test esi, esi
je 0x588300
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5882ec
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x5882ee
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588302
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x23
push esi
push eax
call fcn.004ca4c0
add esp, 8
cmp dword [ebx + 8], 5
jne 0x58831f
or dword [edi + 0x48], 1
jmp 0x58837c
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x27
test esi, esi
je 0x588369
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588355
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x588357
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x58836b
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x23
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0x10
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x28
test esi, esi
je 0x5883f4
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x54], eax
test eax, eax
je 0x5883b3
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x5883ba
mov dword [ebp - 0x54], 0
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5883da
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x5883dc
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0xc], eax
mov dword [esi], vtable.ZScript::OFileReadChars.0
jmp 0x5883f6
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x23
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x58842c
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x588423
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x58842f
mov al, byte [edi + 0x5c]
test al, 1
jne 0x588469
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58845a
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x58845c
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 0xa
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.ReadString
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 2
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x29
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x5884fc
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5884f2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab31
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x2a
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x2b
test esi, esi
je 0x58856d
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588559
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x58855b
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x58856f
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2a
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
cmp dword [ebx + 8], 5
jne 0x588598
or dword [edi + 0x48], 1
jmp 0x5885f5
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x2c
test esi, esi
je 0x5885e2
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5885ce
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x5885d0
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5885e4
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2a
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x2d
test esi, esi
je 0x588640
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58862c
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x58862e
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OFileReadString.0
jmp 0x588642
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2a
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x588678
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x58866f
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x58867b
mov al, byte [edi + 0x5c]
test al, 1
jne 0x5886b5
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5886a6
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x5886a8
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 8
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.ReadInts
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 4
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x2e
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x588748
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x58873e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab36
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x2f
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x30
test esi, esi
je 0x5887b9
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5887a5
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 0
jmp 0x5887a7
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5887bb
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2f
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 0xc
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x31
test esi, esi
je 0x588820
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58880c
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x58880e
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588822
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2f
push esi
push eax
call fcn.004ca4c0
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x32
test esi, esi
je 0x58887b
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588867
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x588869
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x58887d
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2f
push esi
push eax
call fcn.004ca4c0
add esp, 8
cmp dword [ebx + 8], 5
jne 0x58889a
or dword [edi + 0x48], 1
jmp 0x5888f7
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x33
test esi, esi
je 0x5888e4
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5888d0
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x5888d2
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5888e6
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2f
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0x10
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x34
test esi, esi
je 0x58896f
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x54], eax
test eax, eax
je 0x58892e
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x588935
mov dword [ebp - 0x54], 0
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588955
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x588957
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0xc], eax
mov dword [esi], vtable.ZScript::OFileReadInts.0
jmp 0x588971
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x2f
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x5889a7
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x58899e
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x5889aa
mov al, byte [edi + 0x5c]
test al, 1
jne 0x5889e4
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5889d5
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x5889d7
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 0xa
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.WriteChars
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 4
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x35
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x588a77
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x588a6d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab3b
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x36
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x37
test esi, esi
je 0x588ae8
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588ad4
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 0
jmp 0x588ad6
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588aea
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x36
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 0xc
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x38
test esi, esi
je 0x588b4f
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588b3b
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x588b3d
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588b51
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x36
push esi
push eax
call fcn.004ca4c0
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x39
test esi, esi
je 0x588baa
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588b96
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x588b98
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588bac
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x36
push esi
push eax
call fcn.004ca4c0
add esp, 8
cmp dword [ebx + 8], 5
jne 0x588bc9
or dword [edi + 0x48], 1
jmp 0x588c26
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x3a
test esi, esi
je 0x588c13
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588bff
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x588c01
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588c15
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x36
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0x10
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x3b
test esi, esi
je 0x588c9e
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x54], eax
test eax, eax
je 0x588c5d
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x588c64
mov dword [ebp - 0x54], 0
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588c84
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x588c86
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0xc], eax
mov dword [esi], vtable.ZScript::OFileWriteChars.0
jmp 0x588ca0
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x36
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x588cd6
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x588ccd
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x588cd9
mov al, byte [edi + 0x5c]
test al, 1
jne 0x588d13
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588d04
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x588d06
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 0xb
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.WriteString
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 2
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x3c
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x588da6
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x588d9c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab40
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x3d
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x3e
test esi, esi
je 0x588e17
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588e03
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x588e05
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588e19
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x3d
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
cmp dword [ebx + 8], 5
jne 0x588e42
or dword [edi + 0x48], 1
jmp 0x588e9f
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x3f
test esi, esi
je 0x588e8c
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588e78
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x588e7a
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x588e8e
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x3d
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x40
test esi, esi
je 0x588eea
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588ed6
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x588ed8
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OFileWriteString.0
jmp 0x588eec
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x3d
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x588f22
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x588f19
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x588f25
mov al, byte [edi + 0x5c]
test al, 1
jne 0x588f5f
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x588f50
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x588f52
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 9
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.WriteInts
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 4
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x41
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x588ff2
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x588fe8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab45
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x42
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x43
test esi, esi
je 0x589063
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58904f
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 0
jmp 0x589051
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x589065
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x42
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 0xc
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x44
test esi, esi
je 0x5890ca
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5890b6
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x5890b8
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5890cc
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x42
push esi
push eax
call fcn.004ca4c0
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x45
test esi, esi
je 0x589125
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589111
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x589113
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x589127
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x42
push esi
push eax
call fcn.004ca4c0
add esp, 8
cmp dword [ebx + 8], 5
jne 0x589144
or dword [edi + 0x48], 1
jmp 0x5891a1
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x46
test esi, esi
je 0x58918e
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58917a
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x58917c
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x589190
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x42
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0x10
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x47
test esi, esi
je 0x589219
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x54], eax
test eax, eax
je 0x5891d8
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 3
jmp 0x5891df
mov dword [ebp - 0x54], 0
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5891ff
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x589201
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0xc], eax
mov dword [esi], vtable.ZScript::OFileWriteInts.0
jmp 0x58921b
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x42
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x589251
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x589248
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x589254
mov al, byte [edi + 0x5c]
test al, 1
jne 0x58928e
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x58927f
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x589281
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 7
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.GetChar
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x48
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x589321
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x589317
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab4a
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, esi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp dword [ebx + 8], 5
mov dword [ebp - 4], 0x49
jne 0x589353
or dword [esi + 0x48], 1
jmp 0x5893b0
push 0xc
call fcn.0061db0a
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x4a
test edi, edi
je 0x58939d
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589389
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x58938b
xor eax, eax
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi], vtable.ZScript::OPopRegister.0
jmp 0x58939f
xor edi, edi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x49
push edi
push eax
call fcn.004ca4c0
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
push 8
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5893e3
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OFileGetChar.0
jmp 0x5893e5
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x589417
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x58940e
or dword [eax + 0x94], 1
or dword [esi + 0x5c], 1
mov eax, dword [esi + 0x5c]
jmp 0x58941a
mov al, byte [esi + 0x5c]
test al, 1
jne 0x589454
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589445
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x589447
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 7
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.PutChar
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 2
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x4b
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x5894e7
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5894dd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab4f
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x4c
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x4d
test esi, esi
je 0x589558
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589544
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x589546
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x58955a
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x4c
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
cmp dword [ebx + 8], 5
jne 0x589583
or dword [edi + 0x48], 1
jmp 0x5895e0
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x4e
test esi, esi
je 0x5895cd
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5895b9
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x5895bb
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5895cf
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x4c
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x4f
test esi, esi
je 0x58962b
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589617
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x589619
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OFilePutChar.0
jmp 0x58962d
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x4c
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x589663
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x58965a
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x589666
mov al, byte [edi + 0x5c]
test al, 1
jne 0x5896a0
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589691
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ZScript::OReturn.0
jmp 0x589693
xor eax, eax
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004ca4c0
add esp, 8
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 9
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.UngetChar
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 2
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x50
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x589733
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x589729
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x58ab54
push edx
push ecx
call fcn.0061db3a
add esp, 8
mov ecx, edi
call fcn.006016c0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
push 0xc
mov dword [ebp - 4], 0x51
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x52
test esi, esi
je 0x5897a4
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589790
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x589792
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x5897a6
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x51
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax - 8]
mov dword [eax + 4], ecx
cmp dword [ebx + 8], 5
jne 0x5897cf
or dword [edi + 0x48], 1
jmp 0x58982c
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x53
test esi, esi
je 0x589819
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589805
mov ecx, dword [ebx + 8]
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], ecx
jmp 0x589807
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OPopRegister.0
jmp 0x58981b
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x51
push esi
push eax
call fcn.004ca4c0
add esp, 8
push 0xc
call fcn.0061db0a
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 0x54
test esi, esi
je 0x589877
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x589863
mov dword [eax], vtable.ZScript::VarArgument.0
mov dword [eax + 4], 2
jmp 0x589865
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], eax
mov dword [esi], vtable.ZScript::OFileUngetChar.0
jmp 0x589879
xor esi, esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x51
push esi
push eax
call fcn.004ca4c0
mov eax, dword [ebp - 0x4c]
add esp, 8
sub eax, dword [ebp - 0x50]
sar eax, 3
cmp eax, 5
jae 0x5898af
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x5898a6
or dword [eax + 0x94], 1
or dword [edi + 0x5c], 1
mov eax, dword [edi + 0x5c]
jmp 0x5898b2
mov al, byte [edi + 0x5c]
test al, 1
jne 0x5898ec
push 8
call fcn.0061db0a
add esp, 4
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5898dd
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.00601c10
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.004ab740
push 4
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.Seek
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004ac180
push 3
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x55
push eax
mov ecx, ebx
call fcn.005de110
mov edx, dword [ebp - 0x14]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x58997f
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
call fcn.00622e92
int3