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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x68]
xor ecx, ecx
push ebx
mov ebx, dword [esp + 0x68]
xor edx, edx
push ebp
mov eax, dword [eax + 0x7c]
mov ebp, dword [esp + 0x68]
push esi
push edi
mov edi, eax
mov dword [esp + 0x24], ecx
shr eax, 0x11
and eax, 1
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], eax
lea eax, [ebp - 0x38]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x10], eax
mov eax, ecx
div ebp
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x68]
sub ecx, edx
mov dword [esp + 0x3c], ecx
add ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], eax
mov eax, ecx
shr edi, 0x13
and edi, 1
mov dword [esp + 0x1c], 0
xor edx, edx
mov dword [esp + 0x14], edi
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [eax + 0x4c], 0xffffffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], 0xfc00
mov dword [esp + 0x30], 0xdc00
mov dword [esp + 0x4c], 0xd800
mov dword [esp + 0x48], 0xff
nop dword [eax]
mov dword [eax + 0x1c], edx
mov dword [eax], esi
mov dword [eax + 0x10], ebp
test edx, edx
je 0x4ef7f0
sub eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x4ef7ea
movzx eax, dx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x78]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x10]
lea eax, [edx + 1]
mov dword [ebp + 0x18], eax
cmp edx, ecx
jae 0x4f990f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x4ef830
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x50
ret
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov bl, byte [esi]
movzx ecx, bl
mov byte [esp + 0x64], bl
mov byte [eax + 0x31], bl
cmp ecx, 0xa6
ja case.0x4f75d2.15
movzx eax, byte [ecx + 0x4f9a78]
jmp dword [eax*4 + 0x4f991c]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x4ef8d6
movzx edi, word [esi + 2]
mov eax, dword [eax + 0x4c]
nop dword [eax]
cmp eax, 0xffffffff
je case.0x4f75d2.15
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x18]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [esp + 0x1c], ecx
sub edx, dword [esp + 0x70]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x4ef89d
mov eax, dword [edx + 0x4c]
jmp 0x4ef870
mov eax, dword [esp + 0x10]
lea esi, [edi + edi]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebp + 0x4c]
mov edx, dword [esp + 0x10]
sar eax, 1
mov dword [edx + ecx*4 + 0x54], eax
mov eax, edx
mov eax, dword [eax + 0x38]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [edx + ecx*4 + 0x58], eax
mov eax, edx
cmp ecx, dword [eax + 0x50]
jb 0x4ef8d2
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x4ef82c
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4ef903
mov dword [ebx + 0x60], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x24], eax
jmp 0x4f6cac
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x4ef974
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x4f75d2.15
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx + 0x18]
add edx, eax
mov ecx, edx
mov dword [esp + 0x1c], edx
sub ecx, dword [esp + 0x70]
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x4ef952
mov eax, dword [ecx + 0x4c]
jmp 0x4ef922
mov edx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [edx + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + 0x3c]
mov dword [ecx + 0x3c], eax
add dword [ecx], 4
jmp 0x4ef830
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x4ef9a2
mov eax, dword [ebp + 0x78]
test al, 4
jne case.0x4ef855.162
test al, 8
je 0x4ef9a2
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.0x4ef855.162
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x54]
jae 0x4f9839
mov ecx, dword [esp + 0x78]
mov eax, dword [eax + 0x7c]
or eax, dword [ecx + 0x78]
test eax, 0x20000000
je 0x4f9837
test bl, bl
jne 0x4f982d
xor esi, esi
mov ebx, ecx
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x78]
mov ebp, eax
mov esi, dword [eax + 0x88]
test esi, esi
je 0x4efa84
mov edx, dword [eax + 0x54]
lea edi, [eax + 0x54]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, edx
jae 0x4efa1b
push dword [esp + 0x14]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0051fb30
add esp, 0x14
test eax, eax
je 0x4efa1b
mov eax, 1
jmp 0x4efa1d
xor eax, eax
test eax, eax
jne 0x4efabb
mov ebx, dword [esp + 0x10]
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x4ef855.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x4ef855.13
mov eax, dword [esp + 0x78]
cmp dword [eax + 0x88], 0
jne 0x4efa80
cmp dword [eax + 0x8c], 2
jne 0x4efa80
mov ebx, dword [esp + 0x78]
mov ax, word [ecx]
cmp ax, word [ebx + 0x90]
jne 0x4efad2
mov eax, ebx
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov ebx, eax
jmp 0x4efad2
mov esi, dword [eax + 0x8c]
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
lea eax, [esi + esi]
mov edx, dword [ebx + 0x38]
sub ecx, eax
cmp edx, ecx
ja 0x4efac6
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x4efac6
cmp esi, 1
je 0x4efabb
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
jne 0x4efac6
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x4f6ca4
lea edi, [ebp + 0x54]
jmp 0x4efa29
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4efb15
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4efaf8
cmp dword [eax + 0x24], 0
je 0x4efb08
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov ebx, eax
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x14]
add ecx, 2
mov dword [eax + 0x38], ecx
test edi, edi
je 0x4efb4b
cmp ecx, dword [ebx + 0x54]
jae 0x4efb4b
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4efb47
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jb 0x4efba6
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je case.0x4ef855.162
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4efb89
cmp dword [eax + 0x24], 0
je case.0x4ef855.162
mov dword [eax + 0x1c], 1
cmp edx, 1
jbe case.0x4ef855.162
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x50
ret
mov ebp, dword [esp + 0x78]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x4ef830
test edi, edi
je 0x4efc98
mov eax, dword [esp + 0x10]
lea edi, [esi + 2]
mov ecx, 0xfc00
mov edx, 1
mov dword [eax + 0xc], 1
mov dword [eax], edi
mov ax, word [edi]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [esp + 0x10]
jne 0x4efc00
mov dword [eax + 0xc], 2
mov edx, 2
mov ebx, dword [esp + 0x78]
mov esi, dword [eax + 0x38]
mov ecx, dword [ebx + 0x54]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x4efc60
cmp esi, ecx
jb 0x4efb0a
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
mov eax, ebx
cmp esi, dword [eax + 0x5c]
ja 0x4efc3c
cmp dword [eax + 0x24], 0
je 0x4efb08
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
mov ebx, eax
xor esi, esi
jmp case.0x4f6ea6.998
mov ax, word [esi]
add esi, 2
mov ebx, dword [esp + 0x10]
movzx ecx, word [edi]
add edi, 2
cmp cx, ax
mov eax, ebx
mov dword [ebx + 0x38], esi
mov dword [ebx], edi
jne 0x4efc89
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x4efc60
jmp 0x4ef828
mov ebx, dword [esp + 0x78]
xor esi, esi
mov edi, dword [esp + 0x14]
jmp 0x4f6cac
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 0x54]
mov edi, dword [ebx + 0x38]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jge 0x4efced
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
mov eax, ebx
cmp edi, dword [eax + 0x5c]
ja 0x4efcd0
cmp dword [eax + 0x24], 0
je 0x4efb08
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
mov ebx, eax
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edi]
lea eax, [edi + 2]
movzx edx, word [esi + 2]
mov edi, dword [esp + 0x14]
mov dword [ebx + 0x38], eax
cmp dx, cx
jne case.0x4ef855.162
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ebx + 0x54]
jb 0x4efd52
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
mov eax, ebx
cmp ebp, dword [eax + 0x5c]
ja 0x4efd39
cmp dword [eax + 0x24], 0
je 0x4efd49
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov ebx, eax
xor esi, esi
jmp case.0x4f6ea6.998
test edi, edi
je 0x4efe88
mov dword [eax + 0xc], 1
lea ebx, [esi + 2]
mov dword [eax], ebx
mov edi, 1
movzx esi, word [ebx]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4efda8
movzx eax, word [ebx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov edi, 2
mov eax, dword [esp + 0x10]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x4efdac
mov eax, dword [esp + 0x10]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x4efdfa
cmp edx, 0xff
ja 0x4efdcb
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x28]
movzx edx, byte [eax + edx]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0x28]
movzx eax, byte [eax + esi]
cmp eax, edx
jne case.0x4ef855.162
mov ecx, dword [esp + 0x10]
lea eax, [ebx + 2]
mov dword [ecx], eax
lea eax, [ebp + 2]
mov ebp, dword [esp + 0x78]
mov dword [ecx + 0x38], eax
jmp 0x4ef830
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4efe33
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x4efe37
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x78]
lea eax, [ebx + edi*2]
mov edi, dword [esp + 0x14]
mov dword [ecx], eax
cmp edx, esi
je 0x4ef830
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a3ebc]
add eax, esi
cmp edx, eax
je 0x4ef830
xor esi, esi
mov ebx, ebp
jmp case.0x4f6ea6.998
cmp dword [esp + 0x2c], 0
je 0x4eff2c
movzx edi, word [esi + 2]
movzx edx, word [ebp]
cmp edi, 0x80
jae 0x4efec8
cmp edx, 0xff
ja 0x4efeb2
mov eax, dword [ebx + 0x28]
movzx edx, byte [eax + edx]
mov eax, dword [ebx + 0x28]
movzx eax, byte [eax + edi]
cmp eax, edx
je 0x4eff16
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
cmp edx, edi
je 0x4eff16
mov eax, edi
test eax, eax
jns 0x4efed5
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x4efef1
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a3ebc]
add eax, edi
cmp edx, eax
je 0x4eff16
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ecx, dword [esp + 0x10]
lea eax, [ebp + 2]
mov ebp, ebx
mov dword [ecx + 0x38], eax
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x4ef82c
movzx eax, word [esi + 2]
mov ecx, 0xff
mov edx, eax
cmp ax, cx
ja 0x4eff43
mov eax, dword [ebx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, word [esp + 0x48]
ja 0x4eff57
mov eax, dword [ebx + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x4eff62
xor esi, esi
jmp case.0x4f6ea6.998
mov ecx, dword [esp + 0x10]
lea eax, [ebp + 2]
mov ebp, ebx
mov dword [ecx + 0x38], eax
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jb 0x4effbf
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je case.0x4ef855.162
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4effaa
cmp dword [eax + 0x24], 0
je case.0x4ef855.162
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
jmp case.0x4ef855.162
lea eax, [esi + 2]
test edi, edi
je 0x4f009b
mov edi, dword [esp + 0x10]
lea esi, [eax + 2]
mov dword [edi], eax
movzx edx, word [eax]
mov eax, edx
mov dword [edi], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0004
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 2]
add edx, 0x10000
mov dword [edi], eax
movzx esi, word [ecx]
add ecx, 2
mov eax, esi
mov dword [edi + 0x38], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f003a
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [edi + 0x38], eax
mov edi, dword [esp + 0x14]
cmp edx, esi
je case.0x4ef855.162
mov ebp, dword [esp + 0x78]
cmp bl, 0x20
jne 0x4ef830
mov ebx, ebp
cmp edx, 0x7f
jbe 0x4f0085
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x6a3ebc]
jmp 0x4f008c
mov eax, dword [ebx + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
jne 0x4ef830
xor esi, esi
jmp case.0x4f6ea6.998
cmp dword [esp + 0x2c], 0
lea edi, [ecx + 2]
je 0x4f012a
movzx ebx, word [ecx]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], edi
movzx edx, word [eax]
lea eax, [esi + 4]
mov edi, dword [esp + 0x14]
mov dword [ecx], eax
cmp edx, ebx
je case.0x4ef855.162
cmp byte [esp + 0x64], 0x20
mov ebp, dword [esp + 0x78]
jne 0x4ef830
cmp edx, 0x7f
jbe 0x4f0116
mov eax, edx
test eax, eax
jns 0x4f00e4
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4f0100
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x6a3ebc]
jmp 0x4f011d
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
jne 0x4ef830
jmp case.0x4ef855.162
movzx edx, word [eax]
mov eax, dword [esp + 0x10]
movzx ecx, word [ecx]
mov dword [eax + 0x38], edi
cmp edx, ecx
je 0x4f0165
cmp bl, 0x20
jne 0x4f0157
cmp edx, 0xff
ja 0x4f0157
mov ebx, dword [esp + 0x78]
mov eax, dword [ebx + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je 0x4f0169
mov ecx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x4ef828
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
movzx edi, word [esi + 2]
add esi, 4
mov dword [eax + 0x24], edi
mov dword [eax + 0x20], edi
mov dword [eax], esi
jmp 0x4f02ad
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edi, edi
mov dword [ecx], esi
jmp 0x4f02a9
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edi, edi
mov dword [ecx], esi
jmp 0x4f02a9
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edi, edi
mov dword [ecx], esi
jmp 0x4f02a9
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edi, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f02a9
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edi, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f02a9
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edi, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x4f02a9
movzx ecx, word [esi]
cmp bl, 0x2e
mov edx, dword [esp + 0x10]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [esp + 0x10]
add esi, 2
mov edi, dword [ecx*4 + 0x6a17d0]
mov dword [eax], esi
mov dword [eax + 0x20], edi
mov eax, dword [ecx*4 + 0x6a17fc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x6a1828]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4f067e
mov dword [eax + 0xc], 1
lea ecx, [esi + 2]
mov dword [eax + 8], esi
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0673
movzx eax, word [ecx]
and edx, 0x3ff
mov ecx, dword [esp + 0x10]
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 4]
add edx, 0x10000
mov dword [ecx + 0xc], 2
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x4f034e
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x6a3ebc]
add ecx, edx
cmp ecx, edx
je 0x4f034e
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.0051fce0
add esp, 8
jmp 0x4f0350
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x20]
cmp eax, 1
jb 0x4f04d5
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov ebp, dword [ebp + 0x54]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x38]
add edi, edi
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f03e6
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f03a8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f03b1
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f0397
cmp esi, 0xfffffffc
je 0x4f0457
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f03e6
cmp esi, 0xfffffffd
je 0x4f0457
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f03e6
cmp esi, 0xfffffffe
je 0x4f0457
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f03e6
cmp esi, 0xffffffff
je 0x4f0457
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f0457
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f048e
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f048e
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f0425
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f042a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f0414
cmp esi, 0xfffffffc
je 0x4f0457
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f048e
cmp esi, 0xfffffffd
je 0x4f0457
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f048e
cmp esi, 0xfffffffe
je 0x4f0457
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f048e
cmp esi, 0xffffffff
je 0x4f0457
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f048e
mov ecx, dword [esp + 0x10]
lea eax, [ebx + edi]
mov ebp, dword [esp + 0x78]
mov edx, 0x38
mov dword [ecx + edx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x64], ecx
mov eax, dword [eax + 0x20]
cmp ecx, eax
jbe 0x4f0370
mov ecx, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x64], edx
jmp 0x4f04db
cmp ebx, ebp
jb 0x4efabb
mov eax, dword [esp + 0x78]
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efabb
mov eax, dword [esp + 0x78]
cmp ebx, dword [eax + 0x5c]
ja 0x4f04bc
cmp dword [eax + 0x24], 0
je 0x4efabb
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
mov edx, eax
mov dword [esp + 0x64], eax
mov ecx, dword [ecx + 0x24]
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
cmp eax, ecx
je 0x4ef830
cmp dword [esp + 0x18], 0
je 0x4f9350
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x4f065b
jmp 0x4f0514
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x78]
add edi, edi
mov ebp, dword [eax + 0x54]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f058b
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f0549
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f0552
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f0538
cmp esi, 0xfffffffc
je 0x4f0603
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f058b
cmp esi, 0xfffffffd
je 0x4f0603
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f058b
cmp esi, 0xfffffffe
je 0x4f0603
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f058b
cmp esi, 0xffffffff
je 0x4f0603
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f0603
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f0629
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f0629
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f05d1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f05d6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f05c0
cmp esi, 0xfffffffc
je 0x4f0603
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f0629
cmp esi, 0xfffffffd
je 0x4f0603
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f0629
cmp esi, 0xfffffffe
je 0x4f0603
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f0629
cmp esi, 0xffffffff
je 0x4f0603
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f0629
mov eax, dword [esp + 0x10]
mov ecx, 0x38
mov edx, dword [esp + 0x64]
add ebx, edi
inc edx
mov dword [esp + 0x64], edx
mov dword [ecx + eax], ebx
cmp edx, dword [eax + 0x24]
jb 0x4f0510
mov ebp, dword [esp + 0x78]
jmp 0x4f065b
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb 0x4f065b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f065b
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x4f0649
cmp dword [eax + 0x24], 0
je 0x4f0659
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov ebp, eax
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4ef830
mov ebp, dword [esp + 0x10]
jmp 0x4f7c4f
mov eax, dword [esp + 0x10]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x4f068f
movzx edx, word [esi]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x28], edx
lea eax, [esi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x4f0828
test ebx, ebx
jne 0x4f06a3
cmp dword [esp + 0x2c], ebx
je 0x4f06d5
cmp edx, 0x7f
jbe 0x4f06d5
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a3ebc]
add eax, edx
jmp 0x4f06e8
cmp edx, 0xff
ja 0x4f06e6
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x4f06e8
mov eax, edx
mov ecx, dword [esp + 0x10]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp edi, esi
jb 0x4f0736
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f079a
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
mov edx, dword [ebx + 0x28]
cmp edx, eax
je 0x4f072b
cmp dword [ebx + 0x2c], eax
jne 0x4efabb
inc esi
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp esi, edi
jbe 0x4f0700
mov eax, dword [esp + 0x10]
mov ebx, edi
mov ebp, dword [esp + 0x78]
mov esi, dword [eax + 0x24]
cmp edi, esi
mov edi, dword [esp + 0x14]
je 0x4ef830
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4f731e
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp ebx, esi
jae 0x4f07ff
nop dword [eax]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f07d5
movzx eax, word [ecx]
cmp edx, eax
je 0x4f0789
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x2c], eax
jne 0x4f0803
mov eax, dword [esp + 0x10]
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x4f0770
jmp 0x4f07ff
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4efabb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f07bc
cmp dword [eax + 0x24], 0
je 0x4efabb
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4f07ff
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f07ef
cmp dword [eax + 0x24], 0
je 0x4f07ff
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov ebp, dword [esp + 0x10]
cmp edi, 2
mov edi, dword [esp + 0x14]
je 0x4f6320
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x1a
jmp 0x4f973a
mov ebx, 1
cmp edi, ebx
jb 0x4f085a
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x54]
jae 0x4f08b4
mov ebp, dword [esp + 0x10]
lea eax, [esi + 2]
movzx edx, word [esi]
mov dword [ebp + 0x38], eax
mov eax, ebp
cmp dword [ebp + 0x28], edx
jne 0x4efc89
inc ebx
cmp ebx, edi
jbe 0x4f0831
mov edx, dword [eax + 0x24]
mov esi, edi
mov ebp, dword [esp + 0x78]
cmp edi, edx
mov edi, dword [esp + 0x14]
je 0x4ef830
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4f73a7
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x4f0919
nop dword [eax]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f08ef
mov ebp, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
jne 0x4f091d
mov eax, ebp
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x4f0890
jmp 0x4f0919
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efabb
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x5c]
ja 0x4f08d6
cmp dword [eax + 0x24], 0
je 0x4efabb
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4f0919
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f0909
cmp dword [eax + 0x24], 0
je 0x4f0919
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov ebp, dword [esp + 0x10]
cmp ebx, 2
je 0x4f6320
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x1c
jmp 0x4f973a
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 2]
add esi, 4
mov dword [eax + 0x24], edx
mov dword [eax + 0x20], edx
mov dword [eax], esi
jmp 0x4f0a77
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], esi
jmp 0x4f0a73
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], esi
jmp 0x4f0a73
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f0a73
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f0a73
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x4f0a73
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], esi
jmp 0x4f0a73
movzx ecx, word [esi]
cmp bl, 0x48
mov ebx, dword [esp + 0x10]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [esp + 0x10]
add esi, 2
mov edx, dword [ecx*4 + 0x6a17d0]
mov dword [eax], esi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x6a17fc]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x6a1828]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
movzx ecx, word [esi]
add esi, 2
mov ebx, dword [esp + 0x14]
mov edi, ecx
mov dword [eax + 0x28], ecx
mov dword [eax], esi
test ebx, ebx
je 0x4f0ac4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0ac0
movzx edi, word [esi]
lea eax, [esi + 2]
and ecx, 0x3ff
and edi, 0x3ff
shl ecx, 0xa
or edi, ecx
mov ecx, dword [esp + 0x10]
add edi, 0x10000
mov dword [ecx + 0x28], edi
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x48
jb 0x4f0dbb
test ebx, ebx
jne 0x4f0ad8
cmp dword [esp + 0x2c], ebx
je 0x4f0b0a
cmp edi, 0x7f
jbe 0x4f0b0a
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x6a3ebc]
add ebx, edi
jmp 0x4f0b1d
cmp edi, 0xff
ja 0x4f0b1b
mov eax, dword [ebp + 0x2c]
movzx ebx, byte [eax + edi]
jmp 0x4f0b1d
mov ebx, edi
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x2c], ebx
je 0x4f0be2
mov ebp, 1
cmp edx, ebp
jb 0x4f0cd2
jmp 0x4f0b44
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x54]
jae 0x4f0ba3
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0b8a
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [esi + 2]
mov esi, dword [esp + 0x10]
add ecx, 0x10000
mov dword [esi + 0x38], eax
cmp edi, ecx
je 0x4efabb
cmp ebx, ecx
je 0x4efabb
inc ebp
cmp ebp, edx
jbe 0x4f0b40
mov ebp, edx
jmp 0x4f0bf1
mov ebx, ecx
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
mov eax, ebx
cmp esi, dword [eax + 0x5c]
ja 0x4f0bc5
cmp dword [eax + 0x24], 0
je 0x4efb08
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
mov ebx, eax
xor esi, esi
jmp case.0x4f6ea6.998
mov esi, 1
mov ebp, edx
cmp edx, esi
jae 0x4f0ca4
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x4ef828
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4f9155
cmp dword [esp + 0x14], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x4f0d50
cmp ebp, edi
jae 0x4f0d3a
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov esi, 1
cmp edx, dword [eax + 0x54]
jae 0x4f0d14
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0c72
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je 0x4f0d3a
cmp dword [eax + 0x2c], ecx
je 0x4f0d3a
inc ebp
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebp, edi
jb 0x4f0c30
jmp 0x4f0d3a
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f0cd9
movzx eax, word [ecx]
cmp edi, eax
je 0x4efabb
cmp ebx, eax
je 0x4efabb
lea eax, [ecx + 2]
inc esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x4f0ca0
mov ebp, edx
jmp 0x4f0bf1
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4efabb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f0cfb
cmp dword [eax + 0x24], 0
je 0x4efabb
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f0d3a
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x5c]
ja 0x4f0d2e
cmp dword [eax + 0x24], 0
je 0x4f0d3a
mov dword [eax + 0x1c], esi
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
cmp ebx, 2
je 0x4f6320
mov ebp, dword [esp + 0x10]
jmp 0x4f7d40
cmp ebp, edi
jae 0x4f0da3
mov ebx, dword [esp + 0x78]
cmp edx, dword [ebx + 0x54]
jae 0x4f0d7d
mov ecx, dword [esp + 0x10]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x4f0da3
cmp dword [ecx + 0x2c], eax
je 0x4f0da3
mov eax, ecx
add edx, 2
inc ebp
mov dword [eax + 0x38], edx
cmp ebp, edi
jb 0x4f0d58
jmp 0x4f0da3
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f0da3
cmp edx, dword [ebx + 0x5c]
ja 0x4f0d93
cmp dword [ebx + 0x24], 0
je 0x4f0da3
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4f6320
mov ebp, dword [esp + 0x10]
jmp 0x4f744f
mov esi, 1
test ebx, ebx
je 0x4f0f0f
cmp edx, esi
jb 0x4f0e30
mov ebx, dword [esp + 0x78]
jmp 0x4f0dd6
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f0ed6
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0e1c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
cmp edi, ecx
je 0x4f0ecb
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x4f0dd2
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x24]
mov ebp, dword [esp + 0x78]
cmp edx, esi
je 0x4ef82c
cmp dword [esp + 0x18], 0
je 0x4f916b
mov ecx, dword [eax + 0x38]
mov edi, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov ebx, dword [eax + 0x20]
test edi, edi
je 0x4f0fc3
cmp ebx, esi
jae 0x4f0faf
nop dword [eax + eax]
mov edi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x4f0f85
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0eae
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], edx
je 0x4f0fab
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x4f0e70
jmp 0x4f0fab
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x4f6cac
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f0ef4
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
cmp edx, 1
jb 0x4f0e30
mov ebx, dword [esp + 0x78]
jmp 0x4f0f24
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f0f4c
movzx ecx, word [edx]
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x38], eax
mov eax, edx
cmp edi, ecx
je 0x4f0ecb
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x4f0f20
jmp 0x4f0e34
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f0f6a
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, ebp
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4f0fa9
cmp ecx, dword [ebx + 0x5c]
ja 0x4f0f9d
cmp dword [ebx + 0x24], 0
je 0x4f0fa9
mov dword [ebx + 0x1c], edi
cmp edx, 1
ja 0x4efb99
mov ebp, ebx
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
je 0x4ef830
mov ebp, dword [esp + 0x10]
jmp 0x4f7e28
cmp ebx, esi
jae 0x4f1013
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f0feb
mov ebp, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je 0x4f1017
mov eax, ebp
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x4f0fc7
jmp 0x4f1013
mov ebx, eax
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4f1013
cmp ecx, dword [ebx + 0x5c]
ja 0x4f1003
cmp dword [ebx + 0x24], 0
je 0x4f1013
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
je 0x4f6320
jmp 0x4f74eb
mov ebx, dword [esp + 0x10]
lea eax, [esi + 2]
lea edx, [esi + 0x22]
mov dword [ebx + 8], eax
mov dword [ebx], edx
movzx edi, word [edx]
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x4f1048
movzx eax, byte [eax + 0x4f9b28]
jmp dword [eax*4 + 0x4f9b20]
mov ecx, dword [edi*4 + 0x6a1648]
lea eax, [esi + 0x24]
mov ebp, dword [edi*4 + 0x6a16a0]
mov dword [ebx], eax
mov eax, dword [edi*4 + 0x6a1674]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
jmp 0x4f10c8
movzx ecx, word [esi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x4f1098
mov eax, dword [esp + 0x10]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x6a16a0]
mov dword [esp + 0x18], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4f10c8
mov eax, dword [esp + 0x10]
mov ecx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword [esp + 0x14], 0
mov edi, 1
je 0x4f11af
cmp ecx, edi
jb 0x4f1255
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f1176
movzx esi, word [ecx]
add ecx, 2
mov ebx, dword [esp + 0x10]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f112a
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x4f1142
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x6e
je 0x4efabb
jmp 0x4f1161
mov eax, dword [ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [esp + 0x10]
je 0x4efc89
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x4f1255
mov eax, dword [esp + 0x10]
jmp 0x4f10e0
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f1194
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 1
jb 0x4f1255
nop dword [eax + eax]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f121c
mov ebx, dword [esp + 0x10]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x4f11ef
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je 0x4efabb
jmp 0x4f120e
mov eax, dword [ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [esp + 0x10]
je 0x4efc89
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x4f1259
mov eax, dword [esp + 0x10]
jmp 0x4f11c0
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f123a
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x24]
cmp ecx, ebp
je 0x4ef828
cmp dword [esp + 0x18], 0
je 0x4f9181
cmp dword [esp + 0x14], 0
mov edi, dword [eax + 0x38]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x20]
mov dword [esp + 0x64], eax
je 0x4f135d
cmp eax, ebp
jae 0x4f1342
nop
mov eax, dword [esp + 0x78]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x4f131a
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f12d2
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
add esi, 0x10000
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x4f12e6
cmp byte [eax + 0x31], 0x6e
je 0x4f1342
jmp 0x4f1301
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x4f1342
mov eax, dword [esp + 0x10]
lea edi, [edi + ebx*2]
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ebp
jb 0x4f1290
jmp 0x4f1342
mov ebx, eax
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f1342
cmp edi, dword [ebx + 0x5c]
ja 0x4f1332
cmp dword [ebx + 0x24], 0
je 0x4f1342
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
cmp dword [esp + 0x18], 2
je 0x4ef828
mov ebp, dword [esp + 0x10]
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x4f973a
cmp eax, ebp
jae 0x4f1386
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
nop dword [eax]
cmp edi, dword [ecx + 0x54]
jae 0x4f13e1
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x4f13b1
cmp byte [ebx + 0x31], 0x6e
jne 0x4f13d0
mov ebx, dword [esp + 0x78]
cmp dword [esp + 0x18], 2
je 0x4ef828
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb 0x4efb0a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x18
jmp 0x4f973a
mov eax, dword [ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x4f1386
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x78]
inc eax
add edi, 2
mov dword [ebx + 0x38], edi
mov dword [esp + 0x64], eax
cmp eax, ebp
jb 0x4f1370
jmp 0x4f1386
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f138a
cmp edi, dword [ebx + 0x5c]
ja 0x4f13fb
cmp dword [ebx + 0x24], 0
je 0x4f138a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
jmp 0x4f138a
mov ebp, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 8], eax
movzx eax, word [esi + 2]
lea edx, [esi + eax*2]
mov dword [ebp], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x4f143a
movzx eax, byte [eax + 0x4f9b3c]
jmp dword [eax*4 + 0x4f9b34]
mov ecx, dword [esi*4 + 0x6a1648]
lea eax, [edx + 2]
mov ebx, dword [esi*4 + 0x6a16a0]
lea edi, [ebp + 0x20]
mov dword [ebp], eax
mov eax, dword [esi*4 + 0x6a1674]
mov dword [edi], ecx
mov dword [ebp + 0x24], eax
mov dword [esp + 0x18], ebx
jmp 0x4f149f
movzx ecx, word [edx + 2]
lea edi, [ebp + 0x20]
mov dword [edi], ecx
movzx eax, word [edx + 4]
mov dword [ebp + 0x24], eax
test eax, eax
jne 0x4f148b
mov eax, dword [esp + 0x10]
mov ebp, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x6a16a0]
mov dword [esp + 0x18], eax
lea eax, [edx + 6]
mov dword [ebp], eax
mov esi, 1
cmp ecx, esi
jae 0x4f156f
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x24]
cmp ecx, eax
je 0x4ef828
cmp dword [esp + 0x18], 0
je 0x4f797c
mov edx, dword [ebp + 0x38]
mov dword [ebp + 4], edx
mov edi, dword [ebp + 0x20]
cmp edi, eax
jae 0x4f1619
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
nop
mov esi, 1
cmp edx, dword [ebx + 0x54]
jae 0x4f15f3
movzx ecx, word [edx]
test ebp, ebp
je 0x4f1526
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1522
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
push ebp
push dword [eax + 8]
push ecx
call fcn.00521bb0
add esp, 0xc
test eax, eax
je 0x4f1615
mov ecx, dword [esp + 0x10]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [eax + 0x24]
jb 0x4f14e0
jmp 0x4f1615
mov eax, dword [esp + 0x10]
mov esi, 1
mov dword [eax + 0x24], 1
lea edi, [eax + 0x20]
mov dword [eax + 0x20], 1
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f1629
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x4f15d2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f15ce
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
push ebp
push dword [eax + 8]
push ecx
call fcn.00521bb0
add esp, 0xc
test eax, eax
je 0x4f164f
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x4f1580
mov ebp, dword [esp + 0x10]
jmp 0x4f14b0
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f1615
cmp edx, dword [ebx + 0x5c]
ja 0x4f1609
cmp dword [ebx + 0x24], 0
je 0x4f1615
mov dword [ebx + 0x1c], esi
cmp ecx, 1
ja 0x4efb99
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
jne 0x4f79c1
jmp 0x4ef828
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f164f
cmp edx, dword [ebx + 0x5c]
ja 0x4f163f
cmp dword [ebx + 0x24], 0
je 0x4f164f
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
mov edi, ebp
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f169d
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1686
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f16dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f16dd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f16e1
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x4f1e28
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
je case.default.0x4f1e28
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1746
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f172f
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1786
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1786
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f178a
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
je case.0x4f6ea6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f17f4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f17dd
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1834
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1834
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f1838
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x4f1e28
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
je case.default.0x4f1e28
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f189d
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1886
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f18dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f18dd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f18e1
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
je case.0x4f6ea6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f194b
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1934
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f198b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f198b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f198f
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x4f1e28
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x4f1e28
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f19f4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f19dd
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1a34
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1a34
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f1a38
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
je case.0x4f6ea6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1aa2
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1a8b
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test edi, edi
je 0x4f1ae2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1ae2
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
cmp ecx, 0x85
ja 0x4f1b54
je case.0x4f1af8.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f6ea6.999
jmp dword [ecx*4 + 0x4f9b48]
cmp esi, dword [ebx + 0x54]
jb 0x4f1b38
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f1af8.10
cmp esi, dword [ebx + 0x5c]
ja 0x4f1b1a
cmp dword [ebx + 0x24], 0
je case.0x4f1af8.10
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4ef830
cmp word [esi], 0xa
jne case.0x4f1af8.10
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov ebp, ebx
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x4ef830
sub ecx, 0x2028
je case.0x4f1af8.11
sub ecx, 1
je case.0x4f1af8.11
xor esi, esi
jmp case.0x4f6ea6.998
cmp word [ebx + 0x3e], 2
jne case.0x4f1af8.10
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1bbb
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1ba4
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1bf9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1bf9
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x2000
ja 0x4f1c5b
je case.0x4f6ea6.999
cmp ecx, 0xa0
ja 0x4f1c35
je case.0x4f6ea6.999
cmp ecx, 9
je case.0x4f6ea6.999
cmp ecx, 0x20
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4ef830
cmp ecx, 0x1680
je case.0x4f6ea6.999
cmp ecx, 0x180e
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4ef830
cmp ecx, 0x3000
ja case.0x4f1af8.10
je case.0x4f6ea6.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f1af8.10
movzx eax, byte [ecx + 0x4f9b60]
jmp dword [eax*4 + 0x4f9b58]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1ccf
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1cb8
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1d0d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1d0d
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x2000
ja 0x4f1d56
je case.0x4f1af8.10
cmp ecx, 0xa0
ja 0x4f1d42
je case.0x4f1af8.10
cmp ecx, 9
je case.0x4f1af8.10
cmp ecx, 0x20
je case.0x4f1af8.10
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x1680
je case.0x4f1af8.10
cmp ecx, 0x180e
jmp 0x4f1d35
cmp ecx, 0x3000
ja case.0x4f6ea6.999
je case.0x4f1af8.10
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f6ea6.999
movzx eax, byte [ecx + 0x4f9bc8]
jmp dword [eax*4 + 0x4f9bc0]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1dca
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1db3
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1e0a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1e0a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f1e0e
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x4f1e2f
je case.0x4f6ea6.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f1e28
jmp dword [ecx*4 + 0x4f9c28]
sub ecx, 0x2028
je case.0x4f6ea6.999
sub ecx, 1
je case.0x4f6ea6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4ef830
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1e95
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1e7e
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1ed5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1ed5
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f1ed9
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x4f1efa
je case.default.0x4f1e28
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f6ea6.999
jmp dword [ecx*4 + 0x4f9c38]
sub ecx, 0x2028
je case.default.0x4f1e28
sub ecx, 1
je case.default.0x4f1e28
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f1f5b
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f1f44
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test edi, edi
je 0x4f1f99
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1f99
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
xor ebx, ebx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
mov cl, byte [esp + 0x64]
cmp cl, 0xf
lea edi, [eax + eax*2]
sete bl
movzx eax, word [esi + 2]
cmp eax, 0xd
ja case.0x4f75d2.15
jmp dword [eax*4 + 0x4f9c48]
cmp cl, 0xf
jne 0x4f21dc
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
mov al, byte [edi*4 + 0x6a3eb9]
cmp al, 9
je 0x4f2004
cmp al, 5
je 0x4f2004
cmp al, 8
je 0x4f2004
xor eax, eax
jmp 0x4f2009
mov eax, 1
cmp eax, ebx
jne 0x4f21dc
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
movzx ecx, byte [edi*4 + 0x6a3eb9]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x6bf9c0]
sete dl
cmp edx, ebx
jne 0x4f21dc
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
movzx eax, byte [edi*4 + 0x6a3eb9]
xor ecx, ecx
cmp word [esi + 4], ax
sete cl
cmp ecx, ebx
jne 0x4f21dc
mov edi, dword [esp + 0x14]
jmp case.0x4ef855.162
movzx eax, byte [edi*4 + 0x6a3eb8]
jmp 0x4f204b
movzx ecx, word [esi + 4]
movzx eax, byte [edi*4 + 0x6a3eb8]
cmp cx, ax
je 0x4f2004
movzx edx, word [edi*4 + 0x6a3ec0]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x4f20a2
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x6a3bc0], eax
jne 0x4f2004
xor eax, eax
jmp 0x4f2009
movzx eax, byte [edi*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f2004
cmp eax, 3
je 0x4f2004
xor eax, eax
jmp 0x4f2009
cmp edx, 0x20
ja 0x4f20ff
je case.0x4f1fd4.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x4f2174.8203
jmp dword [edx*4 + 0x4f9c80]
cmp edx, 0x2000
ja 0x4f2154
je case.0x4f1fd4.0
cmp edx, 0x1680
ja 0x4f214c
je case.0x4f1fd4.0
sub edx, 0x85
je case.0x4f1fd4.0
sub edx, 0x1b
je case.0x4f1fd4.0
movzx eax, byte [edi*4 + 0x6a3eb9]
xor ecx, ecx
cmp dword [eax*4 + 0x6bf9c0], 6
sete cl
cmp ecx, ebx
jmp 0x4f1fde
cmp edx, 0x180e
jmp 0x4f212a
cmp edx, 0x3000
ja case.0x4f2174.8203
je case.0x4f1fd4.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x4f2174.8203
movzx eax, byte [edx + 0x4f9c9c]
jmp dword [eax*4 + 0x4f9c94]
movzx eax, byte [edi*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f21a2
cmp eax, 3
je 0x4f21a2
cmp edx, 0x5f
je 0x4f21a2
xor eax, eax
cmp eax, ebx
jmp 0x4f1fde
mov eax, 1
cmp eax, ebx
jmp 0x4f1fde
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x6a38f0]
lea eax, [eax*4 + 0x6a38f0]
cmp edx, ecx
jb 0x4f21d1
lea eax, [eax + 4]
cmp edx, ecx
je 0x4f21e8
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4f21c4
cmp byte [esp + 0x64], 0xf
jne 0x4efabb
mov eax, dword [esp + 0x10]
add dword [eax], 6
jmp 0x4ef828
cmp byte [esp + 0x64], 0xf
jmp 0x4f1fde
cmp edx, 0x24
je 0x4f21a2
cmp edx, 0x40
je 0x4f21a2
cmp edx, 0x60
je 0x4f21a2
cmp edx, 0xa0
jb 0x4f2211
cmp edx, 0xd7ff
jbe 0x4f21a2
cmp edx, 0xe000
jae 0x4f21a2
xor eax, eax
cmp eax, ebx
jmp 0x4f1fde
mov ax, word [edi*4 + 0x6a3ec0]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [esi + 4]
sete cl
cmp ecx, ebx
jmp 0x4f1fde
movzx ecx, word [esi + 4]
movzx edx, word [edi*4 + 0x6a3ec2]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x4f2264
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6a3368]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x4f1fde
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f22c6
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f22af
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test edi, edi
je 0x4f2306
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2306
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push edi
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push ecx
call fcn.00521560
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebx + 0x54]
jb case.0x4f1af8.10
movzx ecx, word [ebx + 0x3c]
mov edx, ecx
test cx, cx
je case.0x4f1af8.10
cmp eax, dword [ebx + 0x5c]
ja 0x4f2347
cmp dword [ebx + 0x24], 0
je case.0x4f1af8.10
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4ef830
mov ecx, dword [esp + 0x10]
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], esi
jmp 0x4f245e
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
mov dword [ecx + 0x24], eax
cmp word [esi], 0x5c
setne dl
add esi, 4
mov dword [esp + 0x18], edx
mov dword [ecx], esi
jmp 0x4f245a
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f245a
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f245a
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x4f245a
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx], esi
jmp 0x4f245a
movzx ecx, word [esi]
add esi, 2
mov edx, dword [esp + 0x10]
mov eax, dword [ecx*4 + str.NOTEMPTY_ATSTART_]
mov dword [edx], esi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x6a16a8]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x6a16d4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
movzx ebx, word [esi]
lea ecx, [esi + 2]
mov dword [eax + 0x28], ebx
mov dword [eax], ecx
cmp ebx, 0x10
je 0x4f2478
cmp ebx, 0xf
je 0x4f2478
or ebp, 0xffffffff
jmp 0x4f2491
movzx ebp, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [edx + 0x2c], eax
lea eax, [ecx + 2]
mov dword [edx], eax
mov eax, edx
mov edi, dword [eax + 0x20]
mov dword [esp + 0x38], ebp
test edi, edi
je 0x4f2c5c
test ebp, ebp
js 0x4f3201
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x64], eax
cmp ebp, 0xd
ja case.0x4f75d2.15
jmp dword [ebp*4 + 0x4f9cfc]
cmp ebx, 0xf
je 0x4efabb
mov esi, dword [esp + 0x14]
mov edx, 1
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f2521
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebx + 0x38], ecx
test esi, esi
je 0x4f2513
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2513
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x4f24e0
mov eax, dword [esp + 0x10]
jmp 0x4f2c60
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f253f
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2624
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f25c3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f25c3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f25c7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6a3eb9]
cmp al, 9
je 0x4f25fe
cmp al, 5
je 0x4f25fe
cmp al, 8
je 0x4f25fe
xor eax, eax
jmp 0x4f2603
mov eax, 1
cmp eax, edi
je 0x4efb0a
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2570
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2642
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2716
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f26b9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f26b9
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f26bd
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efb0a
inc esi
cmp esi, edi
jbe 0x4f2666
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2734
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2809
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f27b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f27b3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f27b7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efb0a
inc esi
cmp esi, edi
jbe 0x4f2760
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2827
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f28f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f28a3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f28a3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f28a7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb8]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efb0a
inc esi
cmp esi, edi
jbe 0x4f2850
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2917
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2a16
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2991
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2991
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x6a3eb8]
cmp eax, ecx
je 0x4f29f0
movzx edx, word [edx*4 + 0x6a3ec0]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x6a3bc0], eax
jne 0x4f29f0
xor eax, eax
jmp 0x4f29f5
mov eax, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
je 0x4f0ecb
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f2940
mov esi, dword [esp + 0x14]
mov edx, ebx
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2a34
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop dword [eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2b1a
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2ab3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2ab3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2ab7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f2af4
cmp eax, 3
je 0x4f2af4
xor eax, eax
jmp 0x4f2af9
mov eax, 1
cmp eax, edi
je 0x4efb0a
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2a60
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2b38
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov esi, 1
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x4f2cf0
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2bb7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2bb7
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2bbb
mov edx, dword [esp + 0x10]
cmp ecx, 0x20
ja 0x4f2bd5
je case.0x4f2ce1.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f2ce1.8203
jmp dword [eax*4 + 0x4f9d34]
cmp ecx, 0x2000
ja 0x4f2cbd
je case.0x4f2ce1.8193
cmp ecx, 0x1680
ja 0x4f2cb2
je case.0x4f2ce1.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f2ce1.8193
sub eax, 0x1b
je case.0x4f2ce1.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
cmp dword [eax*4 + 0x6bf9c0], 6
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efabb
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2b60
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov dword [esp + 0x68], edi
cmp edi, ebx
je 0x4ef828
cmp dword [esp + 0x18], 0
je 0x4f9197
mov esi, dword [eax + 0x38]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], esi
mov ebp, dword [eax + 0x28]
test ecx, ecx
js 0x4f4fcf
xor eax, eax
cmp ebp, 0xf
sete al
mov dword [esp + 0x64], eax
cmp ecx, 0xd
ja case.0x4f75d2.15
jmp dword [ecx*4 + 0x4f9d48]
cmp ecx, 0x180e
jmp 0x4f2c09
cmp ecx, 0x3000
ja case.0x4f2ce1.8203
je case.0x4f2ce1.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f2ce1.8203
movzx eax, byte [eax + 0x4f9d88]
jmp dword [eax*4 + 0x4f9d80]
cmp ebx, 0xf
jmp 0x4f2c48
mov ebx, ecx
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2d10
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f2de7
movzx edx, word [ecx]
mov ebx, eax
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x4f2d87
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2d87
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f2dcb
cmp eax, 3
je 0x4f2dcb
cmp edx, 0x5f
je 0x4f2dcb
xor eax, eax
jmp 0x4f2dd0
mov eax, 1
cmp eax, edi
je 0x4efabb
inc esi
cmp esi, dword [ebx + 0x20]
jbe 0x4f2d34
jmp 0x4f2c58
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f2e05
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x14]
mov esi, 1
nop dword [eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x4f2ed6
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f2e86
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2e82
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x6a38f0]
lea eax, [eax*4 + 0x6a38f0]
cmp ecx, edx
jb 0x4f2ead
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f2ecb
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f2ea0
cmp ebx, 0xf
jne case.0x4ef855.162
mov eax, dword [esp + 0x10]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f2e30
mov esi, edi
jmp 0x4f2c60
cmp ebx, 0xf
je case.0x4ef855.162
jmp 0x4f2eb6
mov ebx, ecx
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f2ef6
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2fc8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2f73
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2f73
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2f77
mov edx, dword [esp + 0x10]
cmp ecx, 0x24
je 0x4f2fa2
cmp ecx, 0x40
je 0x4f2fa2
cmp ecx, 0x60
je 0x4f2fa2
cmp ecx, 0xa0
jb 0x4f2f96
cmp ecx, 0xd7ff
jbe 0x4f2fa2
cmp ecx, 0xe000
jae 0x4f2fa2
xor eax, eax
jmp 0x4f2fa7
mov eax, 1
cmp eax, edi
je 0x4efb0a
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2f20
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2fe6
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f30bc
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f3063
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3063
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f3067
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6a3ec0]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efb0a
inc esi
cmp esi, edi
jbe 0x4f3010
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f30da
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f31c8
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x4f3155
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3151
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6a3ec2]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6a3368]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x64]
je 0x4efb0a
inc esi
cmp esi, edi
jbe 0x4f3100
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f31e6
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
cmp ebx, 0x16
jne 0x4f3301
lea edi, [ebx - 0x15]
nop dword [eax]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f32c8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f3263
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3263
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push dword [esp + 0x18]
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push ecx
call fcn.00521560
mov ebx, dword [esp + 0x28]
add esp, 0x18
mov esi, dword [esp + 0x78]
mov dword [ebx + 0x38], eax
cmp eax, dword [esi + 0x54]
jb 0x4f32af
movzx ecx, word [esi + 0x3c]
mov edx, ecx
test cx, cx
je 0x4f32af
cmp eax, dword [esi + 0x5c]
ja 0x4f329f
cmp dword [esi + 0x24], 0
je 0x4f32af
mov dword [esi + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov eax, dword [esp + 0x10]
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x4f3210
mov edx, esi
mov esi, dword [esp + 0x14]
jmp 0x4f2c64
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efb0a
cmp edx, dword [ebx + 0x5c]
ja 0x4f32e6
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x4f75d2.15
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4f3d24
jmp dword [eax*4 + 0x4f9de8]
jmp dword [eax*4 + 0x4f9f28]
cmp edi, ebx
jae 0x4f45f0
mov ecx, 1
cmp esi, dword [edx + 0x54]
jae 0x4f45f9
cmp dword [esp + 0x14], 0
je 0x4f45dc
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [esp + 0x4c]
mov eax, 2
cmove ecx, eax
cmp ebp, 0xf
je 0x4f45f0
mov eax, dword [esp + 0x10]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x4f45b6
mov ebp, dword [esp + 0x78]
jmp 0x4f4fb7
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f4fb5
cmp esi, dword [ebx + 0x5c]
ja 0x4f461b
cmp dword [ebx + 0x24], 0
je 0x4f4fb5
mov dword [ebx + 0x1c], 1
jmp 0x4f4fac
mov ebp, dword [esp + 0x78]
cmp edi, ebx
jae 0x4f4fb7
mov ebx, dword [esp + 0x64]
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x4f46e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4685
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4685
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6a3eb9]
cmp al, 9
je 0x4f46bc
cmp al, 5
je 0x4f46bc
cmp al, 8
je 0x4f46bc
xor eax, eax
jmp 0x4f46c1
mov eax, 1
cmp eax, ebx
je 0x4f4fb7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x4f4640
jmp 0x4f4fb7
mov ebx, ebp
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f4fb5
cmp esi, dword [ebx + 0x5c]
ja 0x4f4702
cmp dword [ebx + 0x24], 0
je 0x4f4fb5
mov dword [ebx + 0x1c], edx
jmp 0x4f4fac
cmp edi, ebx
jae 0x4f45f0
mov ebp, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f47c2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4769
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4769
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f45f0
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f4720
mov ebp, dword [esp + 0x78]
jmp 0x4f4fb7
mov ebx, eax
jmp 0x4f46e4
cmp edi, ebx
jae 0x4f45f0
mov ebp, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f47c2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4825
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4825
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f45f0
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f47e0
mov ebp, dword [esp + 0x78]
jmp 0x4f4fb7
cmp edi, ebx
jae 0x4f45f0
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f47c2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f48cc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f48cc
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb8]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f45f0
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f4883
mov ebp, dword [esp + 0x78]
jmp 0x4f4fb7
cmp edi, ebx
jae 0x4f45f0
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
nop
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f4f8f
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4975
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4975
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x6a3eb8]
cmp eax, ecx
je 0x4f49d4
movzx edx, word [edx*4 + 0x6a3ec0]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x6a3bc0], eax
jne 0x4f49d4
xor eax, eax
jmp 0x4f49d9
mov eax, 1
cmp eax, ebx
je 0x4f45f0
mov eax, dword [esp + 0x10]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x78]
inc ebp
mov dword [eax + 0x38], esi
cmp ebp, dword [eax + 0x24]
jb 0x4f4930
mov ebp, edx
jmp 0x4f4fb7
mov ebp, dword [esp + 0x78]
cmp edi, ebx
jae 0x4f4fb7
mov ebx, dword [esp + 0x64]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x4f46e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4a55
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4a55
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f4a92
cmp eax, 3
je 0x4f4a92
xor eax, eax
jmp 0x4f4a97
mov eax, 1
cmp eax, ebx
je 0x4f4fb7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x4f4a10
jmp 0x4f4fb7
cmp edi, ebx
jae 0x4f45f0
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f47c2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4b0d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4b0d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x20
ja 0x4f4b27
je case.0x4f4bde.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f4bde.8203
jmp dword [eax*4 + 0x4fa068]
cmp ecx, 0x2000
ja 0x4f4bc2
je case.0x4f4bde.8193
cmp ecx, 0x1680
ja 0x4f4bba
je case.0x4f4bde.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f4bde.8193
sub eax, 0x1b
je case.0x4f4bde.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
cmp dword [eax*4 + 0x6bf9c0], 6
sete cl
cmp ecx, ebx
je 0x4f45f0
mov ecx, dword [esp + 0x10]
lea eax, [edx + edx]
inc edi
add dword [ecx + 0x38], eax
mov esi, dword [ecx + 0x38]
cmp edi, dword [ecx + 0x24]
jb 0x4f4ac4
mov ebp, dword [esp + 0x78]
jmp 0x4f4fb7
cmp ecx, 0x180e
jmp 0x4f4b57
cmp ecx, 0x3000
ja case.0x4f4bde.8203
je case.0x4f4bde.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f4bde.8203
movzx eax, byte [eax + 0x4fa084]
jmp dword [eax*4 + 0x4fa07c]
cmp ebp, 0xf
jmp 0x4f4b94
cmp edi, ebx
jae 0x4f45f0
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
nop word [eax + eax]
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f4f8f
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x4f4c45
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4c45
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f4c89
cmp eax, 3
je 0x4f4c89
cmp edx, 0x5f
je 0x4f4c89
xor eax, eax
jmp 0x4f4c8e
mov eax, 1
cmp eax, ebx
je 0x4f45f0
mov eax, dword [esp + 0x10]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x78]
inc ebp
mov dword [eax + 0x38], esi
cmp ebp, dword [eax + 0x24]
jb 0x4f4c00
mov ebp, edx
jmp 0x4f4fb7
cmp edi, ebx
jae 0x4f45f0
mov ebx, dword [esp + 0x10]
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f4f8f
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4d06
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4d06
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax*4 + 0x6a38f0]
lea eax, [eax*4 + 0x6a38f0]
cmp ecx, edx
jb 0x4f4d2d
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f4d5c
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f4d20
cmp ebp, 0xf
jne 0x4f45f0
mov edx, dword [esp + 0x78]
lea eax, [edi + edi]
add dword [ebx + 0x38], eax
mov eax, dword [esp + 0x68]
mov esi, dword [ebx + 0x38]
inc eax
mov dword [esp + 0x68], eax
cmp eax, dword [ebx + 0x24]
jb 0x4f4cc1
mov ebp, edx
jmp 0x4f4fb7
cmp ebp, 0xf
je 0x4f45f0
jmp 0x4f4d36
mov ebp, dword [esp + 0x78]
cmp edi, ebx
jae 0x4f4fb7
mov ebx, dword [esp + 0x64]
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x4f46e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4dc5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4dc5
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x4f4df0
cmp ecx, 0x40
je 0x4f4df0
cmp ecx, 0x60
je 0x4f4df0
cmp ecx, 0xa0
jb 0x4f4de4
cmp ecx, 0xd7ff
jbe 0x4f4df0
cmp ecx, 0xe000
jae 0x4f4df0
xor eax, eax
jmp 0x4f4df5
mov eax, 1
cmp eax, ebx
je 0x4f4fb7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x4f4d80
jmp 0x4f4fb7
cmp edi, ebx
jae 0x4f45f0
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f47c2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4e6b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4e6b
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6a3ec0]
shr eax, 0xb
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f45f0
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f4e22
mov ebp, dword [esp + 0x78]
jmp 0x4f4fb7
cmp edi, ebx
jae 0x4f45f0
mov ebp, dword [esp + 0x10]
nop dword [eax]
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f4f8f
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x4f4f15
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4f15
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov ecx, dword [ebp + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6a3ec2]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6a3368]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x64]
je 0x4f45f0
mov eax, dword [esp + 0x68]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x78]
inc eax
mov dword [ebp + 0x38], esi
mov dword [esp + 0x68], eax
cmp eax, ebx
jb 0x4f4ed0
mov ebp, edx
jmp 0x4f4fb7
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f4fb5
cmp esi, dword [ebx + 0x5c]
ja 0x4f4fa9
cmp dword [ebx + 0x24], 0
je 0x4f4fb5
mov dword [ebx + 0x1c], edi
cmp ecx, 1
ja 0x4efb99
mov ebp, ebx
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4ef830
mov ebp, dword [esp + 0x10]
jmp 0x4f8c05
cmp ebp, 0x16
jne 0x4f50c7
cmp edi, ebx
jae 0x4f50af
mov ebx, dword [esp + 0x78]
jmp 0x4f4fea
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f5089
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov ebp, dword [esp + 0x10]
mov dword [eax + 0x38], edx
je 0x4f5039
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5039
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebp + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x18]
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push ecx
call fcn.00521560
add esp, 0x18
mov dword [ebp + 0x38], eax
cmp eax, dword [ebx + 0x54]
jb 0x4f507d
movzx ecx, word [ebx + 0x3c]
mov edx, ecx
test cx, cx
je 0x4f507d
cmp eax, dword [ebx + 0x5c]
ja 0x4f506d
cmp dword [ebx + 0x24], 0
je 0x4f507d
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x4f4fe6
jmp 0x4f50b3
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f50af
cmp edx, dword [ebx + 0x5c]
ja 0x4f509f
cmp dword [ebx + 0x24], 0
je 0x4f50af
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4f6320
jmp 0x4f9105
lea eax, [ebp - 6]
cmp eax, 0xf
ja case.0x4f75d2.15
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x4f5878
jmp dword [eax*4 + 0x4fa0e4]
jmp dword [eax*4 + 0x4fa19c]
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp bl, 0x74
mov ebx, dword [esp + 0x78]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [ebx + 0x42]
movzx ecx, word [esi + 2]
movzx edx, word [esi + 4]
imul ecx, eax
mov eax, dword [ebx + 0x44]
lea ecx, [eax + ecx*2]
lea eax, [esi + 6]
mov dword [ebp], eax
test edx, edx
je 0x4f609e
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp + 0x50]
jae 0x4f606a
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x4f609e
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x4f6050
jmp 0x4f609e
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp bl, 0x72
mov ebx, dword [esp + 0x78]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [esi + 2]
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
lea eax, [esi + 4]
mov dword [ebp], eax
mov esi, dword [ebp]
movzx ecx, word [esi]
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x4f60b7
movzx eax, byte [eax + 0x4fa2d4]
jmp dword [eax*4 + 0x4fa2cc]
mov edx, dword [ecx*4 + 0x6a1648]
lea eax, [esi + 2]
mov dword [ebp], eax
mov eax, dword [ecx*4 + 0x6a1674]
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x24], eax
mov eax, dword [ecx*4 + 0x6a16a0]
mov dword [esp + 0x18], eax
jmp 0x4f6112
movzx edx, word [esi + 2]
mov dword [ebp + 0x20], edx
movzx ecx, word [esi + 4]
mov dword [ebp + 0x24], ecx
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x6a16a0]
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x4f610c
mov dword [ebp + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [ebp], eax
mov esi, dword [ebp + 0x14]
cmp esi, dword [ebp + 0x50]
jae 0x4f612f
mov eax, dword [ebp + esi*4 + 0x54]
cmp eax, 0xffffffff
je 0x4f612f
cmp eax, dword [ebp + esi*4 + 0x58]
je 0x4f6320
jmp 0x4f6144
test edx, edx
je 0x4f6320
test dword [ebx + 0x7c], 0x200
jne 0x4f6320
mov edi, 1
cmp edx, edi
jb 0x4f617c
nop dword [eax]
lea eax, [esp + 0x50]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push esi
call fcn.004fa890
add esp, 0x14
test eax, eax
jne 0x4f6214
mov eax, dword [esp + 0x50]
inc edi
add eax, eax
add dword [ebp + 0x38], eax
mov edx, dword [ebp + 0x20]
cmp edi, edx
jbe 0x4f6150
mov ebx, dword [ebp + 0x24]
mov edi, dword [esp + 0x14]
cmp edx, ebx
je 0x4f6320
cmp dword [esp + 0x18], 0
je 0x4f924c
mov ecx, dword [esp + 0x10]
mov ebp, 1
mov eax, dword [ecx + 0x38]
mov dword [ecx + 4], eax
mov edi, dword [ecx + esi*4 + 0x58]
sub edi, dword [ecx + esi*4 + 0x54]
mov dword [esp + 0x68], eax
mov dword [ecx + 0xc], edi
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x64], eax
cmp eax, ebx
jae 0x4f71bf
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x7c]
push ecx
push dword [ecx + 0x28]
push esi
call fcn.004fa890
add esp, 0x14
test eax, eax
jne 0x4f6261
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, edi
cmovne ebp, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ebx
jb 0x4f61c3
jmp 0x4f6294
jle 0x4f621c
mov eax, dword [ebx + 0x54]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4efb0a
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efb0a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f6246
cmp dword [ebx + 0x24], 0
je 0x4efb0a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
jle 0x4f6290
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f628a
mov eax, dword [ebx + 0x54]
cmp eax, dword [ebx + 0x5c]
jbe 0x4f628a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov eax, dword [esp + 0x64]
jmp 0x4f6298
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
test ebp, ebp
mov ebp, dword [esp + 0x10]
jne 0x4f71c7
mov dword [ebp + 0x24], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x4f973a
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fa890
add esp, 0x14
test eax, eax
je 0x4f6315
jle 0x4f62d4
mov eax, dword [ebx + 0x54]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb case.0x4f6ea6.999
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f62fe
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebp + 0x38], eax
nop
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [ecx], esi
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
mov esi, eax
mov dword [ecx], eax
cmp word [esi], 0x78
je 0x4f6332
add eax, 4
mov dword [ecx], eax
jmp 0x4ef830
cmp dword [ebp + 0x20], 0
mov ebp, dword [esp + 0x10]
jne 0x4f6361
cmp dword [ebp + 0x18], 0
jne 0x4f6ddb
xor ecx, ecx
jmp 0x4f954c
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ebp
push ebx
call fcn.004ef600
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x4ef855.162
js 0x4f6ca4
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x4ef830
movzx eax, word [esi + 2]
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0xc], eax
cmp word [esi + eax*2], 0x78
je 0x4f63b0
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
add esi, 4
mov dword [ebp], esi
movzx eax, word [esi]
cmp eax, 0x76
je 0x4f63c3
cmp eax, 0x77
jne 0x4f63fb
mov ebx, dword [esp + 0x78]
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
call fcn.004ef600
mov esi, eax
add esp, 0xc
test esi, esi
jle 0x4f63e3
xor esi, esi
jmp case.0x4f6ea6.998
js case.0x4f6ea6.998
mov ecx, dword [esp + 0x28]
lea eax, [ecx + ecx]
add dword [ebp], eax
mov esi, dword [ebp]
sub dword [ebp + 0xc], ecx
jmp 0x4f63ff
mov ebx, dword [esp + 0x78]
movzx ecx, word [esi]
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x4f6418.150
movzx eax, byte [eax + 0x4fa2f8]
jmp dword [eax*4 + 0x4fa2dc]
mov ecx, dword [ebp + 0x44]
cmp ecx, 0xffffffff
je case.0x4f6418.148
movzx eax, word [esi + 2]
cmp eax, 0xffff
je case.0x4f6418.149
cmp eax, ecx
je case.0x4f6418.149
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp byte [ebp + 0x31], 0x8f
jne 0x4ef828
mov eax, 0x2008f
mov byte [ebp + 0x30], 0x23
mov dword [esp + 0x20], eax
jmp 0x4f973a
mov edi, dword [ebp + 0x44]
cmp edi, 0xffffffff
je case.0x4f6418.148
movzx ebx, word [ebx + 0x42]
movzx ecx, word [esi + 2]
mov eax, dword [esp + 0x78]
movzx edx, word [esi + 4]
imul ecx, ebx
mov eax, dword [eax + 0x44]
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x4f6418.148
mov esi, ebx
nop dword [eax]
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x4f64c0
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x4f6490
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebp
jmp case.0x4f6418.148
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
movzx eax, word [ecx]
mov dword [esp + 0x10], ebp
movzx eax, byte [eax + 0x6bf820]
jmp 0x4f6444
movzx eax, word [esi + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebp + 0x50]
jae case.0x4f6418.148
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
je case.0x4f6418.148
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
jmp 0x4f6444
movzx edi, word [ebx + 0x42]
movzx ecx, word [esi + 2]
mov eax, dword [ebx + 0x44]
movzx edx, word [esi + 4]
imul ecx, edi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x4f6418.148
mov ebx, dword [ebp + 0x50]
mov esi, edi
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, ebx
jae 0x4f655b
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne case.0x4f6418.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x4f6541
jmp case.0x4f6418.148
movzx edx, word [esi + 2]
mov ebx, dword [esp + 0x10]
test edi, edi
je 0x4f65ac
test edx, edx
je 0x4f65c6
mov esi, 0xfc00
nop dword [eax]
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.0x4ef855.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, si
cmp ax, word [esp + 0x30]
jne 0x4f65a6
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x4f6580
jmp 0x4f65c6
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.0x4ef855.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x5c]
jae 0x4f65d1
mov dword [ebp + 0x5c], eax
add dword [ebx], 4
jmp 0x4ef830
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov dword [eax], esi
cmp word [esi], 0x78
je case.0x4ef855.120
jmp 0x4ef830
movzx eax, word [esi + 2]
mov ecx, 0x86
add eax, eax
sub esi, eax
movzx eax, word [esi]
cmp ax, cx
je 0x4f667e
mov ecx, 0x8a
cmp ax, cx
je 0x4f667e
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax + 0x18]
add ecx, dword [ebp + 0x4c]
mov edi, ecx
mov dword [esp + 0x1c], ecx
sub edi, edx
mov eax, dword [edi + 0x4c]
mov dword [ebp + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x4f668c
mov eax, dword [ebp + 0x50]
shl eax, 2
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00526230
mov eax, dword [ebp + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
mov eax, dword [ebp + 0x40]
mov dword [edi + 0x40], eax
mov eax, ebp
sub eax, edi
mov dword [ebp + 0x10], eax
mov edi, dword [esp + 0x14]
mov esi, 1
jmp 0x4f6ca4
mov ebp, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
movzx eax, word [esi]
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x4f66a2.134
movzx eax, byte [eax + 0x4fa328]
jmp dword [eax*4 + 0x4fa30c]
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4f66b8
mov dword [ebx + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebp + 0x38], eax
jmp 0x4f67af
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4f66d2
mov dword [ebx + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebp + 0x38], eax
jmp 0x4f66de
mov ebx, dword [esp + 0x78]
mov eax, ebp
sub eax, edi
mov dword [ebp + 0x10], eax
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
cmp word [eax + ecx], 0x78
jne 0x4f67af
add eax, ecx
mov ecx, eax
mov dword [edi], eax
movzx eax, word [eax + 2]
add eax, eax
cmp word [ecx + eax], 0x78
je 0x4f66f8
jmp 0x4f67af
push dword [esp + 0x14]
push dword [ebp + 0x38]
push dword [edi + 0x38]
call fcn.00521750
mov ebx, dword [esp + 0x84]
add esp, 0xc
test eax, eax
jne 0x4f67af
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
movzx eax, word [esi + 4]
cmp dword [ebp + 0x44], eax
jne 0x4f677c
mov esi, ecx
sub esi, edx
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00526230
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebp + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebp + 0x44], eax
mov eax, dword [esi]
add eax, 4
jmp 0x4ef825
mov ebx, dword [esp + 0x78]
lea edx, [eax + eax]
mov dword [ebp + 0x48], eax
lea ecx, [edx - 2]
mov eax, dword [edi + 0x38]
sub eax, dword [ebx + 0x4c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x54], eax
mov eax, dword [ebp + 0x38]
sub eax, dword [ebx + 0x4c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x58], eax
cmp ecx, dword [ebp + 0x50]
jb 0x4f67af
mov dword [ebp + 0x50], edx
jmp 0x4f67af
mov ebx, dword [esp + 0x78]
mov edx, dword [ebp]
cmp word [edx], 0x7c
jne 0x4f67da
push dword [esp + 0x44]
lea eax, [ebp + 0x38]
push eax
lea eax, [edi + 0x38]
push eax
call fcn.00526230
mov edi, dword [esp + 0x20]
add esp, 0xc
mov esi, 0xfffffc1a
jmp case.0x4f6ea6.998
mov cl, byte [ebp + 0x31]
cmp cl, 0x79
je 0x4f67f6
test edi, edi
je 0x4f920e
mov eax, dword [ebp + 0x38]
cmp eax, dword [edi + 0x38]
jne 0x4f920e
add dword [ebp], 4
jmp 0x4ef828
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x4c]
jne case.0x4f6ea6.999
test byte [ebx + 0x78], 1
jne case.0x4f6ea6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [ecx], eax
jmp 0x4ef830
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x4c]
je 0x4f681d
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
test byte [ebx + 0x78], 2
je 0x4f6851
xor esi, esi
jmp case.0x4f6ea6.998
test byte [ebx + 0x7c], 0x10
jne 0x4f6896
mov ebp, ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x4f6911
mov eax, dword [ebp + 0x88]
lea esi, [ebp + 0x8c]
test eax, eax
je 0x4f68d0
push edi
push esi
push ecx
push eax
push edx
call fcn.0051fb30
add esp, 0x14
test eax, eax
je 0x4f693a
jmp 0x4f6903
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebx + 0x54]
jae 0x4f68a9
xor esi, esi
jmp case.0x4f6ea6.998
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f68c4
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
add dword [edx], 2
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov edi, dword [esi]
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x4f6934
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x4f6934
cmp edi, 1
je 0x4f68ff
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
jne 0x4f6934
lea esi, [ebp + 0x8c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esi]
mov eax, dword [ebp + 0x54]
add ecx, ecx
sub eax, ecx
cmp dword [ebx + 0x38], eax
jne 0x4f693a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f692c
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
add dword [ebx], 2
jmp 0x4ef830
lea esi, [ebp + 0x8c]
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x4f0165
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esp + 0x78]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x54]
jb 0x4f0169
cmp dword [ebx + 0x88], 0
jne 0x4f0169
cmp dword [esi], 2
jne 0x4f0169
mov ax, word [ecx]
cmp ax, word [ebx + 0x90]
jne 0x4f0169
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x10]
je 0x4f69b3
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
je case.0x4ef855.162
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x4f6a4c
cmp ecx, dword [ebp + 0x54]
jne 0x4f69d3
test dword [ebp + 0x7c], 0x200000
je 0x4efabb
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x4f6a10
cmp ecx, edx
jbe 0x4f69ff
push edi
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0051fbf0
add esp, 0x14
test eax, eax
je 0x4f69ff
mov eax, 1
jmp 0x4f6a01
xor eax, eax
test eax, eax
jne 0x4f6a4c
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x4f6ca4
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb 0x4efabb
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne 0x4efabb
cmp edi, 1
je 0x4f6a4c
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
jne 0x4efabb
add dword [ebx], 2
jmp 0x4ef82c
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x4f6b1c
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x4f6a8d
push edi
lea eax, [ebp + 0x8c]
push eax
push ecx
push esi
push edx
call fcn.0051fb30
add esp, 0x14
test eax, eax
jne 0x4f692c
jmp 0x4f6ac2
mov esi, dword [ebp + 0x8c]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f6ac2
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x4f6ac2
cmp esi, 1
je 0x4f692c
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x4f692c
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x4f6b11
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esp + 0x78]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x54]
jb 0x4f6b15
cmp dword [ebx + 0x88], 0
jne 0x4f6b15
cmp dword [ebx + 0x8c], 2
jne 0x4f6b15
mov ax, word [ecx]
cmp ax, word [ebx + 0x90]
jne 0x4f6b15
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
xor esi, esi
jmp case.0x4f6ea6.998
test byte [ebp + 0x78], 2
jne case.0x4ef855.162
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f692c
cmp edx, dword [ebp + 0x5c]
ja 0x4f691c
cmp dword [ebp + 0x24], 0
jmp 0x4f691a
mov ebx, dword [esp + 0x78]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x4c]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x38], eax
je 0x4f681d
xor esi, esi
jmp case.0x4f6ea6.998
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x4ef830
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x4f6c4a
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test edi, edi
je 0x4f6bd7
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f6bac
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6bd7
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp edx, dword [ebp + 0x5c]
jae 0x4f6bdf
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x4f6c32
cmp ecx, 0x5f
jne 0x4f6bf2
lea edi, [ecx - 0x5e]
jmp 0x4f6c4c
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f6c2b
cmp eax, 3
jne 0x4f6c4a
mov edi, 1
jmp 0x4f6c4c
cmp ecx, 0xff
ja 0x4f6c4a
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x4f6c4a
mov edi, 1
jmp 0x4f6c4c
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x4f6cf4
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x4f6c80
cmp ecx, dword [ebp + 0x5c]
ja 0x4f6c70
cmp dword [ebp + 0x24], 0
je 0x4f6c80
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor edx, edx
mov eax, dword [ebx]
xor edx, edi
movzx ecx, word [eax]
add eax, 2
mov dword [ebx], eax
cmp ecx, 5
jne 0x4f6c96
xor edx, 1
mov edi, dword [esp + 0x14]
test edx, edx
je 0x4ef830
xor esi, esi
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4f6cb7
mov dword [ebx + 0x60], eax
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x4f98de
sub ebp, dword [ebp + 0x10]
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x10], ebp
or dword [eax + 0x3c], 2
movzx eax, byte [ebp + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x4f75d2.15
movzx eax, byte [eax + 0x4fa434]
jmp dword [eax*4 + 0x4fa33c]
cmp dword [esp + 0x14], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x4f6d42
cmp edx, eax
jae 0x4f6d16
mov ax, word [edx]
and ax, word [esp + 0x34]
cmp ax, word [esp + 0x30]
jne 0x4f6d16
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6d45
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x4f6d45
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x4f6d4d
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x4f6daa
cmp ecx, 0x5f
jne 0x4f6d63
lea edx, [ecx - 0x5e]
jmp 0x4f6c82
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f6da0
cmp eax, 3
jne 0x4f6c80
mov edx, 1
jmp 0x4f6c82
cmp ecx, 0xff
ja 0x4f6c80
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x4f6c80
mov edx, 1
jmp 0x4f6c82
test esi, esi
jne case.0x4f6ea6.998
mov esi, dword [ebp + 4]
mov dword [ebp], esi
movzx eax, word [esi + 2]
lea ecx, [esi + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
mov eax, dword [ebp]
movzx eax, word [eax]
mov al, byte [eax + 0x6bf820]
movzx eax, al
je 0x4f922c
lea eax, [esi + eax*2]
jmp 0x4ef825
cmp esi, 0xfffffc1f
jne 0x4f6e2d
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x6c], eax
jae case.0x4f6ea6.998
cmp word [ecx], 0x78
je 0x4f6e35
cmp word [eax], 0x78
jmp 0x4f6e2f
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f954f
xor esi, esi
jmp case.0x4f6ea6.998
cmp esi, 0xfffffc19
je 0x4f8f0e
test esi, esi
je 0x4f6e6f
cmp esi, 0xfffffc1f
jne case.0x4f6ea6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f95ff
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jg 0x4f6ead
je case.0x4f6ea6.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x4f6ea6.998
jmp dword [eax*4 + 0x4fa518]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x4f6cac
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jg 0x4f6ee3
je case.0x4f6edc.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x4f6ea6.998
jmp dword [eax*4 + 0x4fa534]
mov eax, esi
sub eax, 1
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0x20]
test eax, eax
je case.0x4f6418.148
mov ecx, dword [ebp]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f6f00
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
jmp 0x4f6444
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebp], ecx
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
test esi, esi
je 0x4f67f6
jmp case.0x4f6ea6.998
cmp esi, 0xfffffc1a
jne 0x4f6f82
mov dword [ebp + 0x24], 1
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4f9238
mov ecx, dword [ebp]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f6f70
jmp 0x4f6fc8
cmp esi, 0xfffffc1f
jne 0x4f6fa9
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x6c], eax
jae case.0x4f6ea6.998
cmp word [ecx], 0x78
je 0x4f6fb1
cmp word [eax], 0x78
jmp 0x4f6fab
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f9510
cmp dword [ebp + 0x24], 0
jne 0x4f6ff6
cmp dword [ebp + 0x28], 0
jne 0x4f6ff6
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x4f6fe6
lea eax, [ecx + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
test esi, esi
jne case.0x4f6ea6.998
add dword [ebp], 2
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov edx, dword [ebp + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x4f7064
mov eax, dword [ebp + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x74], eax
jne 0x4f7064
cmp esi, 0xfffffc1f
jne case.0x4f6ea6.999
cmp dword [ebx + 0x6c], ecx
jae case.0x4f6ea6.999
cmp word [edx], 0x78
je 0x4f706c
cmp word [ecx], 0x78
je 0x4f706c
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x4f95d2
xor esi, esi
jmp case.0x4f6ea6.998
cmp esi, 0xfffffc1e
jne case.0x4f6ea6.998
mov eax, dword [ebp]
push dword [ebx + 0x70]
add eax, 4
push eax
call fcn.0051e000
add esp, 8
test eax, eax
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x70], eax
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0x44]
mov esi, 0xfffffc1c
mov dword [ebx + 0x74], eax
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x74], eax
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp]
mov esi, 0xfffffc1e
add eax, 4
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x74], eax
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp]
mov esi, 0xfffffc1f
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x74], eax
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.998
lea eax, [esp + 0x58]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fa890
add esp, 0x14
test eax, eax
je 0x4f9243
jle 0x4f716a
mov eax, dword [ebx + 0x54]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb case.0x4f6ea6.999
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f7194
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0xc]
neg eax
add eax, eax
add dword [ebp + 0x38], eax
jmp 0x4f71c7
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb 0x4efb0a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x15
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov esi, dword [ebp + 4]
cmp dword [ebp + 0x38], esi
jne 0x4f9258
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7254
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f723d
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x4f727e
cmp byte [ebp + 0x31], 0x6e
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x4f973a
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f726f
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
add dword [ebp + 0x38], 0xfffffffe
jmp 0x4f1399
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f7303
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f72ec
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je 0x4f7314
cmp dword [ebp + 0x2c], eax
jne case.0x4f6ea6.999
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x4f973a
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
je 0x4f0810
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x54]
jb 0x4f7391
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp esi, dword [ebx + 0x5c]
ja 0x4f737a
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
jne case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x4f973e
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
je 0x4f0926
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f7419
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f7402
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je case.0x4f6ea6.999
cmp dword [ebp + 0x2c], eax
je case.0x4f6ea6.999
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x1e
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x54]
jb 0x4f74be
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp esi, dword [ebx + 0x5c]
ja 0x4f74a7
cmp dword [ebx + 0x24], 0
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4f92a3
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x54]
cmp edx, ecx
jb 0x4f7558
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7541
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
cmp dword [ebp + 0x28], 0xc
jne 0x4f75b7
mov eax, dword [ebx + 0x88]
lea esi, [ebx + 0x8c]
test eax, eax
je 0x4f7586
push edi
push esi
push ecx
push eax
push edx
call fcn.0051fb30
add esp, 0x14
test eax, eax
je 0x4f75b7
xor esi, esi
jmp case.0x4f6ea6.998
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f75b7
mov ax, word [edx]
cmp ax, word [ebx + 0x90]
jne 0x4f75b7
cmp esi, 1
je case.0x4f6ea6.999
mov ax, word [edx + 2]
cmp ax, word [ebx + 0x92]
je case.0x4f6ea6.999
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax]
lea esi, [eax + 2]
mov dword [ebp + 0x38], esi
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f75d2.15
jmp dword [eax*4 + 0x4fa550]
cmp ecx, 0x85
ja 0x4f75f6
je case.0x4f75ef.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f6ea6.999
jmp dword [ecx*4 + 0x4fa590]
sub ecx, 0x2028
je case.0x4f75ef.11
sub ecx, 1
jne case.0x4f6ea6.999
cmp word [ebx + 0x3e], 2
jne case.0x4f75d2.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x2000
ja 0x4f766d
je case.0x4f6ea6.999
cmp ecx, 0xa0
ja 0x4f764e
je case.0x4f6ea6.999
cmp ecx, 9
je case.0x4f6ea6.999
cmp ecx, 0x20
jne case.0x4f75d2.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x1680
je case.0x4f6ea6.999
cmp ecx, 0x180e
jne case.0x4f75d2.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x3000
ja case.0x4f75d2.13
je case.0x4f6ea6.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f75d2.13
movzx eax, byte [ecx + 0x4fa5a8]
jmp dword [eax*4 + 0x4fa5a0]
cmp ecx, 0x2000
ja 0x4f76f0
je case.0x4f75d2.13
cmp ecx, 0xa0
ja 0x4f76d1
je case.0x4f75d2.13
cmp ecx, 9
je case.0x4f75d2.13
cmp ecx, 0x20
je case.0x4f75d2.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x1680
je case.0x4f75d2.13
cmp ecx, 0x180e
je case.0x4f75d2.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x3000
ja case.0x4f6ea6.999
je case.0x4f75d2.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f6ea6.999
movzx eax, byte [ecx + 0x4fa610]
jmp dword [eax*4 + 0x4fa608]
cmp ecx, 0x85
ja 0x4f7740
je case.0x4f6ea6.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f75d2.13
jmp dword [ecx*4 + 0x4fa670]
sub ecx, 0x2028
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
sub ecx, 1
jne 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0x85
ja 0x4f7781
je case.0x4f75d2.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f6ea6.999
jmp dword [ecx*4 + 0x4fa680]
sub ecx, 0x2028
je case.0x4f75d2.13
mov eax, dword [esp + 0x10]
sub ecx, 1
je 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0xff
ja case.0x4f75d2.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
mov eax, dword [esp + 0x10]
je 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0xff
ja case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
mov eax, dword [esp + 0x10]
jne 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0xff
ja case.0x4f75d2.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
mov eax, dword [esp + 0x10]
je 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0xff
ja case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
mov eax, dword [esp + 0x10]
jne 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0xff
ja case.0x4f75d2.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
mov eax, dword [esp + 0x10]
je 0x4f9310
xor esi, esi
jmp 0x4f6cac
cmp ecx, 0xff
ja case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
mov eax, dword [esp + 0x10]
jne 0x4f9310
xor esi, esi
jmp 0x4f6cac
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0x38]
add eax, 0xfffffffe
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0x11
jne 0x4f78a7
cmp eax, dword [ebp + 4]
jbe 0x4f78a7
cmp word [eax], 0xa
jne 0x4f78a7
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x4f78a7
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x22
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov eax, dword [ebp + 0x44]
mov esi, 0xfffffc1b
mov dword [ebx + 0x74], eax
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f792d
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7916
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f7967
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7967
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
push edi
push dword [ebp + 8]
push ecx
call fcn.00521bb0
add esp, 0xc
test eax, eax
je case.0x4f6ea6.999
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x64
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
jbe case.0x4f6ea6.999
test edi, edi
je 0x4f79c1
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f79c1
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x65
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7a23
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7a0c
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7a59
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x4f7a7a
cmp byte [ebp + 0x31], 0x6e
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x4f973a
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f7a6b
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
ja 0x4f931b
mov edi, dword [esp + 0x14]
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edi, dword [ebp + 0xc]
mov ebp, dword [ebx + 0x54]
add edi, edi
mov edx, dword [esp + 0x10]
mov eax, ebp
sub eax, edi
mov ebx, dword [edx + 0x38]
cmp ebx, eax
ja 0x4f7b4f
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x4f7b09
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f7b12
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f7af8
cmp esi, 0xfffffffc
je 0x4f9346
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f7b4f
cmp esi, 0xfffffffd
je 0x4f9346
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f7b4f
cmp esi, 0xfffffffe
je 0x4f9346
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f7b4f
cmp esi, 0xffffffff
je 0x4f9346
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f9346
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f7bcc
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f7bcc
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f7b86
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f7b8f
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f7b75
cmp esi, 0xfffffffc
je 0x4f9346
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f7bcc
cmp esi, 0xfffffffd
je 0x4f9346
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f7bcc
cmp esi, 0xfffffffe
je 0x4f9346
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f7bcc
cmp esi, 0xffffffff
je 0x4f9346
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f9346
cmp ebx, ebp
jb 0x4f7c07
mov edx, dword [esp + 0x78]
movzx eax, word [edx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f7c16
cmp ebx, dword [edx + 0x5c]
mov ebx, edx
ja 0x4f7bec
cmp dword [ebx + 0x24], 0
je 0x4f7c18
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
mov ebx, dword [esp + 0x78]
xor esi, esi
mov edi, dword [esp + 0x14]
jmp case.0x4f6ea6.998
mov ebx, edx
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f7c4f
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xcb
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7cbd
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7ca6
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7cf3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f6ea6.999
cmp dword [ebp + 0x2c], ecx
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f7d40
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xcd
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7dae
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7d97
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7de4
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xce
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f7e28
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
ja 0x4f935f
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f7e93
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f7e7c
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f7eb2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7eb2
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0xf
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7f21
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7f0a
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f7f5b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7f5b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6a3eb9]
cmp al, 9
je 0x4f7f92
cmp al, 5
je 0x4f7f92
cmp al, 8
je 0x4f7f92
xor ecx, ecx
jmp 0x4f7f97
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f800d
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7ff6
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8047
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8047
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f80f4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f80dd
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f812e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f812e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f81d4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f81bd
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f820e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f820e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb8]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f82b4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f829d
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f82ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f82ee
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f832b
cmp eax, 3
je 0x4f832b
xor ecx, ecx
jmp 0x4f8330
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f83a6
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f838f
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f83e0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f83e0
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp ecx, 0x20
ja 0x4f83fa
je case.0x4f84a9.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f84a9.8203
jmp dword [eax*4 + 0x4fa690]
cmp ecx, 0x2000
ja 0x4f848d
je case.0x4f84a9.8193
cmp ecx, 0x1680
ja 0x4f8485
je case.0x4f84a9.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f84a9.8193
sub eax, 0x1b
je case.0x4f84a9.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
cmp dword [eax*4 + 0x6bf9c0], 6
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x4f973a
cmp ecx, 0x180e
jmp 0x4f842a
cmp ecx, 0x3000
ja case.0x4f84a9.8203
je case.0x4f84a9.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f84a9.8203
movzx eax, byte [eax + 0x4fa6ac]
jmp dword [eax*4 + 0x4fa6a4]
cmp dword [ebp + 0x28], 0xf
jne 0x4f8476
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f8513
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f84fc
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f854d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f854d
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a80c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a3eb9]
mov eax, dword [eax*4 + 0x6bf9c0]
cmp eax, 1
je 0x4f8591
cmp eax, 3
je 0x4f8591
cmp edx, 0x5f
je 0x4f8591
xor ecx, ecx
jmp 0x4f8596
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f860c
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f85f5
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8646
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8646
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x2c]
mov edx, dword [eax*4 + 0x6a38f0]
lea eax, [eax*4 + 0x6a38f0]
cmp ecx, edx
jb 0x4f866d
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f8686
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f8660
cmp dword [ebp + 0x28], 0xf
jne case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x4f973a
cmp dword [ebp + 0x28], 0xf
jne 0x4f8677
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f86e9
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f86d2
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8723
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8723
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp ecx, 0x24
je 0x4f874e
cmp ecx, 0x40
je 0x4f874e
cmp ecx, 0x60
je 0x4f874e
cmp ecx, 0xa0
jb 0x4f8742
cmp ecx, 0xd7ff
jbe 0x4f874e
cmp ecx, 0xe000
jae 0x4f874e
xor ecx, ecx
jmp 0x4f8753
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f936b
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f87b6
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x54]
cmp edx, ecx
jb 0x4f8825
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f880e
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
cmp dword [ebp + 0x28], 0xc
jne 0x4f8884
mov eax, dword [ebx + 0x88]
lea esi, [ebx + 0x8c]
test eax, eax
je 0x4f8853
push edi
push esi
push ecx
push eax
push edx
call fcn.0051fb30
add esp, 0x14
test eax, eax
je 0x4f8884
xor esi, esi
jmp case.0x4f6ea6.998
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f8884
mov ax, word [edx]
cmp ax, word [ebx + 0x90]
jne 0x4f8884
cmp esi, 1
je case.0x4f6ea6.999
mov ax, word [edx + 2]
cmp ax, word [ebx + 0x92]
je case.0x4f6ea6.999
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f88bd
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebp + 0x38], edx
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f75d2.15
jmp dword [eax*4 + 0x4fa70c]
cmp ecx, 0x85
ja 0x4f88f0
je case.0x4f88e9.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f6ea6.999
jmp dword [ecx*4 + 0x4fa74c]
sub ecx, 0x2028
je case.0x4f88e9.11
sub ecx, 1
jne case.0x4f6ea6.999
cmp word [ebx + 0x3e], 2
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x2000
ja 0x4f8967
je case.0x4f6ea6.999
cmp ecx, 0xa0
ja 0x4f8948
je case.0x4f6ea6.999
cmp ecx, 9
je case.0x4f6ea6.999
cmp ecx, 0x20
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x1680
je case.0x4f6ea6.999
cmp ecx, 0x180e
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x3000
ja case.0x4f88cc.13
je case.0x4f6ea6.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f88cc.13
movzx eax, byte [ecx + 0x4fa764]
jmp dword [eax*4 + 0x4fa75c]
cmp ecx, 0x2000
ja 0x4f89ea
je case.0x4f88cc.13
cmp ecx, 0xa0
ja 0x4f89cb
je case.0x4f88cc.13
cmp ecx, 9
je case.0x4f88cc.13
cmp ecx, 0x20
je case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x1680
je case.0x4f88cc.13
cmp ecx, 0x180e
je case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x3000
ja case.0x4f6ea6.999
je case.0x4f88cc.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f6ea6.999
movzx eax, byte [ecx + 0x4fa7cc]
jmp dword [eax*4 + 0x4fa7c4]
cmp ecx, 0x85
ja 0x4f8a3a
je case.0x4f6ea6.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f88cc.13
jmp dword [ecx*4 + 0x4fa82c]
sub ecx, 0x2028
je case.0x4f6ea6.999
sub ecx, 1
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x85
ja 0x4f8a77
je case.0x4f88cc.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f6ea6.999
jmp dword [ecx*4 + 0x4fa83c]
sub ecx, 0x2028
je case.0x4f88cc.13
sub ecx, 1
je case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x100
jae case.0x4f88cc.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
je case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x100
jae case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x100
jae case.0x4f88cc.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
je case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x100
jae case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x100
jae case.0x4f88cc.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
je case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
cmp ecx, 0x100
jae case.0x4f6ea6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
jne case.0x4f88cc.13
xor esi, esi
jmp case.0x4f6ea6.998
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x38]
add edx, 0xfffffffe
mov dword [ebp + 0x38], edx
test edi, edi
jne 0x4f8ff1
movzx ecx, word [edx]
jmp 0x4f903a
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f8ba0
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x28], 0x11
jne 0x4f8bbd
cmp ecx, dword [ebp + 4]
jbe 0x4f8bbd
cmp word [ecx], 0xa
jne 0x4f8bbd
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x4f8bbd
mov dword [ebp + 0x38], ecx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xdd
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f8c05
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f8c05
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
ja 0x4f9463
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f8c70
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f6ea6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f8c59
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f8caa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8caa
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6a3ec2]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6a3368]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f8d71
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f8d5a
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8dab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8dab
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6a3ec0]
shr eax, 0xb
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x4f973a
test esi, esi
jne case.0x4f6ea6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f6ea6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f8e54
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f6ea6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f8e3d
cmp dword [ebx + 0x24], esi
je case.0x4f6ea6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efb99
xor esi, esi
jmp case.0x4f6ea6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8e8e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8e8e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp + 0x2c]
movzx eax, word [eax*2 + 0x6ac4c8]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x6a3eb8]
cmp eax, ecx
je 0x4f8ee9
movzx edx, word [edx*4 + 0x6a3ec0]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x6a3bc0], eax
jne 0x4f8ee9
xor ecx, ecx
jmp 0x4f8eee
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f6ea6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x4f973a
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00526230
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp]
nop dword [eax + eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f8f40
lea eax, [ecx + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov esi, dword [ebp]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f8f62
lea eax, [esi + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f9629
lea eax, [esi + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4ef830
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00526230
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
jmp 0x4f6eee
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp + 4], eax
cmp word [eax], 0x78
je 0x4f91e6
xor eax, eax
cmp dword [ebp + 0x20], eax
sete al
jmp 0x4f6ef1
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f900d
lea esi, [edx - 2]
mov dword [ebp + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f903a
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, dword [ebp + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x6a3eba]
cmp edx, edi
jbe 0x4f9105
nop dword [eax]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
mov ecx, eax
je 0x4f90be
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f9093
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f90be
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a80c8]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x6ac4c8]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x6a3eba]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x6bf980], eax
je 0x4f9105
mov dword [ebp + 0x38], edx
mov ebx, esi
cmp edx, edi
ja 0x4f9070
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4ef828
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xdc
jmp 0x4f973a
inc dword [ebp + 0x80]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 0x80]
cmp eax, dword [ebp + 0x84]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6bf820]
movzx eax, word [edx + 2]
ja 0x4f946f
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x4ef830
cmp dword [esp + 0x14], 0
jne 0x4f7d09
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x4f973a
cmp dword [esp + 0x14], 0
jne 0x4f7df1
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x4f973a
cmp dword [esp + 0x14], 0
jne 0x4f7a6f
mov esi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x4f973a
test ebp, ebp
js 0x4f91ab
cmp ebp, 0xd
ja case.0x4f75d2.15
jmp dword [ebp*4 + 0x4fa84c]
cmp dword [eax + 0x28], 0x16
je 0x4f93ec
test esi, esi
jne 0x4f9458
mov esi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x4f973a
cmp ecx, 0x7e
je 0x4f91db
mov eax, 0x80
cmp cx, ax
je 0x4f91db
xor eax, eax
jmp 0x4f91e0
mov eax, 1
mov dword [ebp + 0x20], eax
mov dword [ebp + 4], esi
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
mov byte [ebp + 0x30], 5
lea esi, [ecx + eax*2]
jmp 0x4f973a
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x4f9223
lea esi, [edx + 4]
mov byte [ebp + 0x30], 6
jmp 0x4f973e
mov byte [ebp + 0x30], 7
jmp 0x4f973e
lea esi, [esi + eax*2]
mov byte [ebp + 0x30], 1
jmp 0x4f973a
mov eax, dword [ebp + 8]
mov dword [ebp], eax
jmp 0x4f9510
mov eax, dword [esp + 0x58]
add eax, eax
add dword [ebp + 0x38], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x14
jmp 0x4f973a
mov dword [ebp + 0x38], esi
mov edi, dword [ebp + 0x24]
dec edi
mov dword [ebp + 0x24], edi
mov ebx, dword [ebp + 0x20]
cmp ebx, edi
jae 0x4f9297
nop dword [eax]
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x7c]
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fa890
mov eax, dword [esp + 0x70]
inc ebx
add esp, 0x14
lea esi, [esi + eax*2]
mov dword [ebp + 0x38], esi
cmp ebx, edi
jb 0x4f9270
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x4f973a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x20
jmp 0x4f973a
cmp esi, dword [ebx + 0x54]
jae case.0x4f75d2.13
cmp word [esi], 0xa
jne case.0x4f75d2.13
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x4f973a
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f75d2.13
cmp esi, dword [ebx + 0x54]
jb case.0x4f75d2.13
cmp dword [ebx + 0x88], 0
jne case.0x4f75d2.13
cmp dword [ebx + 0x8c], 2
jne case.0x4f75d2.13
movzx eax, word [ebx + 0x90]
cmp ecx, eax
jne case.0x4f75d2.13
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x4f973a
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f1351
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x4f973a
mov ecx, dword [esp + 0x10]
lea eax, [ebx + edi]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x4f973a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xcf
jmp 0x4f973a
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
mov esi, ecx
test edi, edi
je 0x4f93a7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f93a7
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
mov dword [ebp + 0x38], esi
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
push 0
push edi
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push edx
call fcn.00521560
add esp, 0x18
mov dword [ebp + 0x38], eax
cmp eax, dword [ebx + 0x54]
jb 0x4f93e8
movzx ecx, word [ebx + 0x3c]
mov edx, ecx
test cx, cx
je 0x4f93e8
cmp eax, dword [ebx + 0x5c]
ja 0x4f93d8
cmp dword [ebx + 0x24], 0
je 0x4f93e8
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efb99
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x4f973a
cmp edx, dword [ebx + 0x54]
jae case.0x4f88cc.13
cmp word [edx], 0xa
jne case.0x4f88cc.13
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x4f973a
movzx eax, word [ebx + 0x3c]
mov esi, eax
test ax, ax
je case.0x4f88cc.13
cmp edx, dword [ebx + 0x54]
jb case.0x4f88cc.13
cmp dword [ebx + 0x88], 0
jne case.0x4f88cc.13
cmp dword [ebx + 0x8c], 2
jne case.0x4f88cc.13
movzx eax, word [ebx + 0x90]
cmp ecx, eax
jne case.0x4f88cc.13
mov dword [ebx + 0x1c], 1
cmp esi, 1
ja 0x4efb99
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x4f973a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xde
jmp 0x4f973a
mov byte [ebx + 0x30], 0x11
jmp 0x4f9735
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax + 4], esi
mov byte [eax + 0x30], 9
jmp 0x4f973a
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [ecx + 4], esi
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
mov esi, eax
mov dword [ecx + 4], eax
cmp word [esi], 0x78
je 0x4f9495
lea esi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x4f973a
mov ebp, dword [esp + 0x10]
add esi, 2
mov ecx, 0x89
mov dword [ebp + 0x28], 1
mov dword [ebp], esi
movzx eax, word [esi]
cmp ax, cx
je 0x4f94fa
mov ecx, 0x8e
cmp ax, cx
jne 0x4f94e8
jmp 0x4f94fa
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x28], 0
mov eax, 0x20000
jmp 0x4f9503
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x28], 0
movzx eax, word [esi + 4]
or eax, 0x10000
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], 0
mov dword [ebp + 8], esi
mov eax, dword [ebp + 0x38]
mov dword [ebp + 4], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
mov byte [ebp + 0x30], 8
lea esi, [ecx + eax*2]
jmp 0x4f973a
movzx ecx, word [esi + 4]
or ecx, 0x10000
jmp 0x4f9548
or ecx, 0x20000
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
mov byte [ebp + 0x30], 2
lea esi, [esi + eax*2]
jmp 0x4f973a
mov ecx, dword [ebp + 0x48]
movzx eax, word [esi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x4f957e
xor edi, edi
jmp 0x4f9582
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x44], 0xffffffff
je 0x4f95c6
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x4f95c6
mov ecx, dword [esp + 0x74]
mov edx, edi
or edx, 0x40000
mov esi, dword [ecx + 0x18]
add eax, esi
mov ecx, eax
sub ecx, dword [esp + 0x70]
cmp dword [eax + 0x1c], edx
je 0x4f95ba
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x4f95a3
jmp 0x4f95c6
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x4f98e8
or edi, 0x40000
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edi
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
mov byte [ebp + 0x30], 0xb
lea esi, [ecx + eax*2]
jmp 0x4f973a
mov ebp, dword [esp + 0x10]
or ecx, 0x20000
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
mov byte [ebp + 0x30], 3
lea esi, [esi + eax*2]
jmp 0x4f973a
mov ebp, dword [esp + 0x10]
or ecx, 0x20000
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
mov byte [ebp + 0x30], 4
lea esi, [esi + eax*2]
jmp 0x4f973a
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6bf820]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x4f9735
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xd
jmp 0x4f973a
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6bf820]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x4f9735
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xe
jmp 0x4f973a
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6bf820]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x4f9735
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x10
jmp 0x4f973a
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bf820]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x12
jmp 0x4f973a
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6bf820]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea esi, [edx + ecx*2]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x70]
add ebp, eax
mov dword [esp + 0x1c], ebp
cmp ebp, dword [esp + 0x40]
jb 0x4f97f3
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [eax + 0xc]
lea edi, [ebx + ebx]
cmp edi, ecx
jbe 0x4f977b
xor edx, edx
mov eax, ecx
div dword [esp + 0x70]
mov edi, ecx
sub edi, edx
cmp ebx, edi
jae 0x4f98f5
push dword [ebp + 8]
mov eax, dword [ebp]
push edi
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4f9902
push dword [esp + 0x3c]
push dword [ebp + 0x18]
push ebx
call fcn.00526230
mov ecx, dword [ebp + 0x18]
mov eax, ebx
mov edx, dword [esp + 0x1c]
sub eax, ecx
mov ebp, dword [esp + 0x7c]
add edx, eax
mov eax, dword [esp + 0x80]
add ebp, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ebp
push dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
call eax
mov eax, dword [esp + 0x88]
xor edx, edx
add esp, 0x14
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], edi
mov eax, edi
div dword [esp + 0x70]
mov eax, edi
sub eax, edx
mov dword [esp + 0x3c], eax
add eax, ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x44]
add eax, 0x38
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.00526230
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0x18]
inc eax
mov dword [esp + 0x10], ebp
mov dword [ebp + 0x18], eax
mov eax, ebp
mov ebp, dword [esp + 0x70]
jmp 0x4ef7c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret
mov eax, ecx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov dword [eax + 0x58], edx
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x38], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x64], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x60]
jbe 0x4f985b
mov dword [ecx + 0x60], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x4c]
mov edi, dword [esp + 0x74]
sar eax, 1
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x4c]
sar eax, 1
mov dword [edi + 0x38], eax
movzx esi, word [edi + 0x2e]
movzx eax, word [esp + 0x6c]
inc eax
cmp eax, esi
cmovbe esi, eax
add esi, esi
lea eax, [esi*4 - 8]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x3c]
push eax
call fcn.00526230
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x4f98c4
lea edx, [edi + 0x34]
lea edx, [edx + esi*4]
nop
mov dword [edx], 0xffffffff
lea edx, [edx - 4]
mov ecx, dword [ebx + 0x50]
dec esi
add ecx, 2
cmp esi, ecx
jae 0x4f98b0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x50
ret
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffcc
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffc1
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd1
pop ebx
add esp, 0x50
ret