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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x6c]
xor edx, edx
push ebx
mov ebx, dword [esp + 0x5c]
push ebp
mov ebp, dword [esp + 0x74]
push esi
mov esi, dword [esp + 0x74]
push edi
mov edi, dword [eax + 0x8c]
mov eax, dword [eax + 0x10]
lea ecx, [esi - 0x38]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x18], edx
mov dword [eax + 0x48], edx
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], eax
mov eax, ecx
mov ecx, dword [esp + 0x7c]
shr edi, 0x13
and edi, 1
mov dword [esp + 0x1c], edx
mov dword [eax + 0x40], edx
mov dword [eax + 0x50], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edi
mov dword [eax + 0x4c], 0xffffffff
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], 0xfc00
mov dword [esp + 0x20], 0xdc00
mov dword [esp + 0x30], 0x180e
mov dword [esp + 0x34], 0x205f
mov dword [esp + 0x44], 0x85
mov dword [esp + 0x48], 0x2028
mov dword [esp + 0x28], ecx
mov dword [eax + 0x1c], edx
mov dword [eax], ebx
mov dword [eax + 0x10], esi
test edx, edx
je 0x4f2d95
sub eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x4f2d8f
movzx eax, dx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x7c]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
cmp edx, ecx
jae 0x4fb53d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebx + 0x24]
jb 0x4f2de4
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x50
ret
mov ebx, dword [esp + 0x7c]
jmp 0x4f2de4
mov edi, dword [esp + 0x14]
jmp 0x4f2df0
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov ebp, 0xff
nop dword [eax]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dl, byte [eax]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x31], dl
movzx eax, dl
cmp eax, 0xa6
ja case.0x4f968f.15
movzx eax, byte [eax + 0x4fb6a8]
jmp dword [eax*4 + 0x4fb54c]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x4f2e96
mov eax, dword [eax]
movzx edi, word [eax + 2]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x4f968f.15
mov ebp, dword [ebx + 0x10]
add ebp, eax
mov eax, edi
mov edx, ebp
mov dword [esp + 0x1c], ebp
or eax, 0x10000
sub edx, esi
cmp dword [ebp + 0x1c], eax
je 0x4f2e59
mov eax, dword [edx + 0x4c]
jmp 0x4f2e32
mov eax, dword [esp + 0x10]
lea esi, [edi + edi]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebx + 0x5c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
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 0x4f2e92
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x4f2de0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x70]
jbe 0x4f2ebf
mov dword [ebx + 0x70], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x28], eax
jmp 0x4f306a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x4f2f30
mov eax, dword [eax + 0x4c]
nop
cmp eax, 0xffffffff
je case.0x4f968f.15
mov esi, dword [ebx + 0x10]
add esi, eax
mov ecx, esi
mov dword [esp + 0x1c], esi
sub ecx, dword [esp + 0x78]
mov eax, dword [esi + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x4f2f0c
mov eax, dword [ecx + 0x4c]
jmp 0x4f2ee0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
add dword [ecx], 4
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
mov esi, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
cmp esi, edi
jne 0x4f2f64
mov eax, dword [ebx + 0x88]
test al, 4
jne case.0x4f2e14.162
test al, 8
je 0x4f2f64
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x5c]
lea eax, [eax + ecx*2]
cmp edi, eax
jne 0x4f2f64
mov ebx, dword [esp + 0x7c]
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x7c]
cmp esi, dword [eax + 0x64]
jae 0x4fb46c
mov ebx, dword [esp + 0x7c]
mov eax, dword [eax + 0x8c]
or eax, dword [ebx + 0x88]
test eax, 0x20000000
je 0x4fb46a
test dl, dl
jne 0x4fb460
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x7c]
mov ebx, eax
mov esi, dword [eax + 0x98]
test esi, esi
je 0x4f30b4
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x64]
mov ecx, dword [eax + 0x38]
cmp ecx, edx
jae 0x4f2fd8
push edi
lea eax, [ebx + 0x9c]
push eax
push edx
push esi
push ecx
call fcn.0051d430
add esp, 0x14
test eax, eax
jne case.0x4f2e14.162
mov eax, dword [esp + 0x10]
cmp word [ebx + 0x4c], 0
je case.0x4f2e14.13
mov ecx, dword [eax + 0x38]
mov eax, dword [ebx + 0x64]
sub eax, 2
cmp ecx, eax
jne case.0x4f2e14.13
mov eax, dword [esp + 0x7c]
cmp dword [eax + 0x98], 0
jne 0x4f3026
cmp dword [eax + 0x9c], 2
jne 0x4f3026
mov ebx, dword [esp + 0x7c]
mov ax, word [ecx]
cmp ax, word [ebx + 0xa0]
jne case.0x4f2e14.13
mov eax, ebx
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov ebx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x4f3102
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3060
cmp ecx, dword [eax + 0x6c]
ja 0x4f304e
cmp dword [eax + 0x34], 0
je 0x4f3060
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
xor esi, esi
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x70]
jbe 0x4f3075
mov dword [ebx + 0x70], eax
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x4fb4ff
sub ebp, dword [ebp + 0x10]
mov eax, dword [ebx + 0xa8]
mov edi, ebp
mov dword [esp + 0x10], ebp
or dword [eax + 0x3c], 2
movzx eax, byte [ebp + 0x30]
dec eax
cmp eax, 0xdd
ja case.0x4f968f.15
movzx eax, byte [eax + 0x4fb83c]
jmp dword [eax*4 + 0x4fb750]
mov esi, dword [eax + 0x9c]
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x64]
mov edx, dword [eax + 0x38]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f2fd4
mov ax, word [edx]
cmp ax, word [ebx + 0xa0]
jne 0x4f2fd4
cmp esi, 1
je case.0x4f2e14.162
mov ax, word [edx + 2]
cmp ax, word [ebx + 0xa2]
jne 0x4f2fd4
xor esi, esi
jmp case.0x4f30ad.35
add ecx, 2
mov dword [eax + 0x38], ecx
test edi, edi
je 0x4f4cd9
cmp ecx, dword [ebx + 0x64]
jae 0x4f4cd9
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f4cd5
mov esi, dword [esp + 0x78]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jb 0x4f3191
cmp word [ebx + 0x4c], 0
je 0x4f3225
cmp eax, dword [ebx + 0x6c]
mov eax, dword [esp + 0x7c]
ja 0x4f3174
cmp dword [eax + 0x34], 0
je 0x4f3223
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov ebx, dword [esp + 0x7c]
xor esi, esi
jmp case.0x4f30ad.35
mov ecx, dword [esp + 0x10]
add eax, 2
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
test edi, edi
je 0x4f3272
mov dword [eax + 0xc], 1
mov ecx, 0xfc00
add dword [eax], 2
mov eax, dword [eax]
mov ax, word [eax]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [esp + 0x10]
jne 0x4f31e0
inc dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
jmp 0x4f31e7
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
mov esi, dword [ebx + 0x64]
mov eax, esi
sub eax, edx
sar eax, 1
cmp ecx, eax
jbe 0x4f322c
cmp edx, esi
jb 0x4f3225
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3223
cmp edx, dword [eax + 0x6c]
ja 0x4f3211
cmp dword [eax + 0x34], 0
je 0x4f3223
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov ebx, eax
xor esi, esi
jmp case.0x4f30ad.35
mov esi, dword [esp + 0x78]
test ecx, ecx
je 0x4f2df0
mov eax, dword [esp + 0x10]
nop dword [eax]
mov ecx, dword [eax + 0x38]
mov eax, dword [eax]
movzx edx, word [ecx]
movzx esi, word [eax]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
cmp si, dx
jne case.0x4f2e14.162
add dword [eax + 0xc], 0xffffffff
jne 0x4f3240
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
mov esi, dword [eax + 0x38]
mov eax, dword [ebx + 0x64]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x4f3299
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3060
cmp esi, dword [eax + 0x6c]
jmp 0x4f3046
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
movzx ecx, word [esi]
mov eax, dword [eax]
movzx edx, word [eax + 2]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
mov eax, edi
cmp dx, cx
je 0x4f32be
xor esi, esi
jmp 0x4f306a
add dword [eax], 4
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
cmp esi, dword [ebx + 0x64]
jae 0x4f3282
test edi, edi
je 0x4f33f2
mov dword [eax + 0xc], 1
add dword [eax], 2
mov ecx, dword [eax]
movzx esi, word [ecx]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3322
movzx eax, word [ecx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [esp + 0x10]
add esi, 0x10000
inc dword [eax + 0xc]
jmp 0x4f3326
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x4f3366
mov eax, dword [ebx + 0x38]
cmp edx, 0xff
ja 0x4f3343
movzx edx, byte [edx + eax]
movzx eax, byte [esi + eax]
cmp eax, edx
mov eax, dword [esp + 0x10]
je 0x4f3356
xor esi, esi
jmp 0x4f306a
add dword [eax], 2
add dword [eax + 0x38], 2
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f339d
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
add eax, eax
add dword [ecx], eax
cmp edx, esi
je 0x4f2f27
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x847d3c]
add eax, esi
mov esi, dword [esp + 0x78]
cmp edx, eax
je 0x4f2df0
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [eax]
movzx eax, word [eax + 2]
cmp ax, bp
ja 0x4f3408
mov ecx, eax
mov eax, dword [ebx + 0x38]
movzx edx, byte [eax + ecx]
jmp 0x4f340a
mov edx, eax
movzx eax, word [esi]
mov ecx, eax
cmp ax, bp
ja 0x4f341b
mov eax, dword [ebx + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x4f3426
xor esi, esi
jmp case.0x4f30ad.35
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov esi, dword [esp + 0x78]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x4f3461
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3060
cmp edx, dword [eax + 0x6c]
jmp 0x4f3046
test edi, edi
je 0x4f3552
add dword [eax], 2
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f34aa
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
movzx esi, word [eax]
lea ecx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f34ef
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add esi, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
cmp edx, esi
jne 0x4f34fe
xor esi, esi
jmp 0x4f306a
cmp byte [eax + 0x31], 0x20
jne 0x4f2f27
cmp edx, 0x7f
jbe 0x4f3538
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x847d3c]
jmp 0x4f353f
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov esi, dword [esp + 0x78]
jne 0x4f2df0
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [eax]
movzx esi, word [edx]
movzx ecx, word [eax + 2]
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x38], eax
cmp ecx, esi
je case.0x4f2e14.162
mov eax, edx
cmp byte [eax + 0x31], 0x20
jne 0x4f358e
cmp ecx, 0xff
ja 0x4f3586
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, edx
cmp ecx, esi
je case.0x4f2e14.162
add dword [eax], 4
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f3695
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f3691
mov dword [esp + 0x18], 1
jmp 0x4f35c0
mov dword [esp + 0x18], 0
jmp 0x4f35c0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x4f3691
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x4f3691
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
add dword [eax], 2
jmp 0x4f3691
mov eax, dword [esp + 0x10]
cmp dl, 0x2e
mov ecx, dword [eax]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
movzx edx, word [ecx]
sub edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [edx*4 + 0x845e20]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x845e4c]
mov dword [ecx + 0x24], eax
mov eax, dword [edx*4 + 0x845e78]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x4f3a5e
mov dword [eax + 0xc], 1
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov eax, ecx
mov ecx, dword [eax]
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f36e9
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [esp + 0x10]
mov ecx, eax
add edx, 0x10000
inc dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x4f36ed
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
cmp dword [eax + 0xc], 1
jbe 0x4f3a59
cmp byte [eax + 0x31], 0x2e
jb 0x4f374d
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x847d3c]
add ecx, edx
cmp ecx, edx
je 0x4f374d
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.0051d5c0
add esp, 8
jmp 0x4f374f
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], 1
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
cmp eax, 1
jb 0x4f38a0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
jmp 0x4f3784
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x7c]
add edi, edi
mov ebp, dword [eax + 0x64]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f37ff
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f37b9
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f37c2
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f37a8
cmp esi, 0xfffffffc
je 0x4f387b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f37ff
cmp esi, 0xfffffffd
je 0x4f387b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f37ff
cmp esi, 0xfffffffe
je 0x4f387b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f37ff
cmp esi, 0xffffffff
je 0x4f387b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f387b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f38e2
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f38e2
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f3841
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f3846
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f3830
cmp esi, 0xfffffffc
je 0x4f387b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f38e2
cmp esi, 0xfffffffd
je 0x4f387b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f38e2
cmp esi, 0xfffffffe
je 0x4f387b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f38e2
cmp esi, 0xffffffff
je 0x4f387b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f38e2
mov eax, dword [esp + 0x10]
add ebx, edi
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [eax + 0x38], ebx
mov eax, dword [eax + 0x20]
cmp ecx, eax
jbe 0x4f3780
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebp, 0xff
mov esi, dword [esp + 0x78]
cmp eax, dword [ecx + 0x24]
je 0x4f2df0
cmp dword [esp + 0x18], 0
je 0x4faf2d
mov eax, ecx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ecx
mov eax, dword [eax + 0x20]
cmp eax, dword [ecx + 0x24]
mov dword [esp + 0x2c], eax
mov eax, ecx
jae 0x4f3a35
mov ebx, dword [eax + 0x38]
jmp 0x4f3905
cmp ebx, ebp
jb 0x4f3060
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3060
cmp ebx, dword [eax + 0x6c]
jmp 0x4f3046
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x7c]
add edi, edi
mov ebp, dword [eax + 0x64]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f397f
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f3941
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f394a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f3930
cmp esi, 0xfffffffc
je 0x4f39e8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f397f
cmp esi, 0xfffffffd
je 0x4f39e8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f397f
cmp esi, 0xfffffffe
je 0x4f39e8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f397f
cmp esi, 0xffffffff
je 0x4f39e8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f39e8
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f3a05
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f3a05
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f39b6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f39bb
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f39a5
cmp esi, 0xfffffffc
je 0x4f39e8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f3a05
cmp esi, 0xfffffffd
je 0x4f39e8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f3a05
cmp esi, 0xfffffffe
je 0x4f39e8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f3a05
cmp esi, 0xffffffff
je 0x4f39e8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f3a05
mov eax, dword [esp + 0x10]
add ebx, edi
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [eax + 0x38], ebx
cmp ecx, dword [eax + 0x24]
jb 0x4f3901
jmp 0x4f3a35
cmp ebx, ebp
jb 0x4f3a31
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3a31
cmp ebx, dword [eax + 0x6c]
ja 0x4f3a1f
cmp dword [eax + 0x34], 0
je 0x4f3a31
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov ebp, 0xff
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
je 0x4f2df0
mov ecx, dword [eax + 0x38]
jmp 0x4f9cdb
mov dword [eax + 0x28], edx
jmp 0x4f3a6d
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
cmp byte [eax + 0x31], 0x2e
jb 0x4f3be2
test edi, edi
je 0x4f3ac0
mov edx, dword [eax + 0x28]
cmp edx, 0x7f
jbe 0x4f3ac0
mov eax, edx
test eax, eax
jns 0x4f3a8c
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4f3aa8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x847d3c]
add ecx, edx
jmp 0x4f3ad2
mov ecx, dword [eax + 0x28]
cmp ecx, 0xff
ja 0x4f3ad2
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
mov edx, 1
mov dword [eax + 0x2c], ecx
mov eax, dword [eax + 0x20]
cmp eax, edx
jb 0x4f3b28
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x7c]
cmp ecx, dword [eax + 0x64]
jae 0x4f303c
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x4f3b12
cmp dword [ebx + 0x2c], eax
jne 0x4f3060
mov eax, dword [esp + 0x10]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x4f3af0
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x10]
cmp eax, dword [ebp + 0x24]
je 0x4f2de4
cmp dword [esp + 0x18], 0
je 0x4f945f
mov eax, ebp
mov ecx, ebp
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebp
mov edx, dword [eax + 0x20]
cmp edx, dword [eax + 0x24]
jae 0x4f3bb9
mov eax, dword [eax + 0x38]
mov ebx, ebp
mov edi, dword [esp + 0x7c]
nop dword [eax]
cmp eax, dword [edi + 0x64]
jae 0x4f3b82
movzx ecx, word [eax]
cmp dword [ebx + 0x28], ecx
je 0x4f3b72
cmp dword [ebx + 0x2c], ecx
jne 0x4f3b7e
add eax, 2
inc edx
mov dword [ebx + 0x38], eax
cmp edx, dword [ebx + 0x24]
jb 0x4f3b60
mov ebx, edi
jmp 0x4f3bb5
mov ebx, edi
cmp word [ebx + 0x4c], 0
je 0x4f3bb5
cmp eax, dword [ebx + 0x6c]
mov eax, ebx
ja 0x4f3b98
cmp dword [eax + 0x34], 0
je 0x4f3bb3
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
jbe 0x4f3bb5
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x50
ret
mov ebx, eax
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov ebp, 0xff
je 0x4f2df0
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4fae7f
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
mov eax, dword [eax + 0x20]
mov esi, 1
cmp eax, esi
jb 0x4f3c2d
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
nop word [eax + eax]
mov eax, dword [esp + 0x7c]
cmp edx, dword [eax + 0x64]
jae 0x4f344e
mov ebx, dword [esp + 0x10]
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
mov eax, ebx
jne 0x4f3c86
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f3c00
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x78]
cmp eax, dword [ebp + 0x24]
je 0x4f2de4
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4f94c5
mov eax, ebp
mov ecx, ebp
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebp
mov edx, dword [eax + 0x20]
cmp edx, dword [eax + 0x24]
jae 0x4f3cb5
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x7c]
cmp ecx, dword [eax + 0x64]
jae 0x4f3c91
mov ebp, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
jne 0x4f3cb9
mov eax, ebp
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, dword [eax + 0x24]
jb 0x4f3c61
jmp 0x4f3cb5
mov ebx, dword [esp + 0x7c]
xor esi, esi
jmp 0x4f306a
cmp word [eax + 0x4c], 0
je 0x4f3cb5
cmp ecx, dword [eax + 0x6c]
ja 0x4f3ca3
cmp dword [eax + 0x34], 0
je 0x4f3cb5
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov ebp, dword [esp + 0x10]
cmp ebx, 2
mov ebx, dword [esp + 0x7c]
je 0x4f2de4
jmp 0x4f94e1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
add dword [eax], 2
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f3e07
mov eax, dword [esp + 0x10]
cmp dl, 0x48
mov ecx, dword [eax]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
movzx edx, word [ecx]
sub edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [edx*4 + 0x845e20]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x845e4c]
mov dword [ecx + 0x24], eax
mov eax, dword [edx*4 + 0x845e78]
mov dword [esp + 0x18], eax
mov eax, ecx
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [ecx + 0x28], eax
mov eax, ecx
mov edx, dword [eax]
add edx, 2
mov dword [eax], edx
test edi, edi
je 0x4f3e58
mov ecx, dword [eax + 0x28]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3e54
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x28], ecx
add dword [eax], 2
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x48
jb 0x4f4109
test edi, edi
je 0x4f3eab
mov edx, dword [eax + 0x28]
cmp edx, 0x7f
jbe 0x4f3eab
mov eax, edx
test eax, eax
jns 0x4f3e77
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4f3e93
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x847d3c]
add ecx, edx
jmp 0x4f3ebd
mov ecx, dword [eax + 0x28]
cmp ecx, 0xff
ja 0x4f3ebd
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x2c], ecx
mov eax, dword [eax + 0x20]
test edi, edi
je 0x4f3f59
mov esi, 1
cmp eax, esi
jb 0x4f3faa
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x4f3ef4
mov eax, dword [esp + 0x10]
cmp edx, dword [ebx + 0x64]
jae 0x4f344a
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3f39
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x4f3f3d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.0x4f2e14.162
cmp dword [eax + 0x2c], ecx
je case.0x4f2e14.162
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f3ef0
jmp 0x4f3faa
mov edx, 1
cmp eax, edx
jb 0x4f3faa
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x7c]
cmp ecx, dword [eax + 0x64]
jae 0x4f303c
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x4f3060
cmp dword [ebx + 0x2c], eax
je 0x4f3060
mov eax, ebx
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x4f3f70
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x78]
cmp eax, dword [ebp + 0x24]
je 0x4f2de4
cmp dword [esp + 0x18], 0
je 0x4fad73
cmp dword [esp + 0x14], 0
mov eax, ebp
mov ecx, ebp
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebp
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
je 0x4f4091
cmp edi, eax
jae 0x4f4069
mov eax, ebp
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x7c]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x4f404a
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f402e
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je 0x4f4069
cmp dword [eax + 0x2c], ecx
je 0x4f4069
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f3ff0
jmp 0x4f4069
cmp word [eax + 0x4c], 0
je 0x4f4069
cmp edx, dword [eax + 0x6c]
ja 0x4f405c
cmp dword [eax + 0x34], 0
je 0x4f4069
mov dword [eax + 0x2c], esi
cmp word [eax + 0x4c], si
ja 0x4f3ba6
cmp dword [esp + 0x18], 2
mov ebp, 0xff
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
je 0x4f2df0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
jmp 0x4f9d95
cmp edi, eax
jae 0x4f40e8
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f40c0
movzx ecx, word [eax]
cmp dword [edx + 0x28], ecx
je 0x4f40e8
cmp dword [edx + 0x2c], ecx
je 0x4f40e8
add eax, 2
inc edi
mov dword [edx + 0x38], eax
cmp edi, dword [edx + 0x24]
jb 0x4f40a0
jmp 0x4f40e8
cmp word [ebx + 0x4c], 0
je 0x4f40e8
cmp eax, dword [ebx + 0x6c]
mov eax, dword [esp + 0x7c]
ja 0x4f40d6
cmp dword [eax + 0x34], 0
je 0x4f40e8
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
cmp dword [esp + 0x18], 2
mov ebp, 0xff
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
je 0x4f2df0
mov ebp, dword [esp + 0x10]
jmp 0x4f9552
mov eax, dword [eax + 0x20]
mov esi, 1
test edi, edi
je 0x4f4190
cmp eax, esi
jb 0x4f41d1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x4f4134
mov eax, dword [esp + 0x10]
cmp edx, dword [ebx + 0x64]
jae 0x4f344a
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4179
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x4f417d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.0x4f2e14.162
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f4130
jmp 0x4f41d1
cmp eax, 1
jb 0x4f41d1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x7c]
cmp edx, dword [eax + 0x64]
jae 0x4f344e
mov ebx, dword [esp + 0x10]
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
mov eax, ebx
je 0x4f3c86
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f41a0
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x78]
cmp eax, dword [ebp + 0x24]
je 0x4f2de4
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4fad87
cmp dword [esp + 0x14], 0
mov eax, ebp
mov ecx, ebp
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebp
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
je 0x4f42ba
cmp edi, eax
jae 0x4f4294
mov eax, ebp
mov edx, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [esp + 0x7c]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x4f4275
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f425e
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je 0x4f4294
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f4220
jmp 0x4f4294
cmp word [eax + 0x4c], 0
je 0x4f4294
cmp edx, dword [eax + 0x6c]
ja 0x4f4287
cmp dword [eax + 0x34], 0
je 0x4f4294
mov dword [eax + 0x2c], esi
cmp word [eax + 0x4c], si
ja 0x4f3ba6
mov edi, dword [esp + 0x14]
cmp ebx, 2
mov ebx, dword [esp + 0x7c]
mov ebp, 0xff
mov esi, dword [esp + 0x78]
je 0x4f2df0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
jmp 0x4f9e46
cmp edi, eax
jae 0x4f430e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x7c]
cmp ecx, dword [eax + 0x64]
jae 0x4f42ea
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x4f430e
mov eax, edx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, dword [eax + 0x24]
jb 0x4f42c5
jmp 0x4f430e
cmp word [eax + 0x4c], 0
je 0x4f430e
cmp ecx, dword [eax + 0x6c]
ja 0x4f42fc
cmp dword [eax + 0x34], 0
je 0x4f430e
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov edi, dword [esp + 0x14]
cmp ebx, 2
mov ebx, dword [esp + 0x7c]
mov ebp, 0xff
je 0x4f2df0
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
jmp 0x4f95cb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
add eax, 2
mov dword [ecx + 8], eax
mov eax, ecx
add dword [eax], 0x22
mov edx, dword [eax]
movzx ecx, word [edx]
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x4f4361
movzx eax, byte [eax + 0x4fb924]
jmp dword [eax*4 + 0x4fb91c]
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [ecx*4 + 0x845c98]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x845cc4]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x10]
mov edx, dword [ecx*4 + str.UCP_]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x20]
jmp 0x4f43f6
mov ecx, dword [esp + 0x10]
movzx eax, word [edx + 2]
mov dword [ecx + 0x20], eax
mov eax, ecx
mov ecx, 0xffffffff
mov eax, dword [eax]
movzx eax, word [eax + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, dword [eax]
movzx eax, word [ecx]
mov eax, dword [eax*4 + str.UCP_]
mov dword [esp + 0x18], eax
lea eax, [ecx + 6]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
mov eax, dword [eax + 0x20]
jmp 0x4f43f6
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
mov eax, 1
mov ebx, 1
test edi, edi
je 0x4f44c2
cmp eax, ebx
jb 0x4f4525
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov edi, dword [eax + 0x38]
cmp edi, dword [ecx + 0x64]
jae 0x4f44ab
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f445b
movzx eax, word [edi]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [esp + 0x10]
add esi, 0x10000
add edi, 2
mov dword [eax + 0x38], edi
jmp 0x4f445f
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x4f4473
cmp byte [eax + 0x31], 0x6e
je 0x4f3060
jmp 0x4f4496
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 [esp + 0x10]
je 0x4f3c86
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x4f4525
mov eax, dword [esp + 0x10]
jmp 0x4f4416
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f3060
cmp edi, dword [eax + 0x6c]
jmp 0x4f3046
cmp eax, 1
jb 0x4f4525
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov edi, dword [eax + 0x38]
cmp edi, dword [ecx + 0x64]
jae 0x4f44ab
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x4f44f4
cmp byte [eax + 0x31], 0x6e
je 0x4f3060
jmp 0x4f4517
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 [esp + 0x10]
je 0x4f3c86
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x4f4525
mov eax, dword [esp + 0x10]
jmp 0x4f44d2
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
cmp eax, dword [ebp + 0x24]
je 0x4f2dd0
cmp dword [esp + 0x18], 0
je 0x4fad9b
mov eax, ebp
mov ecx, ebp
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebp
mov ebp, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test edi, edi
je 0x4f4629
cmp ebp, eax
jae 0x4f460e
mov eax, ecx
mov edi, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x7c]
mov ebx, 1
cmp edi, dword [eax + 0x64]
jae 0x4f45eb
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f45ae
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
add esi, 0x10000
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x4f45c2
cmp byte [eax + 0x31], 0x6e
je 0x4f460a
jmp 0x4f45dd
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 0x4f460a
mov eax, dword [esp + 0x10]
lea edi, [edi + ebx*2]
inc ebp
mov dword [eax + 0x38], edi
cmp ebp, dword [eax + 0x24]
jb 0x4f4570
jmp 0x4f460a
cmp word [eax + 0x4c], 0
je 0x4f460a
cmp edi, dword [eax + 0x6c]
ja 0x4f45fd
cmp dword [eax + 0x34], 0
je 0x4f460a
mov dword [eax + 0x2c], ebx
cmp word [eax + 0x4c], bx
ja 0x4f3ba6
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
je 0x4f2ddc
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x4fb384
mov ebx, dword [esp + 0x7c]
cmp ebp, eax
jae 0x4f46ad
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
nop dword [eax]
cmp edi, dword [ebx + 0x64]
jae 0x4f4681
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x4f4658
cmp byte [eax + 0x31], 0x6e
je 0x4f46a9
jmp 0x4f4673
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 0x4f46a9
mov eax, dword [esp + 0x10]
add edi, 2
inc ebp
mov dword [eax + 0x38], edi
cmp ebp, dword [eax + 0x24]
jb 0x4f4640
jmp 0x4f46a9
mov eax, ebx
cmp word [eax + 0x4c], 0
je 0x4f46a7
cmp edi, dword [eax + 0x6c]
ja 0x4f4695
cmp dword [eax + 0x34], 0
je 0x4f46a7
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov ebx, eax
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
je 0x4f2de0
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x18
jmp 0x4fb384
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
add eax, 4
mov dword [ecx + 8], eax
mov eax, ecx
mov ecx, dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x10]
mov dword [eax], ecx
movzx edx, word [ecx]
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x4f470b
movzx eax, byte [eax + 0x4fb938]
jmp dword [eax*4 + 0x4fb930]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [edx*4 + 0x845c98]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x845cc4]
mov edx, dword [edx*4 + str.UCP_]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x20]
jmp 0x4f479e
movzx eax, word [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x20], eax
mov eax, ecx
mov ecx, 0xffffffff
mov eax, dword [eax]
movzx eax, word [eax + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, dword [eax]
movzx eax, word [ecx]
mov eax, dword [eax*4 + str.UCP_]
mov dword [esp + 0x18], eax
lea eax, [ecx + 6]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
mov eax, dword [eax + 0x20]
jmp 0x4f479e
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
mov eax, 1
mov esi, 1
cmp eax, esi
jb 0x4f4827
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4806
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4802
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
push edi
push dword [eax + 8]
push ecx
call fcn.0051f500
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
je 0x4f32b7
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4f47b0
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x78]
cmp eax, dword [ebp + 0x24]
je 0x4f2de4
cmp dword [esp + 0x18], 0
je 0x4f9a2c
mov eax, ebp
mov ecx, ebp
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebp
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f48f7
mov edx, dword [eax + 0x38]
mov ebp, dword [esp + 0x14]
jmp 0x4f4868
mov eax, dword [esp + 0x10]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f48d2
movzx ecx, word [edx]
test ebp, ebp
je 0x4f48aa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f48a6
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
push ebp
push dword [eax + 8]
push ecx
call fcn.0051f500
add esp, 0xc
test eax, eax
je 0x4f48f7
mov ecx, dword [esp + 0x10]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [eax + 0x24]
jb 0x4f4864
jmp 0x4f48f7
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f48f5
cmp edx, dword [eax + 0x6c]
ja 0x4f48e8
cmp dword [eax + 0x34], 0
je 0x4f48f5
mov dword [eax + 0x2c], esi
cmp word [eax + 0x4c], si
ja 0x4f3ba6
mov ebx, eax
cmp dword [esp + 0x18], 2
jne 0x4faf13
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f495d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f495d
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0xff
ja 0x4f319b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je 0x4f319b
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f49cf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f49cf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0xff
ja case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je case.0x4f2e14.162
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4a46
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4a46
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0xff
ja 0x4f319b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je 0x4f319b
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4ab8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4ab8
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0xff
ja case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x4f2e14.162
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4b2f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4b2f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0xff
ja 0x4f319b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x4f319b
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4ba1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4ba1
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0xff
ja case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x4f2e14.162
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
cmp esi, dword [ebx + 0x64]
jae 0x4f3282
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov edx, esi
test edi, edi
je 0x4f4c16
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4c16
movzx eax, word [esi]
lea edx, [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], edx
cmp ecx, 0xd
ja 0x4f4ca1
je 0x4f4c38
cmp ecx, 0xa
je 0x4f4cd5
jbe case.0x4f2e14.162
cmp ecx, 0xc
jmp 0x4f4cbb
mov eax, dword [esp + 0x7c]
cmp edx, dword [eax + 0x64]
jb 0x4f4c7f
cmp word [eax + 0x4c], 0
je 0x4f4cd3
cmp edx, dword [eax + 0x6c]
ja 0x4f4c5b
cmp dword [eax + 0x34], 0
je 0x4f4cd3
mov dword [eax + 0x2c], 1
cmp word [eax + 0x4c], 1
ja 0x4f3ba6
mov esi, dword [esp + 0x78]
mov ebx, eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
cmp word [edx], 0xa
jne 0x4f4cd3
mov ecx, dword [esp + 0x10]
lea eax, [edx + 2]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x4f2df0
cmp ecx, 0x85
je 0x4f4cc4
cmp ecx, 0x2027
jbe case.0x4f2e14.162
cmp ecx, 0x2029
jbe 0x4f4cc4
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4e], 2
je 0x4f3060
mov ebx, eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4d3b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4d37
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
cmp ecx, 0x180e
ja 0x4f4d85
je case.0x4f2e14.162
cmp ecx, 0xa0
ja 0x4f4d71
je case.0x4f2e14.162
cmp ecx, 9
je case.0x4f2e14.162
cmp ecx, 0x20
je case.0x4f2e14.162
add dword [eax], 2
jmp 0x4f2df0
cmp ecx, 0x1680
je case.0x4f2e14.162
add dword [eax], 2
jmp 0x4f2df0
cmp ecx, 0x205f
ja 0x4f4dbf
je case.0x4f2e14.162
cmp ecx, 0x2000
jb 0x4f319f
cmp ecx, 0x200a
jbe case.0x4f2e14.162
cmp ecx, 0x202f
je case.0x4f2e14.162
add dword [eax], 2
jmp 0x4f2df0
cmp ecx, 0x3000
je case.0x4f2e14.162
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4e29
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4e25
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
cmp ecx, 0x180e
ja 0x4f4e5b
je 0x4f319f
cmp ecx, 0xa0
ja 0x4f4e53
je 0x4f319f
cmp ecx, 9
je 0x4f319f
cmp ecx, 0x20
jmp 0x4f4e8f
cmp ecx, 0x1680
jmp 0x4f4e8f
cmp ecx, 0x205f
ja 0x4f4e89
je 0x4f319f
cmp ecx, 0x2000
jb case.0x4f2e14.162
cmp ecx, 0x200a
jbe 0x4f319f
cmp ecx, 0x202f
jmp 0x4f4e8f
cmp ecx, 0x3000
je 0x4f319f
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4eee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4eee
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x85
ja 0x4f4f1a
je case.0x4f2e14.162
cmp ecx, 0xa
jb 0x4f319b
cmp ecx, 0xd
jbe case.0x4f2e14.162
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x4f319b
xor esi, esi
jmp case.0x4f30ad.35
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f4f82
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4f82
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x85
ja 0x4f4fa9
je 0x4f319b
cmp ecx, 0xa
jb case.0x4f2e14.162
cmp ecx, 0xd
jbe 0x4f319b
xor esi, esi
jmp case.0x4f30ad.35
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4f2e14.162
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f3156
movzx edx, word [eax]
lea ecx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], ecx
test edi, edi
je 0x4f5016
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5016
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
movzx eax, word [esi + 2]
cmp eax, 0xa
ja case.0x4f968f.15
jmp dword [eax*4 + 0x4fb944]
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0xf
jne 0x4f5228
xor esi, esi
jmp case.0x4f30ad.35
mov al, byte [ecx*4 + 0x847d39]
cmp al, 9
je 0x4f507e
cmp al, 5
je 0x4f507e
cmp al, 8
je 0x4f507e
xor ecx, ecx
jmp 0x4f5083
mov ecx, 1
mov edx, dword [esp + 0x10]
xor eax, eax
cmp byte [edx + 0x31], 0xf
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
jne 0x4f5228
xor esi, esi
jmp 0x4f306a
movzx ecx, byte [ecx*4 + 0x847d39]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x8609e0]
mov ecx, dword [esp + 0x10]
setne dl
xor eax, eax
cmp byte [ecx + 0x31], 0x10
sete al
cmp edx, eax
mov eax, ecx
jne 0x4f5228
xor esi, esi
jmp 0x4f306a
movzx eax, byte [ecx*4 + 0x847d39]
mov edx, dword [esp + 0x10]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp byte [edx + 0x31], 0x10
jmp 0x4f508d
movzx eax, byte [ecx*4 + 0x847d38]
jmp 0x4f50e1
movzx eax, byte [ecx*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f507e
cmp eax, 3
je 0x4f507e
xor ecx, ecx
jmp 0x4f5083
cmp edx, 0x180e
ja 0x4f515f
je case.0x4f517b.8192
cmp edx, 0x85
ja 0x4f514f
je case.0x4f517b.8192
cmp edx, 9
jb case.0x4f517b.8203
cmp edx, 0xd
jbe case.0x4f517b.8192
cmp edx, 0x20
jmp 0x4f5190
cmp edx, 0xa0
je case.0x4f517b.8192
cmp edx, 0x1680
jmp 0x4f5190
cmp edx, 0x202f
ja 0x4f5182
je case.0x4f517b.8192
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x4f517b.8203
movzx eax, byte [edx + 0x4fb978]
jmp dword [eax*4 + 0x4fb970]
cmp edx, 0x205f
je case.0x4f517b.8192
cmp edx, 0x3000
je case.0x4f517b.8192
movzx eax, byte [ecx*4 + 0x847d39]
xor ecx, ecx
cmp dword [eax*4 + 0x8609e0], 6
sete cl
jmp 0x4f5083
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0xf
jmp 0x4f5092
movzx eax, byte [ecx*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f507e
cmp eax, 3
je 0x4f507e
cmp edx, 0x5f
je 0x4f507e
xor ecx, ecx
jmp 0x4f5083
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x847960]
lea eax, [eax*4 + 0x847960]
cmp edx, ecx
jb 0x4f520d
lea eax, [eax + 4]
cmp edx, ecx
je 0x4f521a
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4f5200
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x10
jmp 0x4f5092
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x10
jne 0x4f32b7
add dword [eax], 6
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
cmp edx, 0x24
je 0x4f507e
cmp edx, 0x40
je 0x4f507e
cmp edx, 0x60
je 0x4f507e
cmp edx, 0xa0
jb 0x4f5263
cmp edx, 0xd7ff
jbe 0x4f507e
cmp edx, 0xe000
jae 0x4f507e
xor ecx, ecx
jmp 0x4f5083
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x4f344a
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test edi, edi
je 0x4f52c6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f52c6
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push edi
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
push esi
push ecx
call fcn.0051ed00
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x4f4cd5
cmp word [ebx + 0x4c], 0
je 0x4f4cd5
cmp eax, dword [ebx + 0x6c]
ja 0x4f5303
cmp dword [ebx + 0x34], 0
je 0x4f4cd5
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x78]
add dword [eax], 2
jmp 0x4f2df0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f5435
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov edi, ecx
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov eax, dword [eax]
cmp word [eax], 0x5c
setne dl
add eax, 4
mov dword [esp + 0x18], edx
mov dword [edi], eax
jmp 0x4f543b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x4f5435
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x4f5435
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
add dword [eax], 2
jmp 0x4f5435
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x4f5435
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [eax]
movzx ecx, word [eax]
add eax, 2
mov dword [edx], eax
mov eax, dword [ecx*4 + 0x845ccc]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + str.NOTEMPTY_]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x845d24]
mov dword [esp + 0x18], eax
mov eax, edx
mov edi, dword [esp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
add ecx, 2
mov dword [eax], ecx
mov eax, dword [eax + 0x28]
cmp eax, 0x10
je 0x4f5462
cmp eax, 0xf
je 0x4f5462
mov eax, dword [esp + 0x10]
or ebp, 0xffffffff
jmp 0x4f5479
movzx ebp, word [ecx]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
movzx eax, word [eax]
mov dword [ecx + 0x2c], eax
mov eax, ecx
add dword [eax], 2
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4f6b37
test ebp, ebp
js 0x4f5cd8
cmp ebp, 0xa
ja case.0x4f968f.15
jmp dword [ebp*4 + 0x4fb9a4]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x28], 0xf
jne 0x4f54ad
xor esi, esi
jmp case.0x4f30ad.35
mov edi, dword [esp + 0x14]
mov esi, 1
cmp eax, esi
mov eax, dword [esp + 0x10]
jb 0x4f5601
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x4f5506
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x4f54f7
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4f54f7
lea ecx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], ecx
jmp 0x4f54fb
mov eax, dword [esp + 0x10]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f54c5
jmp 0x4f5601
cmp word [ebx + 0x4c], 0
je case.0x4f2e14.162
cmp ecx, dword [ebx + 0x6c]
ja 0x4f5520
cmp dword [ebx + 0x34], 0
je case.0x4f2e14.162
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
xor esi, esi
jmp case.0x4f30ad.35
mov edi, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
mov esi, dword [eax + 0x38]
nop dword [eax]
cmp esi, dword [ebx + 0x64]
jae 0x4f949e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f559c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f559c
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x847d39]
cmp al, 9
je 0x4f55d3
cmp al, 5
je 0x4f55d3
cmp al, 8
je 0x4f55d3
xor ecx, ecx
jmp 0x4f55d8
mov ecx, 1
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f32b7
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f5550
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
mov esi, dword [esp + 0x78]
cmp eax, dword [ecx + 0x24]
je 0x4f2de4
cmp dword [esp + 0x18], 0
je 0x4fadaf
mov eax, ecx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
test ebp, ebp
js 0x4f7406
cmp ebp, 0xa
ja case.0x4f968f.15
jmp dword [ebp*4 + 0x4fb9d0]
mov edi, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
mov esi, dword [eax + 0x38]
cmp esi, dword [ebx + 0x64]
jae 0x4f949e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f56a0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f56a0
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f32b7
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f5654
jmp 0x4f55f9
mov edi, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
mov esi, dword [eax + 0x38]
cmp esi, dword [ebx + 0x64]
jae 0x4f949e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f575d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f575d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f32b7
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f5711
jmp 0x4f55f9
mov edi, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
mov esi, dword [eax + 0x38]
cmp esi, dword [ebx + 0x64]
jae 0x4f949e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f5813
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5813
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d38]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f32b7
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f57c7
jmp 0x4f55f9
mov edi, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
mov esi, dword [eax + 0x38]
nop dword [eax]
cmp esi, dword [ebx + 0x64]
jae 0x4f949e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f58cc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f58cc
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f5909
cmp eax, 3
je 0x4f5909
xor ecx, ecx
jmp 0x4f590e
mov ecx, 1
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f32b7
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f5880
jmp 0x4f55f9
mov edi, dword [esp + 0x14]
mov esi, 1
cmp eax, esi
mov eax, dword [esp + 0x10]
jb 0x4f5601
nop dword [eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f846e
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f59a0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f59a0
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f59a4
mov edx, dword [esp + 0x10]
cmp ecx, 0x180e
ja 0x4f59e7
je case.0x4f5a07.8192
cmp ecx, 0x85
ja 0x4f59d3
je case.0x4f5a07.8192
cmp ecx, 9
jb case.0x4f5a07.8203
cmp ecx, 0xd
jbe case.0x4f5a07.8192
cmp ecx, 0x20
jmp 0x4f5a1c
cmp ecx, 0xa0
je case.0x4f5a07.8192
cmp ecx, 0x1680
jmp 0x4f5a1c
cmp ecx, 0x202f
ja 0x4f5a0e
je case.0x4f5a07.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x4f5a07.8203
movzx eax, byte [eax + 0x4fba04]
jmp dword [eax*4 + 0x4fb9fc]
cmp ecx, 0x205f
je case.0x4f5a07.8192
cmp ecx, 0x3000
je case.0x4f5a07.8192
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
cmp dword [eax*4 + 0x8609e0], 6
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f32b7
jmp 0x4f5a78
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
je case.0x4f2e14.162
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f5950
jmp 0x4f55fd
mov edi, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
mov esi, dword [eax + 0x38]
nop dword [eax + eax]
cmp esi, dword [ebx + 0x64]
jae 0x4f949e
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x4f5aec
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5aec
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [esp + 0x10]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f5b30
cmp eax, 3
je 0x4f5b30
cmp edx, 0x5f
je 0x4f5b30
xor ecx, ecx
jmp 0x4f5b35
mov ecx, 1
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f32b7
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f5aa0
jmp 0x4f55f9
mov edi, dword [esp + 0x14]
mov esi, 1
cmp eax, esi
jb 0x4f55fd
nop dword [eax]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f846e
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f5bc6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5bc2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x847960]
lea eax, [eax*4 + 0x847960]
cmp ecx, edx
jb 0x4f5bed
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f5c0a
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f5be0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
jne 0x4f32b7
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f5b70
jmp 0x4f55fd
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
je case.0x4f2e14.162
jmp 0x4f5bfb
mov edi, dword [esp + 0x14]
mov esi, 1
cmp eax, esi
mov eax, dword [esp + 0x10]
jb 0x4f5601
nop
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f846e
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f5c80
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5c80
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x4f5c84
mov edx, dword [esp + 0x10]
cmp ecx, 0x24
je 0x4f5caf
cmp ecx, 0x40
je 0x4f5caf
cmp ecx, 0x60
je 0x4f5caf
cmp ecx, 0xa0
jb 0x4f5ca3
cmp ecx, 0xd7ff
jbe 0x4f5caf
cmp ecx, 0xe000
jae 0x4f5caf
xor ecx, ecx
jmp 0x4f5cb4
mov ecx, 1
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f32b7
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f5c30
jmp 0x4f55fd
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x28]
cmp ecx, 0x16
jne 0x4f5dac
lea edi, [ecx - 0x15]
cmp eax, edi
mov eax, dword [esp + 0x10]
jb 0x4f6b3b
nop word [eax + eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f846e
cmp dword [esp + 0x14], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], edx
je 0x4f5d53
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5d53
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push dword [esp + 0x18]
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
push esi
push ecx
call fcn.0051ed00
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x4f5d99
cmp word [ebx + 0x4c], 0
je 0x4f5d99
cmp eax, dword [ebx + 0x6c]
ja 0x4f5d87
cmp dword [ebx + 0x34], 0
je 0x4f5d99
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
mov eax, dword [esp + 0x10]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x4f5d00
jmp 0x4f55f9
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.0x4f968f.15
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4f654a
jmp dword [ecx*4 + 0x4fba30]
jmp dword [ecx*4 + 0x4fba70]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x4f5601
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x20]
cmp esi, dword [eax + 0x24]
jae 0x4f713d
mov edx, dword [eax + 0x38]
nop word [eax + eax]
mov ecx, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ba5
test edi, edi
je 0x4f6b8a
mov eax, 0xfc00
mov ebp, 0xd800
and ax, word [edx]
cmp ax, bp
mov eax, 2
cmove ecx, eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
je 0x4f713d
lea edx, [edx + ecx*2]
inc esi
mov dword [eax + 0x38], edx
cmp esi, dword [eax + 0x24]
jb 0x4f6b60
jmp 0x4f713d
cmp word [ebx + 0x4c], 0
je 0x4f713d
cmp edx, dword [ebx + 0x6c]
ja 0x4f6bbf
cmp dword [ebx + 0x34], 0
je 0x4f713d
mov dword [ebx + 0x2c], ecx
cmp word [ebx + 0x4c], cx
ja 0x4f3ba6
jmp 0x4f713d
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
nop dword [eax]
nop dword [eax + eax]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ca3
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x4f6c35
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6c35
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, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x847d39]
cmp al, 9
je 0x4f6c6c
cmp al, 5
je 0x4f6c6c
cmp al, 8
je 0x4f6c6c
xor ecx, ecx
jmp 0x4f6c71
mov ecx, 1
mov ebx, dword [esp + 0x10]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [esp + 0x7c]
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f713d
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f6bf0
jmp 0x4f7139
cmp word [ebx + 0x4c], 0
je 0x4f7139
cmp edx, dword [ebx + 0x6c]
ja 0x4f6cbd
cmp dword [ebx + 0x34], 0
je 0x4f7139
mov dword [ebx + 0x2c], esi
cmp word [ebx + 0x4c], si
ja 0x4f3ba6
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ca3
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x4f6d23
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6d23
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov ebx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [esp + 0x7c]
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f713d
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f6ce2
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
nop
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ca3
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x4f6de5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6de5
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov ebx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [esp + 0x7c]
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f713d
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f6da0
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
nop word [eax + eax]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ca3
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x4f6ea5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6ea5
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov ebx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d38]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [esp + 0x7c]
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f713d
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f6e60
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
nop word [eax + eax]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ca3
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x4f6f65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6f65
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, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f6fa2
cmp eax, 3
je 0x4f6fa2
xor ecx, ecx
jmp 0x4f6fa7
mov ecx, 1
mov ebx, dword [esp + 0x10]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
mov ebx, dword [esp + 0x7c]
sete al
cmp ecx, eax
mov eax, dword [esp + 0x10]
je 0x4f713d
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4f6f20
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x20]
cmp ebp, dword [eax + 0x24]
jae 0x4f7139
mov edi, dword [eax + 0x38]
mov edx, edi
nop
mov eax, dword [esp + 0x7c]
mov ebx, 1
cmp edi, dword [eax + 0x64]
jae 0x4f715d
cmp dword [esp + 0x14], 0
mov esi, edx
movzx ecx, word [edi]
je 0x4f703b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f703b
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov ebx, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x4f708e
je case.0x4f70b0.8192
cmp ecx, 0x85
ja 0x4f7072
je case.0x4f70b0.8192
mov edx, esi
cmp ecx, 9
jb case.0x4f70b0.8203
cmp ecx, 0xd
jbe case.0x4f70b0.8192
cmp ecx, 0x20
je case.0x4f70b0.8192
jmp case.0x4f70b0.8203
cmp ecx, 0xa0
je case.0x4f70b0.8192
cmp ecx, 0x1680
je case.0x4f70b0.8192
mov edx, esi
jmp case.0x4f70b0.8203
cmp ecx, 0x202f
ja 0x4f70b7
je case.0x4f70b0.8192
lea eax, [ecx - 0x2000]
mov edx, esi
cmp eax, 0x29
ja case.0x4f70b0.8203
movzx eax, byte [eax + 0x4fbab8]
jmp dword [eax*4 + 0x4fbab0]
cmp ecx, 0x205f
je case.0x4f70b0.8192
mov edx, esi
cmp ecx, 0x3000
je case.0x4f70b0.8192
mov edi, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
cmp dword [eax*4 + 0x8609e0], 6
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edi
jne 0x4f7123
mov ebx, dword [esp + 0x7c]
jmp 0x4f713d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
je 0x4f7135
mov edx, edi
lea edi, [edx + ebx*2]
inc ebp
mov dword [eax + 0x38], edi
mov edx, edi
cmp ebp, dword [eax + 0x24]
jb 0x4f6ff0
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov ebp, 0xff
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
je 0x4f2df0
mov ecx, dword [eax + 0x38]
jmp 0x4fad23
mov ebx, eax
cmp word [ebx + 0x4c], 0
je 0x4f7139
cmp edi, dword [ebx + 0x6c]
ja 0x4f7171
cmp dword [ebx + 0x34], 0
je 0x4f7139
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x20]
cmp ebx, dword [eax + 0x24]
jae 0x4f7135
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x7c]
mov edi, 1
cmp esi, dword [eax + 0x64]
jae 0x4f7252
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x4f71dd
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f71dd
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 + 0x84aa30]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f7221
cmp eax, 3
je 0x4f7221
cmp edx, 0x5f
je 0x4f7221
xor ecx, ecx
jmp 0x4f7226
mov ecx, 1
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4f7111
lea esi, [esi + edi*2]
inc ebx
mov dword [eax + 0x38], esi
cmp ebx, dword [eax + 0x24]
jb 0x4f7194
jmp 0x4f7135
mov ebx, eax
cmp word [ebx + 0x4c], 0
je 0x4f7139
cmp esi, dword [ebx + 0x6c]
ja 0x4f726e
cmp dword [ebx + 0x34], 0
je 0x4f7139
mov dword [ebx + 0x2c], edi
cmp word [ebx + 0x4c], di
ja 0x4f3ba6
jmp 0x4f7139
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x4f6ca3
movzx ecx, word [edx]
test ebp, ebp
je 0x4f72e6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f72e2
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x847960]
lea eax, [eax*4 + 0x847960]
cmp ecx, edx
jb 0x4f730d
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f7339
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f7300
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
jne 0x4f7139
mov ecx, dword [esp + 0x10]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [eax + 0x24]
jb 0x4f72a0
jmp 0x4f7139
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], 0xf
je 0x4f7139
jmp 0x4f731b
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4f7139
mov edx, dword [eax + 0x38]
mov ebx, eax
nop
mov eax, dword [esp + 0x7c]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x4f73ff
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x4f73a9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f73a9
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x4f73d4
cmp ecx, 0x40
je 0x4f73d4
cmp ecx, 0x60
je 0x4f73d4
cmp ecx, 0xa0
jb 0x4f73c8
cmp ecx, 0xd7ff
jbe 0x4f73d4
cmp ecx, 0xe000
jae 0x4f73d4
xor ecx, ecx
jmp 0x4f73d9
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je 0x4f7135
lea edx, [edx + esi*2]
inc edi
mov dword [ebx + 0x38], edx
cmp edi, dword [ebx + 0x24]
jb 0x4f7360
jmp 0x4f7135
mov ebx, eax
jmp 0x4f6ca3
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x28]
cmp eax, 0x16
jne 0x4f74fa
mov edi, dword [ebp + 0x20]
cmp edi, dword [ebp + 0x24]
jae 0x4f74df
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f74bb
cmp dword [esp + 0x14], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov dword [ebp + 0x38], edx
je 0x4f746d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f746d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebp + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x18]
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
push esi
push ecx
call fcn.0051ed00
add esp, 0x18
mov dword [ebp + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x4f74af
cmp word [ebx + 0x4c], 0
je 0x4f74af
cmp eax, dword [ebx + 0x6c]
ja 0x4f749d
cmp dword [ebx + 0x34], 0
je 0x4f74af
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x4f7422
jmp 0x4f74df
cmp word [ebx + 0x4c], 0
je 0x4f74df
cmp eax, dword [ebx + 0x6c]
ja 0x4f74cd
cmp dword [ebx + 0x34], 0
je 0x4f74df
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
je 0x4f2de4
mov esi, dword [ebp + 4]
jmp 0x4fad0a
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f968f.15
test edi, edi
je 0x4f7c81
jmp dword [eax*4 + 0x4fbae4]
jmp dword [eax*4 + 0x4fbb24]
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp dl, 0x74
sete al
mov dword [ebp + 0x28], eax
mov edx, dword [ebp]
movzx eax, word [ebx + 0x52]
movzx ecx, word [edx + 2]
movzx esi, word [edx + 4]
imul ecx, eax
mov eax, dword [ebx + 0x54]
lea ecx, [eax + ecx*2]
lea eax, [edx + 6]
mov dword [ebp], eax
test esi, esi
je 0x4f82fb
nop dword [eax]
movzx eax, word [ecx]
dec esi
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp + 0x50]
jae 0x4f82ca
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x4f82fb
movzx eax, word [ebx + 0x52]
lea ecx, [ecx + eax*2]
test esi, esi
jg 0x4f82b0
jmp 0x4f82fb
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp dl, 0x72
sete al
mov dword [ebp + 0x28], eax
mov eax, dword [ebp]
movzx eax, word [eax + 2]
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
add dword [ebp], 4
mov ecx, dword [ebp]
movzx edx, word [ecx]
lea eax, [edx - 0x62]
cmp eax, 7
ja case.default.0x4f8314
movzx eax, byte [eax + 0x4fbb6c]
jmp dword [eax*4 + 0x4fbb64]
lea eax, [ecx + 2]
mov dword [ebp], eax
mov eax, dword [edx*4 + 0x845c98]
mov dword [ebp + 0x20], eax
mov eax, dword [edx*4 + 0x845cc4]
mov dword [ebp + 0x24], eax
mov eax, dword [edx*4 + str.UCP_]
mov dword [esp + 0x18], eax
jmp 0x4f8375
movzx eax, word [ecx + 2]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp]
movzx ecx, word [eax + 4]
mov dword [ebp + 0x24], ecx
mov edx, dword [ebp]
movzx eax, word [edx]
mov eax, dword [eax*4 + str.UCP_]
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x4f836f
mov dword [ebp + 0x24], 0xffffffff
lea eax, [edx + 6]
mov dword [ebp], eax
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x50]
jae 0x4f8399
mov ecx, dword [ebp + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x4f8399
mov esi, dword [esp + 0x78]
cmp ecx, dword [ebp + eax*4 + 0x58]
je 0x4f2de4
mov eax, dword [ebp + 0x20]
jmp 0x4f83b8
mov eax, dword [ebp + 0x20]
mov esi, dword [esp + 0x78]
test eax, eax
je 0x4f2de4
test dword [ebx + 0x8c], 0x200
jne 0x4f2de4
mov esi, 1
cmp eax, esi
jb 0x4f83ef
lea eax, [esp + 0x4c]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fbcc0
add esp, 0x14
test eax, eax
jne 0x4f84d4
mov eax, dword [esp + 0x4c]
inc esi
add eax, eax
add dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x20]
cmp esi, eax
jbe 0x4f83c1
mov esi, dword [esp + 0x78]
cmp eax, dword [ebp + 0x24]
je 0x4f2de4
cmp dword [esp + 0x18], 0
je 0x4fae73
mov eax, dword [ebp + 0x38]
mov esi, 1
mov dword [ebp + 4], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + ecx*4 + 0x58]
sub eax, dword [ebp + ecx*4 + 0x54]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0x20]
cmp edi, dword [ebp + 0x24]
jae 0x4f9338
nop dword [eax]
lea eax, [esp + 0x50]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fbcc0
add esp, 0x14
test eax, eax
jne 0x4f8481
mov eax, dword [esp + 0x50]
xor ecx, ecx
cmp eax, dword [ebp + 0xc]
cmovne esi, ecx
add eax, eax
add dword [ebp + 0x38], eax
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x4f8430
jmp 0x4f84a4
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jb case.0x4f2e14.162
cmp word [ebx + 0x4c], 0
je case.0x4f2e14.162
cmp eax, dword [ebx + 0x6c]
jmp 0x4f5514
jle 0x4f84a4
cmp word [ebx + 0x4c], 0
je 0x4f84a4
mov eax, dword [ebx + 0x64]
cmp eax, dword [ebx + 0x6c]
jbe 0x4f84a4
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
test esi, esi
jne 0x4f9338
mov dword [ebp + 0x24], edi
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x4fb384
lea eax, [esp + 0x68]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fbcc0
add esp, 0x14
test eax, eax
je 0x4f84de
jle 0x4f8462
mov eax, dword [ebx + 0x64]
mov dword [ebp + 0x38], eax
jmp 0x4f8465
mov eax, dword [esp + 0x68]
add eax, eax
add dword [ebp + 0x38], eax
jmp 0x4f2de0
mov edx, dword [esp + 0x10]
add dword [edx], 2
mov ecx, dword [edx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx], ecx
cmp word [ecx], 0x78
je 0x4f84f5
lea eax, [ecx + 4]
mov dword [edx], eax
jmp 0x4f2df0
cmp dword [ebx + 0x30], 0
mov ebp, dword [esp + 0x10]
jne 0x4fade5
cmp dword [ebp + 0x18], 0
je 0x4fade5
mov ecx, dword [ebp]
jmp 0x4f8f20
lea eax, [esp + 0x68]
push eax
push ebx
mov ebx, dword [esp + 0x18]
push ebx
call fcn.004f2bd0
mov esi, eax
add esp, 0xc
test esi, esi
jg 0x4f3060
js 0x4f3062
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x78]
add eax, eax
add dword [ebx], eax
mov ebx, dword [esp + 0x7c]
jmp 0x4f2df0
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp]
movzx eax, word [eax + 2]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp]
cmp word [ecx + eax*2], 0x78
je 0x4f8584
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
add ecx, 4
mov dword [ebp], ecx
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x76
je 0x4f8599
cmp eax, 0x77
jne 0x4f85cb
lea eax, [esp + 0x68]
push eax
push ebx
push ebp
call fcn.004f2bd0
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x4f2e14.162
js case.0x4f30ad.35
mov ecx, dword [esp + 0x68]
lea eax, [ecx + ecx]
add dword [ebp], eax
sub dword [ebp + 0xc], ecx
mov ecx, dword [ebp]
movzx edx, word [ecx]
movzx eax, dx
add eax, 0xffffff70
movzx esi, dx
mov edx, esi
cmp eax, 0x12
ja case.0x4f85e8.150
movzx eax, byte [eax + 0x4fbb90]
jmp dword [eax*4 + 0x4fbb74]
mov edx, dword [ebp + 0x44]
cmp edx, 0xffffffff
je case.0x4f85e8.148
movzx eax, word [ecx + 2]
cmp eax, 0xffff
je case.0x4f85e8.149
cmp eax, edx
je case.0x4f85e8.149
jmp case.0x4f85e8.148
mov esi, dword [ebp + 0x44]
cmp esi, 0xffffffff
je case.0x4f85e8.148
movzx edx, word [ecx + 4]
movzx ecx, word [ecx + 2]
movzx edi, word [ebx + 0x52]
mov eax, dword [ebx + 0x54]
imul ecx, edi
lea ecx, [eax + ecx*2]
test edx, edx
je 0x4f86c1
movzx eax, word [ecx]
xor ebx, ebx
dec edx
cmp eax, esi
sete bl
je 0x4fab66
lea ecx, [ecx + edi*2]
test edx, edx
jg 0x4f8640
jmp 0x4fab66
movzx eax, word [ecx + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebp + 0x50]
jae case.0x4f85e8.148
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
je case.0x4f85e8.148
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
jmp 0x4f86cb
movzx edx, word [ecx + 4]
movzx ecx, word [ecx + 2]
movzx esi, word [ebx + 0x52]
mov eax, dword [ebx + 0x54]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x4f85e8.148
mov edi, dword [ebp + 0x50]
nop
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x4f86ba
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x4fab84
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x4f86a0
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
lea ebx, [ecx + eax*2]
mov dword [ebp], ebx
cmp byte [ebp + 0x31], 0x8f
jne 0x4f2ddc
mov eax, 0x2008f
mov byte [ebp + 0x30], 0x23
mov dword [esp + 0x64], eax
jmp 0x4fb384
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x7c]
mov eax, dword [ebx]
movzx edx, word [eax + 2]
test edi, edi
je 0x4f8734
test edx, edx
je 0x4f872f
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe 0x4f3060
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, word [esp + 0x24]
cmp ax, word [esp + 0x20]
jne 0x4f872b
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x4f8706
mov ecx, dword [ebx + 0x38]
jmp 0x4f874e
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg 0x4f3060
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [esi + 0x6c]
jae 0x4f8756
mov dword [esi + 0x6c], ecx
add dword [ebx], 4
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
jmp 0x4f2df0
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx], ecx
cmp word [ecx], 0x78
je 0x4f8770
jmp 0x4f2df0
mov ebp, dword [esp + 0x10]
mov ecx, 0x86
mov ebx, dword [ebp]
movzx eax, word [ebx + 2]
add eax, eax
sub ebx, eax
movzx eax, word [ebx]
cmp ax, cx
je 0x4f8810
mov ecx, 0x8a
cmp ax, cx
je 0x4f8810
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ecx, dword [edi + 0x10]
add ecx, dword [ebp + 0x4c]
mov esi, ecx
mov dword [esp + 0x1c], ecx
sub esi, edx
mov eax, dword [esi + 0x4c]
mov dword [ebp + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x4f880b
mov eax, dword [ebp + 0x50]
shl eax, 2
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.005229c0
mov eax, dword [ebp + 0x50]
add esp, 0xc
mov dword [esi + 0x50], eax
mov ebx, edi
mov eax, dword [ebp + 0x40]
mov dword [esi + 0x40], eax
mov eax, ebp
sub eax, esi
mov esi, 1
mov dword [ebp + 0x10], eax
jmp case.0x4f30ad.35
movzx eax, word [ebx]
jmp 0x4f881e
mov edi, dword [esp + 0x7c]
xor esi, esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x78]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x4f8834.134
movzx eax, byte [eax + 0x4fbbc0]
jmp dword [eax*4 + 0x4fbba4]
mov eax, dword [ebp + 0x38]
cmp eax, dword [edi + 0x70]
jbe 0x4f8846
mov dword [edi + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebp + 0x38], eax
jmp case.0x4f8834.134
mov eax, dword [ebp + 0x38]
cmp eax, dword [edi + 0x70]
jbe 0x4f885c
mov dword [edi + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebp + 0x38], eax
mov eax, ebp
sub eax, esi
mov dword [ebp + 0x10], eax
mov ecx, dword [esi]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
jne case.0x4f8834.134
nop dword [eax]
mov dword [esi], ecx
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
je 0x4f8880
jmp case.0x4f8834.134
mov esi, 1
jmp 0x4f3062
push dword [esp + 0x14]
push dword [ebp + 0x38]
push dword [esi + 0x38]
call fcn.0051ef30
add esp, 0xc
test eax, eax
jne case.0x4f8834.134
jmp 0x4f3060
movzx eax, word [ebx + 4]
cmp dword [ebp + 0x44], eax
jne 0x4f8901
mov esi, ecx
sub esi, edx
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.005229c0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebp + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebp + 0x44], eax
mov eax, dword [esi]
add eax, 4
mov dword [ebp], eax
jmp 0x4f2ddc
mov dword [ebp + 0x48], eax
lea edx, [eax + eax]
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
sub eax, dword [edi + 0x5c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x54], eax
mov eax, dword [ebp + 0x38]
sub eax, dword [edi + 0x5c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x58], eax
cmp ecx, dword [ebp + 0x50]
jb case.0x4f8834.134
mov dword [ebp + 0x50], edx
mov edx, dword [ebp]
cmp word [edx], 0x7c
jne 0x4f8951
push dword [esp + 0x40]
lea eax, [ebp + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.005229c0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x4f3062
mov cl, byte [ebp + 0x31]
cmp cl, 0x79
je 0x4f896d
test esi, esi
je 0x4fae38
mov eax, dword [ebp + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x4fae38
mov ebx, dword [esp + 0x7c]
add dword [ebp], 4
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x5c]
jne case.0x4f2e14.162
test byte [ebx + 0x88], 1
jne case.0x4f2e14.162
add dword [ecx], 2
jmp 0x4f2df0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x5c]
je 0x4f899b
xor esi, esi
jmp case.0x4f30ad.35
test byte [ebx + 0x88], 2
jne case.0x4f2e14.162
test byte [ebx + 0x8c], 0x10
je case.0x4f2e14.23
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x64]
jb case.0x4f2e14.162
cmp word [ebx + 0x4c], 0
je 0x4f899b
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
add dword [ecx], 2
jmp 0x4f2df0
mov ebp, dword [esp + 0x10]
mov esi, dword [ebx + 0x64]
mov edx, dword [ebp + 0x38]
cmp edx, esi
jae 0x4f8ada
mov eax, dword [ebx + 0x98]
add ebx, 0x9c
test eax, eax
je 0x4f8a3e
push edi
push ebx
push esi
push eax
push edx
call fcn.0051d430
add esp, 0x14
test eax, eax
je 0x4f8a76
mov eax, dword [esp + 0x7c]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [eax + 0x64]
jmp 0x4f8a6d
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x4f8a76
mov ecx, dword [esp + 0x7c]
mov ax, word [edx]
cmp ax, word [ecx + 0xa0]
jne 0x4f8a76
cmp edi, 1
je 0x4f8a6d
mov ax, word [edx + 2]
cmp ax, word [ecx + 0xa2]
jne 0x4f8a76
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x4f8ad2
mov edx, dword [esp + 0x7c]
cmp word [edx + 0x4c], 0
je 0x4f8ac9
mov ecx, dword [ebp + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [edx + 0x64]
jb 0x4f8ac9
cmp dword [edx + 0x98], 0
jne 0x4f8ac9
cmp dword [ebx], 2
mov ebx, edx
jne case.0x4f2e14.162
mov ax, word [ecx]
cmp ax, word [ebx + 0xa0]
jne case.0x4f2e14.162
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
xor esi, esi
jmp case.0x4f30ad.35
mov ebx, edx
xor esi, esi
jmp case.0x4f30ad.35
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
cmp word [ebx + 0x4c], 0
je 0x4f8af3
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
add dword [ebp], 2
jmp 0x4f2de0
test byte [ebx + 0x88], 1
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x10]
je 0x4f8b1e
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x5c]
jne 0x4f8b1e
xor esi, esi
mov ebx, ebp
jmp case.0x4f30ad.35
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x5c]
cmp ecx, edx
je 0x4f8bb6
cmp ecx, dword [ebp + 0x64]
jne 0x4f8b41
test dword [ebp + 0x8c], 0x200000
je 0x4f3060
mov esi, dword [ebp + 0x98]
test esi, esi
je 0x4f8b76
cmp ecx, edx
jbe 0x4f3060
push edi
lea eax, [ebp + 0x9c]
push eax
push edx
push esi
push ecx
call fcn.0051d4e0
add esp, 0x14
test eax, eax
je 0x4f3060
add dword [ebx], 2
jmp 0x4f2ddc
mov edi, dword [ebp + 0x9c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb 0x4f3060
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0xa0]
jne 0x4f3060
cmp edi, 1
je 0x4f8bb2
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0xa2]
jne 0x4f3060
mov edi, dword [esp + 0x14]
add dword [ebx], 2
jmp 0x4f2ddc
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x7c]
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x64]
cmp edx, ecx
jae 0x4f8c65
mov eax, dword [ebp + 0x98]
lea edi, [ebp + 0x9c]
test eax, eax
je 0x4f8c06
push dword [esp + 0x14]
push edi
push ecx
push eax
push edx
call fcn.0051d430
add esp, 0x14
test eax, eax
je 0x4f8c2f
mov edi, dword [esp + 0x14]
add dword [ebx], 2
mov ebx, ebp
jmp 0x4f2de0
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f8c2f
mov ax, word [edx]
cmp ax, word [ebp + 0xa0]
jne 0x4f8c2f
cmp esi, 1
je 0x4f8bf8
mov ax, word [edx + 2]
cmp ax, word [ebp + 0xa2]
je 0x4f8bf8
cmp word [ebp + 0x4c], 0
je 0x4f8c5c
mov ecx, dword [ebx + 0x38]
mov ebx, ebp
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x64]
jb case.0x4f2e14.162
cmp dword [ebx + 0x98], 0
jne case.0x4f2e14.162
cmp dword [edi], 2
jmp 0x4f8a9a
mov ebx, ebp
xor esi, esi
jmp case.0x4f30ad.35
test byte [ebp + 0x88], 2
je 0x4f8c77
xor esi, esi
mov ebx, ebp
jmp case.0x4f30ad.35
cmp word [ebp + 0x4c], 0
je 0x4f8bfc
cmp edx, dword [ebp + 0x6c]
ja 0x4f8c91
cmp dword [ebp + 0x34], 0
je 0x4f8bfc
mov dword [ebp + 0x2c], 1
cmp word [ebp + 0x4c], 1
ja 0x4f3ba6
add dword [ebx], 2
mov ebx, ebp
jmp 0x4f2de0
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x5c]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x38], eax
je 0x4f899b
xor esi, esi
jmp case.0x4f30ad.35
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
add dword [ecx], 2
jmp 0x4f2df0
mov ebp, dword [esp + 0x10]
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x60]
je 0x4f8dc4
lea edx, [esi - 2]
test edi, edi
je 0x4f8d43
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
movzx edi, cx
cmp cx, word [esp + 0x20]
jne 0x4f8d0c
movzx eax, word [edx - 2]
mov ecx, 0xdc00
cmp di, cx
movzx ecx, ax
mov eax, ecx
cmovne edx, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8d48
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x4f8d48
movzx ecx, word [edx]
mov edx, esi
add edx, 0xfffffffe
cmp edx, dword [ebx + 0x6c]
jae 0x4f8d56
mov dword [ebx + 0x6c], edx
mov esi, dword [ebp + 0x38]
test dword [ebx + 0x8c], 0x20000
je 0x4f8dac
cmp ecx, 0x5f
jne 0x4f8d6c
lea ebx, [ecx - 0x5e]
jmp 0x4f8dc6
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f8da5
cmp eax, 3
jne 0x4f8dc4
mov ebx, 1
jmp 0x4f8dc6
cmp ecx, 0xff
ja 0x4f8dc4
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x4f8dc4
mov ebx, 1
jmp 0x4f8dc6
xor ebx, ebx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x64]
cmp esi, eax
jb 0x4f8e29
cmp word [ecx + 0x4c], 0
je 0x4f8df5
cmp esi, dword [ecx + 0x6c]
ja 0x4f8de3
cmp dword [ecx + 0x34], 0
je 0x4f8df5
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x4c], 1
ja 0x4f3ba6
xor edx, edx
mov eax, dword [ebp]
xor edx, ebx
movzx ecx, word [eax]
add eax, 2
mov dword [ebp], eax
cmp ecx, 5
jne 0x4f8e0d
xor edx, 1
mov ebx, dword [esp + 0x7c]
mov ebp, 0xff
mov esi, dword [esp + 0x78]
test edx, edx
je 0x4f2dd6
xor esi, esi
jmp case.0x4f30ad.35
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
je 0x4f8e7c
cmp edx, eax
jae 0x4f8e4f
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f8e4f
add edx, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8e7f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x4f8e7f
movzx ecx, word [esi]
mov eax, dword [esp + 0x7c]
cmp edx, dword [eax + 0x70]
jbe 0x4f8e8b
mov dword [eax + 0x70], edx
test dword [eax + 0x8c], 0x20000
je 0x4f8eeb
cmp ecx, 0x5f
jne 0x4f8ea4
lea edx, [ecx - 0x5e]
jmp 0x4f8df7
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4f8ee1
cmp eax, 3
jne 0x4f8df5
mov edx, 1
jmp 0x4f8df7
cmp ecx, 0xff
ja 0x4f8df5
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je 0x4f8df5
mov edx, 1
jmp 0x4f8df7
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp + 4]
mov edi, dword [esp + 0x14]
mov dword [ebp], ecx
movzx eax, word [ecx + 2]
lea edx, [ecx + eax*2]
mov dword [ebp + 4], edx
cmp word [edx], 0x78
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
lea ebx, [ecx + eax*2]
je 0x4fae56
mov dword [ebp], ebx
jmp 0x4f2ddc
cmp esi, 0xfffffc1f
jne 0x4f8f73
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x7c], eax
jae case.0x4f30ad.35
cmp word [ecx], 0x78
je 0x4f8f7b
cmp word [eax], 0x78
jmp 0x4f8f75
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4fb17c
xor esi, esi
jmp case.0x4f30ad.35
cmp esi, 0xfffffc19
je 0x4faa97
test esi, esi
je 0x4f8fb5
cmp esi, 0xfffffc1f
jne case.0x4f30ad.35
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4fb234
xor esi, esi
jmp case.0x4f30ad.35
cmp esi, 0xfffffc1f
jg 0x4f902f
je 0x4faae0
cmp esi, 0xfffffc19
je case.0x4f2e14.162
cmp esi, 0xfffffc1a
jle case.0x4f30ad.35
cmp esi, 0xfffffc1d
jg case.0x4f30ad.35
mov ecx, dword [ebp]
nop dword [eax + eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f9010
mov edi, dword [esp + 0x14]
lea eax, [ecx + 4]
mov dword [ebp], eax
jmp 0x4f2de0
mov eax, esi
sub eax, 0
je 0x4faae0
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x4f306a
xor esi, esi
jmp case.0x4f30ad.35
cmp esi, 0xfffffc1f
jg 0x4f9085
je 0x4fab2c
cmp esi, 0xfffffc19
je 0x4fab06
cmp esi, 0xfffffc1a
jle case.0x4f30ad.35
cmp esi, 0xfffffc1d
jle 0x4fab43
jmp case.0x4f30ad.35
mov eax, esi
sub eax, 0
je 0x4fab2c
sub eax, 1
je 0x4fab27
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp]
mov edi, dword [esp + 0x14]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebp], ecx
jmp 0x4f2de0
test esi, esi
je 0x4f8971
jmp case.0x4f30ad.35
cmp esi, 0xfffffc1a
jne 0x4f9102
mov dword [ebp + 0x24], 1
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4fae5f
mov ecx, dword [ebp]
nop dword [eax + eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f90f0
jmp 0x4f9148
cmp esi, 0xfffffc1f
jne 0x4f9129
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x7c], eax
jae case.0x4f30ad.35
cmp word [ecx], 0x78
je 0x4f9131
cmp word [eax], 0x78
jmp 0x4f912b
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4fb132
cmp dword [ebp + 0x24], 0
jne 0x4f9176
cmp dword [ebp + 0x28], 0
jne 0x4f9176
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x4f9166
mov edi, dword [esp + 0x14]
lea eax, [ecx + 4]
mov dword [ebp], eax
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
add dword [ebp], 2
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
mov edx, dword [ebp + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x4f91e7
mov eax, dword [ebp + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x4f91e7
cmp esi, 0xfffffc1f
jne case.0x4f2e14.162
cmp dword [ebx + 0x7c], ecx
jae case.0x4f2e14.162
cmp word [edx], 0x78
je 0x4f91ef
cmp word [ecx], 0x78
je 0x4f91ef
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x4fb202
xor esi, esi
jmp case.0x4f30ad.35
cmp esi, 0xfffffc1e
jne case.0x4f30ad.35
mov eax, dword [ebp]
push dword [ebx + 0x80]
add eax, 4
push eax
call fcn.0051bb50
add esp, 8
test eax, eax
jne case.0x4f30ad.35
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x80], eax
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp + 0x44]
mov esi, 0xfffffc1c
mov dword [ebx + 0x84], eax
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x80], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x84], eax
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp]
mov esi, 0xfffffc1e
add eax, 4
mov dword [ebx + 0x80], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x84], eax
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp]
mov esi, 0xfffffc1f
mov dword [ebx + 0x7c], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x84], eax
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f30ad.35
lea eax, [esp + 0x58]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fbcc0
add esp, 0x14
test eax, eax
je 0x4fae6a
jle 0x4f9307
mov eax, dword [ebx + 0x64]
mov dword [edi + 0x38], eax
jmp 0x4f930a
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 0x64]
jb case.0x4f2e14.162
cmp word [ebx + 0x4c], 0
je case.0x4f2e14.162
cmp eax, dword [ebx + 0x6c]
jmp 0x4f5514
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp + 0xc]
neg eax
add eax, eax
add dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x15
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp + 4]
cmp dword [ebp + 0x38], eax
je case.0x4f2e14.162
mov dword [ebp + 0x38], eax
dec dword [ebp + 0x24]
mov esi, dword [ebp + 0x20]
cmp esi, dword [ebp + 0x24]
jae 0x4f939a
mov edi, dword [ebp + 0x38]
lea eax, [esp + 0x5c]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004fbcc0
mov eax, dword [esp + 0x70]
inc esi
add esp, 0x14
lea edi, [edi + eax*2]
mov dword [ebp + 0x38], edi
cmp esi, dword [ebp + 0x24]
jb 0x4f9375
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
movzx ecx, word [eax]
add eax, 2
mov dword [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x4f93f3
cmp byte [ebp + 0x31], 0x6e
je case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x17
jmp 0x4fb384
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f93e7
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
jmp 0x4f46bc
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x4f5506
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je 0x4f9459
cmp dword [ebp + 0x2c], eax
jne case.0x4f2e14.162
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x19
jmp 0x4fb384
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
je 0x4f3bcd
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x64]
jb 0x4f94b1
cmp word [ebx + 0x4c], 0
je case.0x4f2e14.162
cmp esi, dword [ebx + 0x6c]
jmp 0x4f5514
movzx ecx, word [esi]
lea eax, [esi + 2]
mov edx, dword [ebp + 0x28]
mov dword [ebp + 0x38], eax
cmp edx, ecx
jne case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1b
jmp 0x4fb384
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
jne case.0x4f30ad.35
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4f2de0
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1c
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x4f5506
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je case.0x4f2e14.162
cmp dword [ebp + 0x2c], eax
je case.0x4f2e14.162
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1d
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4fae8b
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x64]
jb 0x4f959c
cmp word [ebx + 0x4c], 0
je case.0x4f2e14.162
cmp esi, dword [ebx + 0x6c]
jmp 0x4f5514
movzx ecx, word [esi]
lea eax, [esi + 2]
mov edx, dword [ebp + 0x28]
mov dword [ebp + 0x38], eax
cmp edx, ecx
je case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1f
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4fae97
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x64]
cmp edx, ecx
jb 0x4f9613
cmp word [ebx + 0x4c], si
je case.0x4f2e14.162
cmp edx, dword [ebx + 0x6c]
jmp 0x4f5514
cmp dword [ebp + 0x28], 0xc
jne 0x4f9677
mov eax, dword [ebx + 0x98]
lea esi, [ebx + 0x9c]
test eax, eax
je 0x4f9646
push dword [esp + 0x14]
push esi
push ecx
push eax
push edx
call fcn.0051d430
add esp, 0x14
test eax, eax
jne case.0x4f2e14.162
mov edx, dword [ebp + 0x38]
jmp 0x4f9677
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f9677
mov ax, word [edx]
cmp ax, word [ebx + 0xa0]
jne 0x4f9677
cmp esi, 1
je case.0x4f2e14.162
mov ax, word [edx + 2]
cmp ax, word [ebx + 0xa2]
je case.0x4f2e14.162
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f968f.15
jmp dword [eax*4 + 0x4fbbd4]
cmp ecx, 0xd
ja 0x4f96bc
je 0x4faea3
cmp ecx, 0xa
je case.0x4f968f.13
jbe case.0x4f2e14.162
cmp ecx, 0xc
jbe 0x4f96dc
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x85
je 0x4f96dc
cmp ecx, 0x2027
jbe case.0x4f2e14.162
cmp ecx, 0x2029
ja case.0x4f2e14.162
cmp word [ebx + 0x4e], 2
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x180e
ja 0x4f9736
je case.0x4f2e14.162
cmp ecx, 0xa0
ja 0x4f9723
je case.0x4f2e14.162
cmp ecx, 9
je case.0x4f2e14.162
cmp ecx, 0x20
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x1680
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x205f
ja 0x4f976f
je case.0x4f2e14.162
cmp ecx, 0x2000
jb case.0x4f968f.13
cmp ecx, 0x200a
jbe case.0x4f2e14.162
cmp ecx, 0x202f
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x3000
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x180e
ja 0x4f97ca
je case.0x4f968f.13
cmp ecx, 0xa0
ja 0x4f97b7
je case.0x4f968f.13
cmp ecx, 9
je case.0x4f968f.13
cmp ecx, 0x20
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x1680
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x205f
ja 0x4f9803
je case.0x4f968f.13
cmp ecx, 0x2000
jb case.0x4f2e14.162
cmp ecx, 0x200a
jbe case.0x4f968f.13
cmp ecx, 0x202f
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x3000
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x85
ja 0x4f9837
je case.0x4f2e14.162
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x85
ja 0x4f9874
je case.0x4f968f.13
cmp ecx, 0xa
jb case.0x4f2e14.162
cmp ecx, 0xd
jbe case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x2028
jb case.0x4f2e14.162
cmp ecx, 0x2029
jbe case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0xff
ja case.0x4f968f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0xff
ja case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0xff
ja case.0x4f968f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0xff
ja case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0xff
ja case.0x4f968f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0xff
ja case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x4f968f.13
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp + 0x38]
add eax, 0xfffffffe
mov dword [ebp + 0x38], eax
mov ecx, eax
cmp dword [ebp + 0x28], 0x11
jne 0x4f9986
cmp eax, dword [ebp + 4]
jbe 0x4f9986
cmp word [eax], 0xa
jne 0x4f9986
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x4f9986
mov dword [ebp + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebp + 4]
jne 0x4faf07
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov eax, dword [ebp + 0x44]
mov esi, 0xfffffc1b
mov dword [ebx + 0x84], eax
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
mov edi, dword [esp + 0x14]
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f9a17
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9a17
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
push edi
push dword [ebp + 8]
push ecx
call fcn.0051f500
add esp, 0xc
test eax, eax
je case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x64
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
jbe case.0x4f2e14.162
cmp dword [esp + 0x14], esi
je 0x4faf17
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4faf17
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x65
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9ae3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x4f9b01
cmp byte [ebp + 0x31], 0x6e
je case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xc8
jmp 0x4fb384
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f9af5
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
jbe case.0x4f2e14.162
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f461d
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov edi, dword [ebp + 0xc]
mov ebp, dword [ebx + 0x64]
mov eax, ebp
mov edx, dword [esp + 0x10]
lea esi, [edi + edi]
sub eax, esi
mov ebx, dword [edx + 0x38]
cmp ebx, eax
ja 0x4f9bf7
mov edx, dword [edx + 8]
mov ecx, ebx
sub esi, 4
jb 0x4f9bb1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f9bba
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f9ba0
cmp esi, 0xfffffffc
je 0x4faf23
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f9bf7
cmp esi, 0xfffffffd
je 0x4faf23
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f9bf7
cmp esi, 0xfffffffe
je 0x4faf23
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f9bf7
cmp esi, 0xffffffff
je 0x4faf23
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4faf23
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x4f9c77
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x4f9c77
mov edx, dword [esp + 0x10]
mov ecx, ebx
add edx, 0x32
sub esi, 4
jb 0x4f9c31
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f9c3a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f9c20
cmp esi, 0xfffffffc
je 0x4faf23
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f9c77
cmp esi, 0xfffffffd
je 0x4faf23
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f9c77
cmp esi, 0xfffffffe
je 0x4faf23
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f9c77
cmp esi, 0xffffffff
je 0x4faf23
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4faf23
cmp ebx, ebp
jb 0x4f2f59
mov eax, dword [esp + 0x7c]
cmp word [eax + 0x4c], 0
je 0x4f9ca4
cmp ebx, dword [eax + 0x6c]
mov ebx, eax
ja 0x4f8ab0
cmp dword [ebx + 0x34], 0
je case.0x4f2e14.162
jmp 0x4f8ab0
mov ebx, eax
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebp + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x10]
jne 0x4f9cdb
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x4faf3c
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9d49
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f2e14.162
cmp dword [ebp + 0x2c], ecx
je case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xcc
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebp + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x10]
jne 0x4f9d95
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x4faf47
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9e03
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f2e14.162
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xce
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebp + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x10]
jne 0x4f9e46
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x4faf52
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
movzx ecx, word [eax]
add eax, 2
mov dword [ebp + 0x38], eax
cmp dword [esp + 0x14], esi
je 0x4f9ea1
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4f9ea1
add eax, 2
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0xf
jne 0x4faf61
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4f9f14
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9f14
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x847d39]
cmp al, 9
je 0x4f9f4b
cmp al, 5
je 0x4f9f4b
cmp al, 8
je 0x4f9f4b
xor ecx, ecx
jmp 0x4f9f50
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4faf71
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4f9fca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f9fca
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4faf81
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4fa07b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa07b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4faf91
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4fa125
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa125
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d38]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fafa1
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4fa1cf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa1cf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4fa20c
cmp eax, 3
je 0x4fa20c
xor ecx, ecx
jmp 0x4fa211
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fafb1
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4fa28b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa28b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp ecx, 0x180e
ja 0x4fa2ce
je case.0x4fa2ea.8192
cmp ecx, 0x85
ja 0x4fa2ba
je case.0x4fa2ea.8192
cmp ecx, 9
jb case.0x4fa2ea.8203
cmp ecx, 0xd
jbe case.0x4fa2ea.8192
cmp ecx, 0x20
jmp 0x4fa2ff
cmp ecx, 0xa0
je case.0x4fa2ea.8192
cmp ecx, 0x1680
jmp 0x4fa2ff
cmp ecx, 0x202f
ja 0x4fa2f1
je case.0x4fa2ea.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x4fa2ea.8203
movzx eax, byte [eax + 0x4fbc1c]
jmp dword [eax*4 + 0x4fbc14]
cmp ecx, 0x205f
je case.0x4fa2ea.8192
cmp ecx, 0x3000
je case.0x4fa2ea.8192
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
cmp dword [eax*4 + 0x8609e0], 6
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fafc1
xor esi, esi
jmp case.0x4f30ad.35
cmp dword [ebp + 0x28], 0xf
jne 0x4fafc1
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea ecx, [eax + 2]
movzx edx, word [eax]
mov dword [ebp + 0x38], ecx
cmp dword [esp + 0x14], esi
je 0x4fa3c1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa3c1
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d39]
mov eax, dword [eax*4 + 0x8609e0]
cmp eax, 1
je 0x4fa405
cmp eax, 3
je 0x4fa405
cmp edx, 0x5f
je 0x4fa405
xor ecx, ecx
jmp 0x4fa40a
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4fafd1
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4fa484
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa484
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x2c]
mov edx, dword [eax*4 + 0x847960]
lea eax, [eax*4 + 0x847960]
cmp ecx, edx
jb 0x4fa4ad
nop dword [eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4fa4be
mov edx, dword [eax]
cmp ecx, edx
jae 0x4fa4a0
cmp dword [ebp + 0x28], 0xf
je 0x4fafe1
xor esi, esi
jmp case.0x4f30ad.35
cmp dword [ebp + 0x28], 0xf
jne 0x4fafe1
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebp + 0x38], edx
cmp dword [esp + 0x14], esi
je 0x4fa531
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa531
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebp + 0x38], eax
cmp ecx, 0x24
je 0x4fa55c
cmp ecx, 0x40
je 0x4fa55c
cmp ecx, 0x60
je 0x4fa55c
cmp ecx, 0xa0
jb 0x4fa550
cmp ecx, 0xd7ff
jbe 0x4fa55c
cmp ecx, 0xe000
jae 0x4fa55c
xor ecx, ecx
jmp 0x4fa561
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
jne 0x4faff1
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x4f9313
mov edi, dword [esp + 0x14]
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4fa5df
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa5df
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebp + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push edi
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
push esi
push ecx
call fcn.0051ed00
add esp, 0x18
mov dword [ebp + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x4fa61e
cmp word [ebx + 0x4c], 0
je 0x4fa61e
cmp eax, dword [ebx + 0x6c]
ja 0x4fa60c
cmp dword [ebx + 0x34], 0
je 0x4fa61e
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xda
jmp 0x4fb384
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f2e14.162
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x64]
cmp edx, ecx
jb 0x4fa660
cmp word [ebx + 0x4c], si
je case.0x4f2e14.162
cmp edx, dword [ebx + 0x6c]
jmp 0x4f5514
cmp dword [ebp + 0x28], 0xc
jne 0x4fa6c4
mov eax, dword [ebx + 0x98]
lea esi, [ebx + 0x9c]
test eax, eax
je 0x4fa693
push dword [esp + 0x14]
push esi
push ecx
push eax
push edx
call fcn.0051d430
add esp, 0x14
test eax, eax
jne case.0x4f2e14.162
mov edx, dword [ebp + 0x38]
jmp 0x4fa6c4
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4fa6c4
mov ax, word [edx]
cmp ax, word [ebx + 0xa0]
jne 0x4fa6c4
cmp esi, 1
je case.0x4f2e14.162
mov ax, word [edx + 2]
cmp ax, word [ebx + 0xa2]
je case.0x4f2e14.162
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fa6fa
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebp + 0x38], edx
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f968f.15
jmp dword [eax*4 + 0x4fbc48]
cmp ecx, 0xd
ja 0x4fa736
je 0x4faffd
cmp ecx, 0xa
je case.0x4fa709.13
jbe case.0x4f2e14.162
cmp ecx, 0xc
jbe 0x4fa756
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x85
je 0x4fa756
cmp ecx, 0x2027
jbe case.0x4f2e14.162
cmp ecx, 0x2029
ja case.0x4f2e14.162
cmp word [ebx + 0x4e], 2
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x180e
ja 0x4fa7b0
je case.0x4f2e14.162
cmp ecx, 0xa0
ja 0x4fa79d
je case.0x4f2e14.162
cmp ecx, 9
je case.0x4f2e14.162
cmp ecx, 0x20
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x1680
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x205f
ja 0x4fa7e9
je case.0x4f2e14.162
cmp ecx, 0x2000
jb case.0x4fa709.13
cmp ecx, 0x200a
jbe case.0x4f2e14.162
cmp ecx, 0x202f
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x3000
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x180e
ja 0x4fa844
je case.0x4fa709.13
cmp ecx, 0xa0
ja 0x4fa831
je case.0x4fa709.13
cmp ecx, 9
je case.0x4fa709.13
cmp ecx, 0x20
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x1680
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x205f
ja 0x4fa87d
je case.0x4fa709.13
cmp ecx, 0x2000
jb case.0x4f2e14.162
cmp ecx, 0x200a
jbe case.0x4fa709.13
cmp ecx, 0x202f
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x3000
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x85
ja 0x4fa8b1
je case.0x4f2e14.162
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x85
ja 0x4fa8ee
je case.0x4fa709.13
cmp ecx, 0xa
jb case.0x4f2e14.162
cmp ecx, 0xd
jbe case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x2028
jb case.0x4f2e14.162
cmp ecx, 0x2029
jbe case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x100
jae case.0x4fa709.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x100
jae case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x100
jae case.0x4fa709.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x100
jae case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x100
jae case.0x4fa709.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
cmp ecx, 0x100
jae case.0x4f2e14.162
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x4fa709.13
xor esi, esi
jmp case.0x4f30ad.35
test esi, esi
jne case.0x4f30ad.35
mov edx, dword [ebp + 0x38]
mov edi, dword [esp + 0x14]
add edx, 0xfffffffe
mov dword [ebp + 0x38], edx
test edi, edi
jne 0x4fab9a
movzx ecx, word [edx]
jmp 0x4fabe3
test esi, esi
jne case.0x4f30ad.35
add dword [ebp + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebp + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4faa1c
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x28], 0x11
mov eax, ecx
jne 0x4faa3e
cmp ecx, dword [ebp + 4]
jbe 0x4faa3e
cmp word [ecx], 0xa
jne 0x4faa3e
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x4faa3e
mov dword [ebp + 0x38], edx
mov eax, edx
cmp eax, dword [ebp + 4]
ja 0x4fb061
mov edi, dword [esp + 0x14]
jmp 0x4f2de0
test esi, esi
jne case.0x4f30ad.35
mov ecx, dword [ebp + 0x38]
mov edi, dword [esp + 0x14]
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov edx, ecx
test edi, edi
je 0x4fad1f
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
mov eax, dword [esp + 0x10]
jne 0x4fad23
lea ecx, [edx - 2]
mov dword [ebp + 0x38], ecx
jmp 0x4fad23
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.005229c0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [esi + 0x40]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4faac1
mov edi, dword [esp + 0x14]
lea eax, [ecx + 4]
mov dword [ebp], eax
jmp 0x4f2de0
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4fb263
mov edi, dword [esp + 0x14]
lea eax, [ecx + 4]
mov dword [ebp], eax
jmp 0x4f2de0
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.005229c0
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov ebx, dword [ebp + 0x20]
jmp 0x4fab4b
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp + 4], eax
cmp word [eax], 0x78
je 0x4fae10
xor ebx, ebx
cmp dword [ebp + 0x20], ebx
sete bl
test ebx, ebx
je 0x4f86c1
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4fab56
mov edi, dword [esp + 0x14]
test ebx, ebx
je case.0x4f85e8.148
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
jmp 0x4f86cb
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
jmp 0x4f86cb
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4fabb6
lea esi, [edx - 2]
mov dword [ebp + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4fabe3
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, dword [ebp + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x847d3a]
mov dword [esp + 0x2c], eax
cmp edx, esi
jbe 0x4fad0a
mov edi, esi
mov dword [esp + 0x38], esi
mov ebp, esi
mov dword [esp + 0x3c], esi
mov eax, esi
nop dword [eax + eax]
movzx ecx, word [edx - 2]
mov esi, eax
mov dword [esp + 0x54], edx
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
je 0x4faca2
mov eax, ecx
mov esi, edi
and eax, 0xfc00
mov edi, 0xdc00
movzx ebx, ax
cmp ax, di
jne 0x4fac66
movzx ecx, word [edx - 2]
mov esi, ebp
mov ebp, dword [esp + 0x3c]
jmp 0x4fac6a
mov ebp, dword [esp + 0x38]
cmp bx, di
movzx ecx, cx
mov eax, ecx
cmovne edx, dword [esp + 0x54]
and eax, 0xfc00
sub edx, 2
cmp eax, 0xd800
jne 0x4faca2
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, ebp
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x84aa30]
shl eax, 7
add eax, ecx
mov ecx, dword [esp + 0x2c]
movzx eax, word [eax*2 + 0x84ee30]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x847d3a]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x8609a0], eax
je 0x4fad02
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov dword [eax + 0x38], edx
mov esi, dword [eax + 4]
mov edi, esi
mov dword [esp + 0x38], esi
mov ebp, esi
mov dword [esp + 0x3c], esi
mov eax, esi
cmp edx, esi
ja 0x4fac30
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
cmp dword [ebp + 0x38], esi
jbe 0x4f2ddc
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xdc
jmp 0x4fb384
mov eax, dword [esp + 0x10]
cmp ecx, dword [eax + 4]
jbe 0x4f2de0
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xde
jmp 0x4fb384
inc dword [ebx + 0x90]
mov eax, dword [ebx + 0x90]
cmp eax, dword [ebx + 0x94]
ja 0x4fb06d
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x860840]
movzx eax, word [edx + 2]
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
mov ebx, dword [esp + 0x7c]
jmp 0x4f2df0
test edi, edi
jne 0x4f9d5b
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1d
jmp 0x4fb384
test edi, edi
jne 0x4f9e0c
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1f
jmp 0x4fb384
test edi, edi
jne 0x4f9af5
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x17
jmp 0x4fb384
test ebp, ebp
js 0x4fadc3
cmp ebp, 0xa
ja case.0x4f968f.15
jmp dword [ebp*4 + 0x4fbc88]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x28], 0x16
je 0x4fa61e
test edi, edi
jne case.0x4fa709.13
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x21
jmp 0x4fb384
xor eax, eax
jmp 0x4fb176
movzx eax, dx
cmp eax, 0x7e
je 0x4fae02
mov ecx, 0x80
cmp ax, cx
je 0x4fae02
xor eax, eax
jmp 0x4fae07
mov eax, 1
mov dword [ebp + 0x20], eax
mov eax, dword [ebp]
mov dword [ebp + 4], eax
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [esp + 0x64], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [ebp + 0x30], 5
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x4fae4d
lea ebx, [edx + 4]
mov byte [ebp + 0x30], 6
jmp 0x4fb388
mov byte [ebp + 0x30], 7
jmp 0x4fb388
mov byte [ebp + 0x30], 1
jmp 0x4fb384
mov eax, dword [ebp + 8]
mov dword [ebp], eax
jmp 0x4fb132
mov eax, dword [esp + 0x58]
add eax, eax
add dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x14
jmp 0x4fb384
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1a
jmp 0x4fb384
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x1e
jmp 0x4fb384
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x20
jmp 0x4fb384
cmp edx, dword [ebx + 0x64]
jae case.0x4f968f.13
cmp word [edx], 0xa
jne case.0x4f968f.13
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x21
jmp 0x4fb384
cmp word [ebx + 0x4c], 0
je case.0x4f968f.13
cmp edx, dword [ebx + 0x64]
jb case.0x4f968f.13
cmp dword [ebx + 0x98], 0
jne case.0x4f968f.13
cmp dword [ebx + 0x9c], 2
jne case.0x4f968f.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x4f968f.13
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x21
jmp 0x4fb384
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x22
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0x65
jmp 0x4fb384
mov ecx, dword [esp + 0x10]
lea eax, [ebx + edi*2]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x4fb384
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x4fb388
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x4fb384
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcf
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd0
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd1
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd2
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd3
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd4
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd5
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd6
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd7
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd8
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xd9
jmp 0x4fb384
cmp edx, dword [ebx + 0x64]
jae case.0x4fa709.13
cmp word [edx], 0xa
jne case.0x4fa709.13
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xdb
jmp 0x4fb384
cmp word [ebx + 0x4c], 0
je case.0x4fa709.13
cmp edx, dword [ebx + 0x64]
jb case.0x4fa709.13
cmp dword [ebx + 0x98], 0
jne case.0x4fa709.13
cmp dword [ebx + 0x9c], 2
jne case.0x4fa709.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x4fa709.13
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x4c], 1
ja 0x4f3ba6
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xdb
jmp 0x4fb384
mov ebx, dword [ebp]
mov byte [ebp + 0x30], 0xdd
jmp 0x4fb384
mov esi, dword [esp + 0x10]
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x860840]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x11
jmp 0x4fb37f
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx]
add ebx, 2
mov dword [ecx + 4], ebx
mov byte [ecx + 0x30], 9
jmp 0x4fb384
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
add ecx, 2
mov dword [edx + 4], ecx
nop dword [eax + eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx + 4], ecx
cmp word [ecx], 0x78
je 0x4fb0b0
lea ebx, [ecx + 4]
mov byte [edx + 0x30], 0xa
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov edx, 0x89
mov dword [ebp + 0x28], 1
mov eax, dword [ebp]
add eax, 2
mov dword [ebp], eax
movzx ecx, word [eax]
cmp cx, dx
je 0x4fb119
mov edx, 0x8e
cmp cx, dx
jne 0x4fb104
jmp 0x4fb119
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x28], 0
mov eax, 0x20000
jmp 0x4fb122
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x28], 0
mov eax, dword [ebp]
movzx eax, word [eax + 4]
or eax, 0x10000
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], 0
mov eax, dword [ebp]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 4], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x64], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [ebp + 0x30], 8
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp]
movzx eax, word [eax + 4]
or eax, 0x10000
jmp 0x4fb176
mov ebp, dword [esp + 0x10]
movzx eax, dl
or eax, 0x20000
mov dword [ebp + 0x20], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x64], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [ebp + 0x30], 2
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebx + 0x58]
mov eax, dword [ebp]
movzx eax, word [eax + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x4fb1b2
xor edi, edi
jmp 0x4fb1b6
movzx edi, word [ebx + 4]
cmp dword [ebp + 0x44], 0xffffffff
je 0x4fb1f6
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x4fb1f6
mov ecx, dword [esp + 0x7c]
mov edx, edi
or edx, 0x40000
mov esi, dword [ecx + 0x10]
add eax, esi
mov ecx, eax
sub ecx, dword [esp + 0x78]
cmp dword [eax + 0x1c], edx
je 0x4fb1ea
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x4fb1d3
jmp 0x4fb1f6
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x4fb509
or edi, 0x40000
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edi
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x64], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [ebp + 0x30], 0xb
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
movzx eax, dl
or eax, 0x20000
mov dword [ebp + 0x20], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x64], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [ebp + 0x30], 3
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov ebp, dword [esp + 0x10]
movzx eax, dl
or eax, 0x20000
mov dword [ebp + 0x20], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x64], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [ebp + 0x30], 4
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
add eax, 4
mov dword [ebx + 0x78], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x860840]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0xc
jmp 0x4fb37f
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [edx + 0x30], 0xd
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
add eax, 4
mov dword [ebx + 0x78], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x860840]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x24
jmp 0x4fb37f
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [edx + 0x30], 0xe
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
add eax, 4
mov dword [ebx + 0x78], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x860840]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0xf
jmp 0x4fb37f
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [edx + 0x30], 0x10
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x860840]
mov byte [edx + 0x30], 0x12
lea ebx, [ecx + eax*2]
jmp 0x4fb384
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
add eax, 4
mov dword [ebx + 0x78], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x860840]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x13
add ecx, eax
lea ebx, [edx + ecx*2]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
lea esi, [eax + edi]
mov dword [esp + 0x1c], esi
cmp esi, dword [ebp + 0x14]
jb 0x4fb42a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
lea esi, [ecx + ecx]
mov eax, esi
shr eax, 0xa
cmp eax, edx
jbe 0x4fb3c7
mov esi, edx
xor edx, edx
shl esi, 0xa
mov eax, esi
div edi
sub esi, edx
cmp ecx, esi
jae 0x4fb516
push dword [ebp + 8]
mov eax, dword [ebp]
push esi
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x4fb523
push dword [ebp + 0xc]
push dword [ebp + 0x10]
push edi
call fcn.005229c0
mov ecx, dword [ebp + 0x10]
mov eax, edi
mov edx, dword [esp + 0x1c]
sub eax, ecx
add edx, eax
add esp, 0xc
mov dword [esp + 0x10], edx
add edx, dword [esp + 0x78]
mov dword [esp + 0x1c], edx
cmp ecx, dword [ebp + 0x18]
je 0x4fb416
push dword [ebp + 8]
mov eax, dword [ebp + 4]
push ecx
call eax
add esp, 8
lea eax, [edi + esi]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [ebp + 0xc], esi
mov esi, dword [esp + 0x1c]
push dword [esp + 0x40]
add eax, 0x38
push eax
lea eax, [esi + 0x38]
push eax
call fcn.005229c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x10], esi
mov eax, dword [eax + 0x18]
inc eax
mov dword [esi + 0x18], eax
mov eax, esi
mov esi, dword [esp + 0x78]
jmp 0x4f2d65
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret
mov eax, ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0x68], esi
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 0x4fb48e
mov dword [ecx + 0x70], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x5c]
mov edi, dword [esp + 0x6c]
movzx esi, word [esp + 0x70]
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 [esp + 0x74]
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.005229c0
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x4fb4f2
nop dword [eax]
mov dword [edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x4fb4e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffcc
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffc1
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd1
pop ebx
add esp, 0x50
ret