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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
test edx, edx
je 0x4e8a9e
mov dword [esp + 8], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x158]
mov eax, dword [edx]
mov ecx, dword [edx + 0x50]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [edx], ecx
mov dword [esp + 4], 0xfffffff8
cmp eax, dword [edx + 4]
jae case.0x4eb538.6
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x158]
mov ecx, eax
lea eax, [ecx + 0x7c]
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x88]
mov dword [esp + 0x24], eax
lea eax, [ecx + 0x1c]
mov dword [esp + 0x48], eax
lea eax, [ecx + 0x8c]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 0x68]
mov dword [esp + 0x20], eax
lea eax, [ecx + 0x44]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x158]
cmp eax, dword [ecx + 8]
jae 0x4e8c17
cmp dword [ecx + 0x9c], 2
jne 0x4e3b50
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb0], eax
mov dword [ecx + 0x9c], 0
lea eax, [esp + 0xb0]
mov dword [esp + 0x38], eax
jmp 0x4e3b50
movzx eax, word [esp + 0x28]
cmp eax, 0x10
jne 0x4e1bf1
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x4e29d9
jmp 0x4ec481
movzx eax, word [esp + 0x28]
cmp eax, 0x10
je 0x4e1bf1
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x4e29d9
jmp 0x4ec81f
add ebp, 2
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
cmp eax, 0x24
je case.0x4e6397.0
cmp eax, 0x60
je case.0x4e6397.0
cmp eax, 0x40
je case.0x4e6397.0
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb cl
cmp eax, 0xdfff
seta al
or al, cl
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
cmp cl, 1
je 0x4e1bf1
jmp 0x4ec481
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e17b4
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4e17b4
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4eb94e
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e86d5
cmp eax, 0x202f
mov dword [esp + 4], 0
je 0x4e1734
cmp eax, 0x3000
je 0x4e1734
cmp eax, 0x205f
je 0x4e1734
jmp case.0x4eb538.6
lea eax, [ebp + 0x22]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov ebx, 1
mov dword [esp + 0x10], 1
mov dword [esp + 4], 0
cmp dword [esp + 0x34], 0
je 0x4e18d2
test ebx, ebx
jle 0x4e192b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x4e8de4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4e1857
add edi, 4
jmp 0x4e1862
add edi, 2
cmp ecx, 0x100
jb 0x4e1871
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x4e188a
jmp 0x4ec481
mov eax, ecx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x4ec481
inc esi
cmp esi, ebx
jl 0x4e1839
jmp 0x4e192f
xor eax, eax
cmp edx, 0x69
sete al
mov dword [esp + 4], eax
cmp edx, 0x6d
sete al
mov dword [esp + 0xc], eax
movzx ebx, word [ebp + 0x24]
movzx eax, word [ebp + 0x26]
test eax, eax
mov ecx, 0x7fffffff
cmovne ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x28]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x34], 0
jne 0x4e1825
test ebx, ebx
jle 0x4e192b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x4e927e
movzx eax, word [edi]
cmp eax, 0x100
jb 0x4e1903
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x4e1921
jmp 0x4ec481
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
jae 0x4ec481
add edi, 2
inc esi
cmp esi, ebx
jl 0x4e18e2
jmp 0x4e192f
mov edi, dword [esp + 8]
cmp ebx, dword [esp + 0x10]
mov dword [esp + 8], edi
mov edx, dword [esp + 0x28]
je 0x4e3b50
cmp dword [esp + 4], 0
jne 0x4eac5c
cmp dword [esp + 0x34], 0
je 0x4e19dc
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x4e1a6d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, edi
cmp eax, dword [esp + 4]
jae 0x4e1a3d
mov ecx, eax
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
mov esi, 2
cmp eax, 0xd800
je 0x4e199e
mov esi, 1
cmp edx, 0x100
jb 0x4e19ad
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x4e19cb
jmp 0x4e1a67
mov eax, edx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and dl, 7
movzx edx, dl
mov esi, 1
bt eax, edx
jae 0x4e1a67
mov eax, ecx
lea eax, [eax + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x4e196f
jmp 0x4e1a6d
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x4e1ab1
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, edi
cmp eax, ecx
jae 0x4e1a81
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x100
jb 0x4e1a11
movzx eax, dx
cmp eax, 0x6e
jne 0x4e1a2f
jmp 0x4e1aab
mov edx, eax
and edx, 0xfff8
shr edx, 3
movzx edx, byte [ebp + edx + 2]
and al, 7
movzx eax, al
bt edx, eax
mov edx, dword [esp + 0x28]
jae 0x4e1aab
mov eax, esi
add eax, 2
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x4e19f0
jmp 0x4e1ab1
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1a6b
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e1a6b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x4e1a6d
jmp 0x4e91ec
mov eax, ecx
jmp 0x4e1a6d
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x4e3b50
jmp 0x4eb230
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1aaf
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e1aaf
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x4e1ab1
jmp 0x4e91ec
mov eax, esi
jmp 0x4e1ab1
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x4e3b50
jmp 0x4ebb1e
cmp edx, 0xa
mov dword [esp + 4], 0
jne case.0x4eb538.6
add ebp, 2
mov dword [esp + 0x14], ebp
mov dword [esp + 8], eax
jmp 0x4e3b50
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x4e1b5f
mov ebx, edx
movzx edx, word [edi]
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4e1b22
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [edi + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
cmp dword [esi + 0x58], 0
je 0x4e1dba
mov cl, 1
cmp edx, 0x5f
je 0x4e1dd5
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x19
add ecx, edx
mov esi, ecx
and esi, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub edx, esi
add edx, ecx
jmp 0x4e1d98
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4e1b8f
mov esi, edx
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x4e1b86
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x4e91ec
xor ecx, ecx
mov edx, esi
jmp 0x4e1dd7
xor ecx, ecx
jmp 0x4e1dd7
xor eax, eax
movzx esi, al
test esi, esi
je case.0x4e4f99.4
jmp 0x4e8314
cmp eax, 0x84
jg 0x4e1bca
add eax, 0xfffffff7
cmp eax, 0x17
ja case.0x4e63b8.8203
mov edx, 0x80001f
bt edx, eax
jb case.0x4e6397.0
jmp case.0x4e63b8.8203
cmp eax, 0x85
je case.0x4e6397.0
cmp eax, 0xa0
je case.0x4e6397.0
cmp eax, 0x1680
jne case.0x4e63b8.8203
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x4ec481
mov dword [esp + 8], ebx
add ebp, 6
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
mov eax, edx
mov dword [esp + 8], eax
cmp dword [esp + 0x4c], 0
jne 0x4e3b50
jmp 0x4e83c5
movzx edx, word [ebx + 2]
cmp dx, word [edi + 0x36]
jne 0x4e9d5d
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne 0x4e9d5d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1734
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x4e1734
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x4e1734
jmp 0x4ea03d
cmp eax, 9
mov dword [esp + 4], 0
je 0x4e1734
cmp eax, 0x20
je 0x4e1734
jmp case.0x4eb538.6
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x4e3236
movzx ebx, word [edi]
mov esi, ebx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x4e1cc5
shl ebx, 0xa
and ebx, 0xffc00
movzx edx, word [edi + 2]
and edx, 0x3ff
lea ebx, [ebx + edx + 0x10000]
mov edx, 2
mov esi, 1
cmp ebx, 0x1fff
jle 0x4e1d10
cmp ebx, 0x202e
jg 0x4e1d32
add ebx, 0xffffe000
cmp ebx, 0xb
jae 0x4e1d56
cmp esi, ecx
je 0x4e3b36
mov edi, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 8]
lea esi, [esi + edx*2]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x28]
jl 0x4e1c82
jmp 0x4e3b36
cmp ebx, 0x9f
jle 0x4e1d4c
cmp ebx, 0xa0
je 0x4e1ce5
cmp ebx, 0x1680
je 0x4e1ce5
cmp ebx, 0x180e
je 0x4e1ce5
jmp 0x4e1d56
cmp ebx, 0x202f
je 0x4e1ce5
cmp ebx, 0x205f
je 0x4e1ce5
cmp ebx, 0x3000
je 0x4e1ce5
jmp 0x4e1d56
cmp ebx, 9
je 0x4e1ce5
cmp ebx, 0x20
je 0x4e1ce5
xor esi, esi
cmp esi, ecx
jne 0x4e1ced
jmp 0x4e3b36
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x4e1b5f
mov ebx, edx
cmp dword [esi + 0x58], 0
movzx edx, word [edi]
je 0x4e1dba
mov cl, 1
cmp edx, 0x5f
je 0x4e1dd5
mov ecx, edx
shr ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e61]
mov ecx, dword [ecx*4 + 0x54733c]
or ecx, 2
cmp ecx, 3
sete cl
jmp 0x4e1dd5
cmp edx, 0xff
ja 0x4e1dd3
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + edx]
and cl, 0x10
shr cl, 4
jmp 0x4e1dd5
xor ecx, ecx
mov edx, ebx
movzx ecx, cl
add ebp, 2
movzx edx, dx
cmp edx, 5
jne 0x4e1dfe
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
jne 0x4e3b50
jmp case.0x4eb538.6
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
je 0x4e3b50
jmp case.0x4eb538.6
mov dword [esp + 0x10], 1
xor ebp, ebp
mov dword [esp + 4], 0
mov ebx, 1
xor esi, esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4e9174
lea ecx, [edx + 2]
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x4e1e83
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e1e83
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 8]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 8], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e1e87
mov dword [esp + 8], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.0052f730
add esp, 0x10
test eax, eax
je 0x4ec481
inc esi
cmp esi, ebx
jl 0x4e1e30
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
cmp ebx, dword [esp + 0x10]
je 0x4e3b50
test ebp, ebp
jne 0x4eb3bd
cmp ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jge 0x4e1f67
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax]
jae 0x4e1f3b
mov ebp, ecx
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x4e1f18
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4e1f18
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov esi, 2
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.0052f730
add esp, 0x10
mov ecx, ebp
test eax, eax
je 0x4e1f67
lea ecx, [ecx + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x4e1ed1
jmp 0x4e1f67
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1f65
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e1f65
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x4e1f67
jmp 0x4e91ec
mov ecx, edx
mov dword [esp + 8], ecx
cmp byte [esp + 4], 0
jne 0x4e3b50
jmp 0x4eb95b
mov ecx, edx
mov dword [esp + 8], ecx
cmp dword [esp + 0x4c], 0
jne 0x4e3b50
jmp 0x4e85bd
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e3afc
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4e3afc
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x4e3afc
jmp 0x4eb94e
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4e1ad6
mov edx, dword [esp + 0x24]
cmp eax, dword [edx]
jbe 0x4e1ad6
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jle 0x4e1ad6
jmp 0x4e91ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4ead45
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x4ec481
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2005
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x4ea445
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x4e206c
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x4ec481
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x4e2087
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x4e208b
mov edx, esi
jmp 0x4e2090
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x4e204c
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4ead83
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x4ec481
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e20b2
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x4ea47f
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x4e2119
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x4ec481
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x4e2134
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x4e2138
mov edx, esi
jmp 0x4e213d
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x4e20f9
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eadc1
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x4ec481
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e215f
jmp 0x4e48af
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x4ea530
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x4e21df
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0052f350
add esp, 0x20
test eax, eax
mov edx, dword [esp + 0x10]
je 0x4e2212
jmp 0x4ec481
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
mov edx, dword [esp + 0x10]
ja 0x4e2212
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x4e2212
cmp ecx, 1
je 0x4ec481
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x4ec481
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x4e2237
lea edx, [ebx + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp edx, eax
jae 0x4e2246
mov ecx, ebp
mov edx, dword [esp + 0x10]
cmp ecx, eax
jb 0x4e2256
jmp 0x4e226b
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [ebx + 2]
cmp ecx, eax
jb 0x4e2256
jmp 0x4e226b
cmp dword [edi + 0x18], 0
mov edx, dword [esp + 0x10]
je 0x4e227f
mov ecx, ebp
cmp ecx, eax
jae 0x4e226b
movzx eax, word [ebx + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4e226b
add ebx, 4
mov ecx, ebx
inc esi
cmp esi, edx
mov dword [esp + 0xc], ecx
mov ebx, ecx
jl 0x4e21a0
jmp 0x4e48af
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x4e222b
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x4e222b
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebp
mov edx, dword [esp + 0x10]
jle 0x4e2252
jmp 0x4e91ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 8]
cmp esi, eax
jae 0x4ea003
lea edi, [esi + 2]
cmp edi, eax
jae 0x4e22dd
movzx edx, word [esi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x4e22dd
add esi, 4
mov edi, esi
mov edx, dword [esp + 0x10]
inc ecx
cmp ecx, edx
mov dword [esp + 0xc], edi
mov esi, edi
jl 0x4e22b7
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eac1e
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e233f
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e2342
add edi, 2
mov ebx, dword [esp + 0x158]
mov dword [esp + 0xc], edi
cmp edx, 0xc
jle 0x4e238f
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x4e2397
cmp edx, 0x85
je 0x4e2397
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov esi, dword [esp + 0xc]
cmp esi, eax
jae 0x4e23a1
movzx edx, word [esi]
cmp edx, 0xa
jne 0x4e23a1
add esi, 2
mov dword [esp + 0xc], esi
jmp 0x4e23a1
lea edi, [edx - 0xb]
cmp edi, 2
jae 0x4e23b1
cmp dword [ebx + 0x6c], 0
jne 0x4ec481
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2301
jmp 0x4e48af
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x4e23a1
jmp case.0x4eb538.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4ea9e5
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e2444
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x1fff
jg 0x4e244f
cmp edx, 0x9f
jle 0x4e248c
cmp edx, 0xa0
je 0x4ecd03
cmp edx, 0x1680
je 0x4ecd03
cmp edx, 0x180e
jne 0x4e249e
jmp 0x4ecd03
add edi, 2
cmp edx, 0x1fff
jle 0x4e2417
cmp edx, 0x202e
jg 0x4e2467
add edx, 0xffffe000
cmp edx, 0xb
jae 0x4e249e
jmp 0x4ecd03
cmp edx, 0x202f
je 0x4ecd03
cmp edx, 0x205f
je 0x4ecd03
cmp edx, 0x3000
jne 0x4e249e
jmp 0x4ecd03
cmp edx, 9
je 0x4ecd03
cmp edx, 0x20
je 0x4ecd03
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e23d3
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eaa23
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e252b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x1fff
jg 0x4e2536
cmp edx, 0x9f
jle 0x4e257e
cmp edx, 0xa0
je 0x4e254d
cmp edx, 0x1680
je 0x4e254d
cmp edx, 0x180e
je 0x4e254d
jmp 0x4ecd03
add edi, 2
cmp edx, 0x1fff
jle 0x4e2506
cmp edx, 0x202e
jg 0x4e2561
add edx, 0xffffe000
cmp edx, 0xb
jae 0x4ecd03
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e24c2
jmp 0x4e48af
cmp edx, 0x202f
je 0x4e254d
cmp edx, 0x3000
je 0x4e254d
cmp edx, 0x205f
je 0x4e254d
jmp 0x4ecd03
cmp edx, 9
je 0x4e254d
cmp edx, 0x20
je 0x4e254d
jmp 0x4ecd03
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eaa61
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e25db
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e25de
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x4ecd03
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x4ecd03
cmp edx, 0x85
je 0x4ecd03
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e259d
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eaa9f
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e2663
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e2666
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x4e2685
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x4e2685
cmp edx, 0x85
jne 0x4ecd03
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2625
jmp 0x4e48af
mov al, 1
movzx esi, al
test esi, esi
jne 0x4e8314
mov ecx, dword [esp + 4]
lea eax, [edi + ecx*2]
mov dword [esp + 0x14], eax
movzx eax, word [edi + ecx*2 - 4]
cmp eax, 0x77
mov eax, dword [esp + 0x28]
jne 0x4e3b50
jmp 0x4e832b
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x14
sete cl
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ebx, dword [esp + 8]
cmp ebx, eax
jae 0x4e3236
movzx esi, word [ebx]
mov edi, esi
and edi, 0xfc00
mov edx, 1
cmp edi, 0xd800
jne 0x4e272f
shl esi, 0xa
and esi, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea esi, [esi + edx + 0x10000]
mov edx, 2
mov ebx, 1
lea edi, [esi - 0xa]
cmp edi, 4
jb 0x4e2751
lea edi, [esi - 0x2028]
cmp edi, 2
jb 0x4e2751
cmp esi, 0x85
je 0x4e2751
xor ebx, ebx
cmp ebx, ecx
je 0x4e3b36
mov edi, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 8]
lea esi, [esi + edx*2]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x28]
jl 0x4e26ec
jmp 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb2bc
movzx edx, word [edi]
cmp edx, 0xff
ja 0x4ec481
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e278c
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eadff
movzx edx, word [edi]
cmp edx, 0xff
ja 0x4e2801
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e27da
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb2fa
movzx edx, word [edi]
cmp edx, 0xff
ja 0x4ec481
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2824
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eae3d
movzx edx, word [edi]
cmp edx, 0xff
ja 0x4e2899
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2872
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb338
movzx edx, word [edi]
cmp edx, 0xff
ja 0x4ec481
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e28bc
jmp 0x4e48af
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x4eb01c
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x4e2939
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4e2968
jmp 0x4ec481
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x4e2968
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x4e2968
cmp ecx, 1
je 0x4ec481
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x4ec481
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edx, [ebx + 2]
test eax, eax
je 0x4e29a8
mov ecx, dword [esp + 0x18]
cmp edx, dword [ecx]
jb 0x4e29a8
cmp dword [edi + 0x18], 0
jne 0x4e29a8
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x4e29a8
movzx ecx, word [ebx]
cmp cx, word [edi + 0x34]
jne 0x4e29a8
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
inc esi
cmp esi, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ebx, edx
jl 0x4e2900
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
ja 0x4ec85d
lea eax, [ecx + edx*2]
mov dword [esp + 0xc], eax
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x4eb1f6
lea edx, [ebp + 2]
mov dword [esp + 0xc], edx
movsx edx, word [ebp]
cmp edx, 0xc
mov ebx, dword [esp + 0x158]
jle 0x4e2a52
lea edi, [edx - 0x2028]
movzx edi, di
cmp edi, 2
jb 0x4e2a5d
movzx edx, dx
cmp edx, 0x85
je 0x4e2a5d
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x4eb538.6
cmp dword [esp + 0xc], eax
jae 0x4e2a67
movzx edx, word [ebp + 2]
cmp edx, 0xa
jne 0x4e2a67
add ebp, 4
mov dword [esp + 0xc], ebp
jmp 0x4e2a67
lea edi, [edx - 0xb]
movzx edi, di
cmp edi, 2
jae 0x4e2a7b
cmp dword [ebx + 0x6c], 0
jne 0x4ec481
inc ecx
cmp ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jl 0x4e29f1
jmp 0x4e48af
movzx edx, dx
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x4e2a67
jmp case.0x4eb538.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb0b3
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x4e2ad5
cmp esi, 0x202e
jg 0x4e2b05
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x4e2b3f
jmp 0x4ecd03
movzx edx, dx
cmp esi, 0x9f
jle 0x4e2b2d
cmp edx, 0xa0
je 0x4ecd03
cmp edx, 0x1680
je 0x4ecd03
cmp edx, 0x180e
jne 0x4e2b3f
jmp 0x4ecd03
movzx edx, dx
cmp edx, 0x202f
je 0x4ecd03
cmp edx, 0x205f
je 0x4ecd03
cmp edx, 0x3000
jne 0x4e2b3f
jmp 0x4ecd03
cmp edx, 9
je 0x4ecd03
cmp edx, 0x20
je 0x4ecd03
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2aa0
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb0f1
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x4e2bad
cmp esi, 0x202e
jg 0x4e2bd5
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x4ecd03
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2b66
jmp 0x4e48af
movzx edx, dx
cmp esi, 0x9f
jle 0x4e2bf5
cmp edx, 0xa0
je 0x4e2b9a
cmp edx, 0x1680
je 0x4e2b9a
cmp edx, 0x180e
je 0x4e2b9a
jmp 0x4ecd03
movzx edx, dx
cmp edx, 0x202f
je 0x4e2b9a
cmp edx, 0x3000
je 0x4e2b9a
cmp edx, 0x205f
je 0x4e2b9a
jmp 0x4ecd03
cmp edx, 9
je 0x4e2b9a
cmp edx, 0x20
je 0x4e2b9a
jmp 0x4ecd03
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb12f
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x4ecd03
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x4ecd03
movzx edx, dx
cmp edx, 0x85
je 0x4ecd03
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2c14
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eb16d
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x4e2cad
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x4e2cad
movzx edx, dx
cmp edx, 0x85
jne 0x4ecd03
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e2c76
jmp 0x4e48af
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3236
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x4e2d26
mov edx, 1
cmp ecx, 0xff
ja 0x4e2d26
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 4
jne 0x4e3b36
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e2ce0
jmp 0x4e3b36
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3236
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3b36
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x4e3b36
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x4e3b36
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e2d65
jmp 0x4e3b36
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3236
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x4e2e23
mov edx, 1
cmp ecx, 0xff
ja 0x4e2e23
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 1
jne 0x4e3b36
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e2ddd
jmp 0x4e3b36
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3236
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3b36
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x4e3b36
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x4e3b36
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e2e62
jmp 0x4e3b36
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3236
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x4e2f20
mov edx, 1
cmp ecx, 0xff
ja 0x4e2f20
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 0x10
jne 0x4e3b36
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e2eda
jmp 0x4e3b36
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3236
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3b36
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x4e3b36
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x4e3b36
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e2f5f
jmp 0x4e3b36
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x4e30e4
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x4e3008
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4e3045
jmp 0x4e3112
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x4e3045
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x4e3045
cmp ecx, 1
je 0x4e314e
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x4e3162
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x4e309e
lea edx, [esi + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, edx
cmp edx, eax
jb 0x4e309a
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne 0x4e309a
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x4e309a
movzx edx, word [esi]
mov edi, dword [esp + 0x158]
cmp dx, word [edi + 0x34]
jne 0x4e309a
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebx
jle 0x4e30a7
jmp 0x4eb94e
mov ecx, ebx
jmp 0x4e30a7
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [esi + 2]
mov dword [esp + 8], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
jae 0x4e30ce
movzx eax, word [esi + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4e30ce
add esi, 4
mov dword [esp + 8], esi
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov esi, dword [esp + 8]
jl 0x4e2fcd
jmp 0x4e3b36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e3126
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x4e313a
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x4e3b36
jmp 0x4eb94e
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
mov dword [esp + 8], esi
jmp 0x4e3b36
cmp edx, 0x7fffffff
jne 0x4e3182
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
jmp 0x4e3236
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x4e31e0
lea edx, [ecx + 2]
mov dword [esp + 8], edx
cmp edx, eax
jae 0x4e31c6
movzx edx, word [ecx + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x4e31c6
add ecx, 4
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov ecx, dword [esp + 8]
jl 0x4e319e
jmp 0x4e3b36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e320e
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x4e3222
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp eax, 1
mov dword [esp + 8], ecx
jle 0x4e3b36
jmp 0x4eb94e
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e3b36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e3b36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x4e3b36
jmp 0x4eb94e
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
ja 0x4e3236
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x4e3236
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x4e32fc
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [edi + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ecx, 0xa
je 0x4e3353
cmp ecx, 0xd
jne 0x4e3323
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x4e3378
movzx edx, word [esi + 2]
cmp edx, 0xa
jne 0x4e335a
add esi, 4
mov dword [esp + 8], esi
jmp 0x4e335e
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x4e3b36
lea esi, [ecx - 0xb]
cmp esi, 2
jb 0x4e3353
lea esi, [ecx - 0x2028]
cmp esi, 2
jb 0x4e3353
cmp ecx, 0x85
jne 0x4e3b36
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x4e32b9
jmp 0x4e3b36
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e88e2
cmp eax, 0x3000
je case.0x4e6397.0
cmp eax, 0x180e
je case.0x4e6397.0
movzx eax, byte [ecx*8 + 0x547e61]
cmp dword [eax*4 + 0x54733c], 6
jmp 0x4e8130
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e33fe
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
jne 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e33d7
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3aee
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e3437
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e34c2
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
jne 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e349b
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3aee
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e34fb
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3586
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
jne 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e355f
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x4e3aee
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e35bf
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x4e36fb
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x4e3652
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4e368f
jmp 0x4e3729
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x4e368f
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x4e368f
cmp ecx, 1
je 0x4e3765
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x4e3779
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edi, [esi + 2]
test eax, eax
je 0x4e36dd
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jb 0x4e36dd
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x4e36dd
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x4e36dd
movzx ecx, word [esi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x4e36dd
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4eb94e
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 8], edi
mov esi, edi
jl 0x4e3619
jmp 0x4e3aee
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e373d
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x4e3751
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x4e3aee
jmp 0x4eb94e
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
jmp 0x4e37b8
add esi, 4
mov dword [esp + 8], esi
jmp 0x4e3829
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
cmp ecx, 0xa
je 0x4e3824
movzx edx, cx
cmp edx, 0xd
jne 0x4e37ee
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x4e3843
movzx edx, word [esi + 2]
cmp edx, 0xa
je 0x4e37af
mov dword [esp + 8], ecx
jmp 0x4e3829
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x4e3aee
lea esi, [ecx - 0xb]
movzx esi, si
cmp esi, 2
jb 0x4e3824
add ecx, 0xffffdfd8
movzx ecx, cx
cmp ecx, 2
jb 0x4e3824
cmp edx, 0x85
jne 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x4e37b8
jmp 0x4e3aee
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x4e38b0
cmp edx, 0x202e
jg 0x4e38e4
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x4e3926
jmp 0x4e3aee
movzx ecx, cx
cmp edx, 0x9f
jle 0x4e3910
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x4e3aee
cmp ecx, 0x1680
je 0x4e3aee
cmp ecx, 0x180e
jne 0x4e3926
jmp 0x4e3aee
movzx ecx, cx
cmp ecx, 0x202f
je 0x4e3aee
cmp ecx, 0x205f
mov edx, dword [esp + 0x28]
je 0x4e3aee
cmp ecx, 0x3000
jne 0x4e3926
jmp 0x4e3aee
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x4e3aee
cmp ecx, 0x20
je 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x4e3877
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x4e39b0
cmp edx, 0x202e
jg 0x4e39dc
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x4e3961
jmp 0x4e3aee
movzx ecx, cx
cmp edx, 0x9f
jle 0x4e3a00
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x4e3999
cmp ecx, 0x1680
je 0x4e3999
cmp ecx, 0x180e
je 0x4e3999
jmp 0x4e3aee
movzx ecx, cx
cmp ecx, 0x202f
mov edx, dword [esp + 0x28]
je 0x4e3999
cmp ecx, 0x3000
je 0x4e3999
cmp ecx, 0x205f
je 0x4e3999
jmp 0x4e3aee
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x4e3999
cmp ecx, 0x20
je 0x4e3999
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x4e3aee
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x4e3aee
movzx ecx, cx
cmp ecx, 0x85
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
je 0x4e3aee
add dword [esp + 8], 2
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x4e3a33
jmp 0x4e3aee
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3aee
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x4e3b0c
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x4e3ad1
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x4e3ad1
movzx ecx, cx
cmp ecx, 0x85
jne 0x4e3aee
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e3aa2
jmp 0x4e3aee
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8a14
mov ebp, ecx
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x4e3b50
jmp 0x4e8346
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e3aee
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e3aee
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x4e3aee
jmp 0x4eb94e
cmp dword [esp + 0x58], 0
je 0x4e88e2
nop word cs:[eax + eax]
mov ebp, dword [esp + 0x14]
movzx edx, word [ebp]
cmp edx, 0xa1
ja case.0x4e3b6e.98
xor eax, eax
mov dword [esp + 4], 0
jmp dword [edx*4 + 0x4ecd24]
add ebp, 2
movzx eax, dx
cmp eax, 0x2e
mov eax, 0x21
mov ecx, 0x2e
cmovb ecx, eax
mov eax, edx
sub eax, ecx
mov edi, eax
and edi, 1
movsx ecx, byte [eax + 0x5470f0]
mov dword [esp + 0x10], ecx
movsx ecx, byte [eax + 0x5470fb]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], 0
jmp 0x4e3f0d
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je case.0x4e3b6e.119
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
add ebp, 2
movzx eax, dx
cmp eax, 0x47
mov eax, 0x48
mov ecx, 0x3b
cmova ecx, eax
mov eax, edx
sub eax, ecx
mov ecx, eax
and ecx, 1
mov dword [esp + 0x50], ecx
movsx edi, byte [eax + 0x5470f0]
movsx ecx, byte [eax + 0x5470fb]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
jmp 0x4e3c93
add ebp, 2
lea eax, [edx - 0x55]
mov ecx, edx
not ecx
and ecx, 1
mov dword [esp + 0x4c], ecx
movsx ecx, byte [edx + 0x54709b]
mov dword [esp + 0x10], ecx
movsx ecx, byte [edx + 0x5470a6]
mov edx, 0x3cf
bt edx, eax
mov edx, 0x7fffffff
cmovae edx, ecx
jmp 0x4e470e
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
movzx eax, dx
cmp eax, 0x42
sete cl
cmp eax, 0x4f
sete al
or al, cl
movzx eax, al
mov dword [esp + 0x50], eax
add ebp, 4
xor edi, edi
mov dword [esp + 0x4c], 0
jmp 0x4e4342
movzx eax, word [ebp + 2]
add eax, eax
mov ecx, eax
neg ecx
mov dword [esp + 0xc], ebp
movzx esi, word [ebp + ecx]
cmp esi, 0x87
ja 0x4e4fc6
movzx ecx, si
cmp ecx, 0x81
je 0x4e4fc6
mov dword [esp + 4], 0
jmp 0x4e4fd7
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x78]
je 0x4e63bf
mov edi, dword [esp + 8]
cmp edi, eax
je 0x4e6938
mov ebx, edx
lea eax, [edi - 2]
movzx edx, word [edi - 2]
and edx, 0xfc00
lea ecx, [edi - 4]
cmp edx, 0xdc00
cmovne ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, dword [eax]
jae 0x4e3d25
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
movzx eax, word [ecx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e3d51
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ecx + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, ebx
cmp dword [esi + 0x58], 0
je 0x4e7561
mov cl, 1
cmp eax, 0x5f
je 0x4e1ae8
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub eax, edx
mov edx, ebx
add eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
mov eax, dword [eax*4 + 0x54733c]
or eax, 2
cmp eax, 3
sete cl
jmp 0x4e1ae8
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x4e9b5c
mov dword [esp + 0x28], edx
lea ecx, [ebx + 2]
movzx eax, word [ebx]
cmp dword [esp + 0x34], 0
je 0x4e635b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e635b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebx + 2]
add ebx, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e635d
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x4e9b9a
cmp dword [esp + 0x34], 0
je 0x4e6436
movzx eax, word [ebp + 2]
mov ecx, eax
and ecx, 0xfc00
mov esi, edx
cmp ecx, 0xd800
jne 0x4e64cd
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
add ebp, 6
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e64d0
movzx eax, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], eax
xor edi, edi
jmp 0x4e3f0d
add ebp, 2
mov dword [esp + 0x50], 1
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 0
xor edi, edi
jmp 0x4e3f0d
add ebp, 2
xor edi, edi
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 1
mov dword [esp + 0x50], 1
jmp 0x4e3f0d
add ebp, 2
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], 1
xor edi, edi
jmp 0x4e3f0d
mov eax, 1
mov dword [esp + 0x50], eax
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
movzx eax, dx
cmp eax, 0x28
sete cl
cmp eax, 0x35
sete al
or al, cl
movzx edi, al
add ebp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebp
movzx ebx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 8]
je 0x4e3fae
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4e3fae
movzx eax, dx
xor edx, edx
cmp eax, 0x2e
jb 0x4e4174
shl ebx, 0xa
and ebx, 0xffc00
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
and eax, 0x3ff
lea eax, [ebx + eax + 0x10000]
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
mov edx, eax
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x54b6e0]
mov ecx, dword [ecx*8 + 0x547e64]
test ecx, ecx
je 0x4e4172
add ecx, eax
sub esp, 8
lea eax, [esp + 0xc0]
push eax
push ecx
call fcn.0052f4d0
add esp, 0x10
mov edx, eax
jmp 0x4e4174
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
movzx eax, dx
cmp eax, 0x2e
jb 0x4e4017
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x34], 0
je 0x4e40ac
movzx eax, bx
cmp eax, 0x80
jb 0x4e40ac
mov eax, ebx
shr eax, 7
movzx eax, byte [eax + 0x5494e0]
shl eax, 7
mov ecx, ebx
and ecx, 0x7f
or ecx, eax
movzx eax, word [ecx + ecx + 0x54b6e0]
mov edi, dword [eax*8 + 0x547e64]
add edi, ebx
cmp dword [esp + 0x10], 0
jg 0x4e40c8
mov edx, ebp
jmp 0x4e4106
cmp dword [esp + 0x10], 0
jle 0x4e404c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x4e8ba3
cmp bx, word [ebp]
jne 0x4ec481
add ebp, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e4030
mov ecx, edi
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebp
mov dword [esp + 8], ebp
je 0x4e3b50
test ecx, ecx
jne 0x4e9c25
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov ecx, edi
mov edx, ecx
jge 0x4e745f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, ecx
cmp edx, eax
jae 0x4e743a
cmp bx, word [edx]
jne 0x4e745f
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x4e4084
jmp 0x4e745f
cmp ebx, 0xff
mov edi, ebx
ja 0x4e40bd
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + ebx]
cmp dword [esp + 0x10], 0
jle 0x4e4010
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, ebp
nop word cs:[eax + eax]
cmp edx, eax
jae 0x4e8bdd
mov esi, edx
movzx edx, word [edx]
cmp bx, dx
je 0x4e40fa
cmp edi, edx
jne 0x4ec481
mov edx, esi
add edx, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e40e0
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
je 0x4e3b50
cmp dword [esp + 0x4c], 0
jne 0x4e9cb3
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
jge 0x4e7498
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x4e7473
movzx ecx, word [edx]
cmp bx, cx
je 0x4e415b
cmp edi, ecx
jne 0x4e7498
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x4e4143
jmp 0x4e7498
xor edx, edx
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
jle 0x4e4200
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
lea esi, [edi - 4]
lea eax, [edx + edx]
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
sub edi, eax
mov ebx, ebp
xor ebp, ebp
jmp 0x4e41b0
mov eax, 2
jmp 0x4e41f4
cmp ebx, esi
ja 0x4e41be
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x4e419f
test edx, edx
jle 0x4e8aeb
cmp ebx, edi
ja 0x4e8aeb
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 8]
push eax
push ebx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov eax, edx
jne 0x4e8aeb
lea ebx, [ebx + eax*2]
inc ebp
cmp ebp, dword [esp + 0x10]
jl 0x4e41b0
jmp 0x4e4202
mov ebx, ebp
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 8], ebx
je 0x4e3b50
cmp dword [esp + 0x4c], 0
jne 0x4e9508
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebx
jge 0x4e754d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ebp, [eax - 4]
lea ecx, [edx + edx]
mov dword [esp + 0x4c], eax
mov dword [esp + 8], ecx
sub eax, ecx
mov dword [esp + 4], eax
mov edi, ebx
jmp 0x4e4261
mov eax, 2
mov edi, esi
jmp 0x4e42ab
mov esi, edi
cmp edi, ebp
ja 0x4e4271
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x4e4258
test edx, edx
mov edi, esi
jle 0x4e53ea
cmp edi, dword [esp + 4]
ja 0x4e53ea
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 0xc]
push eax
push edi
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov eax, edx
jne 0x4e53ea
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jl 0x4e4261
jmp 0x4e754d
movzx edi, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], edi
jmp 0x4e433a
add ebp, 2
mov dword [esp + 0x4c], 1
mov dword [esp + 0x40], 0x7fffffff
jmp 0x4e4338
add ebp, 2
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0x7fffffff
mov edi, 1
mov dword [esp + 0x4c], 1
jmp 0x4e4342
add ebp, 2
mov dword [esp + 0x40], 1
xor edi, edi
mov dword [esp + 0x4c], 1
jmp 0x4e433a
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x50], 0
lea ecx, [ebp + 2]
movzx ebx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 8]
je 0x4e4380
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4e4380
shl ebx, 0xa
and ebx, 0xffc00
movzx eax, word [ebp + 2]
add ebp, 4
and eax, 0x3ff
lea ebx, [ebx + eax + 0x10000]
mov ecx, ebp
mov dword [esp + 0x14], ecx
movzx eax, dx
cmp eax, 0x48
mov dword [esp + 0x28], ebx
jb 0x4e43e2
cmp dword [esp + 0x34], 0
je 0x4e4457
cmp ebx, 0x80
jb 0x4e4457
mov eax, ebx
sar eax, 0x1f
shr eax, 0x19
add eax, ebx
mov ecx, eax
and ecx, 0x7fffff80
sar eax, 7
movzx eax, byte [eax + 0x5494e0]
shl eax, 7
mov edx, ebx
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0x54b6e0]
mov eax, dword [eax*8 + 0x547e64]
add eax, ebx
jmp 0x4e4471
cmp dword [esp + 0x34], 0
je 0x4e4506
test edi, edi
jle 0x4e4599
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor edx, edx
mov ebp, esi
nop
cmp ebp, eax
jae 0x4e8b2f
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e4442
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
cmp ebx, ecx
jne 0x4e444d
jmp 0x4ec481
add ebp, 2
cmp ebx, ecx
je 0x4ec481
inc edx
cmp edx, edi
jl 0x4e4400
jmp 0x4e459b
cmp ebx, 0xff
mov dword [esp + 0x10], ebx
ja 0x4e4475
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
movzx eax, byte [eax + ebx]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x34], 0
je 0x4e453e
test edi, edi
jle 0x4e4637
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor eax, eax
mov ebp, dword [esp + 8]
nop word cs:[eax + eax]
cmp ebp, edx
jae 0x4e8b69
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e44db
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x4e44de
add ebp, 2
mov ebx, dword [esp + 0x28]
cmp ebx, ecx
je 0x4ec5ac
cmp dword [esp + 0x10], ecx
mov dword [esp + 4], 0
je case.0x4eb538.6
inc eax
cmp eax, edi
jl 0x4e44a0
jmp 0x4e463b
test edi, edi
jle 0x4e4599
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, esi
nop dword [eax + eax]
cmp ebp, eax
jae 0x4e8c24
movzx edx, word [ebp]
cmp ebx, edx
je 0x4ec481
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x4e4520
jmp 0x4e459b
test edi, edi
jle 0x4e4637
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x4e8c5e
mov ebx, ebp
movzx edx, word [ebp]
cmp dword [esp + 0x28], edx
je 0x4ec5ac
cmp dword [esp + 0x10], edx
mov dword [esp + 4], 0
je case.0x4eb538.6
mov ebp, ebx
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x4e4560
jmp 0x4e463b
mov ebp, esi
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x4e3b50
cmp dword [esp + 0x50], 0
jne 0x4e97d1
cmp dword [esp + 0x34], 0
je 0x4e5360
cmp edi, dword [esp + 0x40]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x4e707a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 0xc]
cmp ebp, eax
jae 0x4e7055
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x4e461f
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ebx, ecx
je 0x4e707a
lea ebp, [ebp + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x4e45df
jmp 0x4e707a
mov ebp, dword [esp + 8]
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x4e3b50
cmp dword [esp + 0x50], 0
jne 0x4e9926
cmp dword [esp + 0x34], 0
je 0x4e539e
cmp edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x4e1c03
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0xc]
cmp eax, ebp
jae 0x4e708e
movzx ecx, word [eax]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x4e46c9
shl ecx, 0xa
and ecx, 0xffc00
mov esi, eax
movzx edx, word [eax + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ebx, ecx
jne 0x4e46d3
jmp 0x4e70c4
mov esi, eax
cmp ebx, ecx
je 0x4e70c4
cmp dword [esp + 0x10], ecx
je 0x4e70c4
mov eax, esi
lea eax, [eax + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x4e467f
jmp 0x4e1c03
mov eax, edx
movzx edx, word [ebp + 2]
movzx eax, ax
xor ecx, ecx
cmp eax, 0x5c
sete cl
mov dword [esp + 0x4c], ecx
add ebp, 4
mov dword [esp + 0x10], 0
xor edi, edi
movzx ebx, word [ebp]
mov eax, ebx
add eax, 0xfffffff1
movzx eax, ax
cmp eax, 1
mov esi, dword [esp + 8]
ja 0x4e4745
movzx eax, bx
xor ecx, ecx
cmp eax, 0xf
sete cl
mov dword [esp + 0x44], ecx
movzx ecx, word [ebp + 2]
movzx eax, word [ebp + 4]
mov dword [esp + 0x54], eax
add ebp, 6
jmp 0x4e474d
add ebp, 2
mov ecx, 0xffffffff
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x50], ecx
jle 0x4e48ab
test ecx, ecx
js 0x4e4a29
cmp ecx, 0xa
ja case.default.0x4e6397
jmp dword [ecx*4 + 0x4ed02c]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e8d55
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e47fa
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e47fa
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x180d
jg 0x4e4804
cmp edx, 0x84
jg 0x4e4832
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x4e480f.8203
mov ebx, 0x80001f
bt ebx, esi
jb case.0x4e480f.8192
jmp case.0x4e480f.8203
mov edi, esi
cmp edx, 0x180d
jle 0x4e47de
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x4e480f
jmp dword [esi*4 + 0x4ed058]
cmp dword [esp + 0x44], 0
jne 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e4790
jmp 0x4e48af
cmp edx, 0x85
je case.0x4e480f.8192
cmp edx, 0xa0
je case.0x4e480f.8192
cmp edx, 0x1680
je case.0x4e480f.8192
jmp case.0x4e480f.8203
cmp edx, 0x3000
je case.0x4e480f.8192
cmp edx, 0x180e
je case.0x4e480f.8192
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
xor ebx, ebx
cmp dword [edx*4 + 0x54733c], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x4e4821
jmp 0x4ec481
mov dword [esp + 0xc], esi
mov edx, dword [esp + 0x28]
mov eax, edx
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
je 0x4e3b50
cmp dword [esp + 0x4c], 0
jne 0x4e9607
mov ecx, dword [esp + 0x50]
test ecx, ecx
mov edi, dword [esp + 0x40]
js 0x4e51bf
cmp ecx, 0xa
mov edx, dword [esp + 0xc]
ja case.default.0x4eb538
jmp dword [ecx*4 + 0x4ed484]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x4e4955
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e4955
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
cmp edx, 0x180d
jle 0x4e496f
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x4e4968
jmp dword [esi*4 + 0x4ed4b0]
cmp edx, 0x84
jg 0x4e49b0
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x4e4968.8203
mov edi, 0x80001f
bt edi, esi
jae case.0x4e4968.8203
cmp dword [esp + 0x44], 0
jne 0x4e3afc
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e490e
jmp 0x4e3afc
cmp edx, 0x85
je case.0x4e4968.8192
cmp edx, 0xa0
je case.0x4e4968.8192
cmp edx, 0x1680
je case.0x4e4968.8192
jmp case.0x4e4968.8203
cmp edx, 0x3000
je case.0x4e4968.8192
cmp edx, 0x180e
je case.0x4e4968.8192
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
xor ebx, ebx
cmp dword [edx*4 + 0x54733c], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x4e4994
jmp 0x4e3afc
movzx eax, bx
cmp eax, 0x16
jne 0x4e50e0
mov eax, 1
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edi, dword [esp + 0xc]
cmp edi, edx
jae 0x4e8cee
lea esi, [edi + 2]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e4a8c
mov ebx, ecx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e4a8c
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x4e4a8e
mov edi, esi
mov dword [esp + 4], eax
cmp edi, edx
jae 0x4e4b80
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub ecx, ebx
add ecx, esi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx esi, byte [ecx*8 + 0x547e62]
nop dword [eax]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
mov ebx, 1
je 0x4e4b20
mov ebp, ecx
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x4e4b20
shl ecx, 0xa
and ecx, 0xffc00
mov eax, edi
movzx ebx, word [edi + 2]
and ebx, 0x3ff
lea ecx, [ecx + ebx + 0x10000]
mov ebx, 2
jmp 0x4e4b22
mov eax, edi
mov ebp, ecx
sar ebp, 0x1f
shr ebp, 0x19
add ebp, ecx
mov edi, ebp
and edi, 0x7fffff80
sar ebp, 7
movzx ebp, byte [ebp + 0x5494e0]
shl ebp, 7
sub ecx, edi
add ecx, ebp
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e62]
mov ebp, 1
shl ebp, cl
and ebp, dword [esi*4 + 0x5473b4]
je 0x4e4b70
mov edi, eax
lea edi, [edi + ebx*2]
cmp edi, edx
jb 0x4e4b76
jmp 0x4e4b80
mov edi, eax
cmp edi, edx
jae 0x4e4b80
test ebp, ebp
mov esi, ecx
jne 0x4e4ad0
cmp edi, edx
jb 0x4e4ba9
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4e4ba9
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x4e4ba9
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x4e91ec
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x10]
lea eax, [eax + 1]
jl 0x4e4a3e
jmp 0x4e48af
mov dword [esp + 0x28], edx
movzx edx, word [ebp + 0x22]
lea esi, [edx - 0x62]
movzx eax, si
cmp eax, 0xb
ja 0x4e17f6
mov eax, 0x73f
bt eax, esi
jae 0x4e1894
cmp esi, 7
seta al
mov dword [esp + 0xc], eax
mov eax, edx
and eax, 1
xor ecx, ecx
cmp esi, 8
cmovb ecx, eax
mov dword [esp + 4], ecx
mov eax, 0x3cf
bt eax, esi
movsx eax, byte [edx + 0x547099]
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x24]
mov dword [esp + 0x14], eax
movsx ebx, byte [edx + 0x54708e]
cmp dword [esp + 0x34], 0
jne 0x4e1825
jmp 0x4e18d2
movzx eax, dx
xor ecx, ecx
cmp eax, 0x72
sete cl
mov dword [esp + 0xc], ecx
movzx ebx, word [ebp + 2]
add ebx, ebx
add ebp, 4
cmp ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x158]
jge 0x4e5351
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
test eax, eax
js 0x4e5351
mov edx, ebx
or edx, 1
mov ecx, dword [ecx + edx*4]
sub ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4e6f51
movzx eax, dx
xor ecx, ecx
cmp eax, 0x74
sete cl
mov dword [esp + 0xc], ecx
movzx ecx, word [ebp + 4]
lea eax, [ebp + 6]
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x54], 1
sbb edx, edx
mov dword [esp + 0x10], edx
test ecx, ecx
je 0x4e642d
mov edx, dword [edi + 0x24]
movzx esi, word [ebp + 2]
imul esi, edx
add esi, esi
add esi, dword [edi + 0x30]
inc ecx
add edx, edx
movzx ebx, word [esi]
add ebx, ebx
cmp ebx, dword [esp + 0x2c]
jge 0x4e4ce8
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0xc]
mov edi, dword [ebp + ebx*4]
test edi, edi
jns 0x4e6f39
dec ecx
add esi, edx
cmp ecx, 1
jg 0x4e4cc7
jmp 0x4e6f48
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x4e4d1e
mov dword [ebp + 0x9c], 0
mov esi, 1
mov ecx, eax
mov eax, ecx
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push 0
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 1
je 0x4e6678
cmp eax, 0xfffffc19
je 0x4e6678
mov dword [ebp + 0xb0], ebx
cmp eax, 0xfffffc20
je 0x4e4d79
test eax, eax
jne 0x4e8ae2
mov ax, word [edi + 2]
jmp 0x4e4da2
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4eb00f
movzx edx, word [edx]
cmp edx, 0x77
je 0x4e4da2
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x4eb00f
movzx eax, ax
lea ecx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x4e4d20
jmp 0x4e6687
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x4e4de3
mov dword [ebp + 0x9c], 0
mov esi, 1
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push 0
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [ebp + 0xb0], ebx
test eax, eax
jns 0x4e4e41
cmp eax, 0xfffffc20
jne 0x4e657f
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4e6590
movzx edx, word [edx]
cmp edx, 0x77
jne 0x4e4e4f
mov edx, edi
jmp 0x4e4e5d
jne 0x4e92ad
mov edx, edi
mov ax, word [edx + 2]
jmp 0x4e4e5d
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, edi
jne 0x4e6590
movzx eax, ax
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov eax, ecx
je 0x4e4de3
jmp 0x4e65a2
movzx ebx, word [ebp + 2]
lea edi, [ebp + 4]
mov ecx, ebp
movzx ebp, word [ebp + 4]
cmp ebp, 0x76
mov dword [esp + 0x28], edx
jne 0x4e4f83
mov eax, dword [0x545978]
test eax, eax
je 0x4e4f73
mov dword [esp + 4], ebx
mov dword [esp + 0x74], 2
mov ebx, ecx
movzx ecx, word [ebx + 6]
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x30]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x8c], edx
movzx ecx, word [ebx + 8]
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebx + 0xa]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa4], ecx
sub esp, 0xc
lea ecx, [esp + 0x80]
push ecx
call eax
add esp, 0x10
test eax, eax
jg 0x4e92ca
mov ebx, dword [esp + 4]
jne 0x4e8ae2
movzx eax, byte [0x54729e]
mov bp, word [edi + eax*2]
lea edi, [edi + eax*2]
sub ebx, eax
mov dword [esp + 4], ebx
lea eax, [ebp - 0x8d]
movzx eax, ax
cmp eax, 0x10
ja case.0x4e4f99.5
jmp dword [eax*4 + 0x4ed7dc]
movzx eax, word [edi + 2]
add eax, eax
cmp eax, dword [esp + 0x2c]
jge 0x4e1b96
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + eax*4], 0
setns al
jmp 0x4e1b98
mov ecx, dword [esp + 0x38]
mov edi, dword [ecx + 4]
mov dword [esp + 4], edi
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
lea ecx, [esi - 0x7d]
movzx ecx, cx
cmp ecx, 4
jb 0x4e8e1e
mov ebx, dword [esp + 0xc]
sub ebx, eax
lea eax, [esi - 0x82]
movzx ecx, ax
cmp ecx, 9
ja 0x4e517e
mov ecx, 0x318
bt ecx, eax
jae 0x4e6708
mov dword [esp + 0x14], ebx
movzx ebx, word [ebx + 4]
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x4e5032
cmp dword [eax + 4], ebx
je 0x4e9c16
mov ecx, ebp
lea ebp, [ebx + ebx]
mov eax, 0xffff0000
and eax, dword [ecx + 0x94]
or eax, ebx
mov dword [ecx + 0x94], eax
cmp ebp, dword [ecx + 0x14]
jge 0x4e5169
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x2c]
cmp ebp, edi
jle 0x4e50a3
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
lea ecx, [eax + ebp*4]
lea edx, [eax + edi*4]
mov dword [esp + 0x10], edx
lea edx, [eax + edi*4 + 4]
cmp edx, ecx
cmova ecx, edx
neg eax
lea edx, [edi*4]
sub eax, edx
lea eax, [ecx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push dword [esp + 0x1c]
call sub.msvcrt.dll_memset
add esp, 0x10
mov eax, dword [esp + 0x158]
mov edx, eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
sub ecx, ebx
mov ecx, dword [eax + ecx*4]
mov dword [eax + ebp*4], ecx
mov ecx, dword [esp + 8]
sub ecx, dword [edx + 0x78]
mov ebx, edx
sar ecx, 1
mov edx, ebp
or edx, 1
mov dword [eax + edx*4], ecx
cmp edi, ebp
lea eax, [ebp + 2]
mov ebp, ebx
cmovle edi, eax
mov edx, dword [esp + 0x28]
jmp 0x4e517a
cmp dword [esp + 0x34], 0
je 0x4e6610
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x4eb538
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x4ecfac]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4ea407
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e5141
add edi, 4
mov dword [esp + 0xc], edi
jmp 0x4e515d
add edi, 2
cmp edx, 0x7f
mov dword [esp + 0xc], edi
ja 0x4e515d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x4ec481
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e5119
jmp 0x4e48af
or eax, 0x10000
mov dword [ecx + 0x94], eax
mov ebp, ecx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
movzx eax, dx
cmp eax, 0x78
mov dword [esp + 0x2c], edi
je 0x4e51a1
cmp eax, 0x7b
je 0x4e9aa8
mov ecx, dword [esp + 4]
cmp dword [esp + 8], ecx
jne 0x4e855c
movzx eax, si
mov edx, dword [esp + 0xc]
add edx, 4
cmp eax, 0x81
mov dword [esp + 0x14], edx
jne 0x4e3b50
jmp 0x4e9acf
movzx ebp, di
cmp ebp, 0x16
mov ecx, dword [esp + 0xc]
jne 0x4e6477
mov eax, dword [esp + 0x10]
cmp edx, eax
mov edx, eax
mov ebp, ecx
jle 0x4e17b4
mov ebp, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebp, eax
jae 0x4e178f
mov dword [esp + 0x10], edx
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x4e5237
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e5237
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
add ebp, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
cmp ebp, eax
jb 0x4e5241
jmp 0x4e5314
mov ebp, edx
cmp ebp, eax
jae 0x4e5314
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x5494e0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx edx, byte [ecx*8 + 0x547e62]
nop word cs:[eax + eax]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x4e52bf
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4e52bf
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x5494e0]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e62]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x5473b4]
je 0x4e5306
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x4e5314
test ebx, ebx
mov edx, ecx
jne 0x4e5280
cmp ebp, eax
jb 0x4e533d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e533d
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4e533d
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4eb94e
mov edx, dword [esp + 0x10]
inc edx
cmp edx, dword [esp + 0x28]
jl 0x4e51e1
jmp 0x4e17b4
cmp dword [edi + 0x54], 1
sbb eax, eax
mov dword [esp + 0x10], eax
jmp 0x4e6f51
cmp edi, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x4e7825
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x4e7800
movzx ecx, word [edx]
cmp esi, ecx
je 0x4e7825
add edx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x4e537c
jmp 0x4e7825
cmp edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x4e1f7d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x4e7839
mov edx, ecx
movzx ecx, word [ecx]
cmp esi, ecx
je 0x4e1f7b
cmp dword [esp + 0x10], ecx
je 0x4e1f7b
mov ecx, edx
add ecx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x4e53ba
jmp 0x4e1f7d
cmp edi, dword [esp + 0x4c]
jb 0x4e754d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e754d
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4e754b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov edi, esi
jle 0x4e754d
jmp 0x4e91ec
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 8], eax
je 0x4e1734
jmp 0x4e92ca
add ebp, 2
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4ea04a
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x4e548d
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x4e55f3
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x4e1734
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je 0x4e1734
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4ea088
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x4ec5ac
and cl, dl
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne 0x4e5656
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4ea0c6
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x4e553e
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x4e55f3
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x4e1734
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je 0x4e1734
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4ea104
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x4ec5ac
and cl, dl
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne 0x4e5656
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4ea142
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x4e6716
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4e6716
add edx, 4
mov dword [esp + 8], edx
jmp 0x4e1734
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x4ea180
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x4ec5ac
and cl, dl
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x4ec481
add dword [esp + 8], 2
jmp 0x4e1734
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
test ecx, ecx
je 0x4e7143
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x4e7176
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edx
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4e7176
jmp 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
jae 0x4ea1be
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x4e1734
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 8]
cmp edi, ecx
jae 0x4ea1fc
lea eax, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e776b
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
mov ebx, dword [esp + 0x158]
jne 0x4e7772
shl edx, 0xa
and edx, 0xffc00
movzx eax, word [edi + 2]
add edi, 4
and eax, 0x3ff
lea edx, [edx + eax + 0x10000]
mov eax, edi
cmp edx, 0xc
jg 0x4e777b
lea ecx, [edx - 0xb]
cmp ecx, 2
jb 0x4e77b5
jmp 0x4e1ac5
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x4ea23a
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e673d
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e673d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e673f
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x4ea278
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6774
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e6774
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e6776
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x4ea2b6
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e67ab
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e67ab
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e67ad
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x4ea2f4
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4e67d6
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e67d6
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e67d8
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x4ea332
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x4e67ff
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e67ff
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
add ebp, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
cmp ebp, eax
jb 0x4e6809
jmp 0x4e68d0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x4e92ca
cmp dword [eax + 0x5c], 0
je case.0x4e3b6e.23
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jb 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1734
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
ja 0x4e1c4b
jmp 0x4e1734
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, dword [esp + 8]
cmp ebx, eax
mov edi, dword [esp + 0x158]
jae 0x4e1c31
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x4e7736
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4e9d5d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
jmp 0x4e1c25
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x4e66c8
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x4e8034
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.0052f350
add esp, 0x20
test eax, eax
jne 0x4e1734
jmp 0x4ea4b9
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], 0
je case.0x4e3b6e.1
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x4e92ca
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x4e1734
jmp 0x4e92ca
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 8]
je 0x4e5a2a
cmp edi, eax
je 0x4e92ca
cmp edi, eax
je 0x4e1734
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
je 0x4e92ca
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x4e7911
cmp edi, eax
jbe 0x4e92ca
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.0052f400
add esp, 0x20
test eax, eax
jne 0x4e1734
jmp 0x4e92ca
cmp dword [esp + 0x34], 0
je 0x4e720f
movzx ecx, word [ebp + 2]
mov edx, ecx
and edx, 0xfc00
xor eax, eax
cmp edx, 0xd800
sete al
inc eax
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov esi, edx
mov edi, dword [esp + 8]
sub esi, edi
sar esi, 1
cmp eax, esi
jg 0x4eab1f
cmp cx, word [edi]
jne 0x4ec481
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
cmp eax, 2
jl 0x4e3b50
dec eax
mov edx, dword [esp + 0x14]
movzx ecx, word [edx]
add edx, 2
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0
mov edx, dword [esp + 8]
cmp cx, word [edx]
lea edx, [edx + 2]
mov dword [esp + 8], edx
je 0x4e5ac6
jmp case.0x4eb538.6
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x4ea370
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x4e73e1
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov esi, dword [esp + 0x158]
jne 0x4e74ac
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, 2
jmp 0x4e74e7
movzx edx, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x10], edx
jmp 0x4e4710
add ebp, 2
mov edi, 1
mov edx, 0x7fffffff
jmp 0x4e5baf
add ebp, 2
mov edx, 1
mov dword [esp + 0x10], 0
mov edi, 1
mov dword [esp + 0x4c], 0
jmp 0x4e4710
movzx edx, word [ebp + 2]
add ebp, 4
mov edi, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
jmp 0x4e4710
lea edi, [ebp + 4]
movzx eax, word [ebp + 2]
lea ecx, [ebp + eax*2]
mov dword [esp + 0x14], ecx
movzx eax, word [ebp + eax*2]
lea ecx, [eax - 0x62]
movzx edx, cx
cmp edx, 0xb
ja 0x4e1e17
mov edx, 0x73f
bt edx, ecx
jae 0x4e786f
add dword [esp + 0x14], 2
cmp ecx, 7
seta dl
mov dword [esp + 4], edx
mov edx, eax
and edx, 1
xor ebp, ebp
cmp ecx, 8
cmovb ebp, edx
movsx ebx, byte [eax + 0x54708e]
movsx eax, byte [eax + 0x547099]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jg 0x4e1e2e
jmp 0x4e1ea5
movzx eax, word [ebp + 2]
lea edi, [eax + eax]
mov esi, dword [esp + 0x158]
add edi, dword [esi + 0x74]
test eax, eax
je 0x4e723d
movzx eax, word [edi + 4]
jmp 0x4e723f
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x4e73b9
test ax, ax
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 8]
je 0x4e73d1
mov ecx, dword [ecx + 0x78]
inc eax
mov edx, edi
lea edi, [edx - 2]
cmp edi, ecx
jb 0x4e92ca
movzx esi, word [edx - 2]
and esi, 0xfc00
cmp esi, 0xdc00
je 0x4e5cac
mov edx, edi
jmp 0x4e5cb1
add edx, 0xfffffffc
mov edi, edx
dec eax
cmp eax, 1
jg 0x4e5c8b
jmp 0x4e73d1
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov esi, dword [ebp + 0xb0]
mov dword [esp + 0xc], eax
mov ecx, eax
mov ebx, dword [esp + 0x2c]
mov edi, ecx
lea edx, [edi + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push ebx
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x4e5d11
test eax, eax
jne 0x4e70cb
mov ax, word [edi + 2]
jmp 0x4e5d5a
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4eb00f
mov ebp, ebx
mov ebx, esi
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x4e5d41
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jmp 0x4e5d5a
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jne 0x4eb00f
movzx eax, ax
lea ecx, [edi + eax*2]
mov dword [ebp + 0xb0], esi
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x4e5cd5
jmp 0x4e70ee
add ebp, 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4e8ae2
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x4e5db0
jmp 0x4e7417
add ebp, 2
mov dword [esp + 0x14], ebp
mov edx, ebp
movzx eax, word [edx + 2]
movzx ecx, word [edx + eax*2]
lea edx, [edx + eax*2]
cmp ecx, 0x77
je 0x4e5dd0
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4e3b50
jmp case.0x4eb538.6
movzx ecx, word [ebp + 2]
lea esi, [ecx + ecx]
mov eax, 0xffff0000
mov edi, dword [esp + 0x158]
and eax, dword [edi + 0x94]
or eax, ecx
mov dword [edi + 0x94], eax
cmp esi, dword [edi + 0x14]
jge 0x4e66f8
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
sub edx, ecx
mov ecx, dword [eax + edx*4]
mov dword [eax + esi*4], ecx
mov ecx, dword [esp + 8]
sub ecx, dword [edi + 0x78]
sar ecx, 1
mov edx, esi
or edx, 1
mov dword [eax + edx*4], ecx
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jl 0x4e7417
cmp ebx, esi
jge 0x4e5ea7
lea ecx, [eax + esi*4]
lea edx, [eax + ebx*4]
lea edi, [eax + ebx*4 + 4]
cmp edi, ecx
cmova ecx, edi
neg eax
shl ebx, 2
sub eax, ebx
lea eax, [ecx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push edx
call sub.msvcrt.dll_memset
add esp, 0x10
add esi, 2
mov dword [esp + 0x2c], esi
jmp 0x4e7417
add ebp, 2
nop word cs:[eax + eax]
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x4e5ec0
jmp 0x4e7417
add ebp, 2
mov dword [esp + 0x4c], 0
mov edx, 0x7fffffff
mov dword [esp + 0x10], 1
mov edi, 1
jmp 0x4e4710
mov eax, dword [0x545978]
test eax, eax
je 0x4e5fd1
mov dword [esp + 0x74], 2
movzx ecx, word [ebp + 2]
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x30]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x8c], edx
movzx ecx, word [ebp + 4]
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebp + 6]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa4], ecx
sub esp, 0xc
lea ecx, [esp + 0x80]
push ecx
call eax
add esp, 0x10
test eax, eax
jg 0x4e92ca
jne 0x4e8ae2
add ebp, 8
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
movzx edx, word [ebp + 2]
add ebp, 2
mov eax, 1
cmp edx, 0x86
je case.0x4e3b6e.134
movzx eax, dx
cmp eax, 0x8b
mov eax, 1
jne case.0x4e3b6e.132
mov dword [esp + 0x28], edx
movzx ebx, word [ebp + 4]
lea esi, [ebx + ebx]
mov edx, dword [esp + 0x158]
cmp esi, dword [edx + 0x14]
jge 0x4e61b9
mov dword [esp + 0x50], eax
mov eax, ebp
sub eax, dword [edx + 0x74]
sar eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
mov edi, dword [eax + esi*4]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], esi
or esi, 1
mov dword [esp + 0x58], esi
mov esi, dword [eax + esi*4]
mov dword [esp + 0xa8], esi
sub ecx, ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x10], 0
mov edi, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov esi, ebp
mov ebp, edx
mov eax, dword [ebp + 0x94]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
sub edi, dword [ebp + 0x78]
sar edi, 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub edx, ebx
mov dword [ecx + edx*4], edi
mov ebx, esi
cmp dword [esp + 0x28], 0x88
jb 0x4e60a4
mov dword [ebp + 0x9c], 2
movzx eax, word [ebx]
movzx eax, byte [eax + 0x547228]
lea edx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x4e60e7
test eax, eax
jne 0x4e613f
mov ax, word [ebx + 2]
jmp 0x4e610e
movzx eax, word [ebx + 2]
lea ecx, [ebx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4eb00f
movzx edx, word [ebx]
cmp edx, 0x77
je 0x4e610e
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x4eb00f
mov ebp, dword [esp + 0x158]
mov ecx, dword [esp + 4]
mov dword [ebp + 0x94], ecx
movzx eax, ax
lea esi, [ebx + eax*2]
movzx eax, word [ebx + eax*2]
cmp eax, 0x77
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 8]
je 0x4e607e
jmp 0x4e65b6
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
jne case.0x4eb538.6
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
lea ebp, [eax + eax]
add ebp, dword [edx + 0x74]
mov eax, dword [edx + 0x80]
mov dword [esp + 0x30], eax
mov edi, dword [edx + 0x84]
mov dword [esp + 0x10], 1
cmp dword [esp + 8], edi
mov ebx, dword [esp + 0x14]
jne 0x4e606c
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x4e618f
mov edi, dword [esp + 8]
or eax, dword [esp + 0x50]
jne 0x4e6600
jmp 0x4e92ca
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov ecx, ebp
mov eax, dword [esp + 0x158]
sub ecx, dword [eax + 0x74]
sar ecx, 1
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x94]
mov dword [esp + 0x14], eax
xor edi, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
mov ecx, eax
jmp 0x4e6205
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x94], edx
mov edx, ebx
mov ecx, esi
mov ebx, edx
cmp edx, 0x88
jb 0x4e6220
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, word [ebp]
movzx eax, byte [eax + 0x547228]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov esi, ecx
push eax
push dword [esp + 0x48]
mov edi, ebp
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x4e626c
test eax, eax
jne 0x4e62a8
mov ax, word [edi + 2]
jmp 0x4e6293
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4eb00f
movzx edx, word [edi]
cmp edx, 0x77
je 0x4e6293
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x4eb00f
movzx eax, ax
lea ebp, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x4e61f0
jmp 0x4e630c
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
mov edx, ebx
jne case.0x4eb538.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
lea ebp, [ecx + ecx]
add ebp, dword [eax + 0x74]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x84]
mov edi, 1
mov ecx, esi
cmp ecx, eax
jne 0x4e61e3
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x4e62f3
jmp 0x4e6310
mov eax, dword [esp + 4]
or eax, dword [esp + 0x50]
je 0x4e92ca
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], esi
jmp 0x4e3b50
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x28]
inc eax
mov dword [esi + 0x28], eax
cmp eax, dword [esi + 0x2c]
movzx eax, byte [edx + 0x547228]
ja 0x4ea3ae
movzx ecx, word [ebp + 2]
add ecx, eax
lea eax, [ebp + ecx*2]
mov dword [esp + 0x14], eax
jmp 0x4e3b50
mov ebx, ecx
movzx edx, word [ebp + 2]
cmp edx, 0xa
ja case.default.0x4e6397
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov esi, ecx
and esi, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
mov edi, eax
sub edi, esi
add edi, ecx
movzx ecx, word [edi + edi + 0x54b6e0]
jmp dword [edx*4 + 0x4ed630]
cmp eax, 0x180d
jle 0x4e1ba8
lea edx, [eax - 0x2000]
cmp edx, 0x5f
ja case.default.0x4e63b8
jmp dword [edx*4 + 0x4ed65c]
mov edi, dword [esp + 8]
cmp edi, eax
je 0x4e1d61
lea eax, [edi - 2]
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x4e63dc
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [esi + 0x58], 0
movzx eax, word [eax]
je 0x4e8070
mov cl, 1
cmp eax, 0x5f
je 0x4e1d63
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
mov eax, dword [eax*4 + 0x54733c]
or eax, 2
cmp eax, 3
sete cl
jmp 0x4e1d63
xor ebx, ebx
mov ebp, eax
jmp 0x4e6f51
movzx eax, word [ebp + 2]
movzx ecx, word [ebx]
cmp ax, cx
je 0x4ec481
movzx edx, dx
cmp edx, 0x20
jne 0x4e646b
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x4e6463
mov edx, dword [edx + 0x40]
movzx eax, byte [edx + eax]
cmp eax, ecx
je 0x4ec481
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x4e7417
cmp dword [esp + 0x34], 0
je 0x4e76c0
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x4eb538
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x4ed404]
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x4e3b36
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x12
sete cl
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
jmp 0x4e1c82
add ebp, 4
mov dword [esp + 0x14], ebp
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e6506
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
add ebx, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x4e6509
add ebx, 2
movzx edx, si
cmp edx, 0x1f
mov dword [esp + 8], ebx
jne 0x4e652a
mov dword [esp + 4], 0
cmp eax, ecx
jne 0x4e3b50
jmp case.0x4eb538.6
cmp eax, 0x80
mov edx, dword [esp + 0x158]
jb 0x4e7527
mov edx, eax
sar edx, 0x1f
shr edx, 0x19
add edx, eax
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x5494e0]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x54b6e0]
mov edx, dword [edx*8 + 0x547e64]
add edx, eax
cmp eax, ecx
jne 0x4e7536
jmp 0x4ec5ac
lea ecx, [eax + 0x3e4]
cmp ecx, 4
mov edx, edi
jae 0x4e92bb
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x4e6590
test esi, esi
jne 0x4e9b4f
add ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x4e3b50
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4e65f4
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x4c]
mov dword [eax + edx*4], ebp
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov dword [eax + edx*4], ebp
mov ecx, dword [ecx + 0x10]
sub ecx, ebx
mov edx, dword [esp + 0xac]
mov dword [eax + ecx*4], edx
xor eax, eax
mov ebp, esi
or eax, dword [esp + 0x50]
je 0x4e92ca
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], edi
jmp 0x4e3b50
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x4eb538
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x4ecfec]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4eae7b
movzx edx, word [edi]
cmp edx, 0xff
ja 0x4e6665
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x4ec481
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e663e
jmp 0x4e48af
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x78
je 0x4e92ca
test esi, esi
jne 0x4e9b4f
nop dword [eax + eax]
mov eax, ecx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, 0x77
je 0x4e66a0
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x2c], eax
jmp 0x4e3b50
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1734
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x4e1c4b
jmp 0x4e1734
or eax, 0x10000
mov dword [edi + 0x94], eax
jmp 0x4e7417
test ax, ax
jne 0x4e517e
jmp 0x4e8e1e
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x4e1734
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x4e1734
jmp 0x4ec481
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x4e690d
cmp eax, 0x202e
jg 0x4e77c4
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae 0x4e1734
jmp case.0x4eb538.6
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x4e76fd
cmp eax, 0x202e
jg 0x4e17c8
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb 0x4e1734
jmp case.0x4eb538.6
mov edi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x4ec5ac
mov dword [esp + 8], edi
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x4ec5ac
cmp eax, 0x85
jmp 0x4e77ed
mov esi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x4e67f6
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x4e67f6
cmp eax, 0x85
jne 0x4ec481
mov dword [esp + 8], esi
jmp 0x4e1734
mov ebp, edx
cmp ebp, eax
jae 0x4e68d0
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x5494e0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx edx, byte [ecx*8 + 0x547e62]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x4e687b
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4e687b
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x5494e0]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e62]
mov edi, 1
shl edi, cl
and edi, dword [edx*4 + 0x5473b4]
je 0x4e68c2
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x4e68d0
test edi, edi
mov edx, ecx
jne 0x4e683c
cmp ebp, eax
jb 0x4e68f9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e68f9
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4e68f9
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x4e3b50
cmp eax, 0x9f
jle 0x4e77e1
cmp eax, 0xa0
je 0x4ec5ac
cmp eax, 0x1680
je 0x4ec5ac
cmp eax, 0x180e
jmp 0x4e77ed
xor eax, eax
jmp 0x4e1aeb
cmp dword [esp + 0x44], 0
jne 0x4ec481
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp esi, eax
jae 0x4e91b2
lea edi, [esi + 2]
cmp dword [esp + 0x34], 0
je 0x4e697a
movzx edx, word [esi]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e697a
add esi, 4
mov edi, esi
mov edx, dword [esp + 0x10]
inc ecx
cmp ecx, edx
mov dword [esp + 0xc], edi
mov esi, edi
jl 0x4e6952
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e92d7
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e69e2
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e69e2
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e69e4
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x4e6a2b
movsx edx, dl
mov esi, dword [edx*4 + 0x547110]
cmp dword [esp + 0x44], esi
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e699a
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e9315
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6a9d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e6a9d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e6a9f
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [edx*4 + 0x54733c], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e6a55
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e9353
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6b54
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e6b54
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e6b56
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e6b0c
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e9391
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6c04
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e6c04
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e6c06
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e60]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e6bbc
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e93cf
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6cb4
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e6cb4
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e6cb6
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
mov edx, dword [edx*4 + 0x54733c]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e6c6c
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e940d
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6d6d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e6d6d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e6d6f
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
mov ebp, edx
sub ebp, ebx
add ebp, esi
movzx esi, word [ebp + ebp + 0x54b6e0]
movzx esi, byte [esi*8 + 0x547e61]
mov esi, dword [esi*4 + 0x54733c]
or esi, 2
cmp esi, 3
sete bl
cmp edx, 0x5f
sete dl
or dl, bl
movzx edx, dl
cmp dword [esp + 0x44], edx
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e6d25
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x547d28]
mov edx, 1
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e944b
lea ebx, [edi + 2]
movzx esi, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6e43
mov ebp, esi
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x4e6e43
shl esi, 0xa
and esi, 0xffc00
movzx ebx, word [edi + 2]
add edi, 4
mov dword [esp + 0xc], edi
and ebx, 0x3ff
lea esi, [esi + ebx + 0x10000]
jmp 0x4e6e47
mov dword [esp + 0xc], ebx
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x547d24]
cmp esi, ebx
jb 0x4e6e6e
mov ebp, ecx
nop dword [eax + eax]
cmp esi, ebx
je 0x4e6e7a
mov ebx, dword [ebp]
add ebp, 4
cmp esi, ebx
jae 0x4e6e60
cmp dword [esp + 0x44], 0
jne 0x4e6e85
jmp 0x4ec481
cmp dword [esp + 0x44], 0
jne 0x4ec481
cmp edx, dword [esp + 0x10]
lea edx, [edx + 1]
jl 0x4e6df7
jmp 0x4e48af
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x4e9489
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x4e6eeb
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4e6eeb
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x4e6eed
mov edi, esi
mov bl, 1
cmp edx, 0x24
je 0x4e6f18
cmp edx, 0x40
je 0x4e6f18
cmp edx, 0x60
je 0x4e6f18
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x44], edx
je 0x4ec481
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e6ea3
jmp 0x4e48af
mov ecx, ebx
or ecx, 1
mov ecx, dword [ebp + ecx*4]
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ebp, eax
mov edi, dword [esp + 0x158]
movzx ecx, word [ebp]
movzx eax, cx
mov edx, ecx
add edx, 0xffffff9e
movzx edx, dx
cmp edx, 6
jae 0x4e6f98
add ebp, 2
lea ecx, [eax - 0x62]
mov edx, eax
and edx, 1
mov dword [esp + 4], edx
movsx edi, byte [eax + 0x54708e]
movsx eax, byte [eax + 0x547099]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x4e6fc6
lea ecx, [ecx - 0x68]
movzx ecx, cx
cmp ecx, 2
jae 0x4e7021
cmp eax, 0x69
sete al
mov dword [esp + 4], eax
movzx edi, word [ebp + 2]
movzx eax, word [ebp + 4]
test eax, eax
mov ecx, 0x7fffffff
cmovne ecx, eax
mov dword [esp + 0x28], ecx
add ebp, 6
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], 0
je 0x4e3b50
jns 0x4e6fdf
test edi, edi
je 0x4e3b50
test edi, edi
jle 0x4e7423
xor esi, esi
mov ebp, dword [esp + 8]
sub esp, 4
mov ecx, ebx
mov edx, ebp
push dword [esp + 0x10]
push dword [esp + 0x160]
push dword [esp + 0x1c]
call fcn.004ed820
add esp, 0x10
test eax, eax
js 0x4e8d93
lea ebp, [ebp + eax*2]
inc esi
cmp esi, edi
jl 0x4e6fed
jmp 0x4e7427
sub esp, 4
mov ecx, ebx
mov esi, dword [esp + 0xc]
mov edx, esi
push dword [esp + 0x10]
push edi
push dword [esp + 0x1c]
call fcn.004ed820
add esp, 0x10
test eax, eax
js 0x4eb056
lea esi, [esi + eax*2]
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e707a
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4e707a
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
mov dword [esp + 8], ebp
cmp dword [esp + 0x4c], 0
jne 0x4e3b50
jmp 0x4e8431
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1c01
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e1c01
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x4e1c03
jmp 0x4e91ec
mov eax, esi
jmp 0x4e1c03
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x4eb538.6
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x82
je 0x4e7101
cmp eax, 0x77
jne 0x4e92ca
movzx edx, word [ecx + 2]
movzx eax, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
cmp eax, 0x77
je 0x4e7101
mov ebx, dword [ebp + 0x84]
mov esi, dword [ebp + 0x90]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x2c], esi
je 0x4e7133
cmp ebx, dword [esp + 8]
jne 0x4e88a3
add ecx, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 8], ebx
jmp 0x4e3b50
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
mov edx, dword [esp + 8]
cmp edx, eax
ja 0x4e7176
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x4e7176
cmp ecx, 1
je 0x4ec481
movzx eax, word [edx + 2]
cmp ax, word [esi + 0x36]
je 0x4ec481
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x4e3b6e.13
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
add ecx, 0xfffffffe
cmp dword [esp + 8], ecx
jne case.0x4e3b6e.13
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x4e3b6e.13
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x4e3b6e.13
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x4e3b6e.13
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 8]
cmp edx, ecx
jae 0x4e9bd8
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x4e1ad6
cmp eax, ecx
jae 0x4e1ad6
movzx ecx, word [edx + 2]
and ecx, 0xfc00
add edx, 4
cmp ecx, 0xdc00
cmove eax, edx
jmp 0x4e1ad6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
sub eax, ecx
cmp eax, 1
jle 0x4eb1b8
movzx eax, word [ebp + 2]
cmp ax, word [ecx]
jne 0x4ec481
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x4e7417
xor eax, eax
mov ebx, dword [esp + 8]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x4e7263
mov edx, ecx
cmp eax, dword [edx + 4]
jne 0x4e725d
cmp ebx, dword [edx + 0x14]
je 0x4e91f9
mov edx, dword [edx]
test edx, edx
jne 0x4e724f
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x94]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x5c], ecx
lea eax, [esp + 0x5c]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x68], ecx
cmp ecx, 0x1e
jg 0x4e729c
lea eax, [esp + 0xc4]
mov dword [esp + 0x64], eax
jmp 0x4e72bc
shl ecx, 2
sub esp, 0xc
push ecx
call dword [0x545970]
add esp, 0x10
mov dword [esp + 0x64], eax
test eax, eax
je 0x4eb1ab
mov ecx, dword [esp + 0x68]
add ebp, 4
mov dword [esp + 0xc], ebp
shl ecx, 2
sub esp, 4
push ecx
push dword [esi + 0xc]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
movzx ebp, word [edi]
mov ecx, ebp
movzx eax, bp
cmp eax, 0x88
jb 0x4e72f6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, cx
movzx eax, byte [eax + 0x547228]
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
mov ebx, dword [esp + 0x16c]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov esi, eax
mov eax, dword [esp + 0x68]
shl eax, 2
sub esp, 4
push eax
push dword [esp + 0x6c]
push dword [ebx + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0xa8], eax
cmp esi, 1
je 0x4e7ff0
cmp esi, 0xfffffc19
je 0x4e7ff0
lea ecx, [esi + 0x3e4]
cmp ecx, 4
jbe 0x4e9206
test esi, esi
jne 0x4e921f
mov ecx, dword [esp + 0x158]
lea edx, [esp + 0x5c]
mov dword [ecx + 0xa8], edx
movzx ecx, word [edi + 2]
movzx edx, word [edi + ecx*2]
lea edi, [edi + ecx*2]
mov cx, 0x77
cmp edx, 0x77
je 0x4e72db
jmp 0x4e9248
add eax, eax
mov edi, dword [esp + 8]
sub edi, eax
mov eax, dword [esp + 0x158]
cmp edi, dword [eax + 0x78]
jb 0x4e92ca
mov eax, dword [esp + 0x24]
cmp edi, dword [eax]
jae 0x4e7413
mov eax, dword [esp + 0x24]
mov dword [eax], edi
jmp 0x4e7413
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x4e73f6
mov ecx, dword [edx + 0x3c]
movzx eax, byte [ecx + eax]
movzx ecx, word [edi]
cmp ecx, 0xff
ja 0x4e7408
mov edx, dword [edx + 0x3c]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x4ec481
add edi, 2
mov dword [esp + 8], edi
add ebp, 4
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
mov ebp, dword [esp + 8]
mov dword [esp + 8], ebp
cmp edi, dword [esp + 0x28]
je 0x4e3b50
jmp 0x4eab65
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e745f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e745f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x4e3b50
jmp 0x4e84a8
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e7498
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e7498
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x4e3b50
jmp 0x4e8501
mov edx, 1
cmp eax, 0x7f
ja 0x4e74e7
movzx ecx, word [edi]
cmp ecx, 0xff
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx + eax]
ja 0x4e74cc
movzx ecx, byte [edx + ecx]
cmp ecx, eax
jne 0x4ec481
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
jmp 0x4e3b50
add ebp, 2
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e78b1
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
mov dword [esp + 8], edi
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x4e78b8
mov edx, dword [edx + 0x40]
movzx edx, byte [edx + eax]
cmp eax, ecx
je 0x4ec5ac
cmp edx, ecx
mov dword [esp + 4], 0
jne 0x4e3b50
jmp case.0x4eb538.6
mov edi, esi
mov dword [esp + 8], edi
cmp dword [esp + 0x50], 0
jne 0x4e3b50
jmp 0x4e8299
cmp eax, 0xff
ja 0x4e1ae6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x4e1ae8
movzx eax, word [edi + 4]
test eax, eax
je case.0x4e4f99.4
mov ecx, dword [esp + 0x158]
mov esi, ecx
mov ecx, dword [esi + 0x24]
movzx edx, word [edi + 2]
imul edx, ecx
add edx, edx
add edx, dword [esi + 0x30]
inc eax
add ecx, ecx
movzx ebx, word [edx]
add ebx, ebx
xor esi, esi
cmp ebx, dword [esp + 0x2c]
jge 0x4e75d1
mov esi, dword [esp + 0x158]
mov esi, dword [esi + 0xc]
mov ebx, dword [esi + ebx*4]
mov esi, ebx
shr esi, 0x1f
xor esi, 1
test ebx, ebx
jns 0x4e269a
dec eax
add edx, ecx
cmp eax, 1
jg 0x4e75a7
jmp 0x4e269a
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
test eax, eax
je case.0x4e4f99.4
movzx ecx, word [edi + 2]
cmp ecx, 0xffff
je 0x4e2695
cmp dword [eax + 4], ecx
sete al
movzx esi, al
test esi, esi
je case.0x4e4f99.4
jmp 0x4e8314
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0xa8]
test esi, esi
je case.0x4e4f99.4
movzx eax, word [edi + 4]
test eax, eax
je case.0x4e4f99.4
mov ecx, dword [esp + 0x158]
mov ebx, ecx
mov ecx, dword [ebx + 0x24]
movzx edx, word [edi + 2]
imul edx, ecx
add edx, edx
add edx, dword [ebx + 0x30]
mov esi, dword [esi + 4]
inc eax
add ecx, ecx
movzx ebx, word [edx]
cmp esi, ebx
je 0x4e8314
dec eax
add edx, ecx
cmp eax, 1
jg 0x4e7658
jmp case.0x4e4f99.4
mov eax, dword [esp + 0x158]
mov esi, eax
mov dword [esi + 0x9c], 1
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, edi
push eax
push 0
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 0xfffffc20
je case.0x4e4f99.4
test eax, eax
je case.0x4e4f99.4
jmp 0x4e897d
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x4eb538
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x4ed444]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
jbe 0x4e3ae7
jmp 0x4e3b0c
cmp eax, 0x9f
jle 0x4e1c63
cmp eax, 0xa0
mov dword [esp + 4], 0
je 0x4e1734
cmp eax, 0x1680
je 0x4e1734
cmp eax, 0x180e
je 0x4e1734
jmp case.0x4eb538.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
mov esi, eax
sub esi, edx
cmp ebx, esi
ja 0x4e9d5d
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x4e9d5d
cmp ecx, 1
jne 0x4e1c17
mov ecx, 1
jmp 0x4e1c25
mov ebx, dword [esp + 0x158]
cmp edx, 0xc
jle 0x4e5725
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x4e77b5
cmp edx, 0x85
je 0x4e77b5
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x4eb538.6
cmp eax, ecx
jae 0x4e1fc3
movzx ecx, word [eax]
lea edx, [eax + 2]
cmp ecx, 0xa
jmp 0x4e7207
cmp dword [ebx + 0x6c], 0
je 0x4e1ad6
jmp 0x4ec481
cmp eax, 0x202f
je 0x4ec5ac
cmp eax, 0x205f
je 0x4ec5ac
cmp eax, 0x3000
jmp 0x4e77ed
cmp eax, 9
je 0x4ec5ac
cmp eax, 0x20
mov dword [esp + 4], 0
jne 0x4e1734
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e7825
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e7825
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4e91ec
mov dword [esp + 8], edx
cmp dword [esp + 0x4c], 0
jne 0x4e3b50
jmp 0x4e8615
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e1f7b
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4e1f7b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x4e1f7d
jmp 0x4e91ec
xor ecx, ecx
cmp eax, 0x69
sete cl
mov ebp, ecx
cmp eax, 0x6d
sete al
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
movzx ebx, word [ecx + 2]
movzx eax, word [ecx + 4]
test eax, eax
mov edx, 0x7fffffff
cmovne edx, eax
mov dword [esp + 0x10], edx
add ecx, 6
mov dword [esp + 0x14], ecx
test ebx, ebx
jg 0x4e1e2e
jmp 0x4e1ea5
add edi, 2
mov dword [esp + 8], edi
lea edx, [ebp + edx*2]
mov dword [esp + 0x14], edx
cmp eax, ecx
je 0x4e3b50
mov edx, eax
sar edx, 0x1f
shr edx, 0x19
add edx, eax
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x5494e0]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x54b6e0]
add eax, dword [edx*8 + 0x547e64]
mov dword [esp + 4], 0
cmp ecx, eax
je 0x4e3b50
jmp case.0x4eb538.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + ecx*2]
cmp edi, eax
jb 0x4e92ca
lea eax, [ecx + ecx]
mov edx, edi
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x4e92ca
cmp ecx, 1
je 0x4e1734
neg ecx
movzx eax, word [edi + ecx*2 + 2]
cmp ax, word [esi + 0x36]
je 0x4e1734
jmp 0x4e92ca
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
cmp dword [esp + 0x34], 0
je 0x4e7994
movzx edx, word [ebp]
and edx, 0xfc00
xor ecx, ecx
cmp edx, 0xd800
sete cl
inc ecx
jmp 0x4e7999
mov ecx, 1
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x44], 0
jne 0x4e3afc
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x4e796d
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x4e7a1d
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7a1d
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x4e7a64
movsx edx, dl
mov esi, dword [edx*4 + 0x547110]
cmp dword [esp + 0x44], esi
je 0x4e3afc
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x4e79d6
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x4e7ae9
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7ae9
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e61]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [ecx*4 + 0x54733c], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x4e3afc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e7aa2
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x4e7bb1
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7bb1
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e61]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x4e3afc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e7b6a
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x4e7c72
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7c72
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e60]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x4e3afc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e7c2b
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x4e7d33
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7d33
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e61]
mov edx, dword [edx*4 + 0x54733c]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x4e3afc
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e7cec
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x4e7dfd
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7dfd
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
mov ebx, ecx
sub ebx, edi
add ebx, esi
movzx esi, word [ebx + ebx + 0x54b6e0]
movzx esi, byte [esi*8 + 0x547e61]
mov esi, dword [esi*4 + 0x54733c]
or esi, 2
cmp esi, 3
sete bl
cmp ecx, 0x5f
sete cl
or cl, bl
movzx ecx, cl
cmp dword [esp + 0x44], ecx
je 0x4e3afc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e7db6
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x547d28]
mov dword [esp + 4], ecx
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x4e7ee5
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4e7ee5
shl edx, 0xa
and edx, 0xffc00
mov ecx, ebp
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, 2
jmp 0x4e7ee7
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x547d24]
cmp edx, ebx
jb 0x4e7f08
mov ebp, dword [esp + 4]
cmp edx, ebx
je 0x4e7f14
mov ebx, dword [ebp]
add ebp, 4
cmp edx, ebx
jae 0x4e7efa
cmp dword [esp + 0x44], 0
jne 0x4e7f1f
jmp 0x4e3afa
cmp dword [esp + 0x44], 0
jne 0x4e3afa
mov ebp, ecx
lea ebp, [ebp + esi*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4e7e9a
jmp 0x4e3afc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x4e3afc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x4e1f91
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x4e7f9c
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e7f9c
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov bl, 1
cmp edx, 0x24
je 0x4e7fc7
cmp edx, 0x40
je 0x4e7fc7
cmp edx, 0x60
je 0x4e7fc7
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x44], edx
je 0x4e3afc
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x4e7f55
jmp 0x4e3afc
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x4e800c
sub esp, 0xc
push eax
call dword [0x545974]
add esp, 0x10
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x4e3b50
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x4ea4b9
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x4ea4b9
cmp ecx, 1
je 0x4e1734
movzx eax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x4e1734
jmp 0x4ea4b9
cmp eax, 0xff
ja 0x4e1d61
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x4e1d63
movzx eax, byte [ecx*8 + 0x547e61]
cmp eax, 9
ja 0x4e80aa
mov ecx, 0x320
bt ecx, eax
jb case.0x4e6397.0
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x4e1bf1
jmp 0x4ec481
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x547e61]
cmp dword [ecx*4 + 0x54733c], eax
jmp 0x4e80ee
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x547e61]
jmp 0x4e80ec
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x547e60]
cmp eax, ecx
setne al
movzx ecx, word [esp + 0x28]
cmp ecx, 0x10
jmp 0x4e813b
movzx eax, byte [ecx*8 + 0x547e61]
mov eax, dword [eax*4 + 0x54733c]
or eax, 2
cmp eax, 3
jmp 0x4e8130
movzx ecx, byte [ecx*8 + 0x547e61]
mov ecx, dword [ecx*4 + 0x54733c]
or ecx, 2
cmp ecx, 3
je case.0x4e6397.0
cmp eax, 0x5f
sete al
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
jne 0x4e1bf1
jmp 0x4ec481
movzx edx, word [ebp + 4]
mov ecx, dword [edx*4 + 0x547d24]
cmp eax, ecx
jb 0x4e16ce
lea edx, [edx*4 + 0x547d28]
cmp eax, ecx
je 0x4e1701
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x4e8165
jmp 0x4e16ce
movzx edi, word [ebp + 4]
lea ebx, [edi + edi]
mov eax, dword [esp + 0x158]
cmp ebx, dword [eax + 0x14]
jl 0x4eaeb9
mov ebx, ebp
movzx eax, dx
cmp eax, 0x87
seta cl
cmp eax, 0x81
sete al
or al, cl
mov byte [esp + 4], al
mov ebp, dword [esp + 0x158]
cmp byte [esp + 4], 0
jne 0x4e81e9
cmp dword [ebp + 0x70], 0
jne 0x4e81f3
mov ecx, ebx
movzx eax, word [ecx + 2]
movzx eax, word [ecx + eax*2]
cmp eax, 0x77
je 0x4e81f3
jmp 0x4e8300
lea ebx, [ebx + eax*2]
mov dword [ebp + 0x94], esi
mov dx, 0x77
cmp byte [esp + 4], 0
je 0x4e81bb
mov dword [ebp + 0x9c], 2
mov esi, dword [ebp + 0x94]
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x34], eax
movzx eax, dx
movzx eax, byte [eax + 0x547228]
mov edi, ebx
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x4e824c
test eax, eax
jne 0x4e8d2c
mov ax, word [ebx + 2]
jmp 0x4e8273
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4eb00f
movzx edx, word [edi]
cmp edx, 0x77
je 0x4e8273
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x4eb00f
movzx eax, ax
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x34]
mov dword [ebp + 0xb0], edx
movzx ecx, word [ebx + eax*2]
cmp ecx, 0x77
je 0x4e81d5
jmp 0x4e92ca
mov edi, dword [esp + 8]
cmp edi, ebx
jbe 0x4e849d
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
movzx eax, word [edi - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x4e82f0
add edi, 0xfffffffe
jmp 0x4e82f3
add edi, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp edi, ebx
ja 0x4e82b0
jmp 0x4e84fa
movzx eax, dx
movzx eax, byte [eax + 0x547228]
mov edx, ebx
lea edx, [edx + eax*2]
jmp 0x4e85b4
movzx eax, bp
mov cl, byte [eax + 0x547228]
movzx eax, cl
lea eax, [edi + eax*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
movzx eax, ax
cmp eax, 0x8c
je 0x4ec678
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
jmp 0x4e886e
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x4e886a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4e8ae2
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
je 0x4e83af
movzx ecx, word [ebx - 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
mov edx, dword [esp + 0x14]
je 0x4e83b7
mov ebx, eax
jmp 0x4e83ba
mov ebx, eax
mov edx, dword [esp + 0x14]
jmp 0x4e83ba
add ebx, 0xfffffffc
cmp ebx, dword [esp + 0xc]
ja 0x4e8363
jmp 0x4e8875
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x4e886a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x4e841f
add ebx, 0xfffffffe
jmp 0x4e8422
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x4e83e2
jmp 0x4e8875
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x4e886a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x4e848b
add ebx, 0xfffffffe
jmp 0x4e848e
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x4e844e
jmp 0x4e8875
mov edx, dword [esp + 0x14]
mov ebx, edi
jmp 0x4e886e
mov eax, dword [esp + 8]
mov ebx, edi
cmp eax, ebx
je 0x4e886a
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
add ebx, 0xfffffffe
cmp edi, ebx
mov edx, dword [esp + 0x14]
jne 0x4e84c7
mov ebx, edi
jmp 0x4e8875
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
cmp eax, ebx
je 0x4e886a
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x4e8522
jmp 0x4e866b
cmp eax, 0x7a
jne 0x4e8674
mov edx, dword [esp + 0xc]
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4e8ae2
movzx eax, word [ebx]
cmp eax, 0x81
je 0x4ec9ae
movzx eax, ax
cmp eax, 0x88
jae 0x4eca64
mov edx, ebx
mov ebx, dword [esp + 8]
jmp 0x4e8875
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x4e886a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x4e85de
jmp 0x4e866b
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x4e886a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x4e8636
mov ebx, dword [esp + 0xc]
jmp 0x4e8875
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
je 0x4e86b5
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x4ec816
cmp dword [ebp + 0xb8], ebx
jne 0x4ecd1a
movzx eax, word [ebx]
add dword [esp + 0xc], 4
cmp eax, 0x81
je 0x4eca00
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4e8875
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x4e886a
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, edi
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4e8ae2
lea ebx, [edi - 2]
cmp dword [esp + 0x34], 0
movzx ecx, word [edi - 2]
je 0x4e876b
and ecx, 0xfc00
add edi, 0xfffffffc
cmp ecx, 0xdc00
cmove ebx, edi
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e876b
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, dword [esp + 0xc]
cmp ebx, edx
jbe 0x4e886a
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x5494e0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e62]
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
movzx edx, word [ebx - 2]
je 0x4e87f6
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x4e87c9
lea eax, [ebx - 4]
movzx edx, word [eax]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e87f6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [eax + 2]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x5494e0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x54b6e0]
movzx edx, byte [edx*8 + 0x547e62]
mov esi, dword [edx*4 + 0x5473b4]
bt esi, ecx
jae 0x4e8848
cmp eax, dword [esp + 0xc]
mov ecx, edx
mov ebx, eax
ja 0x4e87aa
jmp 0x4e8972
mov dword [esp + 8], ebx
cmp ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
ja 0x4e86f2
jmp 0x4e85b4
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp]
mov ecx, dword [ebp + 0x50]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [ebp], ecx
mov dword [esp + 4], 0xfffffff8
cmp eax, dword [ebp + 4]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], edx
jb 0x4e167a
jmp case.0x4eb538.6
mov edi, ecx
cmp eax, 0x7a
jne 0x4e89dc
mov edx, edi
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov ecx, eax
test eax, eax
mov edx, dword [esp + 0xc]
je 0x4e8875
jmp 0x4ec816
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
jbe 0x4e8339
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4e8ae2
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x4e893f
add ebx, 0xfffffffe
jmp 0x4e8942
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebp, 0x11
jne 0x4e8967
mov ecx, ebx
cmp ecx, dword [esp + 0xc]
jbe 0x4e8967
movzx eax, word [ecx]
cmp eax, 0xa
jne 0x4e8967
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x4e8967
add ebx, 0xfffffffe
cmp ebx, dword [esp + 0xc]
ja 0x4e88fc
jmp 0x4e886e
mov edx, dword [esp + 0x14]
mov ebx, eax
jmp 0x4e886e
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
movzx edx, word [edi]
lea eax, [edi + 2]
cmp edx, 0x92
cmovne eax, edi
movzx edx, word [eax + 2]
movzx esi, word [eax + edx*2]
lea eax, [eax + edx*2]
cmp esi, 0x77
je 0x4e89a6
mov esi, dword [esp + 0x2c]
cmp ecx, esi
movzx edx, bp
cmovge esi, ecx
mov dword [esp + 0x2c], esi
movzx ecx, byte [edx + 0x547228]
mov edx, 2
sub edx, ecx
lea edi, [eax + edx*2]
jmp 0x4e831d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov ecx, eax
test eax, eax
jne 0x4ec816
add edi, 4
mov edx, edi
jmp 0x4e886e
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
je 0x4e8a8a
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4e8ae2
mov esi, ebx
lea ebx, [ebx - 2]
cmp ebp, 0x11
mov edx, dword [esp + 0x14]
jne 0x4e8a82
cmp ebx, dword [esp + 0xc]
jbe 0x4e8a82
movzx ecx, word [ebx]
cmp ecx, 0xa
jne 0x4e8a82
movzx ecx, word [esi - 4]
cmp ecx, 0xd
jne 0x4e8a82
add esi, 0xfffffffc
mov ebx, esi
cmp ebx, dword [esp + 0xc]
jne 0x4e8a2a
jmp 0x4e8a8e
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0xc]
jmp 0x4e8875
mov eax, dword [esp + 0x160]
test eax, eax
je 0x4e8ac4
lea eax, [esp + 0x160]
sub eax, ecx
mov ecx, eax
neg ecx
test eax, eax
cmovle ecx, eax
mov dword [esp + 4], ecx
jmp case.0x4eb538.6
sub esp, 0xc
lea ecx, [esp + 0x16c]
xor edx, edx
push 1
push 0
push 0
push 0
push 0
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
jmp case.0x4eb538.6
cmp ebx, dword [esp + 0x14]
jb 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov dword [esp + 4], 0xffffffeb
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov edi, edx
mov edx, dword [esp + 8]
cmp edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x158]
jne 0x4e8cc2
movzx eax, di
cmp eax, 0x9f
je 0x4e8cc2
cmp dword [ecx + 0xa8], 0
je 0x4e94c7
mov dword [ecx + 0x84], edx
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x80], eax
test di, di
mov eax, 1
mov ecx, 0xfffffc19
jmp 0x4e9de9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x4eb538.6
movzx eax, word [ebx]
cmp eax, 0x81
jne 0x4e9b20
mov esi, dword [esp + 0x158]
jmp 0x4e9ddc
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp eax, 0xfffffffe
jne 0x4e8d9e
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb 0x4e92ca
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], edi
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x80], eax
mov dword [esp + 4], 1
jmp case.0x4eb538.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x547228]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
lea ecx, [eax + 0x3e7]
cmp ecx, 2
jb 0x4e8eb8
cmp eax, 0xfffffc1f
je 0x4e8ed4
cmp eax, 1
mov ebx, dword [esp + 0x158]
jne 0x4e8ae2
cmp dword [ebx + 0xb0], 0
mov dword [esp + 4], eax
je 0x4e9d52
cmp eax, 0xfffffc1f
jne case.0x4eb538.6
sub esp, 8
mov eax, dword [esp + 0x160]
push dword [eax + 0x80]
push edi
call fcn.0052f520
add esp, 0x10
mov dword [esp + 4], 0xfffffc1f
test eax, eax
jne case.0x4eb538.6
jmp 0x4e8f41
movzx eax, byte [edx + 0x547228]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
mov dword [eax + 0x80], ecx
mov dword [esp + 4], 0xfffffc1e
jmp case.0x4eb538.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x547228]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 1
je 0x4e8fcf
test eax, eax
je 0x4e915a
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x4e8ae2
cmp dword [ebx + 0xb0], 0
jne 0x4e8fde
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x4eb538.6
jmp 0x4e915a
movzx eax, byte [edx + 0x547228]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1c
jmp 0x4e9078
mov dword [esp + 4], 0xfffffffb
jmp case.0x4eb538.6
movzx eax, byte [edx + 0x547228]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov dword [esp + 4], ecx
jmp case.0x4eb538.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x547228]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 1
je 0x4e90f0
test eax, eax
je 0x4e910b
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x4e8ae2
cmp dword [ebx + 0xb0], 0
jne 0x4e90ff
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x4eb538.6
mov dword [esp + 4], 0xfffffc1d
jmp case.0x4eb538.6
movzx eax, byte [edx + 0x547228]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc20
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov dword [esp + 4], 0xfffffff4
jmp case.0x4eb538.6
mov dword [esp + 4], 0xffffffe6
jmp case.0x4eb538.6
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x4e92ca
sub esp, 0xc
push eax
jmp 0x4e9268
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
mov dword [esp + 4], esi
je case.0x4eb538.6
sub esp, 0xc
push eax
call dword [0x545974]
add esp, 0x10
jmp case.0x4eb538.6
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x4e92ca
sub esp, 0xc
push eax
call dword [0x545974]
add esp, 0x10
mov dword [esp + 4], 0
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
cmp eax, 1
mov dword [esp + 4], eax
je 0x4e92ca
jmp case.0x4eb538.6
cmp eax, 0xfffffc19
mov dword [esp + 4], eax
jne case.0x4eb538.6
mov dword [esp + 4], 0
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov dword [esp + 4], 0
cmp dword [ecx + 0x60], 0
jne case.0x4eb538.6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x64], 0
mov edx, dword [esp + 8]
je 0x4e8cc2
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 0x30], eax
jne 0x4e8cc2
jmp 0x4e92ca
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, ecx
neg eax
mov dword [esp + 0x34], eax
lea eax, [ecx + ecx]
mov dword [esp + 8], eax
dec dword [esp + 0x10]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
lea eax, [esi - 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
ja 0x4e9586
mov eax, dword [ebx]
cmp eax, dword [ebp]
je 0x4e9600
test ecx, ecx
jle 0x4eaadd
mov eax, dword [esp + 0x34]
lea eax, [esi + eax*2]
cmp ebx, eax
ja 0x4eaadd
sub esp, 4
push dword [esp + 0xc]
lea eax, [esp + 0xc0]
push eax
push ebx
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x4eaadd
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push edi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4e9558
jmp case.0x4eb538.6
mov eax, 2
jmp 0x4e95c1
mov eax, dword [esp + 0x50]
test eax, eax
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
js 0x4e9df5
cmp eax, 0xa
mov edx, dword [esp + 0x14]
ja case.default.0x4e6397
jmp dword [eax*4 + 0x4ed258]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ebp, 0x80001f
mov edx, dword [esp + 0x10]
inc edx
cmp edx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x4ec89b
mov dword [esp + 0x10], edx
lea edi, [ecx + 2]
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
je 0x4e96d4
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4e96d4
shl eax, 0xa
and eax, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 4
and edx, 0x3ff
lea eax, [eax + edx + 0x10000]
jmp 0x4e96d6
mov ecx, edi
mov edx, dword [esp + 0x14]
cmp eax, 0x180d
jle 0x4e96f3
lea edi, [eax - 0x2000]
cmp edi, 0x5f
ja case.default.0x4e96ec
jmp dword [edi*4 + 0x4ed284]
cmp eax, 0x84
jg 0x4e974c
lea edi, [eax - 9]
cmp edi, 0x17
ja case.0x4e96ec.8203
bt ebp, edi
jae case.0x4e96ec.8203
cmp dword [esp + 0x44], 0
jne 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4e9671
jmp case.0x4eb538.6
cmp eax, 0x85
je case.0x4e96ec.8192
cmp eax, 0xa0
je case.0x4e96ec.8192
cmp eax, 0x1680
je case.0x4e96ec.8192
jmp case.0x4e96ec.8203
cmp eax, 0x3000
je case.0x4e96ec.8192
cmp eax, 0x180e
je case.0x4e96ec.8192
mov edi, eax
sar edi, 0x1f
shr edi, 0x19
add edi, eax
mov edx, edi
and edx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x5494e0]
shl edi, 7
sub eax, edx
mov edx, dword [esp + 0x14]
add eax, edi
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
xor ebx, ebx
cmp dword [eax*4 + 0x54733c], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x4e9712
jmp 0x4ec481
mov dword [esp + 4], 0xfffffff2
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x4e98e9
test eax, eax
jne case.0x4eb538.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x4eba09
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x4e9873
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4e987a
add edx, 2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
cmp ebx, eax
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4e9818
jmp case.0x4eb538.6
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
cmp edi, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x28]
jae 0x4ec6b9
movzx eax, word [ecx]
cmp edx, eax
mov edx, dword [esp + 0x14]
jne 0x4e98bc
jmp 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x4e9a64
test eax, eax
jne case.0x4eb538.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x4eba47
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x4e99c8
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
cmp ebx, eax
jne 0x4e99d7
jmp 0x4ec5ac
add edx, 2
mov dword [esp + 0xc], edx
cmp ebx, eax
je 0x4ec5ac
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
je case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4e996d
jmp case.0x4eb538.6
mov ecx, dword [esp + 0xc]
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
cmp edi, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov edx, dword [esp + 0x28]
jae 0x4ec6f7
movzx eax, word [ecx]
cmp edx, eax
je 0x4ec5ac
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
jne 0x4e9a29
jmp case.0x4eb538.6
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x80], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], edi
mov dword [esp + 4], 0xfffffc1a
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0xb8], ebx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x4eb538.6
movzx eax, ax
cmp eax, 0x77
movzx eax, word [ebx + 2]
mov esi, dword [esp + 0x158]
jne 0x4e9dd4
lea ecx, [ebx + eax*2]
movzx edx, word [ebx + eax*2]
cmp edx, 0x77
movzx eax, word [ebx + eax*2 + 2]
mov ebx, ecx
je 0x4e9b37
jmp 0x4e9dd6
mov dword [esp + 4], 1
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
jmp 0x4e8e2e
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x4e9c6e
add ecx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, edi
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x4ec600
cmp bx, word [ecx]
mov edx, dword [esp + 0x14]
je 0x4e9c4c
jmp 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x4e9d04
mov ecx, dword [esp + 0xc]
add ecx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x4ec63a
movzx eax, word [ecx]
cmp bx, ax
mov edx, dword [esp + 0x14]
je 0x4e9cdc
cmp edi, eax
je 0x4e9cdc
jmp 0x4ec481
mov dword [ebx + 0xb0], edi
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x4e92ca
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x4e92ca
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x4e92ca
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov ecx, ebx
add eax, eax
sub ecx, eax
mov ebx, ecx
xor eax, eax
cmp dword [esi + 0xb8], ebx
mov ecx, 0xfffffc1b
cmove ecx, eax
mov dword [esp + 4], ecx
jmp case.0x4eb538.6
movzx ebp, bx
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 8], ebp
cmp ebp, 0x16
mov dword [esp + 4], eax
jne 0x4ea56a
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x4eb538.6
cmp dword [esp + 0x10], ecx
jge 0x4ec5ac
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
jae 0x4ec735
lea edx, [ecx + 2]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
je 0x4e9ea2
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4e9ea2
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 0xc]
movzx edx, word [esi + 2]
add esi, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x4e9ea4
mov esi, edx
mov dword [esp + 0xc], esi
cmp esi, eax
jae 0x4e9f95
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x5494e0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx edx, byte [ecx*8 + 0x547e62]
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x4e9f29
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4e9f29
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 0xc]
movzx esi, word [esi + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x5494e0]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e62]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x5473b4]
je 0x4e9f75
mov edx, dword [esp + 0xc]
lea edx, [edx + esi*2]
jmp 0x4e9f79
mov edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
cmp edx, eax
jae 0x4e9f91
test ebx, ebx
mov edx, ecx
mov edi, dword [esp + 0x2c]
jne 0x4e9ee3
jmp 0x4e9f95
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0xc], eax
jb 0x4e9fc4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e9fc4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4e9fc4
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x4eb94e
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x4e9e3b
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov dword [esp + 4], 0xfffffff4
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
add ebp, 4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc1f
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x4e92ca
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x4e92ca
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x4e92ca
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x28]
je 0x4eb4b6
test eax, eax
jne case.0x4eb538.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x4ec5ac
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, eax
mov esi, dword [esp + 0x158]
jae 0x4ec970
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x4ea61c
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x4ea5e2
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4ea61c
jmp 0x4ec5ac
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x4ea61c
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x4ea61c
cmp ecx, 1
je 0x4ec5ac
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x4ec5ac
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4ea64d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ea650
add edi, 2
mov dword [esp + 0xc], edi
cmp ebx, 0xf
ja case.default.0x4eb538
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x4ed1d8]
cmp eax, 0xff
ja case.0x4ea665.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0xff
ja 0x4ec5ac
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0xff
ja case.0x4ea665.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0xff
ja 0x4ec5ac
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0xff
ja case.0x4ea665.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0xff
ja 0x4ec5ac
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x4ea665.7
jmp 0x4ec5ac
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x4ea665.7
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [edx]
jb case.0x4ea665.7
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne case.0x4ea665.7
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne case.0x4ea665.7
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 0x34]
cmp eax, edx
jne case.0x4ea665.7
mov eax, dword [esp + 0x20]
mov dword [eax], 1
cmp ecx, 1
jle case.0x4ea665.7
jmp 0x4eb94e
cmp eax, 0xc
jle 0x4ea8ea
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x4ea8f6
cmp eax, 0x85
je 0x4ea8f6
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
jae case.0x4ea665.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
cmp eax, 0xa
jne case.0x4ea665.7
add dword [esp + 0xc], 2
jmp case.0x4ea665.7
cmp eax, 0x1fff
jle 0x4ea8b1
cmp eax, 0x202e
jg 0x4ea92c
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x4ea665.7
jmp case.0x4eb538.6
cmp eax, 0x1fff
jle 0x4ea90c
cmp eax, 0x202e
jg 0x4ea971
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x4ea665.7
jmp case.0x4eb538.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x4ec5ac
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x4ec5ac
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x4ea665.7
jmp case.0x4eb538.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x4ea665.7
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x4ea665.7
cmp eax, 0x85
je case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0x9f
jle 0x4ea956
cmp eax, 0xa0
je 0x4ec5ac
cmp eax, 0x1680
je 0x4ec5ac
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x4ea665.7
jmp case.0x4eb538.6
lea ecx, [eax - 0xb]
cmp ecx, 2
jae 0x4ea986
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x4ea665.7
jmp 0x4ec5ac
cmp eax, 0x9f
jle 0x4ea98b
cmp eax, 0xa0
je case.0x4ea665.7
cmp eax, 0x1680
je case.0x4ea665.7
cmp eax, 0x180e
jmp 0x4ea993
cmp eax, 0x202f
je 0x4ec5ac
cmp eax, 0x205f
je 0x4ec5ac
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x4ea665.7
jmp case.0x4eb538.6
cmp eax, 9
je 0x4ec5ac
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x4ea665.7
jmp case.0x4eb538.6
cmp eax, 0x202f
je case.0x4ea665.7
cmp eax, 0x205f
je case.0x4ea665.7
cmp eax, 0x3000
jmp 0x4ea993
cmp eax, 0xa
jmp 0x4ea993
cmp eax, 9
je case.0x4ea665.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4ea58b
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp ebx, esi
jb 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
cmp edi, edx
jb 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
cmp byte [esp + 4], 0
je 0x4eb376
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
dec edi
inc edi
cmp edi, dword [esp + 0x28]
jge 0x4ec481
sub esp, 4
mov ecx, ebx
mov ebp, dword [esp + 0xc]
mov edx, ebp
push dword [esp + 0x10]
mov esi, dword [esp + 0x160]
push esi
push dword [esp + 0x1c]
call fcn.004ed820
add esp, 0x10
test eax, eax
js 0x4ec8d9
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ebp
mov ecx, ebp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4eabac
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x4eba85
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x4eb538.6
dec ebx
movzx esi, cx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x4ec481
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x4ec936
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4eacd7
add edi, 4
jmp 0x4eace1
add edi, 2
cmp eax, 0x100
jb 0x4eacef
mov edx, dword [esp + 0x14]
cmp esi, 0x6e
jne 0x4ead0b
jmp 0x4ec481
mov ecx, eax
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
mov edx, dword [esp + 0x14]
jae 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4eaca8
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov ebp, dword [eax + ebx*4]
mov dword [esp + 0x10], ebp
mov ebp, ebx
or ebp, 1
mov dword [esp + 0x18], ebp
mov ebp, dword [eax + ebp*4]
mov dword [esp + 0x1c], ebp
sub ecx, edi
mov ebp, dword [eax + ecx*4]
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 8]
mov dword [esp + 0x28], edx
mov edx, esi
mov ebp, dword [esp + 0x158]
sub edx, dword [ebp + 0x78]
sar edx, 1
mov ebp, dword [esp + 0x158]
mov ebp, dword [ebp + 0x94]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x158]
mov ebp, dword [ebp + 0xb0]
mov dword [esp + 4], ebp
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x28]
movzx eax, dx
mov dword [esp + 0x34], eax
mov ecx, esi
cmp dword [esp + 0x34], 0x88
jb 0x4eaf4f
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, byte [edx + 0x547228]
mov edx, dword [esp + 0xc]
mov esi, edx
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
push eax
push dword [esp + 0x48]
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x4eafa4
test eax, eax
jne 0x4ec5b9
mov edx, dword [esp + 0xc]
mov ax, word [edx + 2]
mov esi, dword [esp + 8]
jmp 0x4eafd1
movzx eax, word [esi + 2]
lea ecx, [esi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x4eb00f
movzx edx, word [esi]
cmp edx, 0x77
mov esi, dword [esp + 8]
jne 0x4eafc5
mov edx, dword [esp + 0xc]
jmp 0x4eafd1
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, dword [esp + 0xc]
jne 0x4eb00f
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 0x14]
mov dword [ecx + 0x94], ebp
movzx eax, ax
mov ebp, dword [esp + 4]
mov dword [ecx + 0xb0], ebp
movzx ecx, word [edx + eax*2]
lea eax, [edx + eax*2]
mov edx, 0x77
cmp ecx, 0x77
mov dword [esp + 0xc], eax
je 0x4eaf32
xor esi, esi
jmp 0x4ec5cd
mov dword [esp + 4], 0xfffffc20
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp eax, 0xfffffffe
jne 0x4eb065
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov dword [esp + 4], 0xfffffffa
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x4eb277
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
push eax
push dword [esp + 0x48]
push esi
push ebx
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov ecx, dword [esp + 8]
cmp ecx, edi
jbe 0x4ec481
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x4eb2b7
add ecx, 0xfffffffe
jmp 0x4eb259
add ecx, 0xfffffffc
jmp 0x4eb259
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp edi, dword [esp + 0x28]
mov esi, dword [esp + 8]
jge 0x4ec7bd
mov esi, dword [esp + 8]
sub esp, 4
mov ecx, ebx
mov edx, esi
push dword [esp + 0x10]
push dword [esp + 0x160]
push dword [esp + 0x1c]
call fcn.004ed820
add esp, 0x10
test eax, eax
js 0x4ec773
lea esi, [esi + eax*2]
inc edi
cmp edi, dword [esp + 0x28]
jl 0x4eb388
jmp 0x4ec7ab
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
dec ebx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov eax, ecx
jae 0x4eca26
lea ecx, [eax + 2]
movzx eax, word [eax]
cmp dword [esp + 0x34], 0
je 0x4eb459
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4eb459
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 0xc]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4eb45d
mov dword [esp + 0xc], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.0052f730
add esp, 0x10
test eax, eax
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4eb3f9
jmp case.0x4eb538.6
test eax, eax
jne case.0x4eb538.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x4ec5ac
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, ecx
jae 0x4eca88
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x4eb521
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x4eb55f
sub esp, 0xc
push 0
push dword [esp + 0x58]
push ecx
push eax
push edi
call fcn.0052f350
add esp, 0x20
test eax, eax
je 0x4eb5a0
jmp 0x4ec5ac
cmp ebx, 0xf
ja case.default.0x4eb538
lea ebp, [edi + 2]
movzx eax, word [edi]
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x4ed218]
cmp eax, 0xff
ja case.0x4eb538.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x4eb538.7
jmp 0x4ec5ac
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
lea edx, [eax + eax]
sub ecx, edx
cmp edi, ecx
ja 0x4eb5a0
movzx ecx, word [edi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x4eb5a0
cmp eax, 1
je 0x4ec5ac
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x4ec5ac
lea ebp, [edi + 2]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x4eb538.7
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb case.0x4eb538.7
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x4eb538.7
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x4eb538.7
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x4eb538.7
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle case.0x4eb538.7
jmp 0x4eb94e
cmp eax, 0xff
ja 0x4ec5ac
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x4eb538.7
jmp 0x4ec5ac
cmp eax, 0xff
ja case.0x4eb538.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x4eb538.7
jmp 0x4ec5ac
cmp eax, 0xff
ja 0x4ec5ac
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x4eb538.7
jmp 0x4ec5ac
cmp eax, 0xff
ja case.0x4eb538.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x4eb538.7
jmp 0x4ec5ac
cmp eax, 0xff
ja 0x4ec5ac
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x4eb538.7
jmp 0x4ec5ac
movsx edx, ax
cmp edx, 0xc
jle 0x4eb82c
lea edx, [eax - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x4eb83b
movzx eax, ax
cmp eax, 0x85
je 0x4eb83b
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x4eb538.6
cmp ebp, ecx
jae case.0x4eb538.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cmp eax, 0xa
jne case.0x4eb538.7
mov ebp, dword [esp + 0xc]
add ebp, 4
jmp case.0x4eb538.7
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x4eb7ef
cmp ecx, 0x202e
jg 0x4eb87d
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x4eb538.7
jmp case.0x4eb538.6
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x4eb851
cmp ecx, 0x202e
jg 0x4eb8c5
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x4eb538.7
jmp case.0x4eb538.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb 0x4ec5ac
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb 0x4ec5ac
movzx eax, ax
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x4eb538.7
jmp case.0x4eb538.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x4eb538.7
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x4eb538.7
movzx eax, ax
cmp eax, 0x85
je case.0x4eb538.7
jmp 0x4ec5ac
movzx eax, ax
cmp ecx, 0x9f
jle 0x4eb8aa
cmp eax, 0xa0
je 0x4ec5ac
cmp eax, 0x1680
je 0x4ec5ac
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x4eb538.7
jmp case.0x4eb538.6
lea ecx, [eax - 0xb]
movzx ecx, cx
cmp ecx, 2
jae 0x4eb8dd
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x4eb538.7
jmp 0x4ec5ac
movzx eax, ax
cmp ecx, 0x9f
jle 0x4eb8e5
cmp eax, 0xa0
je case.0x4eb538.7
cmp eax, 0x1680
je case.0x4eb538.7
cmp eax, 0x180e
jmp 0x4eb8ed
movzx eax, ax
cmp eax, 0x202f
je 0x4ec5ac
cmp eax, 0x205f
je 0x4ec5ac
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x4eb538.7
jmp case.0x4eb538.6
cmp eax, 9
je 0x4ec5ac
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x4eb538.7
jmp case.0x4eb538.6
movzx eax, ax
cmp eax, 0x202f
je case.0x4eb538.7
cmp eax, 0x205f
je case.0x4eb538.7
cmp eax, 0x3000
jmp 0x4eb8ed
movzx eax, ax
cmp eax, 0xa
jmp 0x4eb8ed
cmp eax, 9
je case.0x4eb538.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 0xc], ebp
je 0x4eb4c8
jmp case.0x4eb538.6
mov dword [esp + 4], 0xfffffff2
jmp case.0x4eb538.6
mov dword [esp + 4], 0xfffffff4
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0xc]
jbe 0x4ec481
lea edi, [ecx - 2]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x4eb9d4
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov edx, dword [esp + 0x14]
jne 0x4eb9d8
add ecx, 0xfffffffc
mov edi, ecx
jmp 0x4eb9d8
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push esi
push ebx
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 8], edi
je 0x4eb996
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x4eb538.6
movzx esi, cx
cmp ebx, dword [esp + 0x10]
jge 0x4ec481
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x4ecac6
movzx eax, word [edi]
cmp eax, 0x100
mov edx, dword [esp + 0x14]
jb 0x4ebac2
cmp esi, 0x6e
jne 0x4ebae0
jmp 0x4ec481
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
jae 0x4ec481
add edi, 2
inc ebx
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x4eba94
jmp case.0x4eb538.6
mov dword [esp + 4], 0
cmp dword [esp + 8], edi
jb case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
add ebx, 0xfffffffe
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
cmp ebx, edi
jae 0x4ebb30
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x4ecb00
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x4ebbf3
movzx ecx, word [edx]
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x4ebbf9
mov dword [esp + 0xc], eax
jmp 0x4ebc00
add edx, 4
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], 0
jne 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ebbb7
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4ecb3e
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ebce7
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ebce7
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ebceb
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
add al, 0xfb
xor ecx, ecx
cmp al, 4
ja 0x4ebd3b
movsx eax, al
mov ecx, dword [eax*4 + 0x547110]
cmp dword [esp + 0x44], ecx
mov edx, dword [esp + 0x14]
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ebc87
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4ecb7c
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ebe16
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ebe16
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ebe1a
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
xor ecx, ecx
mov edx, dword [esp + 0x54]
cmp dword [eax*4 + 0x54733c], edx
sete cl
cmp dword [esp + 0x44], ecx
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ebdb6
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4ecbba
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ebf43
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ebf43
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ebf47
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ebee3
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4ecbf8
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ec069
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ec069
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ec06d
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e60]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ec009
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4ecc36
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ec18f
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ec18f
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ec193
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
movzx eax, byte [eax*8 + 0x547e61]
mov eax, dword [eax*4 + 0x54733c]
or eax, 2
xor ecx, ecx
cmp eax, 3
sete cl
cmp dword [esp + 0x44], ecx
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ec12f
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4ecc74
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ec2be
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ec2be
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ec2c2
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
mov esi, eax
sub esi, edx
add esi, ecx
movzx ecx, word [esi + esi + 0x54b6e0]
movzx ecx, byte [ecx*8 + 0x547e61]
mov ecx, dword [ecx*4 + 0x54733c]
or ecx, 2
cmp ecx, 3
sete cl
cmp eax, 0x5f
sete al
or al, cl
movzx eax, al
cmp dword [esp + 0x44], eax
je 0x4ec481
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push edi
push ebx
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ec25e
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x4eb538.6
mov eax, dword [esp + 0x54]
lea ebx, [eax*4 + 0x547d28]
cmp dword [esp + 0x10], ecx
jge 0x4ec481
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
cmp edi, dword [eax]
jae 0x4ecca7
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x4ec3f4
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ec3f4
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ec3f6
mov edi, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx*4 + 0x547d24]
cmp eax, ecx
jb 0x4ec414
mov edx, ebx
cmp eax, ecx
je 0x4ec42b
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x4ec407
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x4ec441
jmp 0x4ec5ac
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x4ec5ac
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], edi
mov ecx, edi
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x4ec39f
jmp case.0x4eb538.6
mov dword [esp + 4], 0
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x4eb538.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x4ec5ac
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x4eccd6
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x4ec520
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4ec520
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x4ec522
mov esi, ecx
mov dword [esp + 0xc], esi
mov cl, 1
cmp eax, 0x24
je 0x4ec55d
cmp eax, 0x40
je 0x4ec55d
cmp eax, 0x60
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
je 0x4ec568
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb dl
cmp eax, 0xdfff
seta cl
or cl, dl
jmp 0x4ec568
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
movzx eax, cl
cmp dword [esp + 0x44], eax
mov edx, dword [esp + 0x14]
je 0x4ec5ac
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ec4c4
jmp case.0x4eb538.6
mov dword [esp + 4], 0
jmp case.0x4eb538.6
mov esi, 0xfffffc1b
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x4eb538.6
mov ecx, dword [esp + 0x158]
mov edx, ecx
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x10]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [ecx + eax*4], ebx
mov edx, dword [edx + 0x10]
sub edx, edi
mov eax, dword [esp + 0x44]
mov dword [ecx + edx*4], eax
mov dword [esp + 4], esi
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x158]
mov esi, eax
mov dword [esi + 0x9c], 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
jmp 0x4e8ae2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp eax, 0xfffffffe
jne 0x4ec7ab
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ec7ab
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x4ec7ab
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jb case.0x4eb538.6
mov eax, dword [esp + 0x10]
add eax, eax
neg eax
mov edi, eax
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, esi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
test eax, eax
jne 0x4ec80d
add esi, edi
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jae 0x4ec7c7
jmp case.0x4eb538.6
mov dword [esp + 4], eax
jmp case.0x4eb538.6
mov dword [esp + 4], ecx
jmp case.0x4eb538.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
cmp eax, 0xfffffffe
jne 0x4ec8e8
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.004e15d0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x4eb538.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xb8], ecx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x4eb538.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x4e9af2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x4ec6ac
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4e92ca
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x4e92ca
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4e92ca
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
jmp 0x4ecd03
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x4ecd03
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x4ecd03
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x4eb538.6
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], 0xfffffc1b
jmp case.0x4eb538.6