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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [eax + 0x8c]
mov eax, dword [eax + 0x10]
push edi
mov edi, edx
mov dword [ebp - 8], eax
xor edx, edx
mov dword [ebp - 0x2c], 0xfc00
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x14], edx
mov edx, esi
mov dword [eax + 0x18], 0
shr edx, 0x13
mov dword [eax + 0x48], 0
and edx, 1
mov dword [eax + 0x44], 0xffffffff
mov dword [ebp - 0xc], edx
lea edx, [ebx - 0x38]
mov dword [eax + 0x38], ecx
shr esi, 0x11
mov dword [eax + 0x3c], ecx
and esi, 1
mov dword [ebp - 0x48], edx
xor edx, edx
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [ebp - 0x34], esi
mov dword [eax + 0x4c], 0xffffffff
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], 0xdc00
mov dword [ebp - 0x50], 0xd800
mov dword [ebp - 0x3c], 0xff
mov dword [ebp - 0x28], 0x85
mov dword [ebp - 0x4c], 0x2000
mov dword [ebp - 0x44], 0x3000
mov dword [ebp - 0x54], 0x2028
mov dword [ebp - 0x58], 0x2029
mov dword ds:[eax + 0x1c], edx
mov dword [eax], edi
mov dword [eax + 0x10], ebx
test edx, edx
je 0x4f0529
mov ecx, dword [ebp + 0x18]
sub eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x4c], eax
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x4f0524
movzx eax, dx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword ds:[ebp + 0x18]
mov esi, dword [ebp + 0x18]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
cmp edx, ecx
jae 0x4fb055
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x4f056b
pop edi
pop esi
mov eax, 0xffffffcb
pop ebx
mov esp, ebp
pop ebp
ret 0x14
lea eax, [ecx + 4]
mov dword [ebx], eax
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
mov edi, edi
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov bl, byte [edi]
mov byte [eax + 0x31], bl
movzx eax, bl
mov byte [ebp - 1], bl
cmp eax, 0xa6
ja case.0x4f89c9.15
movzx eax, byte [eax + 0x4fb1c0]
jmp dword [eax*4 + 0x4fb064]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
jne 0x4f0610
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
lea esp, [esp]
cmp eax, 0xffffffff
je case.0x4f89c9.15
mov ecx, dword [esi + 0x10]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [ebp - 0x18], ecx
sub edx, dword [ebp + 0x14]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x4f05d7
mov eax, dword [edx + 0x4c]
jmp 0x4f05b0
mov eax, dword [ebp - 8]
lea esi, [edi + edi]
mov ebx, dword [ebp + 0x18]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebx + 0x5c]
mov edx, dword [ebp - 8]
sar eax, 1
mov dword [edx + ecx*4 + 0x54], eax
mov eax, edx
mov eax, dword [eax + 0x38]
sub eax, dword [ebx + 0x5c]
sar eax, 1
mov dword [edx + ecx*4 + 0x58], eax
mov eax, edx
cmp ecx, dword [eax + 0x50]
jb 0x4f060d
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5804f0]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
jmp 0x4f0568
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [esi + 0x70]
jbe 0x4f0637
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 8]
mov esi, 0xfffffc19
mov dword [ebp - 0x30], eax
jmp 0x4f2500
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
je 0x4f069a
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x4f89c9.15
mov ebx, dword [esi + 0x10]
add ebx, eax
mov ecx, ebx
mov dword [ebp - 0x18], ebx
sub ecx, dword [ebp + 0x14]
mov eax, dword [ebx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x4f067d
mov eax, dword [ecx + 0x4c]
jmp 0x4f0653
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
add dword [ecx], 4
jmp 0x4f0570
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x4f06cd
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x88]
test al, 4
jne case.default.0x4f8a49
test al, 8
je 0x4f06cd
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x5c]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x4faf72
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x4faf70
test bl, bl
jne 0x4faf65
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ecx
jmp 0x4f2503
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x4f0742
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
mov esi, dword [eax + 0x64]
cmp ecx, esi
jae 0x4f078f
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00528be0
test eax, eax
jne case.default.0x4f8a49
mov eax, dword ds:[ebp + 0x18]
jmp 0x4f078f
mov esi, dword [eax + 0x9c]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
lea eax, [esi + esi]
mov ecx, dword [ebx + 0x64]
sub ecx, eax
cmp edx, ecx
ja 0x4f078d
mov ax, word [edx]
cmp ax, word [ebx + 0xa0]
jne 0x4f078d
cmp esi, 1
je case.default.0x4f8a49
mov ax, word ds:[edx + 2]
cmp ax, word [ebx + 0xa2]
je case.default.0x4f8a49
mov eax, ebx
movzx eax, word [eax + 0x4c]
mov esi, dword [ebp + 0x18]
mov edx, eax
test ax, ax
je case.0x4f0592.13
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [esi + 0x64]
sub eax, 2
cmp ecx, eax
jne case.0x4f0592.13
mov eax, esi
cmp dword [eax + 0x98], 0
jne 0x4f07e9
cmp dword ds:[eax + 0x9c], 2
jne 0x4f07e9
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x4f0592.13
mov eax, esi
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x4f0827
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x4f081b
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
jmp 0x4f2f23
mov edx, dword [ebp - 0xc]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x4f085a
cmp ecx, dword [esi + 0x64]
jae 0x4f085a
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x4f0857
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
add dword ds:[eax], 2
jmp 0x4f0570
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x4f0879
movzx eax, word [eax + 0x4c]
jmp 0x4f07fa
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
mov esi, dword [ebp + 0x18]
jmp 0x4f0570
mov eax, dword [ebp - 8]
test edx, edx
je 0x4f0934
mov ecx, dword ds:[ebp - 8]
mov dword [eax + 0xc], 1
lea eax, [edi + 2]
mov dword [ecx], eax
mov ecx, 0xfc00
mov ax, word [eax]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [ebp - 8]
jne 0x4f08d0
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x4f08d5
mov edx, 1
mov ecx, dword [eax + 0x38]
mov esi, dword [esi + 0x64]
mov eax, esi
sub eax, ecx
sar eax, 1
cmp edx, eax
jbe 0x4f08f9
cmp ecx, esi
jb case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
movzx eax, word [eax + 0x4c]
jmp 0x4f07fa
mov eax, dword [ebp - 8]
lea esp, [esp]
mov ebx, dword ds:[ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebx]
movzx edx, word [eax]
add eax, 2
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, ebx
cmp si, dx
jne 0x4f0b4a
add dword [eax + 0xc], 0xffffffff
jne 0x4f0900
jmp 0x4f0568
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + 0x38]
mov eax, dword [ecx + 0x64]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x4f0986
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f0968
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
jbe case.default.0x4f8a49
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [ebp - 8]
lea eax, [esi + 2]
movzx edx, word [edi + 2]
movzx ecx, word [esi]
mov dword [ebx + 0x38], eax
cmp dx, cx
je 0x4fa546
nop
jmp case.default.0x4f8a49
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x40], ecx
cmp ecx, dword [esi + 0x64]
jb 0x4f09ef
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp - 0x40]
cmp eax, dword [esi + 0x6c]
mov eax, dword [ebp + 0x18]
ja 0x4f09de
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
test edx, edx
je 0x4f0b14
mov dword [eax + 0xc], 1
lea ebx, [edi + 2]
mov dword [eax], ebx
mov edi, 1
movzx esi, word [ebx]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0a44
movzx eax, word [ebx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov edi, 2
mov eax, dword [ebp - 8]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x4f0a47
mov eax, dword [ebp - 8]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x4f0a8b
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x38]
cmp edx, 0xff
ja 0x4f0a6c
movzx edx, byte [edx + eax]
movzx eax, byte [esi + eax]
cmp eax, edx
jne case.default.0x4f8a49
mov edx, dword [ebp - 8]
lea eax, [ebx + 2]
mov dword [edx], eax
lea eax, [ecx + 2]
mov dword [edx + 0x38], eax
jmp 0x4f0568
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0ac3
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x4f0ac6
mov ecx, dword [ebp - 8]
lea eax, [ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x4f0568
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x57c020]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x567964]
add eax, esi
mov esi, dword [ebp + 0x18]
cmp edx, eax
mov edx, dword [ebp - 0xc]
je 0x4f0570
jmp case.default.0x4f8a49
cmp dword [ebp - 0x34], 0
je 0x4f0bb1
movzx esi, word [edi + 2]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x4f0b51
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
cmp edx, 0xff
ja 0x4f0b3f
movzx edx, byte [edx + eax]
movzx eax, byte [esi + eax]
cmp eax, edx
mov eax, dword [ebp - 8]
je 0x4f0ba5
xor esi, esi
jmp 0x4f2500
cmp edx, esi
je 0x4f0ba5
lfence
mov eax, esi
test eax, eax
jns 0x4f0b61
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x4f0b7d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x567964]
add eax, esi
cmp edx, eax
mov eax, dword [ebp - 8]
je 0x4f0ba5
xor esi, esi
jmp 0x4f2500
add dword [eax + 0x38], 2
add dword [eax], 4
jmp 0x4f0568
movzx eax, word ds:[edi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x4f0bcc
mov eax, dword [esi + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ecx]
mov ecx, eax
cmp ax, bx
ja 0x4f0bdd
mov eax, dword [esi + 0x38]
movzx ecx, byte [eax + ecx]
lea ecx, [ecx]
cmp edx, ecx
jne case.default.0x4f8a49
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
add eax, 2
mov dword [ecx + 0x38], eax
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x4f056b
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x4f0c15
movzx eax, word [eax + 0x4c]
jmp 0x4f07fa
lea eax, ds:[edi + 2]
test edx, edx
je 0x4f0d0b
mov edx, dword ds:[ebp - 8]
lea esi, [eax + 2]
mov dword [edx], eax
movzx edx, word [eax]
mov eax, dword [ebp - 8]
mov dword [eax], esi
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0c68
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 2]
mov esi, dword [ebp - 8]
add edx, 0x10000
mov dword [esi], eax
mov eax, dword ds:[ebp - 8]
movzx esi, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0ca9
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add esi, 0x10000
mov dword [ecx + 0x38], eax
cmp edx, esi
je case.default.0x4f8a49
cmp bl, 0x20
jne 0x4f0568
cmp edx, 0x7f
jbe 0x4f0ced
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x57c020]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x567964]
jmp 0x4f0cf7
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [ebp - 0xc]
jne 0x4f0887
jmp case.default.0x4f8a49
cmp dword [ebp - 0x34], 0
lea esi, [ecx + 2]
je 0x4f0d9a
movzx ebx, word [ecx]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], esi
movzx edx, word [eax]
lea eax, [edi + 4]
mov dword [ecx], eax
cmp edx, ebx
je case.default.0x4f8a49
cmp byte [ebp - 1], 0x20
mov esi, dword [ebp + 0x18]
jne 0x4f056b
mov edi, edi
cmp edx, 0x7f
jbe 0x4f0d83
lfence
mov eax, edx
test eax, eax
jns 0x4f0d51
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4f0d6d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x567964]
jmp 0x4f0d8a
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
jne 0x4f0570
jmp case.default.0x4f8a49
movzx edx, word [eax]
mov eax, dword [ebp - 8]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
cmp bl, 0x20
jne 0x4f0dcd
cmp edx, 0xff
ja 0x4f0dcd
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x4f8a49
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x4f056b
mov ecx, dword [ebp - 8]
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x4f0f08
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x4f0f05
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x4f0f05
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x4f0f05
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x4f0f05
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x4f0f05
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x4f0f05
movzx ecx, word [edi]
cmp bl, 0x2e
mov edx, dword [ebp - 8]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax], edi
mov eax, dword [ecx*4 + 0x5664b4]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x566488]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x566e78]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x4f1359
mov dword [eax + 0xc], 1
mov dword [eax + 8], edi
movzx edx, word [edi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x4f0f5d
movzx esi, word [edi + 2]
and edx, 0x3ff
mov ecx, dword [ebp - 8]
and esi, 0x3ff
shl edx, 0xa
mov dword [eax + 0xc], 2
or esi, edx
lea eax, [edi + 4]
add esi, 0x10000
mov dword [ecx], eax
jmp 0x4f0f73
mov ecx, dword [eax + 0xc]
mov esi, edx
mov ebx, dword [ebp - 8]
lea eax, [edi + 2]
mov dword [ebx], eax
cmp ecx, 1
jbe 0x4f134e
mov eax, dword ds:[ebp - 8]
cmp byte [eax + 0x31], 0x2e
jb 0x4f0ffb
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x567964]
add ecx, esi
cmp ecx, esi
je 0x4f0ffb
cmp ecx, 0xffff
ja 0x4f0fcb
mov eax, dword [ebp - 8]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x4f0ffd
mov edx, dword [ebp - 8]
add ecx, 0xffff0000
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edx + 0x32], ax
mov eax, edx
mov word [eax + 0x34], cx
mov eax, 2
jmp 0x4f0ffd
xor eax, eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x40], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x20]
cmp eax, 1
jb 0x4f1155
mov eax, dword ds:[ebp - 8]
mov ebx, dword [eax + 0x38]
jmp 0x4f1025
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
add edi, edi
mov ecx, dword [eax + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x10], ecx
cmp ebx, eax
ja 0x4f10ae
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f1065
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f106e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f1050
cmp esi, 0xfffffffc
je 0x4f113b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f10ab
cmp esi, 0xfffffffd
je 0x4f113b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f10ab
cmp esi, 0xfffffffe
je 0x4f113b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f10ab
cmp esi, 0xffffffff
je 0x4f113b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f113b
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f12bb
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4f12bb
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f10f1
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f10f6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f10e0
cmp esi, 0xfffffffc
je 0x4f113b
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x4f12bb
cmp esi, 0xfffffffd
je 0x4f113b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f12bb
cmp esi, 0xfffffffe
je 0x4f113b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f12bb
cmp esi, 0xffffffff
je 0x4f113b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f12bb
mov eax, dword [ebp - 8]
add ebx, edi
mov edx, dword [ebp - 0x40]
inc edx
mov dword [ebp - 0x40], edx
mov dword [eax + 0x38], ebx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x4f1022
mov ecx, dword ds:[ebp - 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ecx + 0x24]
cmp eax, ecx
je 0x4f0887
cmp dword [ebp - 0x14], 0
je 0x4fa98e
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
mov eax, dword [eax + 0x20]
cmp eax, ecx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
jae 0x4f12b3
lea esp, [esp]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
add edi, edi
mov ecx, dword [eax + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x10], ecx
cmp ebx, eax
ja 0x4f1218
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f11c6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f11cf
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f11b5
cmp esi, 0xfffffffc
je 0x4f129b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f1215
cmp esi, 0xfffffffd
je 0x4f129b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f1215
cmp esi, 0xfffffffe
je 0x4f129b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f1215
jmp 0x4f1200
cmp esi, 0xffffffff
je 0x4f129b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f129b
mov ecx, dword [ebp - 0x10]
mov eax, dword ds:[ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f1305
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4f1305
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f1257
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f125c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f1246
cmp esi, 0xfffffffc
je 0x4f129b
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x4f1305
cmp esi, 0xfffffffd
je 0x4f129b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f1305
cmp esi, 0xfffffffe
je 0x4f129b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f1305
cmp esi, 0xffffffff
je 0x4f129b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f1305
mov eax, dword [ebp - 8]
add ebx, edi
mov edx, dword [ebp - 0x40]
inc edx
mov dword [ebp - 0x40], edx
mov dword [eax + 0x38], ebx
cmp edx, dword [eax + 0x24]
jb 0x4f1190
mov esi, dword [ebp + 0x18]
jmp 0x4f1336
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb case.default.0x4f8a49
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x4f12ef
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
nop
jmp case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb 0x4f1333
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f1333
cmp ebx, dword [esi + 0x6c]
ja 0x4f1323
cmp dword [esi + 0x34], 0
je 0x4f1333
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
mov eax, dword [ebp - 8]
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x4f0570
mov ecx, dword [eax + 0x38]
jmp 0x4f91ff
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x28], edx
jmp 0x4f1369
movzx edx, word [edi]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x28], edx
lea eax, [edi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x4f1511
test ebx, ebx
jne 0x4f137c
cmp dword [ebp - 0x34], ebx
je 0x4f13b2
lea esp, [esp]
cmp edx, 0x7f
jbe 0x4f13b2
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x567964]
add eax, edx
jmp 0x4f13c8
cmp edx, 0xff
ja 0x4f13c6
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x4f13c8
mov eax, edx
mov ecx, dword ds:[ebp - 8]
mov edx, 1
mov edi, dword [ebp + 0x18]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x20]
cmp esi, edx
jb 0x4f1417
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edi + 0x64]
jae 0x4f1494
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x4f1409
jmp 0x4f1400
cmp dword [ebx + 0x2c], eax
jne 0x4f14c9
mov eax, dword [ebp - 8]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x4f13e7
mov edx, dword ds:[eax + 0x24]
cmp esi, edx
je 0x4f0568
cmp dword [ebp - 0x14], 0
je 0x4f86bb
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x4f1467
lea esp, [esp]
cmp ecx, dword [edi + 0x64]
jae 0x4f14d5
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x4f1459
cmp dword [ebx + 0x2c], eax
jne 0x4f146a
mov eax, dword [ebp - 8]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x4f1440
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x4f0570
mov eax, dword ds:[ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x4fae71
mov esi, edi
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f14c9
cmp ecx, dword [esi + 0x6c]
ja 0x4f14b0
cmp dword [esi + 0x34], 0
je 0x4f14c9
mov dword ds:[esi + 0x2c], 1
nop
cmp edx, 1
ja 0x4f0978
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, edi
jmp 0x4f2503
mov esi, dword ds:[ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f1509
cmp ecx, dword [esi + 0x6c]
ja 0x4f14f0
cmp dword [esi + 0x34], 0
je 0x4f1509
mov dword ds:[esi + 0x2c], 1
nop
cmp edx, 1
ja 0x4f0978
mov ebx, dword [ebp - 8]
jmp 0x4f146d
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x4f1551
mov edx, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x4f15aa
movzx eax, word ds:[edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne case.default.0x4f8a49
inc esi
cmp esi, edi
jbe 0x4f1523
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x24]
cmp edi, edx
je 0x4f0568
cmp dword [ebp - 0x14], 0
je 0x4f876c
mov ecx, dword [eax + 0x38]
mov esi, dword [ebp + 0x18]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x4f160b
jmp 0x4f1580
cmp ecx, dword [esi + 0x64]
jae 0x4f15e5
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x4f160e
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x4f1577
jmp 0x4f160b
mov esi, eax
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f15c0
cmp edx, dword [esi + 0x6c]
ja 0x4f15cf
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
nop
jmp case.default.0x4f8a49
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f160b
cmp ecx, dword [esi + 0x6c]
ja 0x4f15fb
cmp dword [esi + 0x34], 0
je 0x4f160b
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov ebx, dword [ebp - 8]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x4f0570
mov eax, dword ds:[ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x4fae71
mov ecx, dword [ebp - 8]
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov ecx, edi
mov dword [eax], edi
jmp 0x4f1777
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, edi
mov dword [eax], edi
jmp 0x4f1774
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, edi
mov dword [eax], edi
jmp 0x4f1774
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov ecx, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x4f1774
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov ecx, edi
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x4f1774
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov ecx, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x4f1774
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, edi
mov dword [eax], edi
jmp 0x4f1774
movzx ecx, word [edi]
cmp bl, 0x48
mov edx, dword [ebp - 8]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax], edi
mov eax, dword [ecx*4 + 0x5664b4]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x566488]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x566e78]
mov dword [ebp - 0x14], eax
mov eax, edx
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
movzx edx, word [edi]
lea edi, [ecx + 2]
mov dword [eax + 0x28], edx
mov esi, edx
mov dword [eax], edi
je 0x4f17c2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x4f17c2
movzx esi, word [edi]
and edx, 0x3ff
and esi, 0x3ff
shl edx, 0xa
or esi, edx
add esi, 0x10000
mov dword [eax + 0x28], esi
lea eax, [ecx + 4]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x48
jb 0x4f1ab6
mov edi, dword [ebp - 0xc]
test edi, edi
jne 0x4f17d8
cmp dword [ebp - 0x34], edi
je 0x4f180a
cmp esi, 0x7f
jbe 0x4f180a
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x567964]
add eax, esi
jmp 0x4f1820
cmp esi, 0xff
ja 0x4f181e
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx eax, byte [eax + esi]
jmp 0x4f1820
mov eax, esi
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x20]
mov eax, ebx
test edi, edi
je 0x4f18f4
mov esi, 1
cmp ebx, esi
jb 0x4f1944
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
jmp 0x4f1853
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
cmp edx, dword [ecx + 0x64]
jae 0x4f18bf
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f189a
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x4f189d
mov eax, dword [ebp - 8]
lea ecx, [ecx]
cmp dword [eax + 0x28], ecx
je case.default.0x4f8a49
cmp dword [eax + 0x2c], ecx
je case.default.0x4f8a49
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f1850
jmp 0x4f1944
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f18df
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov edx, 1
cmp ebx, edx
jb 0x4f1944
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov edi, edi
mov esi, dword [ebp + 0x18]
cmp ecx, dword [esi + 0x64]
jae 0x4f2ef9
mov esi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x4f8a49
cmp dword [esi + 0x2c], eax
je case.default.0x4f8a49
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x4f1910
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x4f0887
cmp dword [ebp - 0x14], 0
je 0x4fa75c
mov eax, ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [eax + 0x24]
test edx, edx
je 0x4f1a36
cmp ebx, eax
jae 0x4f1a2e
lea ebx, [ebx]
mov eax, dword [ebp + 0x18]
mov esi, 1
cmp ecx, dword [eax + 0x64]
jae 0x4f19f6
movzx edx, word ds:[ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f19c6
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, dword [ebp - 8]
cmp dword [eax + 0x28], edx
je 0x4f19de
cmp dword [eax + 0x2c], edx
je 0x4f19de
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x4f1980
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x4f0570
mov ecx, dword [eax + 0x38]
jmp 0x4f9305
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f1a29
cmp ecx, dword [esi + 0x6c]
ja 0x4f1a10
cmp dword [esi + 0x34], 0
je 0x4f1a29
mov dword ds:[esi + 0x2c], 1
nop
cmp edx, 1
ja 0x4f0978
mov eax, dword [ebp - 8]
jmp 0x4f19e1
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
jmp 0x4f19e4
mov esi, dword ds:[ebp + 0x18]
cmp ebx, eax
jae 0x4f1ab1
cmp ecx, dword [esi + 0x64]
jae 0x4f1a6c
mov edx, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x4f1a92
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x4f1a95
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x4f1a48
jmp 0x4f1a95
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f1a92
cmp ecx, dword [esi + 0x6c]
ja 0x4f1a82
cmp dword [esi + 0x34], 0
je 0x4f1a92
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x4f0570
mov eax, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
jmp 0x4f882f
mov eax, dword [ebp - 8]
jmp 0x4f1a98
cmp dword [ebp - 0xc], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x4f1c25
cmp ebx, esi
jb 0x4f1b3f
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
jmp 0x4f1ae3
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
cmp edx, dword [ecx + 0x64]
jae 0x4f1bee
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1b2b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x4f1b2e
mov eax, dword [ebp - 8]
cmp dword [eax + 0x28], ecx
je case.default.0x4f8a49
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f1ae0
mov ecx, dword [ebp - 8]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x4f0568
cmp dword [ebp - 0x14], 0
je 0x4fa773
mov edx, dword [ebp - 0xc]
mov eax, ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [eax + 0x24]
test edx, edx
je 0x4f1cd8
cmp ebx, eax
jae 0x4f1cd0
mov eax, dword ds:[ebp + 0x18]
mov esi, 1
cmp ecx, dword [eax + 0x64]
jae 0x4f1c9b
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1bb9
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x28], edx
je 0x4f1bd0
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x4f1b75
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x4f0570
mov ebx, dword [ebp - 8]
jmp 0x4f940f
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
nop
cmp edx, dword [esi + 0x6c]
ja 0x4f1c0f
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
nop
jmp case.default.0x4f8a49
cmp ebx, 1
jb 0x4f1b3f
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x4f1c65
mov edi, dword [ebp - 8]
movzx eax, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
cmp dword [edi + 0x28], eax
mov eax, edi
je 0x4f0b4a
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f1c34
jmp 0x4f1c60
jmp 0x4f1b3f
mov esi, eax
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f1c86
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f1bd3
cmp ecx, dword [esi + 0x6c]
ja 0x4f1cbb
cmp dword [esi + 0x34], 0
je 0x4f1bd3
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp 0x4f1bd3
mov esi, dword [ebp + 0x18]
jmp 0x4f1bd6
mov esi, dword ds:[ebp + 0x18]
cmp ebx, eax
jae 0x4f1d51
cmp ecx, dword [esi + 0x64]
jae 0x4f1d0e
mov edx, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x4f1d37
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x4f1ce8
jmp 0x4f1d37
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f1d34
cmp ecx, dword [esi + 0x6c]
ja 0x4f1d24
cmp dword [esi + 0x34], 0
je 0x4f1d34
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x4f0570
mov eax, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
jmp 0x4f88e3
mov eax, dword [ebp - 8]
jmp 0x4f1d3a
mov ecx, dword [ebp - 8]
lea eax, [edi + 2]
add edi, 0x22
mov dword [ecx + 8], eax
mov eax, ecx
mov dword [eax], edi
movzx ecx, word [edi]
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x4f1d80
movzx eax, byte [eax + 0x4fb270]
lea esp, [esp]
jmp dword [eax*4 + 0x4fb268]
mov edx, dword [ebp - 8]
lea eax, [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov edx, dword [ecx*4 + 0x56632c]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + str.PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES_is_not_allowed_in_UTF_16_mode]
mov dword [ebx + 0x24], eax
mov ebx, dword [ecx*4 + 0x566cf0]
mov dword [ebp - 0x14], ebx
jmp 0x4f1e00
mov eax, dword [ebp - 8]
mov ecx, 0xffffffff
movzx edx, word [edi + 2]
mov dword [eax + 0x20], edx
movzx eax, word [edi + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x24], eax
movzx eax, word [edi]
mov eax, dword [eax*4 + 0x566cf0]
mov dword [ebp - 0x14], eax
lea eax, [edi + 6]
mov dword [ecx], eax
jmp 0x4f1e00
mov eax, dword [ebp - 8]
mov edx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword [ebp - 0xc], 0
mov ebx, 1
mov dword [ebp - 0x10], edx
mov eax, edx
je 0x4f1efb
cmp edx, ebx
jb 0x4f1fa5
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x38]
cmp edi, dword [esi + 0x64]
jae 0x4f1ec5
movzx esi, word ds:[edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1e6f
movzx eax, word [edi]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [ebp - 8]
add esi, 0x10000
add edi, 2
mov dword [eax + 0x38], edi
jmp 0x4f1e72
mov eax, dword [ebp - 8]
cmp esi, 0xff
jbe 0x4f1e8b
cmp byte ds:[eax + 0x31], 0x6e
je case.default.0x4f8a49
jmp 0x4f1ea9
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
mov eax, dword [ebp - 8]
je 0x4f0b4a
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x4f1fa5
mov eax, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
jmp 0x4f1e22
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edi, dword [esi + 0x6c]
ja 0x4f1ee6
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
jmp 0x4f1f00
cmp edx, 1
jb 0x4f1fa5
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x38]
nop
cmp edi, dword [esi + 0x64]
jae 0x4f1f70
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x4f1f39
cmp byte [eax + 0x31], 0x6e
je case.default.0x4f8a49
jmp 0x4f1f57
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
mov eax, dword [ebp - 8]
je 0x4f0b4a
mov eax, dword ds:[eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x4f1fa5
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
jmp 0x4f1f10
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
nop
cmp edi, dword [esi + 0x6c]
ja 0x4f1f8f
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
nop
jmp case.default.0x4f8a49
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov ebx, dword [ecx + 0x24]
mov dword [ebp - 0x40], ebx
cmp eax, ebx
je 0x4f056b
cmp dword ds:[ebp - 0x14], 0
je 0x4fa791
mov edx, dword [ebp - 0xc]
mov eax, ecx
mov edi, dword [eax + 0x38]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x24]
test edx, edx
je 0x4f20d0
lea esp, [esp]
cmp dword [ebp - 0x10], eax
jae 0x4f205c
lea esp, [esp]
mov esi, dword ds:[ebp + 0x18]
mov ebx, 1
cmp edi, dword [esi + 0x64]
jae 0x4f20ab
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f203d
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 [ebp - 8]
cmp esi, 0xff
jbe 0x4f2074
cmp byte [eax + 0x31], 0x6e
jne 0x4f208e
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x4f0570
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x4fae71
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 0x4f2056
mov eax, dword [ebp - 8]
lea edi, ds:[edi + ebx*2]
mov dword [eax + 0x38], edi
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x40]
jb 0x4f1ff0
jmp 0x4f2056
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f2059
cmp edi, dword [esi + 0x6c]
ja 0x4f20c2
cmp dword ds:[esi + 0x34], 0
je 0x4f2059
mov dword [esi + 0x2c], ebx
cmp ecx, 1
ja 0x4f0978
jmp 0x4f2059
cmp dword [ebp - 0x10], eax
jae 0x4f210c
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
nop
mov esi, dword [ebp + 0x18]
cmp edi, dword [esi + 0x64]
jae 0x4f216a
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x4f2134
cmp byte ds:[ecx + 0x31], 0x6e
jne 0x4f2154
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x4f0570
mov ebx, dword [ebp - 8]
mov eax, dword ds:[ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x4f8a49
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x4fae71
mov eax, dword [ebp - 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
mov eax, dword [eax + 8]
test byte [esi + eax], dl
je 0x4f2106
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
inc eax
add edi, 2
mov dword [ecx + 0x38], edi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x4f20e0
jmp 0x4f2106
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f2109
cmp edi, dword [esi + 0x6c]
ja 0x4f2182
cmp dword ds:[esi + 0x34], 0
je 0x4f2109
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp 0x4f2109
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx + 8], eax
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov eax, ecx
mov dword [eax], edx
movzx edi, word [edx]
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x4f21c1
movzx eax, byte [eax + 0x4fb284]
jmp dword [eax*4 + 0x4fb27c]
mov ecx, dword [ebp - 8]
lea eax, [edx + 2]
mov esi, dword [edi*4 + str.PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES_is_not_allowed_in_UTF_16_mode]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov ecx, dword [edi*4 + 0x56632c]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x566cf0]
mov dword [ebx], esi
mov dword [ebp - 0x14], eax
jmp 0x4f2231
mov eax, dword [ebp - 8]
movzx ecx, word [edx + 2]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
movzx esi, word [edx + 4]
mov dword [ebx], esi
test esi, esi
jne 0x4f221c
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x566cf0]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov edx, dword [ebp - 8]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov edi, ebx
cmp ecx, 1
jb 0x4f22f7
mov esi, 1
jmp 0x4f2273
mov eax, dword [ebp - 8]
mov esi, 1
lea ebx, [eax + 0x24]
mov dword [ebx], 1
mov edi, ebx
mov dword [eax + 0x20], 1
jmp 0x4f2273
mov eax, dword [ebp - 8]
mov ecx, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x4f23fe
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f22d3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f22d0
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
push dword [ebp - 0xc]
mov edx, dword [eax + 8]
call fcn.00528ea0
test eax, eax
mov eax, dword [ebp - 8]
je 0x4f0b4a
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x4f2270
mov esi, dword [edi]
cmp ecx, esi
je 0x4f0568
cmp dword [ebp - 0x14], 0
je 0x4fa974
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jb 0x4f2338
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x4f056b
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x4fae71
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov esi, 1
cmp edx, dword [ecx + 0x64]
jae 0x4f23c5
cmp dword [ebp - 0xc], 0
movzx ecx, word [edx]
je 0x4f238d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f238a
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 [ebp - 8]
push dword [ebp - 0xc]
mov edx, dword [eax + 8]
call fcn.00528ea0
jmp 0x4f23a0
test eax, eax
je 0x4f231a
mov ecx, dword [ebp - 8]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [ebx]
jb 0x4f2335
nop
jmp 0x4f231a
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f231d
cmp edx, dword [esi + 0x6c]
ja 0x4f23e9
cmp dword [esi + 0x34], 0
je 0x4f231d
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp 0x4f231d
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f2426
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f248e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
lea esp, [esp]
cmp edx, dword [esi + 0x6c]
ja 0x4f2473
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f24df
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f24df
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f24e2
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x4f2bd0.8203
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.0x4f2bd0.8203
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
cmp eax, dword [edx + 0x70]
jbe 0x4f2512
mov dword [edx + 0x70], eax
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x18], 0
je 0x4fb012
sub ebx, dword ds:[ebx + 0x10]
mov eax, dword [edx + 0xa8]
mov edi, ebx
mov dword [ebp - 8], ebx
or dword [eax + 0x3c], 2
movzx eax, byte [ebx + 0x30]
dec eax
cmp eax, 0xdd
ja case.0x4f89c9.15
movzx eax, byte [eax + 0x4fb380]
jmp dword [eax*4 + 0x4fb290]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f259c
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f2587
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f25f2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f25f2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f25f5
mov edx, dword [ebp - 8]
jmp 0x4f2600
cmp ecx, 0xff
ja case.default.0x4f8a49
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.default.0x4f8a49
lea eax, ds:[edi + 2]
mov dword [edx], eax
jmp 0x4f056b
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f2671
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f265c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f26bf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f26bf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f26c2
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x4f2bd0.8203
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
jmp 0x4f24f5
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f272e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f2700
cmp edx, dword [esi + 0x6c]
ja 0x4f2713
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f277f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f277f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2782
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x4f8a49
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
je case.default.0x4f8a49
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x4f056b
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f27f1
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f27dc
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f283f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f283f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2842
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x4f2bd0.8203
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
jmp 0x4f24f5
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f28ae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f2880
cmp edx, dword [esi + 0x6c]
ja 0x4f2893
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f28ff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f28ff
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2902
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x4f8a49
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x4f8a49
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x4f056b
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f2971
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f295c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f29ba
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f29ba
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
lea ebx, [ebx]
cmp ecx, 0x85
ja 0x4f2a5c
je case.0x4f29e0.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f8a49
mov edi, edi
jmp dword [ecx*4 + 0x4fb460]
mov edx, dword [ebp + 0x18]
cmp esi, dword [edx + 0x64]
jb 0x4f2a39
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f2a4f
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x4f2a1e
cmp dword [esi + 0x34], 0
je 0x4f2a51
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x4f056b
cmp word ds:[esi], 0xa
jne 0x4f2a4f
mov ecx, dword [ebp - 8]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov esi, edx
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x4f056b
lea esp, [esp]
sub ecx, 0x2028
je case.0x4f29e0.11
sub ecx, 1
jne case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
cmp word [esi + 0x4e], 2
jne 0x4f2a51
nop
jmp case.default.0x4f8a49
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
add dword [eax], 2
jmp 0x4f056b
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f2aee
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f2ac0
cmp edx, dword [esi + 0x6c]
ja 0x4f2ad3
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f2b3f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2b3f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2b42
mov edx, dword [ebp - 8]
cmp ecx, 0x2000
ja 0x4f2b9c
je case.default.0x4f8a49
jmp 0x4f2b60
cmp ecx, 0xa0
ja 0x4f2b85
je case.default.0x4f8a49
cmp ecx, 9
je case.default.0x4f8a49
cmp ecx, 0x20
jmp 0x4f2613
cmp ecx, 0x1680
je case.default.0x4f8a49
cmp ecx, 0x180e
jmp 0x4f2613
lea esp, [esp]
cmp ecx, 0x3000
ja case.0x4f2bd0.8203
je case.default.0x4f8a49
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f2bd0.8203
movzx eax, byte [ecx + 0x4fb478]
jmp dword [eax*4 + 0x4fb470]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f2c2e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f2c00
cmp edx, dword [esi + 0x6c]
ja 0x4f2c13
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f2c7f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2c7f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2c82
mov edx, dword [ebp - 8]
cmp ecx, 0x2000
ja 0x4f2cdc
je case.0x4f2bd0.8203
jmp 0x4f2ca0
cmp ecx, 0xa0
ja 0x4f2cc5
je case.0x4f2bd0.8203
cmp ecx, 9
je case.0x4f2bd0.8203
cmp ecx, 0x20
jmp 0x4f24f5
cmp ecx, 0x1680
je case.0x4f2bd0.8203
cmp ecx, 0x180e
jmp 0x4f24f5
lea esp, [esp]
cmp ecx, 0x3000
ja case.default.0x4f8a49
je case.0x4f2bd0.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4f8a49
movzx eax, byte [ecx + 0x4fb4e0]
jmp dword [eax*4 + 0x4fb4d8]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f2d6e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f2d40
cmp edx, dword [esi + 0x6c]
ja 0x4f2d53
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f2dbf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2dbf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2dc2
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x4f2df0
je case.default.0x4f8a49
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f2bd0.8203
jmp dword [ecx*4 + 0x4fb540]
sub ecx, 0x2028
je case.default.0x4f8a49
lea esp, [esp]
sub ecx, 1
jne case.0x4f2bd0.8203
jmp case.default.0x4f8a49
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f2e54
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f2e3f
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f2ea5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2ea5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f2ea8
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x4f2ed0
je case.0x4f2bd0.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f8a49
jmp dword [ecx*4 + 0x4fb550]
sub ecx, 0x2028
je case.0x4f2bd0.8203
sub ecx, 1
jmp 0x4f24f5
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esi + 0x38]
cmp ecx, dword [eax + 0x64]
jb 0x4f2f31
mov esi, eax
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f2f1c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [esi + 0x38], ecx
je 0x4f2f77
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2f77
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 [esi + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea ecx, [eax + eax*2]
movzx eax, word [edi + 2]
cmp eax, 0xa
ja case.0x4f89c9.15
jmp dword [eax*4 + 0x4fb560]
cmp bl, 0xf
je case.default.0x4f8a49
add dword ds:[esi], 6
jmp 0x4f0568
mov al, byte [ecx*4 + 0x567961]
cmp al, 9
je 0x4f2fef
cmp al, 5
je 0x4f2fef
lea esp, [esp]
cmp al, 8
je 0x4f2fef
xor ecx, ecx
jmp 0x4f2ff4
mov ecx, 1
xor eax, eax
cmp bl, 0xf
sete al
cmp ecx, eax
jne 0x4f2fb9
jmp case.default.0x4f8a49
movzx ecx, byte [ecx*4 + 0x567961]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x580460]
setne dl
xor eax, eax
cmp bl, 0x10
sete al
cmp edx, eax
jne 0x4f2fb9
jmp case.default.0x4f8a49
movzx eax, byte [ecx*4 + 0x567961]
xor ecx, ecx
cmp word [edi + 4], ax
setne cl
xor eax, eax
cmp bl, 0x10
sete al
cmp ecx, eax
jne 0x4f2fb9
jmp case.default.0x4f8a49
movzx eax, byte [ecx*4 + 0x567960]
jmp 0x4f303a
movzx eax, byte [ecx*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f2fef
lea ebx, [ebx]
cmp eax, 3
je 0x4f2fef
xor ecx, ecx
jmp 0x4f2ff4
cmp edx, 0x20
ja 0x4f30b2
je case.0x4f3138.8193
add edx, 0xfffffff7
cmp edx, 4
ja case.0x4f3138.8203
jmp dword [edx*4 + 0x4fb58c]
cmp edx, 0x2000
ja 0x4f3117
mov edi, edi
je case.0x4f3138.8193
cmp edx, 0x1680
ja 0x4f310f
je case.0x4f3138.8193
jmp 0x4f30e0
sub edx, 0x85
je case.0x4f3138.8193
sub edx, 0x1b
je case.0x4f3138.8193
movzx eax, byte [ecx*4 + 0x567961]
xor ecx, ecx
cmp dword [eax*4 + 0x580460], 6
sete cl
jmp 0x4f2ff4
cmp edx, 0x180e
jmp 0x4f30ef
cmp edx, 0x3000
ja case.0x4f3138.8203
nop
je case.0x4f3138.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x4f3138.8203
movzx eax, byte [edx + 0x4fb5a8]
jmp dword [eax*4 + 0x4fb5a0]
cmp byte [esi + 0x31], 0xf
jne 0x4f2fb9
jmp case.default.0x4f8a49
movzx eax, byte [ecx*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
lea ecx, [ecx]
cmp eax, 1
je 0x4f2fef
cmp eax, 3
je 0x4f2fef
cmp edx, 0x5f
je 0x4f2fef
xor ecx, ecx
jmp 0x4f2ff4
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5677a0]
lea eax, [eax*4 + 0x5677a0]
cmp edx, ecx
jb 0x4f31b1
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x4f31c5
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4f31a0
cmp byte [esi + 0x31], 0x10
jne 0x4f2fb9
jmp 0x4f31c0
jmp case.default.0x4f8a49
cmp byte [esi + 0x31], 0x10
je 0x4f2fb9
jmp case.default.0x4f8a49
cmp edx, 0x24
je 0x4f2fef
lea ecx, [ecx]
cmp edx, 0x40
je 0x4f2fef
cmp edx, 0x60
je 0x4f2fef
cmp edx, 0xa0
jb 0x4f320c
mov edi, edi
cmp edx, 0xd7ff
jbe 0x4f2fef
cmp edx, 0xe000
jae 0x4f2fef
xor ecx, ecx
jmp 0x4f2ff4
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f326e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
lea ecx, [ecx]
cmp edx, dword [esi + 0x6c]
ja 0x4f3253
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
mov edi, dword [ebp - 0xc]
mov esi, edx
mov dword [ebx + 0x38], edx
test edi, edi
je 0x4f32b9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f32b9
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov eax, dword [ebp + 0x18]
mov edx, esi
push 0
push edi
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.00529940
mov esi, dword [ebp + 0x18]
mov dword [ebx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x4f330d
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x4f330d
cmp eax, dword [esi + 0x6c]
ja 0x4f32fd
cmp dword [esi + 0x34], 0
je 0x4f330d
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
add dword [ebx], 2
mov edx, edi
jmp 0x4f0570
movzx eax, word [edi + 2]
add edi, 4
mov edx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov dword [edx + 0x24], eax
mov dword [edx + 0x20], eax
mov eax, edi
mov dword [edx], edi
jmp 0x4f343f
mov edx, dword ds:[ebp - 8]
mov dword [ebp - 0x10], 0
mov dword [edx + 0x20], 0
movzx eax, word [edi + 2]
mov dword [edx + 0x24], eax
xor eax, eax
cmp word [edi], 0x5c
setne al
add edi, 4
mov dword [ebp - 0x14], eax
mov eax, edi
mov dword [edx], edi
jmp 0x4f343f
mov edx, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov eax, edi
mov dword [ebp - 0x10], 0
mov dword [edx + 0x20], 0
mov dword [edx + 0x24], 0xffffffff
mov dword [edx], edi
jmp 0x4f343f
mov edx, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov eax, edi
mov dword [ebp - 0x10], 1
mov dword [edx + 0x20], 1
mov dword [edx + 0x24], 0xffffffff
mov dword [edx], edi
jmp 0x4f343f
mov edx, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov eax, edi
mov dword [ebp - 0x10], 0
mov dword [edx + 0x20], 0
mov dword [edx + 0x24], 1
mov dword [edx], edi
jmp 0x4f343f
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x10], 0
mov dword [edx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [edx + 0x24], eax
mov eax, edi
mov dword [edx], edi
jmp 0x4f343f
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 8]
mov eax, dword [ecx*4 + 0x566360]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx*4 + 0x566334]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x566d24]
mov dword [ebp - 0x14], eax
mov eax, dword [edx]
movzx ebx, word [edi]
lea ecx, [eax + 2]
mov eax, dword [ebp - 8]
mov dword [edx + 0x28], ebx
mov dword [eax], ecx
cmp ebx, 0x10
je 0x4f346a
cmp ebx, 0xf
je 0x4f346a
mov edi, dword [ebp - 0x10]
or edx, 0xffffffff
jmp 0x4f3488
movzx edx, word [ecx]
add ecx, 2
mov esi, dword [ebp - 8]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [esi + 0x2c], eax
lea eax, [ecx + 2]
mov dword [esi], eax
mov eax, esi
mov edi, dword [eax + 0x20]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x40], edx
test edi, edi
je 0x4f3629
test edx, edx
js 0x4f3fb2
jmp 0x4f34a0
cmp edx, 0xa
ja case.0x4f89c9.15
jmp dword [edx*4 + 0x4fb608]
cmp ebx, 0xf
je case.default.0x4f8a49
mov ebx, dword [ebp - 8]
mov esi, 1
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x4f3509
cmp dword ds:[ebp - 0xc], 0
lea eax, [ecx + 2]
movzx edx, word [ecx]
mov ecx, eax
mov dword [ebx + 0x38], eax
je 0x4f34fe
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4f34fe
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, edi
jbe 0x4f34c4
jmp 0x4f362c
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x4f3533
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x4f3560
mov ecx, dword [ebp + 0x18]
cmp esi, dword [ecx + 0x64]
jae 0x4f3678
cmp dword ds:[ebp - 0xc], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f35ba
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f35ba
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x567961]
cmp al, 9
je 0x4f3605
cmp al, 5
je 0x4f3605
cmp al, 8
je 0x4f3605
xor ecx, ecx
jmp 0x4f360a
mov ecx, 1
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 8]
je 0x4f0b4a
inc edi
cmp edi, dword [ebp - 0x10]
jbe 0x4f3560
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp - 0xc]
mov ecx, dword ds:[ebx + 0x20]
mov ebx, dword [ebx + 0x24]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], ebx
cmp ecx, ebx
je 0x4f056b
cmp dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x40]
je 0x4fa7a9
mov edx, dword ds:[ebp - 8]
mov esi, dword [edx + 0x38]
mov dword [edx + 4], esi
test eax, eax
js 0x4f5f16
cmp eax, 0xa
ja case.0x4f89c9.15
jmp dword [eax*4 + 0x4fb634]
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f369f
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, dword [eax + 0x38]
mov edi, 1
lea esp, [esp]
mov ecx, dword [ebp + 0x18]
cmp esi, dword [ecx + 0x64]
jae 0x4f3775
cmp dword ds:[ebp - 0xc], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f371a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f371a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [ebp - 8]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f0b4a
inc edi
cmp edi, dword [ebp - 0x10]
jbe 0x4f36c0
jmp 0x4f3629
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f379f
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, dword [eax + 0x38]
mov edi, 1
lea esp, [esp]
mov ecx, dword [ebp + 0x18]
cmp esi, dword [ecx + 0x64]
jae 0x4f386e
cmp dword ds:[ebp - 0xc], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f381a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f381a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [ebp - 8]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f0b4a
inc edi
cmp edi, dword [ebp - 0x10]
jbe 0x4f37c0
jmp 0x4f3629
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f3893
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x4f38c0
mov ecx, dword [ebp + 0x18]
cmp esi, dword [ecx + 0x64]
jae 0x4f396e
cmp dword ds:[ebp - 0xc], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f391a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f391a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [ebp - 8]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567960]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f0b4a
inc edi
cmp edi, dword [ebp - 0x10]
jbe 0x4f38c0
jmp 0x4f3629
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f3993
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x4f39c0
mov ecx, dword [ebp + 0x18]
cmp esi, dword [ecx + 0x64]
jae 0x4f3a8e
cmp dword ds:[ebp - 0xc], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f3a1a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3a1a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f3a65
cmp eax, 3
je 0x4f3a65
xor ecx, ecx
jmp 0x4f3a6a
mov ecx, 1
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 8]
je 0x4f0b4a
inc edi
cmp edi, dword [ebp - 0x10]
jbe 0x4f39c0
jmp 0x4f3629
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f3ab3
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov ebx, dword [ebp - 8]
mov esi, 1
mov edi, dword [ebp - 0xc]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [eax + 0x64]
jae 0x4f3c3a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebx + 0x38], edx
test edi, edi
je 0x4f3b39
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3b39
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 [ebx + 0x38], eax
lea esp, [esp]
cmp ecx, 0x20
ja 0x4f3b67
je case.0x4f3c2d.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f3c2d.8203
jmp 0x4f3b60
jmp dword [eax*4 + 0x4fb660]
cmp ecx, 0x2000
ja 0x4f3c0d
je case.0x4f3c2d.8193
lea esp, [esp]
cmp ecx, 0x1680
ja 0x4f3c05
je case.0x4f3c2d.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f3c2d.8193
sub eax, 0x1b
je case.0x4f3c2d.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
cmp dword [eax*4 + 0x580460], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x4f8a49
inc esi
cmp esi, dword [ebx + 0x20]
jbe 0x4f3ae0
mov esi, dword ds:[ebp + 0x18]
jmp 0x4f3632
cmp ecx, 0x180e
jmp 0x4f3ba2
cmp ecx, 0x3000
ja case.0x4f3c2d.8203
je case.0x4f3c2d.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f3c2d.8203
movzx eax, byte [eax + 0x4fb67c]
jmp dword [eax*4 + 0x4fb674]
cmp dword [ebx + 0x28], 0xf
jmp 0x4f3be8
mov esi, eax
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f3c5e
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x4f3c80
mov ecx, dword [ebp + 0x18]
cmp esi, dword [ecx + 0x64]
jae 0x4f3d57
cmp dword ds:[ebp - 0xc], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x4f3cda
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3cda
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [ebp - 8]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x57c020]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f3d30
cmp eax, 3
je 0x4f3d30
lea ecx, [ecx]
cmp edx, 0x5f
je 0x4f3d30
xor ecx, ecx
jmp 0x4f3d35
mov ecx, 1
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 8]
je 0x4f0b4a
inc edi
cmp edi, dword [ebp - 0x10]
jbe 0x4f3c80
jmp 0x4f3629
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f3d7f
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, 1
lea esp, [esp]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x4f3e5c
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f3dfd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3dfa
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5677a0]
lea eax, [eax*4 + 0x5677a0]
cmp ecx, edx
jb 0x4f3e31
jmp 0x4f3e20
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f3e4d
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f3e20
mov eax, dword [ebp - 8]
cmp ebx, 0xf
jne 0x4f0b4a
inc esi
cmp esi, edi
jbe 0x4f3da0
jmp 0x4f3629
mov eax, dword [ebp - 8]
cmp dword [eax + 0x28], 0xf
je case.default.0x4f8a49
jmp 0x4f3e3d
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f3e86
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov esi, 1
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x4f3f79
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x4f3efa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3efa
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea ebx, [ebx]
cmp ecx, 0x24
je 0x4f3f53
cmp ecx, 0x40
je 0x4f3f53
cmp ecx, 0x60
je 0x4f3f53
jmp 0x4f3f20
cmp ecx, 0xa0
jb 0x4f3f38
cmp ecx, 0xd7ff
jbe 0x4f3f53
jmp 0x4f3f40
cmp ecx, 0xe000
jae 0x4f3f53
xor ecx, ecx
jmp 0x4f3f58
mov ecx, 1
xor eax, eax
cmp ebx, 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 8]
je 0x4f0b4a
inc esi
cmp esi, edi
jbe 0x4f3ea0
jmp 0x4f3629
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f3f9d
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
cmp ebx, 0x16
jne 0x4f40d4
mov ecx, dword [ebp + 0x18]
lea edi, [ebx - 0x15]
mov ebx, dword [ebp - 8]
mov esi, dword [ecx + 0x64]
jmp 0x4f3fd0
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x4f4098
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x4f402a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f402a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, dword [ebp + 0x18]
mov edx, esi
push 0
push dword [ebp - 0xc]
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.00529940
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x38], eax
mov esi, dword [ecx + 0x64]
cmp eax, esi
jb 0x4f4089
movzx ecx, word ds:[ecx + 0x4c]
mov edx, ecx
test cx, cx
mov ecx, dword [ebp + 0x18]
je 0x4f4089
cmp eax, dword [ecx + 0x6c]
ja 0x4f4079
cmp dword [ecx + 0x34], 0
je 0x4f4089
mov dword [ecx + 0x2c], 1
cmp edx, 1
ja 0x4f0978
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x4f3fd0
jmp 0x4f362c
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x4f40bf
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
lea eax, ds:[ebx - 6]
cmp eax, 0xf
ja case.0x4f89c9.15
cmp dword [ebp - 0xc], 0
je switch.0x004f4c4e
jmp dword [eax*4 + 0x4fb6dc]
mov ebx, dword [ebp - 8]
mov esi, 1
mov edx, dword [ebx + 0x38]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x4f4910
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f48ea
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebx + 0x38], edx
cmp ecx, 0x80
jae 0x4f4906
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.default.0x4f8a49
inc esi
cmp esi, edi
jbe 0x4f48a0
jmp 0x4f362c
mov esi, eax
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f493c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
jmp dword [eax*4 + 0x4fb81c]
mov ebx, dword [ebp - 8]
mov esi, 1
mov edx, dword [ebx + 0x38]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x4f52bf
movzx eax, word [edx]
mov ecx, 0xff
cmp ax, cx
ja 0x4f52af
mov ecx, eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.default.0x4f8a49
add edx, 2
inc esi
mov dword [ebx + 0x38], edx
cmp esi, edi
jbe 0x4f5280
jmp 0x4f362c
mov esi, eax
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f52e6
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp + 0x18]
nop
mov ecx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f563f
cmp dword [ebp - 0xc], 0
je 0x4f560f
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0x50]
mov eax, 2
cmove ecx, eax
mov eax, dword [ebp + 0x18]
cmp dword [edx + 0x28], 0xf
je 0x4f5624
inc edi
lea esi, [esi + ecx*2]
mov dword [edx + 0x38], esi
cmp edi, ebx
jb 0x4f55e0
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x4f0570
mov ebx, dword [ebp - 8]
mov ecx, dword [ebx + 0x38]
jmp 0x4fa4bb
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f5624
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x4f565e
cmp dword [esi + 0x34], 0
je 0x4f5627
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp 0x4f5627
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 8]
jmp 0x4f5680
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f56cf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f56cf
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 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x567961]
cmp al, 9
je 0x4f5717
mov edi, edi
cmp al, 5
je 0x4f5717
cmp al, 8
je 0x4f5717
xor ecx, ecx
jmp 0x4f571c
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je 0x4f5624
mov ecx, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc ecx
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
jb 0x4f5680
jmp 0x4f5624
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f5624
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x4f5774
cmp dword [esi + 0x34], 0
je 0x4f5627
mov dword [esi + 0x2c], edx
jmp 0x4f5780
cmp ecx, 1
ja 0x4f0978
jmp 0x4f5627
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f57eb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f57eb
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov ebx, dword [ebp - 8]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [ebp - 0x38]
sete al
cmp ecx, eax
je 0x4f5624
mov eax, dword [ebp - 8]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x4f57a0
jmp 0x4f5624
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 0x10]
jmp 0x4f5860
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f58af
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f58af
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov ebx, dword [ebp - 8]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [ebp - 0x38]
sete al
cmp ecx, eax
je 0x4f5624
mov eax, dword [ebp - 8]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x4f5860
jmp 0x4f5624
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 0x10]
jmp 0x4f5920
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f596f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f596f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov ebx, dword [ebp - 8]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567960]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [ebp - 0x38]
sete al
cmp ecx, eax
je 0x4f5624
mov eax, dword [ebp - 8]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x4f5920
jmp 0x4f5624
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 0x10]
jmp 0x4f59e0
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f5a2f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5a2f
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 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f5a79
cmp eax, 3
je 0x4f5a79
xor ecx, ecx
jmp 0x4f5a7e
mov ecx, 1
mov ebx, dword [ebp - 8]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [ebp - 0x38]
sete al
cmp ecx, eax
je 0x4f5624
mov eax, dword ds:[ebp - 8]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x4f59e0
jmp 0x4f5624
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
jmp 0x4f5ac0
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f5b0f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5b0f
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 0x4f5b31
je case.0x4f5c00.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f5c00.8194
jmp dword [eax*4 + 0x4fb95c]
cmp ecx, 0x2000
ja 0x4f5bd7
lea ecx, [ecx]
je case.0x4f5c00.8193
cmp ecx, 0x1680
ja 0x4f5bcf
je case.0x4f5c00.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f5c00.8193
sub eax, 0x1b
je case.0x4f5c00.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
cmp dword [eax*4 + 0x580460], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je 0x4f5624
lea esi, [esi + edx*2]
inc edi
mov dword [ebx + 0x38], esi
cmp edi, dword [ebx + 0x24]
jb 0x4f5ac0
jmp 0x4f5624
cmp ecx, 0x180e
jmp 0x4f5b6e
cmp ecx, 0x3000
ja case.0x4f5c00.8194
nop
je case.0x4f5c00.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f5c00.8194
movzx eax, byte [eax + 0x4fb978]
lea esp, [esp]
jmp dword [eax*4 + 0x4fb970]
cmp dword [ebx + 0x28], 0xf
je 0x4f5624
mov esi, dword [ebx + 0x38]
jmp 0x4f5bba
cmp ecx, ebx
jae 0x4f5624
mov edi, edi
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x4f5cf8
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x4f5c6f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5c6f
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 + 0x57c020]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f5cc5
cmp eax, 3
je 0x4f5cc5
cmp edx, 0x5f
je 0x4f5cc5
xor ecx, ecx
jmp 0x4f5cca
mov ecx, 1
mov edx, dword [ebp - 8]
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
je 0x4f5624
mov eax, dword [ebp - 0x10]
lea esi, [esi + edi*2]
inc eax
mov dword [edx + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x4f5c20
jmp 0x4f5624
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f5f0f
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x4f5d1e
cmp dword [esi + 0x34], 0
je 0x4f5627
mov dword [esi + 0x2c], edi
jmp 0x4f5777
cmp ecx, ebx
jae 0x4f5624
mov edi, edi
mov eax, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [eax + 0x64]
jae 0x4f5dfd
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f5d8a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5d8a
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 ds:[edx + 0x2c]
mov edx, dword [eax*4 + 0x5677a0]
lea eax, [eax*4 + 0x5677a0]
cmp ecx, edx
jb 0x4f5dc4
jmp 0x4f5db0
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f5dee
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x4f5db0
mov edx, dword [ebp - 8]
cmp dword [edx + 0x28], 0xf
jne 0x4f5624
lea eax, [edi + edi]
add dword [edx + 0x38], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [edx + 0x38]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x4f5d30
jmp 0x4f5624
mov edx, dword [ebp - 8]
cmp dword [edx + 0x28], 0xf
je 0x4f5624
jmp 0x4f5dd1
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f5624
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
jmp 0x4f5d0e
lea esp, [esp]
cmp ecx, ebx
jae 0x4f5624
mov edi, dword [ebp - 8]
jmp 0x4f5e30
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x4f574d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x4f5e8a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5e8a
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 0x4f5edf
cmp ecx, 0x40
je 0x4f5edf
lea esp, [esp]
cmp ecx, 0x60
je 0x4f5edf
cmp ecx, 0xa0
jb 0x4f5ecc
jmp 0x4f5ec0
cmp ecx, 0xd7ff
jbe 0x4f5edf
cmp ecx, 0xe000
jae 0x4f5edf
xor ecx, ecx
jmp 0x4f5ee4
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je 0x4f5624
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x4f5e30
jmp 0x4f5624
mov esi, edx
jmp 0x4f5627
mov edi, dword ds:[edx + 0x28]
cmp edi, 0x16
jne 0x4f6065
cmp ecx, ebx
jae 0x4f604e
mov edi, dword [ebp + 0x18]
mov esi, dword [edi + 0x64]
jmp 0x4f5f40
mov edx, dword [edx + 0x38]
cmp edx, esi
jae 0x4f6006
mov ebx, dword ds:[ebp - 8]
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x4f5f97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5f97
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [ebp - 0xc]
mov edx, esi
push dword [edi + 0x64]
push dword [edi + 0x5c]
call fcn.00529940
mov edx, dword [ebp - 8]
mov dword [edx + 0x38], eax
mov esi, dword [edi + 0x64]
cmp eax, esi
jb 0x4f5fef
movzx ecx, word [edi + 0x4c]
mov edx, ecx
test cx, cx
je 0x4f5fec
cmp eax, dword [edi + 0x6c]
ja 0x4f5fdc
cmp dword [edi + 0x34], 0
je 0x4f5fec
mov dword [edi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [edx + 0x24]
jb 0x4f5f40
mov esi, edi
jmp 0x4f6051
mov esi, edi
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f6051
jmp 0x4f6020
cmp edx, dword [esi + 0x6c]
ja 0x4f6033
cmp dword [esi + 0x34], 0
je 0x4f6051
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp 0x4f6051
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x4f0570
mov edi, edi
jmp 0x4fa708
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x4f89c9.15
cmp dword [ebp - 0xc], 0
je switch.0x004f6aae
jmp 0x4f6080
jmp dword [eax*4 + 0x4fb9d8]
jmp dword [eax*4 + 0x4fba90]
mov ebx, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
jmp 0x4f6db7
ja 0x4f6bf2
cmp dword [esi + 0x34], 0
je 0x4f6c09
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
mov ebx, dword [ebp - 8]
jmp 0x4f6db7
movzx eax, word ds:[edi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f71ea
cmp esi, dword [edi + 0x6c]
mov esi, edi
jmp 0x4f6be2
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x4f0570
mov ecx, dword [ebx + 0x38]
jmp 0x4f8d99
cmp ecx, ebx
jae 0x4f6b77
mov edi, dword [ebp + 0x18]
jmp 0x4f7020
cmp esi, dword [edi + 0x64]
jae 0x4f6d32
movzx eax, word [esi]
cmp ax, word [ebp - 0x3c]
ja 0x4f7049
mov ecx, eax
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 8
jne 0x4f71ea
mov ecx, dword [ebp - 0x10]
inc ecx
add esi, 2
mov dword [edx + 0x38], esi
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
jb 0x4f7020
mov ebx, dword ds:[ebp - 8]
mov esi, edi
jmp 0x4f6db7
mov ebx, dword [ebp - 8]
mov esi, edi
jmp 0x4f6db7
xor eax, eax
cmp bl, 0x74
mov ebx, dword [ebp - 8]
sete al
mov dword [ebx + 0x28], eax
movzx eax, word [esi + 0x52]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
imul ecx, eax
mov eax, dword [esi + 0x54]
lea ecx, [eax + ecx*2]
lea eax, [edi + 6]
mov dword [ebx], eax
test edx, edx
je 0x4f725f
jmp 0x4f7230
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [ebx + 0x14], eax
cmp eax, dword [ebx + 0x50]
jae 0x4f7254
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x4f725f
movzx eax, word [esi + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x4f7230
mov edi, dword [ebx]
jmp 0x4f7287
xor eax, eax
cmp bl, 0x72
mov ebx, dword [ebp - 8]
sete al
mov dword [ebx + 0x28], eax
movzx eax, word [edi + 2]
add edi, 4
lea eax, [eax*2 - 2]
mov dword [ebx + 0x14], eax
mov dword [ebx], edi
mov esi, edi
movzx edx, word [edi]
lea eax, [edx - 0x62]
cmp eax, 7
ja case.default.0x4f72a0
movzx eax, byte [eax + 0x4fbbc8]
nop
jmp dword [eax*4 + 0x4fbbc0]
mov ecx, dword [edx*4 + 0x56632c]
lea eax, [edi + 2]
mov edi, dword [ebp - 8]
mov ebx, dword [edx*4 + str.PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES_is_not_allowed_in_UTF_16_mode]
mov edx, dword [edx*4 + 0x566cf0]
mov dword [ebp - 0x14], edx
mov dword [edi], eax
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ebx
jmp 0x4f7307
movzx ecx, word [edi + 2]
mov edi, dword [ebp - 8]
mov dword [edi + 0x20], ecx
movzx ebx, word [esi + 4]
mov dword [edi + 0x24], ebx
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x566cf0]
mov dword [ebp - 0x14], eax
test ebx, ebx
jne 0x4f7302
mov dword [edi + 0x24], 0xffffffff
or ebx, 0xffffffff
lea eax, [esi + 6]
mov dword [edi], eax
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x50]
jae 0x4f733e
mov edx, dword ds:[edi + eax*4 + 0x54]
cmp edx, 0xffffffff
je 0x4f733e
cmp edx, dword [edi + eax*4 + 0x58]
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
je 0x4f0570
jmp 0x4f735c
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
test ecx, ecx
je 0x4f0570
test dword [esi + 0x8c], 0x200
jne 0x4f0570
mov esi, 1
cmp ecx, esi
jb 0x4f73a0
lea esp, [esp]
mov edx, dword ds:[edi + 0x28]
lea eax, [ebp - 0x5c]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.004f0140
test eax, eax
jne 0x4f7416
mov eax, dword [ebp - 0x5c]
inc esi
add eax, eax
add dword [edi + 0x38], eax
mov ecx, dword [edi + 0x20]
cmp esi, ecx
jbe 0x4f7370
mov ebx, dword [edi + 0x24]
mov edx, dword [ebp - 0xc]
cmp ecx, ebx
je 0x4f0887
cmp dword [ebp - 0x14], 0
je 0x4fa88d
mov eax, dword [edi + 0x38]
mov esi, 1
mov dword [edi + 4], eax
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + ecx*4 + 0x58]
sub eax, dword [edi + ecx*4 + 0x54]
mov dword [edi + 0xc], eax
mov edi, dword [edi + 0x20]
cmp edi, ebx
mov ebx, dword [ebp - 8]
jae 0x4f74b1
lea esp, [esp]
mov edx, dword [ebx + 0x28]
lea eax, [ebp - 0x60]
mov ecx, dword [ebx + 0x14]
push eax
push dword [ebp + 0x18]
push ebx
call fcn.004f0140
test eax, eax
jne 0x4f7471
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp eax, dword [ebx + 0xc]
cmovne esi, ecx
add eax, eax
add dword [ebx + 0x38], eax
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x4f73e0
jmp 0x4f74a9
mov esi, dword [ebp + 0x18]
jle 0x4f742a
mov ecx, dword [esi + 0x64]
mov dword [edi + 0x38], ecx
jmp 0x4f742d
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.default.0x4f8a49
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f745c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
jle 0x4f74a9
mov edx, dword [ebp + 0x18]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f74a9
mov eax, dword [edx + 0x64]
cmp eax, dword [edx + 0x6c]
jbe 0x4f74a9
mov dword ds:[edx + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
test esi, esi
je 0x4fa7e7
mov edx, dword [ebp + 0x18]
jmp 0x4f8521
mov esi, dword [ebp + 0x18]
lea eax, [ebp - 0x20]
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x14]
push eax
push esi
push ebx
call fcn.004f0140
test eax, eax
je 0x4f7531
jle 0x4f74e6
mov ecx, dword [esi + 0x64]
mov dword [ebx + 0x38], ecx
jmp 0x4f74e9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.default.0x4f8a49
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f751c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov eax, dword [ebp - 0x20]
add eax, eax
add dword [ebx + 0x38], eax
jmp 0x4f056b
mov ecx, dword [ebp - 8]
add edi, 2
mov dword [ecx], edi
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x4f7546
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x4f0570
cmp dword [esi + 0x30], 0
mov ebx, dword [ebp - 8]
jne 0x4f7576
cmp dword [ebx + 0x18], 0
jne 0x4f80b0
xor eax, eax
jmp 0x4fac62
mov ebx, dword [ebp - 8]
lea eax, [ebp - 0x20]
push eax
mov edx, esi
mov ecx, ebx
call fcn.004f0040
mov esi, eax
test esi, esi
jg case.default.0x4f8a49
js 0x4f24fd
mov eax, dword [ebp - 0x20]
add eax, eax
add dword [ebx], eax
jmp 0x4f0568
movzx eax, word [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x4f75c4
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add edi, 4
mov dword [ebx], edi
movzx eax, word [edi]
mov ecx, eax
cmp eax, 0x76
je 0x4f75e9
jmp 0x4f75e0
cmp eax, 0x77
jne 0x4f7621
lea eax, [ebp - 0x20]
mov edx, esi
push eax
mov ecx, ebx
call fcn.004f0040
mov esi, eax
test esi, esi
jg case.default.0x4f8a49
js 0x4f8090
mov ecx, dword [ebx]
mov eax, dword [ebp - 0x20]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
mov eax, dword [ebp - 0x20]
sub dword [ebx + 0xc], eax
movzx ecx, word [edi]
movzx ecx, cx
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x4f7640.150
movzx eax, byte [eax + 0x4fbbec]
lea ebx, [ebx]
jmp dword [eax*4 + 0x4fbbd0]
mov ecx, dword [ebx + 0x44]
cmp ecx, 0xffffffff
je case.0x4f7640.148
movzx eax, word ds:[edi + 2]
cmp eax, 0xffff
je case.0x4f7640.149
cmp eax, ecx
je case.0x4f7640.149
jmp case.0x4f7640.148
mov esi, dword ds:[ebx + 0x44]
cmp esi, 0xffffffff
je case.0x4f7640.148
mov eax, dword [ebp + 0x18]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
movzx ebx, word [eax + 0x52]
mov eax, dword [eax + 0x54]
imul ecx, ebx
lea eax, [eax + ecx*2]
test edx, edx
je 0x4fa597
lea esp, [esp]
movzx ecx, word [eax]
dec edx
cmp ecx, esi
je 0x4f76c4
lea eax, ds:[eax + ebx*2]
test edx, edx
jg 0x4f76b0
mov eax, dword ds:[ebp - 0x18]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], ebx
cmp ecx, esi
jne case.0x4f7640.148
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5804f0]
jmp 0x4fa59f
movzx eax, word [edi + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae case.0x4f7640.148
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je case.0x4f7640.148
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5804f0]
jmp 0x4fa59f
mov eax, dword [ebp + 0x18]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
movzx esi, word [eax + 0x52]
mov eax, dword [eax + 0x54]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x4f7640.148
mov edi, dword [ebx + 0x50]
lea esp, [esp]
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x4f7773
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne case.0x4f7640.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x4f7750
jmp case.0x4f7640.148
cmp dword [ebp - 0xc], 0
movzx edx, word [edi + 2]
mov ebx, dword [ebp - 8]
je 0x4f77dc
test edx, edx
je 0x4f77d4
mov ecx, dword [ebx + 0x38]
mov edi, 0xfc00
dec edx
cmp ecx, dword [esi + 0x60]
jbe case.default.0x4f8a49
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [ebp - 0x24]
jne 0x4f77d0
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x4f77a0
mov ecx, dword [ebx + 0x38]
jmp 0x4f77f6
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg case.default.0x4f8a49
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [esi + 0x6c]
jae 0x4f7802
mov dword [esi + 0x6c], ecx
add dword [ebx], 4
jmp 0x4f056b
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov dword [eax], edi
cmp word [edi], 0x78
je case.0x4f0592.120
jmp 0x4f0570
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x4f78c7
mov ecx, 0x8a
cmp ax, cx
je 0x4f78c7
mov ebx, dword ds:[ebp - 8]
mov ecx, dword [esi + 0x10]
add ecx, dword [ebx + 0x4c]
mov esi, ecx
mov dword [ebp - 0x18], ecx
sub esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x4c]
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x4f78bf
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00537fe0
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x40], eax
mov eax, ebx
sub eax, esi
mov dword [ebx + 0x10], eax
mov esi, 1
jmp 0x4f24fd
movzx eax, word [edi]
jmp 0x4f78cf
mov ebx, dword [ebp - 8]
xor esi, esi
mov ecx, dword [ebp - 0x18]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x4f78e5.134
movzx eax, byte [eax + 0x4fbc1c]
jmp dword [eax*4 + 0x4fbc00]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x4f78fe
mov dword [ecx + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x4f78e5.134
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x4f791b
mov dword [ecx + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
mov eax, ebx
sub eax, esi
mov dword [ebx + 0x10], eax
mov ecx, dword [esi]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
jne case.0x4f78e5.134
lea esp, [esp]
mov dword [esi], ecx
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
je 0x4f7940
jmp case.0x4f78e5.134
mov ecx, dword ds:[esi + 0x38]
push edx
mov edx, dword [ebx + 0x38]
call fcn.005293e0
test eax, eax
jne case.0x4f78e5.134
jmp case.default.0x4f8a49
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x4f79b7
mov esi, ecx
sub esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00537fe0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebx + 0x44], eax
mov eax, dword [esi]
add eax, 4
jmp 0x4f0566
lea edx, [eax + eax]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp + 0x18]
sub eax, dword [edx + 0x5c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x54], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [edx + 0x5c]
mov edx, dword [ebp - 0x40]
sar eax, 1
mov dword [ebx + ecx*4 + 0x58], eax
cmp ecx, dword [ebx + 0x50]
jb case.0x4f78e5.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x4f7a16
push dword [ebp - 0x48]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00537fe0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x4f24fd
mov cl, byte ds:[ebx + 0x31]
cmp cl, 0x79
je 0x4f7a3d
test esi, esi
je 0x4fa846
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x4fa846
add dword [ebx], 4
jmp 0x4f0568
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
jne case.default.0x4f8a49
test byte ds:[esi + 0x88], 1
jne case.default.0x4f8a49
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x4f0570
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
je 0x4f7a66
jmp 0x4f7a80
jmp case.default.0x4f8a49
test byte [esi + 0x88], 2
jne case.default.0x4f8a49
test byte [esi + 0x8c], 0x10
je case.0x4f0592.23
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x64]
jae 0x4f7bb8
jmp case.default.0x4f8a49
mov edx, dword ds:[ebp - 8]
mov eax, dword [ebp + 0x18]
mov esi, dword [edx + 0x38]
mov edi, dword [eax + 0x64]
cmp esi, edi
jae 0x4f7bb5
mov edx, dword [eax + 0x98]
lea ebx, [eax + 0x9c]
test edx, edx
je 0x4f7b05
push dword [ebp - 0xc]
mov ecx, esi
push ebx
push edi
call fcn.00528be0
test eax, eax
je 0x4f7b5a
mov eax, dword ds:[ebp + 0x18]
mov edx, dword [ebx]
mov edi, dword [eax + 0x64]
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x38]
jmp 0x4f7b4d
mov edx, dword [ebx]
mov ecx, edi
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4f7b5a
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x4f7b5a
cmp edx, 1
je 0x4f7b4d
mov ax, word ds:[esi + 2]
cmp ax, word [ecx + 0xa2]
jne 0x4f7b5a
lea eax, [edx + edx]
sub edi, eax
cmp esi, edi
je 0x4f7bb2
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.default.0x4f8a49
cmp dword [esi + 0x98], 0
jne case.default.0x4f8a49
cmp dword [ebx], 2
jne case.default.0x4f8a49
mov ax, word ds:[ecx]
cmp ax, word [esi + 0xa0]
jne case.default.0x4f8a49
jmp 0x4f2f1c
mov edx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x4f7bd9
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
add dword ds:[edx], 2
jmp 0x4f056b
test byte [esi + 0x88], 1
mov ebx, dword [ebp - 8]
je 0x4f7c09
mov eax, dword ds:[ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.default.0x4f8a49
mov ecx, dword [ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x4f7c68
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jne 0x4f7c39
test dword [eax + 0x8c], 0x200000
je case.default.0x4f8a49
mov edx, dword ds:[eax + 0x98]
test edx, edx
je 0x4f7c73
cmp ecx, esi
jbe case.default.0x4f8a49
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00528cc0
nop
test eax, eax
je case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
add dword [ebx], 2
jmp 0x4f056b
mov edi, dword ds:[eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.default.0x4f8a49
lea ecx, [ecx]
cmp edi, 1
je 0x4f7c6b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x4f7c6b
jmp case.default.0x4f8a49
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x4f7d6e
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x4f7cfc
push dword [ebp - 0xc]
push edi
push esi
call fcn.00528be0
mov esi, dword [ebp + 0x18]
test eax, eax
je 0x4f7d3a
add dword [ebx], 2
jmp 0x4f056b
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [ebp + 0x18]
ja 0x4f7d3a
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x4f7d3a
mov edi, edi
cmp edx, 1
je 0x4f7c6b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x4f7c6b
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.default.0x4f8a49
cmp dword ds:[esi + 0x98], 0
jne case.default.0x4f8a49
cmp dword [edi], 2
jmp 0x4f7b8e
mov esi, dword [ebp + 0x18]
test byte [esi + 0x88], 2
jne case.default.0x4f8a49
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f7c6b
cmp ecx, dword [esi + 0x6c]
ja 0x4f7da6
cmp dword ds:[esi + 0x34], 0
je 0x4f7c6b
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
add dword [ebx], 2
jmp 0x4f056b
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x5c]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x38], eax
je 0x4f7a66
jmp case.default.0x4f8a49
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x4f0570
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x4f7ef6
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x4f7e53
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f7e24
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7e53
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp edx, dword [esi + 0x6c]
jae 0x4f7e5f
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x4f7ed3
cmp ecx, 0x5f
jne 0x4f7e85
lea edi, ds:[ecx - 0x5e]
jmp 0x4f7ef8
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f7ec9
lea ecx, [ecx]
cmp eax, 3
jne 0x4f7ef6
mov edi, 1
jmp 0x4f7ef8
cmp ecx, 0xff
ja 0x4f7ef6
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x4f7ef6
mov edi, 1
jmp 0x4f7ef8
xor edi, edi
mov ecx, dword ds:[ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x4f7f79
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x4f7f49
jmp 0x4f7f20
cmp ecx, dword [esi + 0x6c]
ja 0x4f7f33
cmp dword [esi + 0x34], 0
je 0x4f7f49
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
xor edx, edx
mov eax, dword ds:[ebx]
xor edx, edi
movzx ecx, word [eax]
add eax, 2
mov dword [ebx], eax
cmp ecx, 5
jne 0x4f7f6c
xor edx, 1
test edx, edx
je 0x4f056b
jmp case.default.0x4f8a49
cmp dword [ebp - 0xc], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x4f7fe9
cmp edx, eax
jae 0x4f7fad
mov ax, word ds:[edx]
and ax, word [ebp - 0x2c]
cmp ax, word [ebp - 0x24]
jne 0x4f7fad
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7fec
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x4f7fec
movzx ecx, word [ecx]
mov esi, dword [ebp + 0x18]
cmp edx, dword [esi + 0x70]
jbe 0x4f7ffb
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x4f8067
cmp ecx, 0x5f
jne 0x4f801c
lea edx, [ecx - 0x5e]
jmp 0x4f7f4b
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f805d
cmp eax, 3
jne 0x4f7f49
mov edx, 1
jmp 0x4f7f4b
cmp ecx, 0xff
ja 0x4f7f49
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x4f7f49
mov edx, 1
jmp 0x4f7f4b
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 8]
jmp 0x4f2503
jmp 0x4f80a0
test esi, esi
jne 0x4f8dca
mov edi, dword [ebx + 4]
mov esi, dword [ebp + 0x18]
mov dword [ebx], edi
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov dword [ebx + 4], edx
cmp word [edx], 0x78
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5804f0]
lea edi, [ecx + eax*2]
je 0x4fa867
mov dword [ebx], edi
jmp 0x4f056b
lea ebx, [ebx]
cmp esi, 0xfffffc1f
jne 0x4f8111
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x4f81ad.998
cmp word [ecx], 0x78
je 0x4f8119
cmp word [eax], 0x78
jmp 0x4f8113
test esi, esi
jne case.0x4f81ad.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x4fac65
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
jmp 0x4f8140
cmp esi, 0xfffffc19
je 0x4fa4d4
test esi, esi
je 0x4f816c
jmp 0x4f8160
cmp esi, 0xfffffc1f
jne case.0x4f81ad.998
mov ecx, dword ds:[ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x4fad33
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
test esi, esi
jg 0x4f81b4
je case.0x4f81ad.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x4f81ad.998
jmp dword [eax*4 + 0x4fbc30]
mov eax, esi
sub eax, 1
mov eax, dword [ebp - 8]
jne 0x4f2503
xor esi, esi
jmp 0x4f2503
test esi, esi
jg 0x4f81f1
je case.0x4f81ea.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x4f81ad.998
jmp dword [eax*4 + 0x4fbc4c]
mov eax, esi
sub eax, 1
jne 0x4f8dca
mov eax, dword [ebx + 0x20]
nop
test eax, eax
je case.0x4f7640.148
mov ecx, dword [ebx]
lea ebx, [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4f8210
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5804f0]
jmp 0x4fa59f
test esi, esi
jne 0x4f8dca
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebx], ecx
jmp 0x4f0568
test esi, esi
je 0x4f7a3d
mov eax, dword [ebp - 8]
jmp 0x4f2503
lea esp, [esp]
cmp esi, 0xfffffc1a
jne 0x4f8295
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x4fa870
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4f8281
jmp 0x4f82ee
jmp 0x4f82a0
cmp esi, 0xfffffc1f
jne 0x4f82d1
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x4f81ad.998
cmp word [ecx], 0x78
je 0x4f82d9
cmp word [eax], 0x78
jmp 0x4f82d3
test esi, esi
jne case.0x4f81ad.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4fac25
cmp dword [ebx + 0x24], 0
jne 0x4f0563
cmp dword ds:[ebx + 0x28], 0
jne 0x4f0563
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
test esi, esi
jne 0x4f8dca
mov ecx, dword [ebx + 4]
jmp 0x4f8320
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x4f8320
jmp 0x4f0563
test esi, esi
jne 0x4f8dca
add dword [ebx], 2
jmp 0x4f0568
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x4f83b5
mov edi, dword [ebp + 0x18]
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [edi + 0x84], eax
jne 0x4f83b5
jmp 0x4f8380
cmp esi, 0xfffffc1f
jne 0x4f14c9
cmp dword [edi + 0x7c], ecx
jae 0x4f14c9
cmp word [edx], 0x78
je 0x4f83bd
cmp word [ecx], 0x78
je 0x4f83bd
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, edi
jmp 0x4f2503
test esi, esi
jne 0x4f24fd
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x4fad06
jmp case.default.0x4f8a49
cmp esi, 0xfffffc1e
jne case.0x4f81ad.998
mov ecx, dword [ebx]
mov edx, dword [edx + 0x80]
add ecx, 4
call fcn.00529b40
mov edx, dword [ebp + 0x18]
test eax, eax
jne case.0x4f81ad.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 8]
jmp 0x4f2503
test esi, esi
jne 0x4f8dca
jmp 0x4f8dbc
lea esp, [esp]
test esi, esi
jne case.0x4f81ad.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x4f2503
mov edi, edi
test esi, esi
jne case.0x4f81ad.998
mov esi, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x80], eax
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1d
jmp 0x4f24fd
test esi, esi
jne case.0x4f81ad.998
mov esi, dword [ebp + 0x18]
mov eax, dword [ebx]
add eax, 4
mov dword [esi + 0x80], eax
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1e
jmp 0x4f24fd
test esi, esi
jne case.0x4f81ad.998
mov esi, dword [ebp + 0x18]
mov eax, dword [ebx]
mov dword [esi + 0x7c], eax
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1f
jmp 0x4f24fd
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword ds:[ebp + 0x18]
lea eax, [ebp - 0x64]
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x14]
push eax
push esi
push ebx
call fcn.004f0140
test eax, eax
je 0x4fa87a
jle 0x4f84fe
mov ecx, dword [esi + 0x64]
mov dword [edi + 0x38], ecx
jmp 0x4f8501
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.default.0x4f8a49
jmp 0x4f2ef9
test esi, esi
jne case.0x4f81ad.998
mov eax, dword [ebx + 0xc]
neg eax
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.0x4f81ad.999
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x4fae71
jmp 0x4f8540
test esi, esi
jne case.0x4f81ad.998
mov eax, dword [ebx + 4]
cmp dword [ebx + 0x38], eax
jne 0x4fa89b
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x4f2503
mov edi, edi
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f85ce
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f85a0
cmp edx, dword [esi + 0x6c]
ja 0x4f85b3
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x4f8605
cmp byte [ebx + 0x31], 0x6e
je case.default.0x4f8a49
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x4fae71
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f85f6
lea esp, [esp]
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x4f2119
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x4f869b
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f8686
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx eax, word ds:[ecx]
cmp dword [ebx + 0x28], eax
je 0x4f86b2
cmp dword [ebx + 0x2c], eax
jne case.default.0x4f8a49
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x4fae71
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x4f147a
mov eax, dword [ebp - 8]
jmp 0x4f2503
lea ebx, [ebx]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
mov esi, dword [ebx + 0x38]
cmp esi, dword [eax + 0x64]
jb 0x4f874e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f8733
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x4f8a49
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x4fae71
add dword ds:[ebx + 0x38], 0xfffffffe
test esi, esi
je 0x4f161b
mov eax, dword [ebp - 8]
jmp 0x4f2503
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x4f87f1
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f87dc
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x4f8a49
lea ecx, [ecx]
cmp dword [ebx + 0x2c], eax
je case.default.0x4f8a49
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x4fae71
lea ebx, [ebx]
test esi, esi
jne 0x4f8dca
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x4f0568
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x4fae71
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
mov esi, dword [ebx + 0x38]
cmp esi, dword [eax + 0x64]
jb 0x4f88ae
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f8893
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x4f8a49
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x4fae71
test esi, esi
jne 0x4f8dca
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x4fae71
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov eax, dword ds:[ebp + 0x18]
mov esi, dword [ebx + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jb 0x4f896e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f8953
cmp dword [eax + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x4f89ae
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x4f89d0
push dword [ebp - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00528be0
lea esp, [esp]
test eax, eax
jne 0x4f8a13
mov esi, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
movzx ecx, word ds:[esi]
lea eax, [edi - 6]
add esi, 2
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x4f89c9.15
jmp dword [eax*4 + 0x4fbc68]
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4f89ae
mov ecx, dword [ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x4f89ae
cmp edx, 1
mov edx, ecx
je 0x4f8a16
mov ax, word ds:[esi + 2]
cmp ax, word [edx + 0xa2]
jne 0x4f89ae
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
mov edx, dword [ebp + 0x18]
mov eax, dword ds:[ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x85
ja 0x4f8a50
je case.0x4f8a49.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f8a49
jmp dword [ecx*4 + 0x4fbca8]
sub ecx, 0x2028
je case.0x4f8a49.11
lea esp, [esp]
sub ecx, 1
jne case.default.0x4f8a49
mov edx, dword [ebp + 0x18]
cmp word [edx + 0x4e], 2
jne case.0x4f89c9.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x2000
ja 0x4f8af1
je case.default.0x4f8a49
jmp 0x4f8aa0
cmp ecx, 0xa0
ja 0x4f8ace
je case.default.0x4f8a49
cmp ecx, 9
je case.default.0x4f8a49
jmp 0x4f8ac0
cmp ecx, 0x20
jne case.0x4f89c9.13
jmp case.default.0x4f8a49
cmp ecx, 0x1680
je case.default.0x4f8a49
lea ebx, [ebx]
cmp ecx, 0x180e
jne case.0x4f89c9.13
jmp case.default.0x4f8a49
cmp ecx, 0x3000
ja case.0x4f89c9.13
lea ecx, [ecx]
je case.default.0x4f8a49
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f89c9.13
movzx eax, byte [ecx + 0x4fbcc0]
lea esp, [esp]
jmp dword [eax*4 + 0x4fbcb8]
cmp ecx, 0x2000
ja 0x4f8b91
je case.0x4f89c9.13
lea esp, [esp]
cmp ecx, 0xa0
ja 0x4f8b6e
je case.0x4f89c9.13
cmp ecx, 9
je case.0x4f89c9.13
jmp 0x4f8b60
cmp ecx, 0x20
je case.0x4f89c9.13
jmp case.default.0x4f8a49
cmp ecx, 0x1680
je case.0x4f89c9.13
lea ebx, [ebx]
cmp ecx, 0x180e
je case.0x4f89c9.13
jmp case.default.0x4f8a49
cmp ecx, 0x3000
ja case.default.0x4f8a49
lea ecx, [ecx]
je case.0x4f89c9.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4f8a49
movzx eax, byte [ecx + 0x4fbd28]
lea esp, [esp]
jmp dword [eax*4 + 0x4fbd20]
cmp ecx, 0x85
ja 0x4f8bf0
je case.default.0x4f8a49
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f89c9.13
jmp dword [ecx*4 + 0x4fbd88]
sub ecx, 0x2028
je case.default.0x4f8a49
lea esp, [esp]
sub ecx, 1
jne case.0x4f89c9.13
jmp case.default.0x4f8a49
cmp ecx, 0x85
ja 0x4f8c39
lea ebx, [ebx]
je case.0x4f89c9.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f8a49
jmp dword [ecx*4 + 0x4fbd98]
lea esp, [esp]
sub ecx, 0x2028
je case.0x4f89c9.13
sub ecx, 1
je case.0x4f89c9.13
jmp case.default.0x4f8a49
lea ebx, [ebx]
cmp ecx, 0xff
ja case.0x4f89c9.13
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 8
je case.0x4f89c9.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
mov edx, dword [ebp + 0x18]
cmp ecx, 0xff
ja 0x4f8d4c
mov eax, dword ds:[edx + 0x40]
test byte [ecx + eax], 8
jne case.0x4f89c9.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0xff
ja case.0x4f89c9.13
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 1
je case.0x4f89c9.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
mov edx, dword ds:[ebp + 0x18]
cmp ecx, 0xff
ja 0x4f8d4c
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 1
jne case.0x4f89c9.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0xff
ja case.0x4f89c9.13
mov edx, dword ds:[ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 0x10
je case.0x4f89c9.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
mov edx, dword [ebp + 0x18]
cmp ecx, 0xff
ja 0x4f8d4c
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x4f89c9.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
test esi, esi
jne 0x4f8dca
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x4f8d99
cmp eax, dword [ebx + 4]
jbe 0x4f8d99
cmp word [eax], 0xa
jne 0x4f8d99
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x4f8d99
mov dword [ebx + 0x38], edx
mov ecx, edx
lea esp, [esp]
cmp ecx, dword [ebx + 4]
je 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x4fae71
test esi, esi
jne case.0x4f81ad.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x4f2503
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f8e32
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f8e1d
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
mov edi, dword [ebp - 0xc]
mov dword [ebx + 0x38], edx
test edi, edi
je 0x4f8e79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8e79
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 [ebx + 0x38], eax
mov edx, dword ds:[ebx + 8]
push edi
call fcn.00528ea0
test eax, eax
jne 0x4fa977
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x4f8a49
cmp dword [ebp - 0xc], esi
je 0x4f232a
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f232a
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x4fae71
nop
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f8f4e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f8f20
cmp edx, dword [esi + 0x6c]
ja 0x4f8f33
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8f8a
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 [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x4f8fb1
cmp byte ds:[ebx + 0x31], 0x6e
je case.default.0x4f8a49
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x4fae71
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f8fa6
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov ecx, dword ds:[ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x4f8a49
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f2069
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x4fae71
lea ebx, [ebx]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
mov edi, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x38]
mov ecx, dword [eax + 0x64]
mov eax, ecx
lea esi, [edi + edi]
mov dword [ebp - 0x38], ecx
sub eax, esi
cmp ebx, eax
ja 0x4f90e2
mov eax, dword [ebp - 8]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f9085
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f908e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f9070
cmp esi, 0xfffffffc
je 0x4fa985
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f90df
jmp 0x4f90a0
cmp esi, 0xfffffffd
je 0x4fa985
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f90df
cmp esi, 0xfffffffe
je 0x4fa985
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f90df
cmp esi, 0xffffffff
je 0x4fa985
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4fa985
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 8]
mov edi, dword [edx + 0x14]
test edi, edi
je 0x4f917f
lea esi, [edi + edi]
mov eax, ecx
sub eax, esi
cmp ebx, eax
ja 0x4f917f
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f9125
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f912e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f9110
cmp esi, 0xfffffffc
je 0x4fa985
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f917f
jmp 0x4f9140
cmp esi, 0xfffffffd
je 0x4fa985
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f917f
cmp esi, 0xfffffffe
je 0x4fa985
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f917f
cmp esi, 0xffffffff
je 0x4fa985
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4fa985
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb case.default.0x4f8a49
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
lea ebx, [ebx]
cmp ebx, dword [esi + 0x6c]
ja 0x4f91b3
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
test esi, esi
jne 0x4f8dca
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x4f91ff
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
nop
cmp ecx, dword [eax + 4]
jbe 0x4f0568
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x4fae74
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f9274
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f925f
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f92ae
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 [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x4f8a49
jmp 0x4f92c0
cmp dword [ebx + 0x2c], ecx
je case.default.0x4f8a49
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x4fae71
test esi, esi
jne 0x4f8dca
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x4f9305
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x4f0568
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x4fae71
lea esp, [esp]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f938e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f9360
cmp edx, dword [esi + 0x6c]
ja 0x4f9373
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f93ca
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 [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x4f8a49
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x4fae71
mov edi, edi
test esi, esi
jne 0x4f8dca
add dword ds:[ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f940f
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x4fae71
test esi, esi
jne case.0x4f81ad.998
mov edx, dword ds:[ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x4f9491
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f947c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx eax, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x4f94bc
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f94bc
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne 0x4fa99f
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword ds:[ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f9531
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
cmp edx, dword [esi + 0x6c]
ja 0x4f951c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9577
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9577
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 [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x567961]
cmp al, 9
je 0x4f95bf
cmp al, 5
je 0x4f95bf
cmp al, 8
je 0x4f95bf
xor ecx, ecx
jmp 0x4f95c4
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fa9ad
jmp case.default.0x4f8a49
lea ebx, [ebx]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f964e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f9620
cmp edx, dword [esi + 0x6c]
ja 0x4f9633
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9697
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9697
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 [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fa9bb
nop
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f974e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
lea ecx, [ecx]
cmp edx, dword [esi + 0x6c]
ja 0x4f9733
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9797
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9797
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 [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fa9c9
jmp case.default.0x4f8a49
lea ecx, [ecx]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f984e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f9820
cmp edx, dword [esi + 0x6c]
ja 0x4f9833
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9897
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9897
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 [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567960]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fa9d7
jmp case.default.0x4f8a49
lea ecx, [ecx]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f994e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f9920
cmp edx, dword [esi + 0x6c]
ja 0x4f9933
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9997
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9997
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 [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f99df
cmp eax, 3
je 0x4f99df
xor ecx, ecx
jmp 0x4f99e4
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fa9e8
jmp case.default.0x4f8a49
lea ebx, [ebx]
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f9a6e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
jmp 0x4f9a40
cmp edx, dword [esi + 0x6c]
ja 0x4f9a53
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9ab7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9ab7
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 [ebx + 0x38], eax
jmp 0x4f9ac0
cmp ecx, 0x20
ja 0x4f9ae7
je case.0x4f9ba0.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f9ba0.8203
jmp 0x4f9ae0
jmp dword [eax*4 + 0x4fbda8]
cmp ecx, 0x2000
ja 0x4f9b7b
je case.0x4f9ba0.8193
lea esp, [esp]
cmp ecx, 0x1680
ja 0x4f9b73
je case.0x4f9ba0.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f9ba0.8193
sub eax, 0x1b
je case.0x4f9ba0.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
cmp dword [eax*4 + 0x580460], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fa9f6
jmp case.default.0x4f8a49
cmp ecx, 0x180e
jmp 0x4f9b22
jmp 0x4f9b80
cmp ecx, 0x3000
ja case.0x4f9ba0.8203
je case.0x4f9ba0.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f9ba0.8203
movzx eax, byte [eax + 0x4fbdc4]
jmp dword [eax*4 + 0x4fbdbc]
cmp dword [ebx + 0x28], 0xf
jne 0x4fa9f6
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x4f9c1b
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f9c06
cmp dword ds:[esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x4f9c6a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9c6a
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 + 0x57c020]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x567961]
mov eax, dword [eax*4 + 0x580460]
cmp eax, 1
je 0x4f9cc5
cmp eax, 3
je 0x4f9cc5
cmp edx, 0x5f
je 0x4f9cc5
xor ecx, ecx
jmp 0x4f9cca
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4faa08
jmp 0x4f9ce0
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f9d4e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
lea ecx, [ecx]
cmp edx, dword [esi + 0x6c]
ja 0x4f9d33
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9d97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9d97
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 [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax*4 + 0x5677a0]
lea eax, [eax*4 + 0x5677a0]
cmp ecx, edx
jb 0x4f9dc4
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f9dd3
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x4f9db0
cmp dword [ebx + 0x28], 0xf
je 0x4faa16
jmp case.default.0x4f8a49
cmp dword [ebx + 0x28], 0xf
jne 0x4faa16
lea ecx, [ecx]
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x4f9e4e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
lea ecx, [ecx]
cmp edx, dword [esi + 0x6c]
ja 0x4f9e33
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], edx
je 0x4f9e97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9e97
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 [ebx + 0x38], eax
jmp 0x4f9ea0
cmp ecx, 0x24
je 0x4f9ef3
cmp ecx, 0x40
je 0x4f9ef3
cmp ecx, 0x60
je 0x4f9ef3
jmp 0x4f9ec0
cmp ecx, 0xa0
jb 0x4f9ed8
cmp ecx, 0xd7ff
jbe 0x4f9ef3
jmp 0x4f9ee0
cmp ecx, 0xe000
jae 0x4f9ef3
xor ecx, ecx
jmp 0x4f9ef8
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4faa28
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword ds:[ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x4faa33
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.default.0x4f8a49
cmp ecx, dword [esi + 0x6c]
ja 0x4f9f5c
cmp dword [esi + 0x34], 0
je case.default.0x4f8a49
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
test esi, esi
jne case.0x4f81ad.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
mov esi, dword [ebx + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jb 0x4f9fdb
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.default.0x4f8a49
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x4f9fc6
cmp dword ds:[eax + 0x34], 0
je case.default.0x4f8a49
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x4f0978
jmp case.default.0x4f8a49
mov edi, dword ds:[ebx + 0x28]
cmp edi, 0xc
jne 0x4fa059
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x4fa01b
push dword [ebp - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00528be0
test eax, eax
jne 0x4f8a13
mov esi, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x4fa059
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4fa059
mov ecx, dword [ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x4fa059
cmp edx, 1
mov edx, ecx
je 0x4f8a16
mov ax, word [esi + 2]
cmp ax, word [edx + 0xa2]
je 0x4f8a16
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [ebx + 0x38], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa093
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebx + 0x38], esi
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x4f89c9.15
nop
jmp dword [eax*4 + 0x4fbe24]
cmp ecx, 0x85
ja 0x4fa0d0
je case.0x4fa0c9.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f8a49
jmp dword [ecx*4 + 0x4fbe64]
sub ecx, 0x2028
je case.0x4fa0c9.11
lea esp, [esp]
sub ecx, 1
jne case.default.0x4f8a49
mov edx, dword [ebp + 0x18]
cmp word [edx + 0x4e], 2
jne case.0x4fa0a0.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x2000
ja 0x4fa171
je case.default.0x4f8a49
jmp 0x4fa120
cmp ecx, 0xa0
ja 0x4fa14e
je case.default.0x4f8a49
cmp ecx, 9
je case.default.0x4f8a49
jmp 0x4fa140
cmp ecx, 0x20
jne case.0x4fa0a0.13
jmp case.default.0x4f8a49
cmp ecx, 0x1680
je case.default.0x4f8a49
lea ebx, [ebx]
cmp ecx, 0x180e
jne case.0x4fa0a0.13
jmp case.default.0x4f8a49
cmp ecx, 0x3000
ja case.0x4fa0a0.13
lea ecx, [ecx]
je case.default.0x4f8a49
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4fa0a0.13
movzx eax, byte [ecx + 0x4fbe7c]
lea esp, [esp]
jmp dword [eax*4 + 0x4fbe74]
cmp ecx, 0x2000
ja 0x4fa211
je case.0x4fa0a0.13
lea esp, [esp]
cmp ecx, 0xa0
ja 0x4fa1ee
je case.0x4fa0a0.13
cmp ecx, 9
je case.0x4fa0a0.13
jmp 0x4fa1e0
cmp ecx, 0x20
je case.0x4fa0a0.13
jmp case.default.0x4f8a49
cmp ecx, 0x1680
je case.0x4fa0a0.13
lea ebx, [ebx]
cmp ecx, 0x180e
je case.0x4fa0a0.13
jmp case.default.0x4f8a49
cmp ecx, 0x3000
ja case.default.0x4f8a49
lea ecx, [ecx]
je case.0x4fa0a0.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4f8a49
movzx eax, byte [ecx + 0x4fbee4]
lea esp, [esp]
jmp dword [eax*4 + 0x4fbedc]
cmp ecx, 0x85
ja 0x4fa270
je case.default.0x4f8a49
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4fa0a0.13
jmp dword [ecx*4 + 0x4fbf44]
sub ecx, 0x2028
je case.default.0x4f8a49
lea esp, [esp]
sub ecx, 1
jne case.0x4fa0a0.13
jmp case.default.0x4f8a49
cmp ecx, 0x85
ja 0x4fa2b9
lea ebx, [ebx]
je case.0x4fa0a0.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f8a49
jmp dword [ecx*4 + 0x4fbf54]
lea esp, [esp]
sub ecx, 0x2028
je case.0x4fa0a0.13
sub ecx, 1
je case.0x4fa0a0.13
jmp case.default.0x4f8a49
lea ebx, [ebx]
cmp ecx, 0x100
jae case.0x4fa0a0.13
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 8
je case.0x4fa0a0.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x100
jae 0x4f8a13
mov edx, dword ds:[ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 8
jne case.0x4fa0a0.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x100
jae case.0x4fa0a0.13
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 1
je case.0x4fa0a0.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
jmp 0x4fa360
cmp ecx, 0x100
jae 0x4f8a13
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 1
jne case.0x4fa0a0.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x100
jae case.0x4fa0a0.13
mov edx, dword ds:[ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 0x10
je case.0x4fa0a0.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
cmp ecx, 0x100
jae 0x4f8a13
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x4fa0a0.13
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x4f2503
test esi, esi
jne 0x4f8dca
mov edx, dword [ebx + 0x38]
mov esi, dword [ebp - 0xc]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
test esi, esi
jne 0x4fa5bf
movzx ecx, word [edx]
jmp 0x4fa613
lea ebx, [ebx]
test esi, esi
jne 0x4f8dca
add dword ds:[ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4fa42f
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x4fa46b
jmp 0x4fa440
cmp ecx, dword [ebx + 4]
jbe 0x4fa46b
cmp word [ecx], 0xa
jne 0x4fa46b
cmp word ds:[ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x4fa46b
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x4fae71
nop
test esi, esi
jne 0x4f8dca
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [ebp - 0xc], esi
je 0x4fa4bb
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x4fa4bb
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
jmp 0x4fa4c0
cmp ecx, dword [ebx + 4]
jbe 0x4f0568
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x4fae71
mov esi, dword [ebp - 0x30]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00537fe0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx]
lea esp, [esp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4fa500
jmp 0x4f0563
mov edi, dword [ebx]
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x4fa516
lea eax, [edi + 4]
jmp 0x4f0566
mov ecx, dword ds:[ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x4fad5d
lea eax, [edi + 4]
jmp 0x4f0566
mov esi, dword [ebp - 0x30]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00537fe0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x4f81fc
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebx + 4], eax
cmp word [eax], 0x78
je 0x4fa820
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x4f81ff
mov ebx, dword [ebp - 8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp byte [ebx + 0x31], 0x8f
jne 0x4f0568
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [ebp - 0x1c], eax
jmp 0x4fae71
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4fa5df
lea esi, [edx - 2]
mov dword [ebx + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa610
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, dword [ebp - 0xc]
mov ebx, dword ds:[ebx + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x57c020]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x567962]
cmp edx, ebx
jbe 0x4fa708
jmp 0x4fa650
movzx eax, word ds:[edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test esi, esi
je 0x4fa6ae
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4fa67f
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa6ae
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 + 0x57c020]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x56a720]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x567962]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x580420], eax
je 0x4fa708
mov eax, dword ds:[ebp - 8]
mov edi, esi
mov esi, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x4fa650
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x4f0568
mov edi, dword ds:[ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x4fae71
inc dword [esi + 0x90]
mov ebx, dword [ebp - 8]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x94]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5804f0]
movzx eax, word [edx + 2]
ja 0x4fab74
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x4f056b
mov ebx, dword ds:[ebp - 8]
test edx, edx
jne 0x4f92c9
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x4fae71
cmp dword ds:[ebp - 0xc], 0
mov ebx, dword [ebp - 8]
jne 0x4f93d3
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x4fae71
cmp dword [ebp - 0xc], 0
mov ebx, dword [ebp - 8]
jne 0x4f8fa6
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x4fae71
test eax, eax
js 0x4fa7c7
cmp eax, 0xa
ja case.0x4f89c9.15
lea ebx, [ebx]
jmp dword [eax*4 + 0x4fbf64]
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x28], 0x16
je 0x4faace
test edi, edi
jne case.0x4fa0a0.13
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x4fae71
mov dword [ebx + 0x24], edi
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x4fae71
cmp ecx, 0x7e
je 0x4fa813
mov eax, 0x80
cmp cx, ax
je 0x4fa813
xor eax, eax
jmp 0x4fa818
mov eax, 1
mov dword [ebx + 0x20], eax
mov eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
mov byte [ebx + 0x30], 5
movzx eax, byte [eax + 0x5804f0]
lea edi, [ecx + eax*2]
jmp 0x4fae71
mov eax, dword [ebp - 8]
cmp cl, 0x7b
jne 0x4fa85e
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x4fae74
mov byte [ebx + 0x30], 7
jmp 0x4fae74
mov byte [ebx + 0x30], 1
jmp 0x4fae71
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x4fac25
mov eax, dword [ebp - 0x64]
add eax, eax
add dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x4fae71
mov dword [ebx + 0x38], eax
dec dword [ebx + 0x24]
mov esi, dword [ebx + 0x20]
cmp esi, dword [ebx + 0x24]
jae 0x4fa8d6
lea ecx, [ecx]
mov ecx, dword ds:[ebx + 0x14]
lea eax, [ebp - 0x68]
push eax
push edx
mov edx, dword [ebx + 0x28]
push ebx
call fcn.004f0140
mov eax, dword [ebp - 0x68]
inc esi
mov edx, dword [ebp + 0x18]
add eax, eax
add dword [ebx + 0x38], eax
cmp esi, dword [ebx + 0x24]
jb 0x4fa8b0
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x4fae71
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x4f89c9.13
cmp word [esi], 0xa
jne case.0x4f89c9.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x4fae71
mov edi, dword [ebp + 0x18]
movzx eax, word [edi + 0x4c]
mov edx, eax
test ax, ax
je case.0x4f89c9.13
mov edi, edi
cmp esi, dword [edi + 0x64]
jb case.0x4f89c9.13
cmp dword [edi + 0x98], 0
jne case.0x4f89c9.13
cmp dword ds:[edi + 0x9c], 2
jne case.0x4f89c9.13
movzx eax, word [edi + 0xa0]
cmp ecx, eax
jne case.0x4f89c9.13
mov dword ds:[edi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x4fae71
mov ecx, dword [ebp - 8]
lea eax, [ebx + edi*2]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword ds:[ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x4fae71
mov ebx, dword [ebp - 8]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x4fae71
movzx esi, word [ecx]
add ecx, 2
mov edi, dword [ebp - 0xc]
mov edx, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x4faa7a
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4faa7a
movzx eax, word [ecx]
lea edx, [ecx + 2]
and esi, 0x3ff
mov dword [ebx + 0x38], edx
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
mov eax, dword [ebp + 0x18]
mov ecx, esi
push 0
push edi
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.00529940
mov esi, dword [ebp + 0x18]
mov dword [ebx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x4faace
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x4faace
cmp eax, dword [esi + 0x6c]
ja 0x4faabe
cmp dword [esi + 0x34], 0
je 0x4faace
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x4fae71
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x4fa0a0.13
cmp word [esi], 0xa
jne case.0x4fa0a0.13
lea eax, ds:[esi + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x4fae71
mov edi, dword [ebp + 0x18]
movzx eax, word [edi + 0x4c]
mov edx, eax
test ax, ax
je case.0x4fa0a0.13
jmp 0x4fab20
cmp esi, dword [edi + 0x64]
jb case.0x4fa0a0.13
cmp dword [edi + 0x98], 0
jne case.0x4fa0a0.13
cmp dword ds:[edi + 0x9c], 2
jne case.0x4fa0a0.13
movzx eax, word [edi + 0xa0]
cmp ecx, eax
jne case.0x4fa0a0.13
mov dword ds:[edi + 0x2c], 1
cmp edx, 1
ja 0x4f0978
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x4fae71
mov byte [ebx + 0x30], 0x11
jmp 0x4fae6c
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x4fae71
mov ecx, dword [ebp - 8]
add edi, 2
mov dword [ecx + 4], edi
jmp 0x4faba0
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ecx + 4], edi
cmp word [edi], 0x78
je 0x4faba0
add edi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x4fae71
mov ebx, dword [ebp - 8]
add edi, 2
mov ecx, 0x89
mov dword [ebx + 0x28], 1
mov dword [ebx], edi
movzx eax, word [edi]
cmp ax, cx
je 0x4fac0f
mov ecx, 0x8e
cmp ax, cx
jne 0x4fabf9
jmp 0x4fac0f
mov ebx, dword [ebp - 8]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x4fac18
mov ebx, dword [ebp - 8]
mov dword [ebx + 0x28], 0
movzx eax, word [edi + 4]
or eax, 0x10000
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 8], edi
mov eax, dword [ebx + 0x38]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
mov byte [ebx + 0x30], 8
movzx eax, byte [eax + 0x5804f0]
lea edi, [ecx + eax*2]
jmp 0x4fae71
movzx eax, word [edi + 4]
or eax, 0x10000
jmp 0x4fac5f
movzx eax, bl
or eax, 0x20000
mov ebx, dword [ebp - 8]
mov dword [ebx + 0x20], eax
mov eax, dword ds:[ebx + 0x20]
mov dword [ebp - 0x1c], eax
movzx eax, word [edi]
mov byte [ebx + 0x30], 2
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
jmp 0x4fae71
mov ecx, dword [esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x4fac9e
xor edi, edi
jmp 0x4faca2
movzx edi, word [ebx + 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x44], 0xffffffff
je 0x4facf7
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
je 0x4facf7
mov esi, dword [esi + 0x10]
mov edx, edi
or edx, 0x40000
add eax, esi
mov ecx, eax
sub ecx, dword [ebp + 0x14]
cmp dword [eax + 0x1c], edx
je 0x4face5
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x4facc6
mov edi, edi
jmp 0x4facf4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x4fb01d
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], ebx
or edi, 0x40000
mov ebx, dword [ebp - 8]
mov dword [ebx + 0x20], edi
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
mov byte [ebx + 0x30], 0xb
movzx eax, byte [eax + 0x5804f0]
lea edi, [ecx + eax*2]
jmp 0x4fae71
movzx eax, bl
mov ebx, dword [ebp - 8]
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x1c], eax
movzx eax, word [edi]
mov byte [ebx + 0x30], 3
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
jmp 0x4fae71
movzx eax, bl
mov ebx, dword [ebp - 8]
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x1c], eax
movzx eax, word [edi]
mov byte [ebx + 0x30], 4
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
jmp 0x4fae71
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5804f0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x4fae6c
movzx eax, word [edi]
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xd
jmp 0x4fae71
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5804f0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x4fae6c
movzx eax, word [edi]
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xe
jmp 0x4fae71
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5804f0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x4fae6c
movzx eax, word [edi]
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x10
jmp 0x4fae71
movzx eax, word [edi]
movzx eax, byte [eax + 0x5804f0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x12
jmp 0x4fae71
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5804f0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea edi, [edx + ecx*2]
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov ebx, dword [ebp + 0x14]
add ebx, eax
mov dword [ebp - 0x18], ebx
cmp ebx, dword [esi + 0x14]
jb 0x4faf35
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x1c]
lea ebx, [ecx + ecx]
mov eax, ebx
shr eax, 0xa
cmp eax, edx
jbe 0x4faeb5
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [ebp + 0x14]
sub ebx, edx
cmp ecx, ebx
jae 0x4fb02b
lfence
push dword [esi + 8]
mov esi, dword [esi]
mov ecx, esi
push ebx
call dword [0x55890c]
call esi
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
je 0x4fb039
mov eax, dword ds:[ebp + 0x18]
push dword [eax + 0xc]
push dword [eax + 0x10]
push esi
call fcn.00537fe0
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov edx, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
mov eax, esi
sub eax, ecx
add edx, eax
mov dword [ebp - 8], edx
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 0x18]
cmp ecx, dword [edx + 0x18]
je 0x4faf23
push dword [edx + 8]
mov esi, dword [edx + 4]
push ecx
mov ecx, esi
call dword [0x55890c]
call esi
mov esi, dword [ebp - 0x40]
mov edx, dword [ebp + 0x18]
lea eax, [esi + ebx]
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 8]
mov dword [edx + 0xc], ebx
mov ebx, dword [ebp - 0x18]
push dword [ebp - 0x48]
add eax, 0x38
push eax
lea eax, [ebx + 0x38]
push eax
call fcn.00537fe0
mov eax, dword ds:[ebp - 8]
add esp, 0xc
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 8], ebx
mov eax, dword [eax + 0x18]
inc eax
mov dword [ebx + 0x18], eax
mov eax, ebx
mov ebx, dword [ebp + 0x14]
jmp 0x4f04f6
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, ecx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov dword [eax + 0x68], edx
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x48], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x74], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x4faf96
mov dword [ecx + 0x70], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x5c]
mov edi, dword [ebp + 8]
movzx esi, word [ebp + 0xc]
sar eax, 1
mov dword [edi], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x5c]
sar eax, 1
mov dword [edi + 4], eax
movzx eax, word [ebp + 0x10]
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 + 8]
push eax
call fcn.00537fe0
mov eax, dword ds:[ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x4fb004
jmp 0x4faff0
mov dword ds:[edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x4faff0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffcc
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffc1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd1
pop ebx
mov esp, ebp
pop ebp
ret 0x14