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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x334
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
cmp eax, dword [esi + 0x15450]
push edi
mov dword [esp + 0x20], esi
jb 0x3008f68b
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
lea edx, [ebx + ecx]
push 0x800
mov dword [esp + 0x18], edx
call fcn.3007a1f0
mov dword [esi + 0x15440], eax
mov al, byte [ebp + 0xc]
add esp, 4
test al, al
mov dword [esi + 0x15444], 0x800
mov dword [esi + 0x15448], 0
je 0x3008f6cf
push 0
mov ecx, esi
call fcn.3008bfd0
push 2
mov ecx, esi
call fcn.3008bfd0
push str.onTextData
mov ecx, esi
call fcn.3008f310
mov eax, dword [ebp + 8]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x1209c]
test ecx, ecx
fild dword [eax + esi + 0x1209c]
jge 0x3008f705
fadd qword [0x30294540]
push 8
fstp qword [esp + 0x13c]
mov ecx, esi
call fcn.3008bfd0
mov edi, 4
lea ebx, [ebx]
push 0
mov ecx, esi
call fcn.3008bfd0
dec edi
jne 0x3008f720
push str.trackid
mov ecx, esi
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild dword [ebp + 8]
mov edx, dword [ebp + 8]
test edx, edx
jge 0x3008f751
fadd qword [0x30294540]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
lea edx, [ebx + 1]
xor eax, eax
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x10], edx
jmp 0x3008f770
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008f79d
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
inc esi
cmp esi, 2
mov eax, edi
mov dword [esp + 0x10], edx
jl 0x3008f770
mov ecx, dword [esp + 0x14]
sub ecx, ebx
cmp ecx, eax
mov dword [esp + 0x10], eax
jge 0x3008f7af
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x10]
lea eax, [esi + 1]
push eax
call fcn.3007a1f0
mov ecx, esi
mov edx, ecx
shr ecx, 2
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x24]
mov ecx, edx
add esp, 4
mov byte [eax + ecx], 0
push 0x3029a060
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.3008f310
push 2
mov ecx, esi
call fcn.3008bfd0
mov edi, dword [esp + 0x30]
push edi
mov ecx, esi
call fcn.3008f310
push edi
call fcn.30208320
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ebx, ecx
add esp, 4
cmp ebx, eax
mov dword [ebp + 0x10], ebx
jae 0x30090860
xor eax, eax
xor ecx, ecx
lea edx, [ebx + 1]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
xor esi, esi
mov dword [esp + 0x10], edx
jmp 0x3008f840
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008f9e6
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
inc esi
cmp esi, 4
mov eax, edi
mov dword [esp + 0x10], edx
jl 0x3008f840
mov dword [ebp + 0x10], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov edi, ecx
xor esi, esi
lea edx, [ebx + 1]
mov dword [esp + 0x18], eax
mov dword [esp + 0x124], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], edx
lea ebx, [ebx]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008f8e9
mov eax, dword [esp + 0x124]
shld eax, esi, 8
mov ecx, eax
movzx eax, byte [ebx]
cdq
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x10]
or ecx, edx
inc ebx
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cmp eax, 4
mov eax, dword [esp + 0x38]
jl 0x3008f8a0
mov edx, eax
or edx, ecx
mov dword [ebp + 0x10], ebx
je 0x30090860
cmp eax, 1
jne 0x3008f958
xor eax, eax
cmp ecx, eax
jne 0x3008f958
lea edx, [ebx + 1]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edx
mov edi, edi
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008f945
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
inc edx
cmp edx, 8
mov eax, edi
mov dword [esp + 0x24], edx
jl 0x3008f910
sub eax, 8
sbb ecx, 0
mov dword [ebp + 0x10], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov edi, ecx
mov edx, dword [esp + 0x18]
add edx, 0xfffffff8
adc edi, 0xffffffff
cmp esi, 0x686c6974
mov dword [esp + 0x18], edx
ja 0x3008fca3
je 0x3008fbca
cmp esi, 0x6472706f
ja 0x3008faf4
je 0x3008fa88
cmp esi, 0x626c6e6b
je 0x3008f9f8
cmp esi, 0x646c6179
jne 0x3009084b
mov eax, dword [esp + 0x14]
push eax
push 4
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], edx
fild qword [esp + 0x118]
mov ecx, dword [esp + 0x28]
fdiv qword [esp + 0x140]
fstp qword [esp]
push str.scrolldelay
call fcn.3008f4e0
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffc
jmp 0x30090841
mov dword [ebp + 0x10], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov edi, ecx
jmp 0x3008f882
mov esi, dword [esp + 0x20]
push str.blink
mov ecx, esi
call fcn.3008f310
push 3
mov ecx, esi
call fcn.3008bfd0
mov ecx, dword [esp + 0x14]
push ecx
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
fild qword [esp + 0xf8]
add esp, 8
push str.startchar
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov edx, dword [esp + 0x14]
push edx
push 2
call fcn.3008c140
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
fild qword [esp + 0xa8]
jmp 0x3008fc55
mov eax, dword [esp + 0x14]
push eax
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov esi, dword [esp + 0x28]
movsx ecx, ax
mov dword [esp + 0x38], ecx
add esp, 8
push str.dropshadowoffsetx
fild dword [esp + 0x34]
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov edx, dword [esp + 0x14]
push edx
push 2
call fcn.3008c140
movsx eax, ax
add esp, 8
mov dword [esp + 0x30], eax
push str.dropshadowoffsety
fild dword [esp + 0x34]
jmp 0x3008fb38
cmp esi, 0x64727074
je 0x3008fb69
cmp esi, 0x68636c72
jne 0x3009084b
mov ecx, dword [esp + 0x14]
push ecx
push 4
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov esi, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
fild qword [esp + 0x88]
push str.highlightcolor
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffc
jmp 0x30090841
mov edx, dword [esp + 0x14]
push edx
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov esi, dword [esp + 0x28]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
fild qword [esp + 0xb8]
add esp, 8
push str.dropshadowalpha
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffe
jmp 0x30090841
mov esi, dword [esp + 0x20]
push str.highlight
mov ecx, esi
call fcn.3008f310
push 3
mov ecx, esi
call fcn.3008bfd0
mov eax, dword [esp + 0x14]
push eax
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
fild qword [esp + 0x108]
add esp, 8
push str.startchar
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov ecx, dword [esp + 0x14]
push ecx
push 2
call fcn.3008c140
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
fild qword [esp + 0xc8]
add esp, 8
fstp qword [esp + 0x28]
push str.endchar
mov ecx, esi
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
push 0x30293680
mov ecx, esi
call fcn.3008f310
push 9
mov ecx, esi
call fcn.3008bfd0
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffc
jmp 0x30090841
cmp esi, 0x7374796c
ja 0x3009065c
je 0x3009019c
cmp esi, 0x68726566
je 0x3008ff9a
cmp esi, 0x6b726f6b
jne 0x3009084b
mov esi, dword [esp + 0x20]
push str.karaoke
mov ecx, esi
call fcn.3008f310
push 3
mov ecx, esi
call fcn.3008bfd0
fld qword [0x30294f50]
fdiv qword [esp + 0x138]
mov edx, dword [esp + 0x14]
push edx
push 4
lea ebx, [ebp + 0x10]
fstp qword [esp + 0x30]
call fcn.3008c140
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
fild qword [esp + 0xd8]
add esp, 8
push str.starttime
mov ecx, esi
fmul qword [esp + 0x2c]
fstp qword [esp + 0x34]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x30]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov eax, dword [esp + 0x14]
push eax
push 2
call fcn.3008c140
mov ebx, eax
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffffa
adc edi, 0xffffffff
push str.highlight
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
call fcn.3008f310
push 0xa
mov ecx, esi
call fcn.3008bfd0
mov edi, 0x18
lea esp, [esp]
mov ecx, edi
mov edx, ebx
shr edx, cl
mov ecx, esi
push edx
call fcn.3008bfd0
sub edi, 8
jns 0x3008fd90
test ebx, ebx
jbe 0x3008ff92
mov dword [esp + 0x30], ebx
mov ebx, dword [ebp + 0x10]
push 3
mov ecx, esi
call fcn.3008bfd0
xor eax, eax
xor ecx, ecx
lea edx, [ebx + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], edx
jmp 0x3008fde0
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008fe15
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
inc edx
cmp edx, 4
mov eax, edi
mov dword [esp + 0x24], edx
jl 0x3008fde0
mov dword [esp + 0x84], ecx
push str.endtime
mov ecx, esi
mov dword [esp + 0x84], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x80]
sub esp, 8
mov ecx, esi
fmul qword [esp + 0x30]
fstp qword [esp]
call fcn.3008f2d0
xor eax, eax
xor ecx, ecx
lea edx, [ebx + 1]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], edx
jmp 0x3008fe70
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008fea5
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
inc edx
cmp edx, 2
mov eax, edi
mov dword [esp + 0x24], edx
jl 0x3008fe70
mov dword [esp + 0x44], ecx
push str.startchar
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x40]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
xor eax, eax
xor ecx, ecx
lea edx, [ebx + 1]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], edx
lea ebx, [ebx]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x3008ff25
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
inc edx
cmp edx, 2
mov eax, edi
mov dword [esp + 0x24], edx
jl 0x3008fef0
mov dword [esp + 0x6c], ecx
push str.endchar
mov ecx, esi
mov dword [esp + 0x6c], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x68]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
push 0x30293680
mov ecx, esi
call fcn.3008f310
push 9
mov ecx, esi
call fcn.3008bfd0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
add edx, 0xfffffff8
adc ecx, 0xffffffff
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], eax
jne 0x3008fdb2
jmp 0x30090182
mov ebx, dword [ebp + 0x10]
jmp 0x30090182
mov esi, dword [esp + 0x20]
push str.hypertext
mov ecx, esi
call fcn.3008f310
push 3
mov ecx, esi
call fcn.3008bfd0
mov eax, dword [esp + 0x14]
push eax
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
fild qword [esp + 0xe8]
add esp, 8
push str.startchar
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov ecx, dword [esp + 0x14]
push ecx
push 2
call fcn.3008c140
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
fild qword [esp + 0x138]
add esp, 8
push str.endchar
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add edx, 0xfffffffc
adc edi, 0xffffffff
push esi
push 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edi
call fcn.3008c140
mov edx, dword [ebp + 0x10]
mov ebx, eax
mov eax, esi
sub eax, edx
add esp, 8
cmp eax, ebx
jge 0x30090082
mov ebx, eax
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x140]
rep stosd dword es:[edi], eax
mov ecx, ebx
mov eax, ecx
shr ecx, 2
mov esi, edx
lea edi, [esp + 0x140]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
add edx, ebx
push 0x30299c4c
mov ecx, esi
mov dword [ebp + 0x10], edx
call fcn.3008f310
push 2
mov ecx, esi
call fcn.3008bfd0
lea ecx, [esp + 0x140]
push ecx
mov ecx, esi
call fcn.3008f310
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + 1]
cdq
sub esi, eax
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
sbb ecx, edx
push esi
push 1
lea ebx, [ebp + 0x10]
mov dword [esp + 0x24], ecx
call fcn.3008c140
mov ebx, dword [ebp + 0x10]
mov ecx, esi
sub ecx, ebx
add esp, 8
cmp ecx, eax
mov dword [esp + 0x10], eax
jge 0x30090115
mov dword [esp + 0x10], ecx
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x240]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov esi, ebx
lea edi, [esp + 0x240]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
push 0x30297f14
mov ecx, esi
add ebx, eax
call fcn.3008f310
push 2
mov ecx, esi
call fcn.3008bfd0
lea eax, [esp + 0x240]
push eax
mov ecx, esi
call fcn.3008f310
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
inc eax
cdq
sub ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
sbb eax, edx
push 0x30293680
mov ecx, esi
call fcn.3008f310
push 9
mov ecx, esi
call fcn.3008bfd0
jmp 0x3009084b
mov ecx, dword [esp + 0x14]
push ecx
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov esi, dword [esp + 0x20]
add esp, 8
add esi, 0xfffffffe
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
adc edi, 0xffffffff
push str.style
mov ecx, esi
mov ebx, eax
mov dword [esp + 0x20], edi
call fcn.3008f310
push 0xa
mov ecx, esi
call fcn.3008bfd0
mov edi, 0x18
mov ecx, edi
mov edx, ebx
shr edx, cl
mov ecx, esi
push edx
call fcn.3008bfd0
sub edi, 8
jns 0x300901e0
test ebx, ebx
jbe 0x30090848
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + 0x10]
push 3
mov ecx, esi
call fcn.3008bfd0
xor ecx, ecx
xor eax, eax
lea edx, [ebx + 1]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x30090257
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, 2
mov eax, edi
mov dword [esp + 0x30], edx
jl 0x30090222
mov dword [esp + 0x5c], ecx
push str.startchar
mov ecx, esi
mov dword [esp + 0x5c], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x58]
mov edi, 0x38
fstp qword [esp + 0x90]
jmp 0x30090290
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov ecx, edi
call fcn.3002e3b0
push eax
mov ecx, esi
call fcn.3008bfd0
sub edi, 8
jns 0x30090290
xor ecx, ecx
xor eax, eax
lea edx, [ebx + 1]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x30090305
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, 2
mov eax, edi
mov dword [esp + 0x30], edx
jl 0x300902d0
mov dword [esp + 0x7c], ecx
push str.endchar
mov ecx, esi
mov dword [esp + 0x7c], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x78]
mov edi, 0x38
fstp qword [esp + 0x98]
jmp 0x30090340
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov ecx, edi
call fcn.3002e3b0
push eax
mov ecx, esi
call fcn.3008bfd0
sub edi, 8
jns 0x30090340
xor ecx, ecx
xor eax, eax
lea edx, [ebx + 1]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x300903b5
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, 2
mov eax, edi
mov dword [esp + 0x30], edx
jl 0x30090380
mov dword [esp + 0x4c], ecx
push str.fontid
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x48]
mov edi, 0x38
fstp qword [esp + 0xa8]
jmp 0x300903f0
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ecx, edi
call fcn.3002e3b0
push eax
mov ecx, esi
call fcn.3008bfd0
sub edi, 8
jns 0x300903f0
xor ecx, ecx
xor eax, eax
lea edx, [ebx + 1]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x30090465
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, 1
mov eax, edi
mov dword [esp + 0x30], edx
jl 0x30090430
mov dword [esp + 0x54], ecx
push str.facestyleflags
mov ecx, esi
mov dword [esp + 0x54], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x50]
mov edi, 0x38
fstp qword [esp + 0xb8]
jmp 0x300904a0
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov ecx, edi
call fcn.3002e3b0
push eax
mov ecx, esi
call fcn.3008bfd0
sub edi, 8
jns 0x300904a0
xor ecx, ecx
xor eax, eax
lea edx, [ebx + 1]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x30090515
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, 1
mov eax, edi
mov dword [esp + 0x30], edx
jl 0x300904e0
mov dword [esp + 0x64], ecx
push str.fontsize
mov ecx, esi
mov dword [esp + 0x64], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x60]
mov edi, 0x38
fstp qword [esp + 0xc8]
jmp 0x30090550
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov ecx, edi
call fcn.3002e3b0
push eax
mov ecx, esi
call fcn.3008bfd0
sub edi, 8
jns 0x30090550
xor ecx, ecx
xor eax, eax
lea edx, [ebx + 1]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jae 0x300905c5
shld ecx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ebx]
cdq
or ecx, edx
mov edx, dword [esp + 0x10]
or edi, eax
inc ebx
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, 4
mov eax, edi
mov dword [esp + 0x30], edx
jl 0x30090590
mov dword [esp + 0x74], ecx
push str.textcolor
mov ecx, esi
mov dword [esp + 0x74], eax
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fild qword [esp + 0x70]
mov edi, 0x38
fstp qword [esp + 0xd8]
jmp 0x30090600
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov ecx, edi
call fcn.3002e3b0
push eax
mov ecx, esi
call fcn.3008bfd0
sub edi, 8
jns 0x30090600
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add eax, 0xfffffff4
adc edi, 0xffffffff
push 0x30293680
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
call fcn.3008f310
push 9
mov ecx, esi
call fcn.3008bfd0
dec dword [esp + 0x24]
jne 0x30090202
jmp 0x3009084b
cmp esi, 0x74626f78
je 0x300906d1
cmp esi, 0x74777270
jne 0x3009084b
mov eax, dword [esp + 0x14]
push eax
push 1
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov esi, dword [esp + 0x28]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
fild qword [esp + 0xf0]
add esp, 8
push str.wrapflag
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov ecx, dword [esp + 0x18]
add ecx, 0xffffffff
jmp 0x30090841
mov esi, dword [esp + 0x20]
push str.textbox
mov ecx, esi
call fcn.3008f310
push 3
mov ecx, esi
call fcn.3008bfd0
mov ecx, dword [esp + 0x14]
push ecx
push 2
lea ebx, [ebp + 0x10]
call fcn.3008c140
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
fild qword [esp + 0x100]
add esp, 8
push 0x30299f6c
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov edx, dword [esp + 0x14]
push edx
push 2
call fcn.3008c140
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edx
fild qword [esp + 0x110]
add esp, 8
push 0x30299f64
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov eax, dword [esp + 0x14]
push eax
push 2
call fcn.3008c140
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
fild qword [esp + 0x120]
add esp, 8
push str.bottom
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
mov ecx, dword [esp + 0x14]
push ecx
push 2
call fcn.3008c140
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], edx
fild qword [esp + 0x130]
add esp, 8
push 0x30297ef8
mov ecx, esi
fstp qword [esp + 0x2c]
call fcn.3008f310
push 0
mov ecx, esi
call fcn.3008bfd0
fld qword [esp + 0x28]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.3008f2d0
push 0x30293680
mov ecx, esi
call fcn.3008f310
push 9
mov ecx, esi
call fcn.3008bfd0
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff8
mov dword [esp + 0x18], ecx
adc edi, 0xffffffff
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add ebx, ecx
cmp ebx, eax
mov dword [ebp + 0x10], ebx
jb 0x3008f820
mov esi, dword [esp + 0x20]
push 0x30293680
mov ecx, esi
call fcn.3008f310
push 9
mov ecx, esi
call fcn.3008bfd0
mov edx, dword [esi + 0x15448]
mov eax, dword [esi + 0x15440]
mov ecx, dword [ebp + 0x18]
mov dword [ecx], edx
xor ecx, ecx
pop edi
mov dword [esi + 0x15440], ecx
mov dword [esi + 0x15448], ecx
mov dword [esi + 0x15444], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14