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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
test edx, edx
je 0x5df98e
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.0x5e2428.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 0x5dfb07
cmp dword [ecx + 0x9c], 2
jne 0x5daa40
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 0x5daa40
movzx eax, word [esp + 0x28]
cmp eax, 0x10
jne 0x5d8ae1
jmp 0x5e3371
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 0x5d98c9
jmp 0x5e3371
movzx eax, word [esp + 0x28]
cmp eax, 0x10
je 0x5d8ae1
jmp 0x5e3371
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 0x5d98c9
jmp 0x5e370f
add ebp, 2
mov dword [esp + 0x14], ebp
jmp 0x5daa40
cmp eax, 0x24
je case.0x5dd287.0
cmp eax, 0x60
je case.0x5dd287.0
cmp eax, 0x40
je case.0x5dd287.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 0x5d8ae1
jmp 0x5e3371
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d86a4
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5d86a4
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e283e
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df5c5
cmp eax, 0x202f
mov dword [esp + 4], 0
je 0x5d8624
cmp eax, 0x3000
je 0x5d8624
cmp eax, 0x205f
je 0x5d8624
jmp case.0x5e2428.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 0x5d87c2
test ebx, ebx
jle 0x5d881b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x5dfcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5d8747
add edi, 4
jmp 0x5d8752
add edi, 2
cmp ecx, 0x100
jb 0x5d8761
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x5d877a
jmp 0x5e3371
mov eax, ecx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x5e3371
inc esi
cmp esi, ebx
jl 0x5d8729
jmp 0x5d881f
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 0x5d8715
test ebx, ebx
jle 0x5d881b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x5e016e
movzx eax, word [edi]
cmp eax, 0x100
jb 0x5d87f3
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x5d8811
jmp 0x5e3371
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 0x5e3371
add edi, 2
inc esi
cmp esi, ebx
jl 0x5d87d2
jmp 0x5d881f
mov edi, dword [esp + 8]
cmp ebx, dword [esp + 0x10]
mov dword [esp + 8], edi
mov edx, dword [esp + 0x28]
je 0x5daa40
cmp dword [esp + 4], 0
jne 0x5e1b4c
cmp dword [esp + 0x34], 0
je 0x5d88cc
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x5d895d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, edi
cmp eax, dword [esp + 4]
jae 0x5d892d
mov ecx, eax
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
mov esi, 2
cmp eax, 0xd800
je 0x5d888e
mov esi, 1
cmp edx, 0x100
jb 0x5d889d
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x5d88bb
jmp 0x5d8957
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 0x5d8957
mov eax, ecx
lea eax, [eax + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x5d885f
jmp 0x5d895d
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x5d89a1
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, edi
cmp eax, ecx
jae 0x5d8971
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x100
jb 0x5d8901
movzx eax, dx
cmp eax, 0x6e
jne 0x5d891f
jmp 0x5d899b
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 0x5d899b
mov eax, esi
add eax, 2
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x5d88e0
jmp 0x5d89a1
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d895b
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5d895b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x5d895d
jmp 0x5e00dc
mov eax, ecx
jmp 0x5d895d
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x5daa40
jmp 0x5e2120
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d899f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5d899f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x5d89a1
jmp 0x5e00dc
mov eax, esi
jmp 0x5d89a1
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x5daa40
jmp 0x5e2a0e
cmp edx, 0xa
mov dword [esp + 4], 0
jne case.0x5e2428.6
add ebp, 2
mov dword [esp + 0x14], ebp
mov dword [esp + 8], eax
jmp 0x5daa40
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x5d8a4f
mov ebx, edx
movzx edx, word [edi]
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5d8a12
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 0x5d8caa
mov cl, 1
cmp edx, 0x5f
je 0x5d8cc5
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 + 0x6f7ff0]
shl ecx, 7
sub edx, esi
add edx, ecx
jmp 0x5d8c88
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x5d8a7f
mov esi, edx
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x5d8a76
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x5e00dc
xor ecx, ecx
mov edx, esi
jmp 0x5d8cc7
xor ecx, ecx
jmp 0x5d8cc7
xor eax, eax
movzx esi, al
test esi, esi
je case.0x5dbe89.4
jmp 0x5df204
cmp eax, 0x84
jg 0x5d8aba
add eax, 0xfffffff7
cmp eax, 0x17
ja case.0x5dd2a8.8203
mov edx, 0x80001f
bt edx, eax
jb case.0x5dd287.0
jmp case.0x5dd2a8.8203
cmp eax, 0x85
je case.0x5dd287.0
cmp eax, 0xa0
je case.0x5dd287.0
cmp eax, 0x1680
jne case.0x5dd2a8.8203
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x5e3371
mov dword [esp + 8], ebx
add ebp, 6
mov dword [esp + 0x14], ebp
jmp 0x5daa40
mov eax, edx
mov dword [esp + 8], eax
cmp dword [esp + 0x4c], 0
jne 0x5daa40
jmp 0x5df2b5
movzx edx, word [ebx + 2]
cmp dx, word [edi + 0x36]
jne 0x5e0c4d
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne 0x5e0c4d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d8624
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x5d8624
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x5d8624
jmp 0x5e0f2d
cmp eax, 9
mov dword [esp + 4], 0
je 0x5d8624
cmp eax, 0x20
je 0x5d8624
jmp case.0x5e2428.6
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x5da126
movzx ebx, word [edi]
mov esi, ebx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x5d8bb5
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 0x5d8c00
cmp ebx, 0x202e
jg 0x5d8c22
add ebx, 0xffffe000
cmp ebx, 0xb
jae 0x5d8c46
cmp esi, ecx
je 0x5daa26
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 0x5d8b72
jmp 0x5daa26
cmp ebx, 0x9f
jle 0x5d8c3c
cmp ebx, 0xa0
je 0x5d8bd5
cmp ebx, 0x1680
je 0x5d8bd5
cmp ebx, 0x180e
je 0x5d8bd5
jmp 0x5d8c46
cmp ebx, 0x202f
je 0x5d8bd5
cmp ebx, 0x205f
je 0x5d8bd5
cmp ebx, 0x3000
je 0x5d8bd5
jmp 0x5d8c46
cmp ebx, 9
je 0x5d8bd5
cmp ebx, 0x20
je 0x5d8bd5
xor esi, esi
cmp esi, ecx
jne 0x5d8bdd
jmp 0x5daa26
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x5d8a4f
mov ebx, edx
cmp dword [esi + 0x58], 0
movzx edx, word [edi]
je 0x5d8caa
mov cl, 1
cmp edx, 0x5f
je 0x5d8cc5
mov ecx, edx
shr ecx, 7
movzx ecx, byte [ecx + 0x6f7ff0]
shl ecx, 7
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6971]
mov ecx, dword [ecx*4 + 0x6f5e4c]
or ecx, 2
cmp ecx, 3
sete cl
jmp 0x5d8cc5
cmp edx, 0xff
ja 0x5d8cc3
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + edx]
and cl, 0x10
shr cl, 4
jmp 0x5d8cc5
xor ecx, ecx
mov edx, ebx
movzx ecx, cl
add ebp, 2
movzx edx, dx
cmp edx, 5
jne 0x5d8cee
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
jne 0x5daa40
jmp case.0x5e2428.6
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
je 0x5daa40
jmp case.0x5e2428.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 0x5e0064
lea ecx, [edx + 2]
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x5d8d73
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5d8d73
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 0x5d8d77
mov dword [esp + 8], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.00626620
add esp, 0x10
test eax, eax
je 0x5e3371
inc esi
cmp esi, ebx
jl 0x5d8d20
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
cmp ebx, dword [esp + 0x10]
je 0x5daa40
test ebp, ebp
jne 0x5e22ad
cmp ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jge 0x5d8e57
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax]
jae 0x5d8e2b
mov ebp, ecx
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x5d8e08
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5d8e08
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.00626620
add esp, 0x10
mov ecx, ebp
test eax, eax
je 0x5d8e57
lea ecx, [ecx + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x5d8dc1
jmp 0x5d8e57
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d8e55
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5d8e55
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x5d8e57
jmp 0x5e00dc
mov ecx, edx
mov dword [esp + 8], ecx
cmp byte [esp + 4], 0
jne 0x5daa40
jmp 0x5e284b
mov ecx, edx
mov dword [esp + 8], ecx
cmp dword [esp + 0x4c], 0
jne 0x5daa40
jmp 0x5df4ad
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5da9ec
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5da9ec
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x5da9ec
jmp 0x5e283e
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x5d89c6
mov edx, dword [esp + 0x24]
cmp eax, dword [edx]
jbe 0x5d89c6
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jle 0x5d89c6
jmp 0x5e00dc
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 0x5e1c35
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x5e3371
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d8ef5
jmp 0x5db79f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x5e1335
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x5d8f5c
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x5e3371
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x5d8f77
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x5d8f7b
mov edx, esi
jmp 0x5d8f80
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x5d8f3c
jmp 0x5db79f
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 0x5e1c73
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x5e3371
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d8fa2
jmp 0x5db79f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x5e136f
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x5d9009
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x5e3371
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x5d9024
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x5d9028
mov edx, esi
jmp 0x5d902d
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x5d8fe9
jmp 0x5db79f
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 0x5e1cb1
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x5e3371
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d904f
jmp 0x5db79f
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x5e1420
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x5d90cf
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.00626240
add esp, 0x20
test eax, eax
mov edx, dword [esp + 0x10]
je 0x5d9102
jmp 0x5e3371
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 0x5d9102
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x5d9102
cmp ecx, 1
je 0x5e3371
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x5e3371
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x5d9127
lea edx, [ebx + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp edx, eax
jae 0x5d9136
mov ecx, ebp
mov edx, dword [esp + 0x10]
cmp ecx, eax
jb 0x5d9146
jmp 0x5d915b
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [ebx + 2]
cmp ecx, eax
jb 0x5d9146
jmp 0x5d915b
cmp dword [edi + 0x18], 0
mov edx, dword [esp + 0x10]
je 0x5d916f
mov ecx, ebp
cmp ecx, eax
jae 0x5d915b
movzx eax, word [ebx + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5d915b
add ebx, 4
mov ecx, ebx
inc esi
cmp esi, edx
mov dword [esp + 0xc], ecx
mov ebx, ecx
jl 0x5d9090
jmp 0x5db79f
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x5d911b
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x5d911b
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebp
mov edx, dword [esp + 0x10]
jle 0x5d9142
jmp 0x5e00dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 8]
cmp esi, eax
jae 0x5e0ef3
lea edi, [esi + 2]
cmp edi, eax
jae 0x5d91cd
movzx edx, word [esi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x5d91cd
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 0x5d91a7
jmp 0x5db79f
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 0x5e1b0e
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5d922f
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5d9232
add edi, 2
mov ebx, dword [esp + 0x158]
mov dword [esp + 0xc], edi
cmp edx, 0xc
jle 0x5d927f
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x5d9287
cmp edx, 0x85
je 0x5d9287
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x5e2428.6
mov esi, dword [esp + 0xc]
cmp esi, eax
jae 0x5d9291
movzx edx, word [esi]
cmp edx, 0xa
jne 0x5d9291
add esi, 2
mov dword [esp + 0xc], esi
jmp 0x5d9291
lea edi, [edx - 0xb]
cmp edi, 2
jae 0x5d92a1
cmp dword [ebx + 0x6c], 0
jne 0x5e3371
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d91f1
jmp 0x5db79f
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x5d9291
jmp case.0x5e2428.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 0x5e18d5
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5d9334
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 0x5d933f
cmp edx, 0x9f
jle 0x5d937c
cmp edx, 0xa0
je 0x5e3bf3
cmp edx, 0x1680
je 0x5e3bf3
cmp edx, 0x180e
jne 0x5d938e
jmp 0x5e3bf3
add edi, 2
cmp edx, 0x1fff
jle 0x5d9307
cmp edx, 0x202e
jg 0x5d9357
add edx, 0xffffe000
cmp edx, 0xb
jae 0x5d938e
jmp 0x5e3bf3
cmp edx, 0x202f
je 0x5e3bf3
cmp edx, 0x205f
je 0x5e3bf3
cmp edx, 0x3000
jne 0x5d938e
jmp 0x5e3bf3
cmp edx, 9
je 0x5e3bf3
cmp edx, 0x20
je 0x5e3bf3
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d92c3
jmp 0x5db79f
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 0x5e1913
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5d941b
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 0x5d9426
cmp edx, 0x9f
jle 0x5d946e
cmp edx, 0xa0
je 0x5d943d
cmp edx, 0x1680
je 0x5d943d
cmp edx, 0x180e
je 0x5d943d
jmp 0x5e3bf3
add edi, 2
cmp edx, 0x1fff
jle 0x5d93f6
cmp edx, 0x202e
jg 0x5d9451
add edx, 0xffffe000
cmp edx, 0xb
jae 0x5e3bf3
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d93b2
jmp 0x5db79f
cmp edx, 0x202f
je 0x5d943d
cmp edx, 0x3000
je 0x5d943d
cmp edx, 0x205f
je 0x5d943d
jmp 0x5e3bf3
cmp edx, 9
je 0x5d943d
cmp edx, 0x20
je 0x5d943d
jmp 0x5e3bf3
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 0x5e1951
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5d94cb
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5d94ce
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x5e3bf3
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x5e3bf3
cmp edx, 0x85
je 0x5e3bf3
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d948d
jmp 0x5db79f
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 0x5e198f
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5d9553
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5d9556
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x5d9575
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x5d9575
cmp edx, 0x85
jne 0x5e3bf3
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9515
jmp 0x5db79f
mov al, 1
movzx esi, al
test esi, esi
jne 0x5df204
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 0x5daa40
jmp 0x5df21b
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx esi, word [ebx]
mov edi, esi
and edi, 0xfc00
mov edx, 1
cmp edi, 0xd800
jne 0x5d961f
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 0x5d9641
lea edi, [esi - 0x2028]
cmp edi, 2
jb 0x5d9641
cmp esi, 0x85
je 0x5d9641
xor ebx, ebx
cmp ebx, ecx
je 0x5daa26
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 0x5d95dc
jmp 0x5daa26
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 0x5e21ac
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5e3371
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d967c
jmp 0x5db79f
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 0x5e1cef
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5d96f1
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d96ca
jmp 0x5db79f
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 0x5e21ea
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5e3371
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9714
jmp 0x5db79f
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 0x5e1d2d
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5d9789
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9762
jmp 0x5db79f
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 0x5e2228
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5e3371
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d97ac
jmp 0x5db79f
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x5e1f0c
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x5d9829
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5d9858
jmp 0x5e3371
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x5d9858
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x5d9858
cmp ecx, 1
je 0x5e3371
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x5e3371
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edx, [ebx + 2]
test eax, eax
je 0x5d9898
mov ecx, dword [esp + 0x18]
cmp edx, dword [ecx]
jb 0x5d9898
cmp dword [edi + 0x18], 0
jne 0x5d9898
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x5d9898
movzx ecx, word [ebx]
cmp cx, word [edi + 0x34]
jne 0x5d9898
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
inc esi
cmp esi, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ebx, edx
jl 0x5d97f0
jmp 0x5db79f
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 0x5e374d
lea eax, [ecx + edx*2]
mov dword [esp + 0xc], eax
jmp 0x5db79f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x5e20e6
lea edx, [ebp + 2]
mov dword [esp + 0xc], edx
movsx edx, word [ebp]
cmp edx, 0xc
mov ebx, dword [esp + 0x158]
jle 0x5d9942
lea edi, [edx - 0x2028]
movzx edi, di
cmp edi, 2
jb 0x5d994d
movzx edx, dx
cmp edx, 0x85
je 0x5d994d
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x5e2428.6
cmp dword [esp + 0xc], eax
jae 0x5d9957
movzx edx, word [ebp + 2]
cmp edx, 0xa
jne 0x5d9957
add ebp, 4
mov dword [esp + 0xc], ebp
jmp 0x5d9957
lea edi, [edx - 0xb]
movzx edi, di
cmp edi, 2
jae 0x5d996b
cmp dword [ebx + 0x6c], 0
jne 0x5e3371
inc ecx
cmp ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jl 0x5d98e1
jmp 0x5db79f
movzx edx, dx
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x5d9957
jmp case.0x5e2428.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 0x5e1fa3
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x5d99c5
cmp esi, 0x202e
jg 0x5d99f5
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x5d9a2f
jmp 0x5e3bf3
movzx edx, dx
cmp esi, 0x9f
jle 0x5d9a1d
cmp edx, 0xa0
je 0x5e3bf3
cmp edx, 0x1680
je 0x5e3bf3
cmp edx, 0x180e
jne 0x5d9a2f
jmp 0x5e3bf3
movzx edx, dx
cmp edx, 0x202f
je 0x5e3bf3
cmp edx, 0x205f
je 0x5e3bf3
cmp edx, 0x3000
jne 0x5d9a2f
jmp 0x5e3bf3
cmp edx, 9
je 0x5e3bf3
cmp edx, 0x20
je 0x5e3bf3
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9990
jmp 0x5db79f
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 0x5e1fe1
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x5d9a9d
cmp esi, 0x202e
jg 0x5d9ac5
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x5e3bf3
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9a56
jmp 0x5db79f
movzx edx, dx
cmp esi, 0x9f
jle 0x5d9ae5
cmp edx, 0xa0
je 0x5d9a8a
cmp edx, 0x1680
je 0x5d9a8a
cmp edx, 0x180e
je 0x5d9a8a
jmp 0x5e3bf3
movzx edx, dx
cmp edx, 0x202f
je 0x5d9a8a
cmp edx, 0x3000
je 0x5d9a8a
cmp edx, 0x205f
je 0x5d9a8a
jmp 0x5e3bf3
cmp edx, 9
je 0x5d9a8a
cmp edx, 0x20
je 0x5d9a8a
jmp 0x5e3bf3
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 0x5e201f
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x5e3bf3
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x5e3bf3
movzx edx, dx
cmp edx, 0x85
je 0x5e3bf3
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9b04
jmp 0x5db79f
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 0x5e205d
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x5d9b9d
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x5d9b9d
movzx edx, dx
cmp edx, 0x85
jne 0x5e3bf3
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5d9b66
jmp 0x5db79f
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x5d9c16
mov edx, 1
cmp ecx, 0xff
ja 0x5d9c16
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 4
jne 0x5daa26
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 0x5d9bd0
jmp 0x5daa26
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5daa26
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x5daa26
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x5daa26
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5d9c55
jmp 0x5daa26
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x5d9d13
mov edx, 1
cmp ecx, 0xff
ja 0x5d9d13
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 1
jne 0x5daa26
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 0x5d9ccd
jmp 0x5daa26
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5daa26
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x5daa26
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x5daa26
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5d9d52
jmp 0x5daa26
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x5d9e10
mov edx, 1
cmp ecx, 0xff
ja 0x5d9e10
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 0x10
jne 0x5daa26
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 0x5d9dca
jmp 0x5daa26
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5daa26
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x5daa26
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x5daa26
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5d9e4f
jmp 0x5daa26
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x5d9fd4
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x5d9ef8
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5d9f35
jmp 0x5da002
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x5d9f35
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x5d9f35
cmp ecx, 1
je 0x5da03e
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x5da052
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x5d9f8e
lea edx, [esi + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, edx
cmp edx, eax
jb 0x5d9f8a
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne 0x5d9f8a
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x5d9f8a
movzx edx, word [esi]
mov edi, dword [esp + 0x158]
cmp dx, word [edi + 0x34]
jne 0x5d9f8a
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebx
jle 0x5d9f97
jmp 0x5e283e
mov ecx, ebx
jmp 0x5d9f97
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 0x5d9fbe
movzx eax, word [esi + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5d9fbe
add esi, 4
mov dword [esp + 8], esi
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov esi, dword [esp + 8]
jl 0x5d9ebd
jmp 0x5daa26
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5da016
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x5da02a
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x5daa26
jmp 0x5e283e
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
mov dword [esp + 8], esi
jmp 0x5daa26
cmp edx, 0x7fffffff
jne 0x5da072
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
jmp 0x5da126
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x5da0d0
lea edx, [ecx + 2]
mov dword [esp + 8], edx
cmp edx, eax
jae 0x5da0b6
movzx edx, word [ecx + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x5da0b6
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 0x5da08e
jmp 0x5daa26
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5da0fe
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x5da112
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp eax, 1
mov dword [esp + 8], ecx
jle 0x5daa26
jmp 0x5e283e
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5daa26
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5daa26
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x5daa26
jmp 0x5e283e
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 0x5da126
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5da126
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x5da1ec
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 0x5da243
cmp ecx, 0xd
jne 0x5da213
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x5da268
movzx edx, word [esi + 2]
cmp edx, 0xa
jne 0x5da24a
add esi, 4
mov dword [esp + 8], esi
jmp 0x5da24e
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x5daa26
lea esi, [ecx - 0xb]
cmp esi, 2
jb 0x5da243
lea esi, [ecx - 0x2028]
cmp esi, 2
jb 0x5da243
cmp ecx, 0x85
jne 0x5daa26
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 0x5da1a9
jmp 0x5daa26
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df7d2
cmp eax, 0x3000
je case.0x5dd287.0
cmp eax, 0x180e
je case.0x5dd287.0
movzx eax, byte [ecx*8 + 0x6f6971]
cmp dword [eax*4 + 0x6f5e4c], 6
jmp 0x5df020
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5da2ee
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
jne 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da2c7
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5da9de
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da327
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5da3b2
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
jne 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da38b
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5da9de
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da3eb
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5da476
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
jne 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da44f
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5da9de
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da4af
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x5da5eb
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x5da542
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5da57f
jmp 0x5da619
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x5da57f
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x5da57f
cmp ecx, 1
je 0x5da655
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x5da669
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edi, [esi + 2]
test eax, eax
je 0x5da5cd
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jb 0x5da5cd
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x5da5cd
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x5da5cd
movzx ecx, word [esi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x5da5cd
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e283e
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 0x5da509
jmp 0x5da9de
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5da62d
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x5da641
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x5da9de
jmp 0x5e283e
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
jmp 0x5da6a8
add esi, 4
mov dword [esp + 8], esi
jmp 0x5da719
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x5da9fc
movzx ecx, word [ecx]
cmp ecx, 0xa
je 0x5da714
movzx edx, cx
cmp edx, 0xd
jne 0x5da6de
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x5da733
movzx edx, word [esi + 2]
cmp edx, 0xa
je 0x5da69f
mov dword [esp + 8], ecx
jmp 0x5da719
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x5da9de
lea esi, [ecx - 0xb]
movzx esi, si
cmp esi, 2
jb 0x5da714
add ecx, 0xffffdfd8
movzx ecx, cx
cmp ecx, 2
jb 0x5da714
cmp edx, 0x85
jne 0x5da9de
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 0x5da6a8
jmp 0x5da9de
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x5da7a0
cmp edx, 0x202e
jg 0x5da7d4
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x5da816
jmp 0x5da9de
movzx ecx, cx
cmp edx, 0x9f
jle 0x5da800
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x5da9de
cmp ecx, 0x1680
je 0x5da9de
cmp ecx, 0x180e
jne 0x5da816
jmp 0x5da9de
movzx ecx, cx
cmp ecx, 0x202f
je 0x5da9de
cmp ecx, 0x205f
mov edx, dword [esp + 0x28]
je 0x5da9de
cmp ecx, 0x3000
jne 0x5da816
jmp 0x5da9de
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x5da9de
cmp ecx, 0x20
je 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x5da767
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x5da8a0
cmp edx, 0x202e
jg 0x5da8cc
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x5da851
jmp 0x5da9de
movzx ecx, cx
cmp edx, 0x9f
jle 0x5da8f0
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x5da889
cmp ecx, 0x1680
je 0x5da889
cmp ecx, 0x180e
je 0x5da889
jmp 0x5da9de
movzx ecx, cx
cmp ecx, 0x202f
mov edx, dword [esp + 0x28]
je 0x5da889
cmp ecx, 0x3000
je 0x5da889
cmp ecx, 0x205f
je 0x5da889
jmp 0x5da9de
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x5da889
cmp ecx, 0x20
je 0x5da889
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x5da9de
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x5da9de
movzx ecx, cx
cmp ecx, 0x85
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
je 0x5da9de
add dword [esp + 8], 2
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x5da923
jmp 0x5da9de
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5da9de
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 0x5da9fc
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x5da9c1
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x5da9c1
movzx ecx, cx
cmp ecx, 0x85
jne 0x5da9de
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5da992
jmp 0x5da9de
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df904
mov ebp, ecx
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x5daa40
jmp 0x5df236
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5da9de
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5da9de
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x5da9de
jmp 0x5e283e
cmp dword [esp + 0x58], 0
je 0x5df7d2
nop word cs:[eax + eax]
mov ebp, dword [esp + 0x14]
movzx edx, word [ebp]
cmp edx, 0xa1
ja case.0x5daa5e.98
xor eax, eax
mov dword [esp + 4], 0
jmp dword [edx*4 + 0x5e3c14]
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 + 0x6f5c00]
mov dword [esp + 0x10], ecx
movsx ecx, byte [eax + 0x6f5c0b]
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 0x5dadfd
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je case.0x5daa5e.119
mov dword [esp + 0x14], ebp
jmp 0x5daa40
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 + 0x6f5c00]
movsx ecx, byte [eax + 0x6f5c0b]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
jmp 0x5dab83
add ebp, 2
lea eax, [edx - 0x55]
mov ecx, edx
not ecx
and ecx, 1
mov dword [esp + 0x4c], ecx
movsx ecx, byte [edx + 0x6f5bab]
mov dword [esp + 0x10], ecx
movsx ecx, byte [edx + 0x6f5bb6]
mov edx, 0x3cf
bt edx, eax
mov edx, 0x7fffffff
cmovae edx, ecx
jmp 0x5db5fe
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 0x5db232
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 0x5dbeb6
movzx ecx, si
cmp ecx, 0x81
je 0x5dbeb6
mov dword [esp + 4], 0
jmp 0x5dbec7
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x78]
je 0x5dd2af
mov edi, dword [esp + 8]
cmp edi, eax
je 0x5dd828
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 0x5dac15
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
movzx eax, word [ecx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dac41
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 0x5de451
mov cl, 1
cmp eax, 0x5f
je 0x5d89d8
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 + 0x6f7ff0]
shl ecx, 7
sub eax, edx
mov edx, ebx
add eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
mov eax, dword [eax*4 + 0x6f5e4c]
or eax, 2
cmp eax, 3
sete cl
jmp 0x5d89d8
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x5e0a4c
mov dword [esp + 0x28], edx
lea ecx, [ebx + 2]
movzx eax, word [ebx]
cmp dword [esp + 0x34], 0
je 0x5dd24b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd24b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebx + 2]
add ebx, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5dd24d
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x5e0a8a
cmp dword [esp + 0x34], 0
je 0x5dd326
movzx eax, word [ebp + 2]
mov ecx, eax
and ecx, 0xfc00
mov esi, edx
cmp ecx, 0xd800
jne 0x5dd3bd
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
add ebp, 6
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5dd3c0
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 0x5dadfd
add ebp, 2
mov dword [esp + 0x50], 1
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 0
xor edi, edi
jmp 0x5dadfd
add ebp, 2
xor edi, edi
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 1
mov dword [esp + 0x50], 1
jmp 0x5dadfd
add ebp, 2
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], 1
xor edi, edi
jmp 0x5dadfd
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 0x5dae9e
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5dae9e
movzx eax, dx
xor edx, edx
cmp eax, 0x2e
jb 0x5db064
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 + 0x6f7ff0]
shl ecx, 7
mov edx, eax
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x6fa1f0]
mov ecx, dword [ecx*8 + 0x6f6974]
test ecx, ecx
je 0x5db062
add ecx, eax
sub esp, 8
lea eax, [esp + 0xc0]
push eax
push ecx
call fcn.006263c0
add esp, 0x10
mov edx, eax
jmp 0x5db064
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
movzx eax, dx
cmp eax, 0x2e
jb 0x5daf07
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x34], 0
je 0x5daf9c
movzx eax, bx
cmp eax, 0x80
jb 0x5daf9c
mov eax, ebx
shr eax, 7
movzx eax, byte [eax + 0x6f7ff0]
shl eax, 7
mov ecx, ebx
and ecx, 0x7f
or ecx, eax
movzx eax, word [ecx + ecx + 0x6fa1f0]
mov edi, dword [eax*8 + 0x6f6974]
add edi, ebx
cmp dword [esp + 0x10], 0
jg 0x5dafb8
mov edx, ebp
jmp 0x5daff6
cmp dword [esp + 0x10], 0
jle 0x5daf3c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x5dfa93
cmp bx, word [ebp]
jne 0x5e3371
add ebp, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5daf20
mov ecx, edi
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebp
mov dword [esp + 8], ebp
je 0x5daa40
test ecx, ecx
jne 0x5e0b15
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov ecx, edi
mov edx, ecx
jge 0x5de34f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, ecx
cmp edx, eax
jae 0x5de32a
cmp bx, word [edx]
jne 0x5de34f
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x5daf74
jmp 0x5de34f
cmp ebx, 0xff
mov edi, ebx
ja 0x5dafad
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + ebx]
cmp dword [esp + 0x10], 0
jle 0x5daf00
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, ebp
nop word cs:[eax + eax]
cmp edx, eax
jae 0x5dfacd
mov esi, edx
movzx edx, word [edx]
cmp bx, dx
je 0x5dafea
cmp edi, edx
jne 0x5e3371
mov edx, esi
add edx, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5dafd0
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
je 0x5daa40
cmp dword [esp + 0x4c], 0
jne 0x5e0ba3
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
jge 0x5de388
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x5de363
movzx ecx, word [edx]
cmp bx, cx
je 0x5db04b
cmp edi, ecx
jne 0x5de388
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x5db033
jmp 0x5de388
xor edx, edx
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
jle 0x5db0f0
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 0x5db0a0
mov eax, 2
jmp 0x5db0e4
cmp ebx, esi
ja 0x5db0ae
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x5db08f
test edx, edx
jle 0x5df9db
cmp ebx, edi
ja 0x5df9db
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 0x5df9db
lea ebx, [ebx + eax*2]
inc ebp
cmp ebp, dword [esp + 0x10]
jl 0x5db0a0
jmp 0x5db0f2
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 0x5daa40
cmp dword [esp + 0x4c], 0
jne 0x5e03f8
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebx
jge 0x5de43d
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 0x5db151
mov eax, 2
mov edi, esi
jmp 0x5db19b
mov esi, edi
cmp edi, ebp
ja 0x5db161
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x5db148
test edx, edx
mov edi, esi
jle 0x5dc2da
cmp edi, dword [esp + 4]
ja 0x5dc2da
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 0x5dc2da
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jl 0x5db151
jmp 0x5de43d
movzx edi, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], edi
jmp 0x5db22a
add ebp, 2
mov dword [esp + 0x4c], 1
mov dword [esp + 0x40], 0x7fffffff
jmp 0x5db228
add ebp, 2
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0x7fffffff
mov edi, 1
mov dword [esp + 0x4c], 1
jmp 0x5db232
add ebp, 2
mov dword [esp + 0x40], 1
xor edi, edi
mov dword [esp + 0x4c], 1
jmp 0x5db22a
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 0x5db270
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5db270
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 0x5db2d2
cmp dword [esp + 0x34], 0
je 0x5db347
cmp ebx, 0x80
jb 0x5db347
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 + 0x6f7ff0]
shl eax, 7
mov edx, ebx
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0x6fa1f0]
mov eax, dword [eax*8 + 0x6f6974]
add eax, ebx
jmp 0x5db361
cmp dword [esp + 0x34], 0
je 0x5db3f6
test edi, edi
jle 0x5db489
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor edx, edx
mov ebp, esi
nop
cmp ebp, eax
jae 0x5dfa1f
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5db332
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 0x5db33d
jmp 0x5e3371
add ebp, 2
cmp ebx, ecx
je 0x5e3371
inc edx
cmp edx, edi
jl 0x5db2f0
jmp 0x5db48b
cmp ebx, 0xff
mov dword [esp + 0x10], ebx
ja 0x5db365
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 0x5db42e
test edi, edi
jle 0x5db527
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 0x5dfa59
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5db3cb
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x5db3ce
add ebp, 2
mov ebx, dword [esp + 0x28]
cmp ebx, ecx
je 0x5e349c
cmp dword [esp + 0x10], ecx
mov dword [esp + 4], 0
je case.0x5e2428.6
inc eax
cmp eax, edi
jl 0x5db390
jmp 0x5db52b
test edi, edi
jle 0x5db489
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, esi
nop dword [eax + eax]
cmp ebp, eax
jae 0x5dfb14
movzx edx, word [ebp]
cmp ebx, edx
je 0x5e3371
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x5db410
jmp 0x5db48b
test edi, edi
jle 0x5db527
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 0x5dfb4e
mov ebx, ebp
movzx edx, word [ebp]
cmp dword [esp + 0x28], edx
je 0x5e349c
cmp dword [esp + 0x10], edx
mov dword [esp + 4], 0
je case.0x5e2428.6
mov ebp, ebx
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x5db450
jmp 0x5db52b
mov ebp, esi
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x5daa40
cmp dword [esp + 0x50], 0
jne 0x5e06c1
cmp dword [esp + 0x34], 0
je 0x5dc250
cmp edi, dword [esp + 0x40]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x5ddf6a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 0xc]
cmp ebp, eax
jae 0x5ddf45
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x5db50f
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 0x5ddf6a
lea ebp, [ebp + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x5db4cf
jmp 0x5ddf6a
mov ebp, dword [esp + 8]
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x5daa40
cmp dword [esp + 0x50], 0
jne 0x5e0816
cmp dword [esp + 0x34], 0
je 0x5dc28e
cmp edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x5d8af3
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0xc]
cmp eax, ebp
jae 0x5ddf7e
movzx ecx, word [eax]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x5db5b9
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 0x5db5c3
jmp 0x5ddfb4
mov esi, eax
cmp ebx, ecx
je 0x5ddfb4
cmp dword [esp + 0x10], ecx
je 0x5ddfb4
mov eax, esi
lea eax, [eax + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x5db56f
jmp 0x5d8af3
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 0x5db635
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 0x5db63d
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 0x5db79b
test ecx, ecx
js 0x5db919
cmp ecx, 0xa
ja case.default.0x5dd287
jmp dword [ecx*4 + 0x5e3f1c]
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 0x5dfc45
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5db6ea
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5db6ea
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 0x5db6f4
cmp edx, 0x84
jg 0x5db722
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x5db6ff.8203
mov ebx, 0x80001f
bt ebx, esi
jb case.0x5db6ff.8192
jmp case.0x5db6ff.8203
mov edi, esi
cmp edx, 0x180d
jle 0x5db6ce
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x5db6ff
jmp dword [esi*4 + 0x5e3f48]
cmp dword [esp + 0x44], 0
jne 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5db680
jmp 0x5db79f
cmp edx, 0x85
je case.0x5db6ff.8192
cmp edx, 0xa0
je case.0x5db6ff.8192
cmp edx, 0x1680
je case.0x5db6ff.8192
jmp case.0x5db6ff.8203
cmp edx, 0x3000
je case.0x5db6ff.8192
cmp edx, 0x180e
je case.0x5db6ff.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 + 0x6f7ff0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
xor ebx, ebx
cmp dword [edx*4 + 0x6f5e4c], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x5db711
jmp 0x5e3371
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 0x5daa40
cmp dword [esp + 0x4c], 0
jne 0x5e04f7
mov ecx, dword [esp + 0x50]
test ecx, ecx
mov edi, dword [esp + 0x40]
js 0x5dc0af
cmp ecx, 0xa
mov edx, dword [esp + 0xc]
ja case.default.0x5e2428
jmp dword [ecx*4 + 0x5e4374]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x5db845
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5db845
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 0x5db85f
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x5db858
jmp dword [esi*4 + 0x5e43a0]
cmp edx, 0x84
jg 0x5db8a0
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x5db858.8203
mov edi, 0x80001f
bt edi, esi
jae case.0x5db858.8203
cmp dword [esp + 0x44], 0
jne 0x5da9ec
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5db7fe
jmp 0x5da9ec
cmp edx, 0x85
je case.0x5db858.8192
cmp edx, 0xa0
je case.0x5db858.8192
cmp edx, 0x1680
je case.0x5db858.8192
jmp case.0x5db858.8203
cmp edx, 0x3000
je case.0x5db858.8192
cmp edx, 0x180e
je case.0x5db858.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 + 0x6f7ff0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
xor ebx, ebx
cmp dword [edx*4 + 0x6f5e4c], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x5db884
jmp 0x5da9ec
movzx eax, bx
cmp eax, 0x16
jne 0x5dbfd0
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 0x5dfbde
lea esi, [edi + 2]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5db97c
mov ebx, ecx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5db97c
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x5db97e
mov edi, esi
mov dword [esp + 4], eax
cmp edi, edx
jae 0x5dba70
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 + 0x6f7ff0]
shl esi, 7
sub ecx, ebx
add ecx, esi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx esi, byte [ecx*8 + 0x6f6972]
nop dword [eax]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
mov ebx, 1
je 0x5dba10
mov ebp, ecx
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x5dba10
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 0x5dba12
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 + 0x6f7ff0]
shl ebp, 7
sub ecx, edi
add ecx, ebp
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6972]
mov ebp, 1
shl ebp, cl
and ebp, dword [esi*4 + 0x6f5ec4]
je 0x5dba60
mov edi, eax
lea edi, [edi + ebx*2]
cmp edi, edx
jb 0x5dba66
jmp 0x5dba70
mov edi, eax
cmp edi, edx
jae 0x5dba70
test ebp, ebp
mov esi, ecx
jne 0x5db9c0
cmp edi, edx
jb 0x5dba99
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x5dba99
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x5dba99
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x5e00dc
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x10]
lea eax, [eax + 1]
jl 0x5db92e
jmp 0x5db79f
mov dword [esp + 0x28], edx
movzx edx, word [ebp + 0x22]
lea esi, [edx - 0x62]
movzx eax, si
cmp eax, 0xb
ja 0x5d86e6
mov eax, 0x73f
bt eax, esi
jae 0x5d8784
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 + 0x6f5ba9]
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x24]
mov dword [esp + 0x14], eax
movsx ebx, byte [edx + 0x6f5b9e]
cmp dword [esp + 0x34], 0
jne 0x5d8715
jmp 0x5d87c2
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 0x5dc241
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
test eax, eax
js 0x5dc241
mov edx, ebx
or edx, 1
mov ecx, dword [ecx + edx*4]
sub ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x5dde41
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 0x5dd31d
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 0x5dbbd8
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0xc]
mov edi, dword [ebp + ebx*4]
test edi, edi
jns 0x5dde29
dec ecx
add esi, edx
cmp ecx, 1
jg 0x5dbbb7
jmp 0x5dde38
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x5dbc0e
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.005d84c0
add esp, 0x20
cmp eax, 1
je 0x5dd568
cmp eax, 0xfffffc19
je 0x5dd568
mov dword [ebp + 0xb0], ebx
cmp eax, 0xfffffc20
je 0x5dbc69
test eax, eax
jne 0x5df9d2
mov ax, word [edi + 2]
jmp 0x5dbc92
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5e1eff
movzx edx, word [edx]
cmp edx, 0x77
je 0x5dbc92
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x5e1eff
movzx eax, ax
lea ecx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x5dbc10
jmp 0x5dd577
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x5dbcd3
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.005d84c0
add esp, 0x20
mov dword [ebp + 0xb0], ebx
test eax, eax
jns 0x5dbd31
cmp eax, 0xfffffc20
jne 0x5dd46f
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5dd480
movzx edx, word [edx]
cmp edx, 0x77
jne 0x5dbd3f
mov edx, edi
jmp 0x5dbd4d
jne 0x5e019d
mov edx, edi
mov ax, word [edx + 2]
jmp 0x5dbd4d
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, edi
jne 0x5dd480
movzx eax, ax
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov eax, ecx
je 0x5dbcd3
jmp 0x5dd492
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 0x5dbe73
mov eax, dword [0x6f4480]
test eax, eax
je 0x5dbe63
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 0x5e01ba
mov ebx, dword [esp + 4]
jne 0x5df9d2
movzx eax, byte [0x6f5dae]
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.0x5dbe89.5
jmp dword [eax*4 + 0x5e46cc]
movzx eax, word [edi + 2]
add eax, eax
cmp eax, dword [esp + 0x2c]
jge 0x5d8a86
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + eax*4], 0
setns al
jmp 0x5d8a88
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 0x5dfd0e
mov ebx, dword [esp + 0xc]
sub ebx, eax
lea eax, [esi - 0x82]
movzx ecx, ax
cmp ecx, 9
ja 0x5dc06e
mov ecx, 0x318
bt ecx, eax
jae 0x5dd5f8
mov dword [esp + 0x14], ebx
movzx ebx, word [ebx + 4]
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x5dbf22
cmp dword [eax + 4], ebx
je 0x5e0b06
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 0x5dc059
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x2c]
cmp ebp, edi
jle 0x5dbf93
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 0x5dc06a
cmp dword [esp + 0x34], 0
je 0x5dd500
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x5e2428
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x5e3e9c]
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 0x5e12f7
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5dc031
add edi, 4
mov dword [esp + 0xc], edi
jmp 0x5dc04d
add edi, 2
cmp edx, 0x7f
mov dword [esp + 0xc], edi
ja 0x5dc04d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x5e3371
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5dc009
jmp 0x5db79f
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 0x5dc091
cmp eax, 0x7b
je 0x5e0998
mov ecx, dword [esp + 4]
cmp dword [esp + 8], ecx
jne 0x5df44c
movzx eax, si
mov edx, dword [esp + 0xc]
add edx, 4
cmp eax, 0x81
mov dword [esp + 0x14], edx
jne 0x5daa40
jmp 0x5e09bf
movzx ebp, di
cmp ebp, 0x16
mov ecx, dword [esp + 0xc]
jne 0x5dd367
mov eax, dword [esp + 0x10]
cmp edx, eax
mov edx, eax
mov ebp, ecx
jle 0x5d86a4
mov ebp, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebp, eax
jae 0x5d867f
mov dword [esp + 0x10], edx
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x5dc127
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5dc127
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 0x5dc131
jmp 0x5dc204
mov ebp, edx
cmp ebp, eax
jae 0x5dc204
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 + 0x6f7ff0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx edx, byte [ecx*8 + 0x6f6972]
nop word cs:[eax + eax]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x5dc1af
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x5dc1af
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 + 0x6f7ff0]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6972]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x6f5ec4]
je 0x5dc1f6
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x5dc204
test ebx, ebx
mov edx, ecx
jne 0x5dc170
cmp ebp, eax
jb 0x5dc22d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5dc22d
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5dc22d
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e283e
mov edx, dword [esp + 0x10]
inc edx
cmp edx, dword [esp + 0x28]
jl 0x5dc0d1
jmp 0x5d86a4
cmp dword [edi + 0x54], 1
sbb eax, eax
mov dword [esp + 0x10], eax
jmp 0x5dde41
cmp edi, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x5de715
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x5de6f0
movzx ecx, word [edx]
cmp esi, ecx
je 0x5de715
add edx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x5dc26c
jmp 0x5de715
cmp edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x5d8e6d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x5de729
mov edx, ecx
movzx ecx, word [ecx]
cmp esi, ecx
je 0x5d8e6b
cmp dword [esp + 0x10], ecx
je 0x5d8e6b
mov ecx, edx
add ecx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x5dc2aa
jmp 0x5d8e6d
cmp edi, dword [esp + 0x4c]
jb 0x5de43d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5de43d
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5de43b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov edi, esi
jle 0x5de43d
jmp 0x5e00dc
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 0x5d8624
jmp 0x5e01ba
add ebp, 2
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ebp
jmp 0x5daa40
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x5e0f3a
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x5dc37d
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x5dc4e3
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x5d8624
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je 0x5d8624
jmp 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x5e0f78
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 0x5e349c
and cl, dl
mov dword [esp + 4], 0
jne case.0x5e2428.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne 0x5dc546
jmp 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x5e0fb6
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x5dc42e
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x5dc4e3
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x5d8624
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je 0x5d8624
jmp 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x5e0ff4
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 0x5e349c
and cl, dl
mov dword [esp + 4], 0
jne case.0x5e2428.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne 0x5dc546
jmp 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x5e1032
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x5dd606
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5dd606
add edx, 4
mov dword [esp + 8], edx
jmp 0x5d8624
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x5e1070
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 0x5e349c
and cl, dl
mov dword [esp + 4], 0
jne case.0x5e2428.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x5e3371
add dword [esp + 8], 2
jmp 0x5d8624
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
test ecx, ecx
je 0x5de033
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x5de066
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edx
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5de066
jmp 0x5e3371
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
jae 0x5e10ae
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x5d8624
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 8]
cmp edi, ecx
jae 0x5e10ec
lea eax, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5de65b
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
mov ebx, dword [esp + 0x158]
jne 0x5de662
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 0x5de66b
lea ecx, [edx - 0xb]
cmp ecx, 2
jb 0x5de6a5
jmp 0x5d89b5
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x5e112a
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x5dd62d
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd62d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5dd62f
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x5e1168
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x5dd664
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd664
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5dd666
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x5e11a6
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x5dd69b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd69b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5dd69d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x5e11e4
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5dd6c6
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd6c6
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5dd6c8
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x5e1222
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x5dd6ef
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5dd6ef
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 0x5dd6f9
jmp 0x5dd7c0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x5e01ba
cmp dword [eax + 0x5c], 0
je case.0x5daa5e.23
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jb 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d8624
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
ja 0x5d8b3b
jmp 0x5d8624
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, dword [esp + 8]
cmp ebx, eax
mov edi, dword [esp + 0x158]
jae 0x5d8b21
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x5de626
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5e0c4d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
jmp 0x5d8b15
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x5dd5b8
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x5def24
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.00626240
add esp, 0x20
test eax, eax
jne 0x5d8624
jmp 0x5e13a9
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], 0
je case.0x5daa5e.1
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x5e01ba
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x5d8624
jmp 0x5e01ba
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 8]
je 0x5dc91a
cmp edi, eax
je 0x5e01ba
cmp edi, eax
je 0x5d8624
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
je 0x5e01ba
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x5de801
cmp edi, eax
jbe 0x5e01ba
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.006262f0
add esp, 0x20
test eax, eax
jne 0x5d8624
jmp 0x5e01ba
cmp dword [esp + 0x34], 0
je 0x5de0ff
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 0x5e1a0f
cmp cx, word [edi]
jne 0x5e3371
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
cmp eax, 2
jl 0x5daa40
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 0x5dc9b6
jmp case.0x5e2428.6
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x5e1260
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x5de2d1
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov esi, dword [esp + 0x158]
jne 0x5de39c
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, 2
jmp 0x5de3d7
movzx edx, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x10], edx
jmp 0x5db600
add ebp, 2
mov edi, 1
mov edx, 0x7fffffff
jmp 0x5dca9f
add ebp, 2
mov edx, 1
mov dword [esp + 0x10], 0
mov edi, 1
mov dword [esp + 0x4c], 0
jmp 0x5db600
movzx edx, word [ebp + 2]
add ebp, 4
mov edi, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
jmp 0x5db600
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 0x5d8d07
mov edx, 0x73f
bt edx, ecx
jae 0x5de75f
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 + 0x6f5b9e]
movsx eax, byte [eax + 0x6f5ba9]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jg 0x5d8d1e
jmp 0x5d8d95
movzx eax, word [ebp + 2]
lea edi, [eax + eax]
mov esi, dword [esp + 0x158]
add edi, dword [esi + 0x74]
test eax, eax
je 0x5de12d
movzx eax, word [edi + 4]
jmp 0x5de12f
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x5de2a9
test ax, ax
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 8]
je 0x5de2c1
mov ecx, dword [ecx + 0x78]
inc eax
mov edx, edi
lea edi, [edx - 2]
cmp edi, ecx
jb 0x5e01ba
movzx esi, word [edx - 2]
and esi, 0xfc00
cmp esi, 0xdc00
je 0x5dcb9c
mov edx, edi
jmp 0x5dcba1
add edx, 0xfffffffc
mov edi, edx
dec eax
cmp eax, 1
jg 0x5dcb7b
jmp 0x5de2c1
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.005d84c0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x5dcc01
test eax, eax
jne 0x5ddfbb
mov ax, word [edi + 2]
jmp 0x5dcc4a
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5e1eff
mov ebp, ebx
mov ebx, esi
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x5dcc31
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jmp 0x5dcc4a
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jne 0x5e1eff
movzx eax, ax
lea ecx, [edi + eax*2]
mov dword [ebp + 0xb0], esi
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x5dcbc5
jmp 0x5ddfde
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5df9d2
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x5dcca0
jmp 0x5de307
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 0x5dccc0
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5daa40
jmp case.0x5e2428.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 0x5dd5e8
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 0x5de307
cmp ebx, esi
jge 0x5dcd97
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 0x5de307
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 0x5dcdb0
jmp 0x5de307
add ebp, 2
mov dword [esp + 0x4c], 0
mov edx, 0x7fffffff
mov dword [esp + 0x10], 1
mov edi, 1
jmp 0x5db600
mov eax, dword [0x6f4480]
test eax, eax
je 0x5dcec1
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 0x5e01ba
jne 0x5df9d2
add ebp, 8
mov dword [esp + 0x14], ebp
jmp 0x5daa40
movzx edx, word [ebp + 2]
add ebp, 2
mov eax, 1
cmp edx, 0x86
je case.0x5daa5e.134
movzx eax, dx
cmp eax, 0x8b
mov eax, 1
jne case.0x5daa5e.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 0x5dd0a9
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 0x5dcf94
mov dword [ebp + 0x9c], 2
movzx eax, word [ebx]
movzx eax, byte [eax + 0x6f5d38]
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.005d84c0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x5dcfd7
test eax, eax
jne 0x5dd02f
mov ax, word [ebx + 2]
jmp 0x5dcffe
movzx eax, word [ebx + 2]
lea ecx, [ebx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5e1eff
movzx edx, word [ebx]
cmp edx, 0x77
je 0x5dcffe
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x5e1eff
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 0x5dcf6e
jmp 0x5dd4a6
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
jne case.0x5e2428.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 0x5dcf5c
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x5dd07f
mov edi, dword [esp + 8]
or eax, dword [esp + 0x50]
jne 0x5dd4f0
jmp 0x5e01ba
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 0x5dd0f5
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 0x5dd110
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, word [ebp]
movzx eax, byte [eax + 0x6f5d38]
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.005d84c0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x5dd15c
test eax, eax
jne 0x5dd198
mov ax, word [edi + 2]
jmp 0x5dd183
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5e1eff
movzx edx, word [edi]
cmp edx, 0x77
je 0x5dd183
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x5e1eff
movzx eax, ax
lea ebp, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x5dd0e0
jmp 0x5dd1fc
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
mov edx, ebx
jne case.0x5e2428.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 0x5dd0d3
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x5dd1e3
jmp 0x5dd200
mov eax, dword [esp + 4]
or eax, dword [esp + 0x50]
je 0x5e01ba
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], esi
jmp 0x5daa40
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 + 0x6f5d38]
ja 0x5e129e
movzx ecx, word [ebp + 2]
add ecx, eax
lea eax, [ebp + ecx*2]
mov dword [esp + 0x14], eax
jmp 0x5daa40
mov ebx, ecx
movzx edx, word [ebp + 2]
cmp edx, 0xa
ja case.default.0x5dd287
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 + 0x6f7ff0]
shl ecx, 7
mov edi, eax
sub edi, esi
add edi, ecx
movzx ecx, word [edi + edi + 0x6fa1f0]
jmp dword [edx*4 + 0x5e4520]
cmp eax, 0x180d
jle 0x5d8a98
lea edx, [eax - 0x2000]
cmp edx, 0x5f
ja case.default.0x5dd2a8
jmp dword [edx*4 + 0x5e454c]
mov edi, dword [esp + 8]
cmp edi, eax
je 0x5d8c51
lea eax, [edi - 2]
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x5dd2cc
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [esi + 0x58], 0
movzx eax, word [eax]
je 0x5def60
mov cl, 1
cmp eax, 0x5f
je 0x5d8c53
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x6f7ff0]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
mov eax, dword [eax*4 + 0x6f5e4c]
or eax, 2
cmp eax, 3
sete cl
jmp 0x5d8c53
xor ebx, ebx
mov ebp, eax
jmp 0x5dde41
movzx eax, word [ebp + 2]
movzx ecx, word [ebx]
cmp ax, cx
je 0x5e3371
movzx edx, dx
cmp edx, 0x20
jne 0x5dd35b
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x5dd353
mov edx, dword [edx + 0x40]
movzx eax, byte [edx + eax]
cmp eax, ecx
je 0x5e3371
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x5de307
cmp dword [esp + 0x34], 0
je 0x5de5b0
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x5e2428
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x5e42f4]
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5daa26
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 0x5d8b72
add ebp, 4
mov dword [esp + 0x14], ebp
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd3f6
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
add ebx, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x5dd3f9
add ebx, 2
movzx edx, si
cmp edx, 0x1f
mov dword [esp + 8], ebx
jne 0x5dd41a
mov dword [esp + 4], 0
cmp eax, ecx
jne 0x5daa40
jmp case.0x5e2428.6
cmp eax, 0x80
mov edx, dword [esp + 0x158]
jb 0x5de417
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 + 0x6f7ff0]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x6fa1f0]
mov edx, dword [edx*8 + 0x6f6974]
add edx, eax
cmp eax, ecx
jne 0x5de426
jmp 0x5e349c
lea ecx, [eax + 0x3e4]
cmp ecx, 4
mov edx, edi
jae 0x5e01ab
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x5dd480
test esi, esi
jne 0x5e0a3f
add ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x5daa40
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5dd4e4
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 0x5e01ba
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], edi
jmp 0x5daa40
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x5e2428
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x5e3edc]
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 0x5e1d6b
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5dd555
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x5e3371
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5dd52e
jmp 0x5db79f
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x78
je 0x5e01ba
test esi, esi
jne 0x5e0a3f
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 0x5dd590
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x2c], eax
jmp 0x5daa40
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d8624
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x5d8b3b
jmp 0x5d8624
or eax, 0x10000
mov dword [edi + 0x94], eax
jmp 0x5de307
test ax, ax
jne 0x5dc06e
jmp 0x5dfd0e
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x5d8624
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x5d8624
jmp 0x5e3371
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x5dd7fd
cmp eax, 0x202e
jg 0x5de6b4
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae 0x5d8624
jmp case.0x5e2428.6
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x5de5ed
cmp eax, 0x202e
jg 0x5d86b8
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb 0x5d8624
jmp case.0x5e2428.6
mov edi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x5e349c
mov dword [esp + 8], edi
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x5e349c
cmp eax, 0x85
jmp 0x5de6dd
mov esi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x5dd6e6
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x5dd6e6
cmp eax, 0x85
jne 0x5e3371
mov dword [esp + 8], esi
jmp 0x5d8624
mov ebp, edx
cmp ebp, eax
jae 0x5dd7c0
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 + 0x6f7ff0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx edx, byte [ecx*8 + 0x6f6972]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x5dd76b
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x5dd76b
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 + 0x6f7ff0]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6972]
mov edi, 1
shl edi, cl
and edi, dword [edx*4 + 0x6f5ec4]
je 0x5dd7b2
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x5dd7c0
test edi, edi
mov edx, ecx
jne 0x5dd72c
cmp ebp, eax
jb 0x5dd7e9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5dd7e9
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5dd7e9
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x5daa40
cmp eax, 0x9f
jle 0x5de6d1
cmp eax, 0xa0
je 0x5e349c
cmp eax, 0x1680
je 0x5e349c
cmp eax, 0x180e
jmp 0x5de6dd
xor eax, eax
jmp 0x5d89db
cmp dword [esp + 0x44], 0
jne 0x5e3371
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp esi, eax
jae 0x5e00a2
lea edi, [esi + 2]
cmp dword [esp + 0x34], 0
je 0x5dd86a
movzx edx, word [esi]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5dd86a
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 0x5dd842
jmp 0x5db79f
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 0x5e01c7
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5dd8d2
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5dd8d2
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5dd8d4
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 + 0x6f7ff0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x5dd91b
movsx edx, dl
mov esi, dword [edx*4 + 0x6f5c20]
cmp dword [esp + 0x44], esi
je 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5dd88a
jmp 0x5db79f
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 0x5e0205
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5dd98d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5dd98d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5dd98f
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 + 0x6f7ff0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [edx*4 + 0x6f5e4c], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5dd945
jmp 0x5db79f
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 0x5e0243
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5dda44
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5dda44
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5dda46
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 + 0x6f7ff0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5dd9fc
jmp 0x5db79f
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 0x5e0281
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5ddaf4
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5ddaf4
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5ddaf6
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 + 0x6f7ff0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6970]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5ddaac
jmp 0x5db79f
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 0x5e02bf
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5ddba4
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5ddba4
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5ddba6
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 + 0x6f7ff0]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
mov edx, dword [edx*4 + 0x6f5e4c]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5ddb5c
jmp 0x5db79f
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 0x5e02fd
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5ddc5d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5ddc5d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5ddc5f
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 + 0x6f7ff0]
shl esi, 7
mov ebp, edx
sub ebp, ebx
add ebp, esi
movzx esi, word [ebp + ebp + 0x6fa1f0]
movzx esi, byte [esi*8 + 0x6f6971]
mov esi, dword [esi*4 + 0x6f5e4c]
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 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5ddc15
jmp 0x5db79f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x6f6838]
mov edx, 1
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x5e033b
lea ebx, [edi + 2]
movzx esi, word [edi]
cmp dword [esp + 0x34], 0
je 0x5ddd33
mov ebp, esi
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x5ddd33
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 0x5ddd37
mov dword [esp + 0xc], ebx
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x6f6834]
cmp esi, ebx
jb 0x5ddd5e
mov ebp, ecx
nop dword [eax + eax]
cmp esi, ebx
je 0x5ddd6a
mov ebx, dword [ebp]
add ebp, 4
cmp esi, ebx
jae 0x5ddd50
cmp dword [esp + 0x44], 0
jne 0x5ddd75
jmp 0x5e3371
cmp dword [esp + 0x44], 0
jne 0x5e3371
cmp edx, dword [esp + 0x10]
lea edx, [edx + 1]
jl 0x5ddce7
jmp 0x5db79f
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 0x5e0379
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5ddddb
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5ddddb
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5ddddd
mov edi, esi
mov bl, 1
cmp edx, 0x24
je 0x5dde08
cmp edx, 0x40
je 0x5dde08
cmp edx, 0x60
je 0x5dde08
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 0x5e3371
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5ddd93
jmp 0x5db79f
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 0x5dde88
add ebp, 2
lea ecx, [eax - 0x62]
mov edx, eax
and edx, 1
mov dword [esp + 4], edx
movsx edi, byte [eax + 0x6f5b9e]
movsx eax, byte [eax + 0x6f5ba9]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x5ddeb6
lea ecx, [ecx - 0x68]
movzx ecx, cx
cmp ecx, 2
jae 0x5ddf11
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 0x5daa40
jns 0x5ddecf
test edi, edi
je 0x5daa40
test edi, edi
jle 0x5de313
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.005e4710
add esp, 0x10
test eax, eax
js 0x5dfc83
lea ebp, [ebp + eax*2]
inc esi
cmp esi, edi
jl 0x5ddedd
jmp 0x5de317
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.005e4710
add esp, 0x10
test eax, eax
js 0x5e1f46
lea esi, [esi + eax*2]
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebp
jmp 0x5daa40
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5ddf6a
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5ddf6a
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
mov dword [esp + 8], ebp
cmp dword [esp + 0x4c], 0
jne 0x5daa40
jmp 0x5df321
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d8af1
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5d8af1
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x5d8af3
jmp 0x5e00dc
mov eax, esi
jmp 0x5d8af3
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x5e2428.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 0x5ddff1
cmp eax, 0x77
jne 0x5e01ba
movzx edx, word [ecx + 2]
movzx eax, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
cmp eax, 0x77
je 0x5ddff1
mov ebx, dword [ebp + 0x84]
mov esi, dword [ebp + 0x90]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x2c], esi
je 0x5de023
cmp ebx, dword [esp + 8]
jne 0x5df793
add ecx, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 8], ebx
jmp 0x5daa40
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 0x5de066
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x5de066
cmp ecx, 1
je 0x5e3371
movzx eax, word [edx + 2]
cmp ax, word [esi + 0x36]
je 0x5e3371
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x5daa5e.13
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
add ecx, 0xfffffffe
cmp dword [esp + 8], ecx
jne case.0x5daa5e.13
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x5daa5e.13
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x5daa5e.13
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x5daa5e.13
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 8]
cmp edx, ecx
jae 0x5e0ac8
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x5d89c6
cmp eax, ecx
jae 0x5d89c6
movzx ecx, word [edx + 2]
and ecx, 0xfc00
add edx, 4
cmp ecx, 0xdc00
cmove eax, edx
jmp 0x5d89c6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
sub eax, ecx
cmp eax, 1
jle 0x5e20a8
movzx eax, word [ebp + 2]
cmp ax, word [ecx]
jne 0x5e3371
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x5de307
xor eax, eax
mov ebx, dword [esp + 8]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x5de153
mov edx, ecx
cmp eax, dword [edx + 4]
jne 0x5de14d
cmp ebx, dword [edx + 0x14]
je 0x5e00e9
mov edx, dword [edx]
test edx, edx
jne 0x5de13f
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 0x5de18c
lea eax, [esp + 0xc4]
mov dword [esp + 0x64], eax
jmp 0x5de1ac
shl ecx, 2
sub esp, 0xc
push ecx
call dword [0x6f4478]
add esp, 0x10
mov dword [esp + 0x64], eax
test eax, eax
je 0x5e209b
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 0x5de1e6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, cx
movzx eax, byte [eax + 0x6f5d38]
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.005d84c0
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 0x5deee0
cmp esi, 0xfffffc19
je 0x5deee0
lea ecx, [esi + 0x3e4]
cmp ecx, 4
jbe 0x5e00f6
test esi, esi
jne 0x5e010f
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 0x5de1cb
jmp 0x5e0138
add eax, eax
mov edi, dword [esp + 8]
sub edi, eax
mov eax, dword [esp + 0x158]
cmp edi, dword [eax + 0x78]
jb 0x5e01ba
mov eax, dword [esp + 0x24]
cmp edi, dword [eax]
jae 0x5de303
mov eax, dword [esp + 0x24]
mov dword [eax], edi
jmp 0x5de303
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x5de2e6
mov ecx, dword [edx + 0x3c]
movzx eax, byte [ecx + eax]
movzx ecx, word [edi]
cmp ecx, 0xff
ja 0x5de2f8
mov edx, dword [edx + 0x3c]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x5e3371
add edi, 2
mov dword [esp + 8], edi
add ebp, 4
mov dword [esp + 0x14], ebp
jmp 0x5daa40
mov ebp, dword [esp + 8]
mov dword [esp + 8], ebp
cmp edi, dword [esp + 0x28]
je 0x5daa40
jmp 0x5e1a55
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5de34f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5de34f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x5daa40
jmp 0x5df398
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5de388
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5de388
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x5daa40
jmp 0x5df3f1
mov edx, 1
cmp eax, 0x7f
ja 0x5de3d7
movzx ecx, word [edi]
cmp ecx, 0xff
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx + eax]
ja 0x5de3bc
movzx ecx, byte [edx + ecx]
cmp ecx, eax
jne 0x5e3371
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
jmp 0x5daa40
add ebp, 2
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5de7a1
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 0x5de7a8
mov edx, dword [edx + 0x40]
movzx edx, byte [edx + eax]
cmp eax, ecx
je 0x5e349c
cmp edx, ecx
mov dword [esp + 4], 0
jne 0x5daa40
jmp case.0x5e2428.6
mov edi, esi
mov dword [esp + 8], edi
cmp dword [esp + 0x50], 0
jne 0x5daa40
jmp 0x5df189
cmp eax, 0xff
ja 0x5d89d6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x5d89d8
movzx eax, word [edi + 4]
test eax, eax
je case.0x5dbe89.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 0x5de4c1
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 0x5d958a
dec eax
add edx, ecx
cmp eax, 1
jg 0x5de497
jmp 0x5d958a
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
test eax, eax
je case.0x5dbe89.4
movzx ecx, word [edi + 2]
cmp ecx, 0xffff
je 0x5d9585
cmp dword [eax + 4], ecx
sete al
movzx esi, al
test esi, esi
je case.0x5dbe89.4
jmp 0x5df204
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0xa8]
test esi, esi
je case.0x5dbe89.4
movzx eax, word [edi + 4]
test eax, eax
je case.0x5dbe89.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 0x5df204
dec eax
add edx, ecx
cmp eax, 1
jg 0x5de548
jmp case.0x5dbe89.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.005d84c0
add esp, 0x20
cmp eax, 0xfffffc20
je case.0x5dbe89.4
test eax, eax
je case.0x5dbe89.4
jmp 0x5df86d
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x5e2428
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x5e4334]
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 0x5da9d7
jmp 0x5da9fc
cmp eax, 0x9f
jle 0x5d8b53
cmp eax, 0xa0
mov dword [esp + 4], 0
je 0x5d8624
cmp eax, 0x1680
je 0x5d8624
cmp eax, 0x180e
je 0x5d8624
jmp case.0x5e2428.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
mov esi, eax
sub esi, edx
cmp ebx, esi
ja 0x5e0c4d
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x5e0c4d
cmp ecx, 1
jne 0x5d8b07
mov ecx, 1
jmp 0x5d8b15
mov ebx, dword [esp + 0x158]
cmp edx, 0xc
jle 0x5dc615
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x5de6a5
cmp edx, 0x85
je 0x5de6a5
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x5e2428.6
cmp eax, ecx
jae 0x5d8eb3
movzx ecx, word [eax]
lea edx, [eax + 2]
cmp ecx, 0xa
jmp 0x5de0f7
cmp dword [ebx + 0x6c], 0
je 0x5d89c6
jmp 0x5e3371
cmp eax, 0x202f
je 0x5e349c
cmp eax, 0x205f
je 0x5e349c
cmp eax, 0x3000
jmp 0x5de6dd
cmp eax, 9
je 0x5e349c
cmp eax, 0x20
mov dword [esp + 4], 0
jne 0x5d8624
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5de715
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5de715
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e00dc
mov dword [esp + 8], edx
cmp dword [esp + 0x4c], 0
jne 0x5daa40
jmp 0x5df505
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5d8e6b
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5d8e6b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x5d8e6d
jmp 0x5e00dc
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 0x5d8d1e
jmp 0x5d8d95
add edi, 2
mov dword [esp + 8], edi
lea edx, [ebp + edx*2]
mov dword [esp + 0x14], edx
cmp eax, ecx
je 0x5daa40
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 + 0x6f7ff0]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x6fa1f0]
add eax, dword [edx*8 + 0x6f6974]
mov dword [esp + 4], 0
cmp ecx, eax
je 0x5daa40
jmp case.0x5e2428.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + ecx*2]
cmp edi, eax
jb 0x5e01ba
lea eax, [ecx + ecx]
mov edx, edi
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x5e01ba
cmp ecx, 1
je 0x5d8624
neg ecx
movzx eax, word [edi + ecx*2 + 2]
cmp ax, word [esi + 0x36]
je 0x5d8624
jmp 0x5e01ba
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
cmp dword [esp + 0x34], 0
je 0x5de884
movzx edx, word [ebp]
and edx, 0xfc00
xor ecx, ecx
cmp edx, 0xd800
sete cl
inc ecx
jmp 0x5de889
mov ecx, 1
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x44], 0
jne 0x5da9ec
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x5de85d
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x5de90d
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5de90d
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 + 0x6f7ff0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x5de954
movsx edx, dl
mov esi, dword [edx*4 + 0x6f5c20]
cmp dword [esp + 0x44], esi
je 0x5da9ec
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x5de8c6
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x5de9d9
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5de9d9
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 + 0x6f7ff0]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6971]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [ecx*4 + 0x6f5e4c], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x5da9ec
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5de992
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x5deaa1
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5deaa1
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 + 0x6f7ff0]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6971]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x5da9ec
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5dea5a
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x5deb62
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5deb62
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 + 0x6f7ff0]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6970]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x5da9ec
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5deb1b
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x5dec23
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5dec23
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 + 0x6f7ff0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6971]
mov edx, dword [edx*4 + 0x6f5e4c]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x5da9ec
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5debdc
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x5deced
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5deced
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 + 0x6f7ff0]
shl esi, 7
mov ebx, ecx
sub ebx, edi
add ebx, esi
movzx esi, word [ebx + ebx + 0x6fa1f0]
movzx esi, byte [esi*8 + 0x6f6971]
mov esi, dword [esi*4 + 0x6f5e4c]
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 0x5da9ec
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5deca6
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x6f6838]
mov dword [esp + 4], ecx
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x5dedd5
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x5dedd5
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 0x5dedd7
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x6f6834]
cmp edx, ebx
jb 0x5dedf8
mov ebp, dword [esp + 4]
cmp edx, ebx
je 0x5dee04
mov ebx, dword [ebp]
add ebp, 4
cmp edx, ebx
jae 0x5dedea
cmp dword [esp + 0x44], 0
jne 0x5dee0f
jmp 0x5da9ea
cmp dword [esp + 0x44], 0
jne 0x5da9ea
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 0x5ded8a
jmp 0x5da9ec
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x5da9ec
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x5d8e81
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x5dee8c
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5dee8c
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 0x5deeb7
cmp edx, 0x40
je 0x5deeb7
cmp edx, 0x60
je 0x5deeb7
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 0x5da9ec
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x5dee45
jmp 0x5da9ec
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x5deefc
sub esp, 0xc
push eax
call dword [0x6f447c]
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 0x5daa40
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x5e13a9
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x5e13a9
cmp ecx, 1
je 0x5d8624
movzx eax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x5d8624
jmp 0x5e13a9
cmp eax, 0xff
ja 0x5d8c51
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x5d8c53
movzx eax, byte [ecx*8 + 0x6f6971]
cmp eax, 9
ja 0x5def9a
mov ecx, 0x320
bt ecx, eax
jb case.0x5dd287.0
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x5d8ae1
jmp 0x5e3371
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x6f6971]
cmp dword [ecx*4 + 0x6f5e4c], eax
jmp 0x5defde
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x6f6971]
jmp 0x5defdc
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x6f6970]
cmp eax, ecx
setne al
movzx ecx, word [esp + 0x28]
cmp ecx, 0x10
jmp 0x5df02b
movzx eax, byte [ecx*8 + 0x6f6971]
mov eax, dword [eax*4 + 0x6f5e4c]
or eax, 2
cmp eax, 3
jmp 0x5df020
movzx ecx, byte [ecx*8 + 0x6f6971]
mov ecx, dword [ecx*4 + 0x6f5e4c]
or ecx, 2
cmp ecx, 3
je case.0x5dd287.0
cmp eax, 0x5f
sete al
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
jne 0x5d8ae1
jmp 0x5e3371
movzx edx, word [ebp + 4]
mov ecx, dword [edx*4 + 0x6f6834]
cmp eax, ecx
jb 0x5d85be
lea edx, [edx*4 + 0x6f6838]
cmp eax, ecx
je 0x5d85f1
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x5df055
jmp 0x5d85be
movzx edi, word [ebp + 4]
lea ebx, [edi + edi]
mov eax, dword [esp + 0x158]
cmp ebx, dword [eax + 0x14]
jl 0x5e1da9
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 0x5df0d9
cmp dword [ebp + 0x70], 0
jne 0x5df0e3
mov ecx, ebx
movzx eax, word [ecx + 2]
movzx eax, word [ecx + eax*2]
cmp eax, 0x77
je 0x5df0e3
jmp 0x5df1f0
lea ebx, [ebx + eax*2]
mov dword [ebp + 0x94], esi
mov dx, 0x77
cmp byte [esp + 4], 0
je 0x5df0ab
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 + 0x6f5d38]
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.005d84c0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x5df13c
test eax, eax
jne 0x5dfc1c
mov ax, word [ebx + 2]
jmp 0x5df163
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5e1eff
movzx edx, word [edi]
cmp edx, 0x77
je 0x5df163
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x5e1eff
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 0x5df0c5
jmp 0x5e01ba
mov edi, dword [esp + 8]
cmp edi, ebx
jbe 0x5df38d
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
movzx eax, word [edi - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x5df1e0
add edi, 0xfffffffe
jmp 0x5df1e3
add edi, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp edi, ebx
ja 0x5df1a0
jmp 0x5df3ea
movzx eax, dx
movzx eax, byte [eax + 0x6f5d38]
mov edx, ebx
lea edx, [edx + eax*2]
jmp 0x5df4a4
movzx eax, bp
mov cl, byte [eax + 0x6f5d38]
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 0x5e3568
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
jmp 0x5df75e
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5df9d2
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
je 0x5df29f
movzx ecx, word [ebx - 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
mov edx, dword [esp + 0x14]
je 0x5df2a7
mov ebx, eax
jmp 0x5df2aa
mov ebx, eax
mov edx, dword [esp + 0x14]
jmp 0x5df2aa
add ebx, 0xfffffffc
cmp ebx, dword [esp + 0xc]
ja 0x5df253
jmp 0x5df765
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x5df30f
add ebx, 0xfffffffe
jmp 0x5df312
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x5df2d2
jmp 0x5df765
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x5df37b
add ebx, 0xfffffffe
jmp 0x5df37e
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x5df33e
jmp 0x5df765
mov edx, dword [esp + 0x14]
mov ebx, edi
jmp 0x5df75e
mov eax, dword [esp + 8]
mov ebx, edi
cmp eax, ebx
je 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
add ebx, 0xfffffffe
cmp edi, ebx
mov edx, dword [esp + 0x14]
jne 0x5df3b7
mov ebx, edi
jmp 0x5df765
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
cmp eax, ebx
je 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x5df412
jmp 0x5df55b
cmp eax, 0x7a
jne 0x5df564
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5df9d2
movzx eax, word [ebx]
cmp eax, 0x81
je 0x5e389e
movzx eax, ax
cmp eax, 0x88
jae 0x5e3954
mov edx, ebx
mov ebx, dword [esp + 8]
jmp 0x5df765
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x5df4ce
jmp 0x5df55b
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x5df526
mov ebx, dword [esp + 0xc]
jmp 0x5df765
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.005d84c0
add esp, 0x20
test eax, eax
je 0x5df5a5
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x5e3706
cmp dword [ebp + 0xb8], ebx
jne 0x5e3c0a
movzx eax, word [ebx]
add dword [esp + 0xc], 4
cmp eax, 0x81
je 0x5e38f0
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x5df765
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x5df75a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5df9d2
lea ebx, [edi - 2]
cmp dword [esp + 0x34], 0
movzx ecx, word [edi - 2]
je 0x5df65b
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 0x5df65b
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 0x5df75a
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 + 0x6f7ff0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6972]
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
movzx edx, word [ebx - 2]
je 0x5df6e6
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x5df6b9
lea eax, [ebx - 4]
movzx edx, word [eax]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5df6e6
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 + 0x6f7ff0]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x6fa1f0]
movzx edx, byte [edx*8 + 0x6f6972]
mov esi, dword [edx*4 + 0x6f5ec4]
bt esi, ecx
jae 0x5df738
cmp eax, dword [esp + 0xc]
mov ecx, edx
mov ebx, eax
ja 0x5df69a
jmp 0x5df862
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 0x5df5e2
jmp 0x5df4a4
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 0x5d856a
jmp case.0x5e2428.6
mov edi, ecx
cmp eax, 0x7a
jne 0x5df8cc
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.005d84c0
add esp, 0x20
mov ecx, eax
test eax, eax
mov edx, dword [esp + 0xc]
je 0x5df765
jmp 0x5e3706
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
jbe 0x5df229
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5df9d2
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x5df82f
add ebx, 0xfffffffe
jmp 0x5df832
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebp, 0x11
jne 0x5df857
mov ecx, ebx
cmp ecx, dword [esp + 0xc]
jbe 0x5df857
movzx eax, word [ecx]
cmp eax, 0xa
jne 0x5df857
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x5df857
add ebx, 0xfffffffe
cmp ebx, dword [esp + 0xc]
ja 0x5df7ec
jmp 0x5df75e
mov edx, dword [esp + 0x14]
mov ebx, eax
jmp 0x5df75e
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x5e2428.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 0x5df896
mov esi, dword [esp + 0x2c]
cmp ecx, esi
movzx edx, bp
cmovge esi, ecx
mov dword [esp + 0x2c], esi
movzx ecx, byte [edx + 0x6f5d38]
mov edx, 2
sub edx, ecx
lea edi, [eax + edx*2]
jmp 0x5df20d
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.005d84c0
add esp, 0x20
mov ecx, eax
test eax, eax
jne 0x5e3706
add edi, 4
mov edx, edi
jmp 0x5df75e
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
je 0x5df97a
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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5df9d2
mov esi, ebx
lea ebx, [ebx - 2]
cmp ebp, 0x11
mov edx, dword [esp + 0x14]
jne 0x5df972
cmp ebx, dword [esp + 0xc]
jbe 0x5df972
movzx ecx, word [ebx]
cmp ecx, 0xa
jne 0x5df972
movzx ecx, word [esi - 4]
cmp ecx, 0xd
jne 0x5df972
add esi, 0xfffffffc
mov ebx, esi
cmp ebx, dword [esp + 0xc]
jne 0x5df91a
jmp 0x5df97e
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0xc]
jmp 0x5df765
mov eax, dword [esp + 0x160]
test eax, eax
je 0x5df9b4
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.0x5e2428.6
sub esp, 0xc
lea ecx, [esp + 0x16c]
xor edx, edx
push 1
push 0
push 0
push 0
push 0
call fcn.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
jmp case.0x5e2428.6
cmp ebx, dword [esp + 0x14]
jb 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov dword [esp + 4], 0xffffffeb
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov edi, edx
mov edx, dword [esp + 8]
cmp edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x158]
jne 0x5dfbb2
movzx eax, di
cmp eax, 0x9f
je 0x5dfbb2
cmp dword [ecx + 0xa8], 0
je 0x5e03b7
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 0x5e0cd9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x5e2428.6
movzx eax, word [ebx]
cmp eax, 0x81
jne 0x5e0a10
mov esi, dword [esp + 0x158]
jmp 0x5e0ccc
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp eax, 0xfffffffe
jne 0x5dfc8e
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb 0x5e01ba
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
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.0x5e2428.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
lea ecx, [eax + 0x3e7]
cmp ecx, 2
jb 0x5dfda8
cmp eax, 0xfffffc1f
je 0x5dfdc4
cmp eax, 1
mov ebx, dword [esp + 0x158]
jne 0x5df9d2
cmp dword [ebx + 0xb0], 0
mov dword [esp + 4], eax
je 0x5e0c42
cmp eax, 0xfffffc1f
jne case.0x5e2428.6
sub esp, 8
mov eax, dword [esp + 0x160]
push dword [eax + 0x80]
push edi
call fcn.00626410
add esp, 0x10
mov dword [esp + 4], 0xfffffc1f
test eax, eax
jne case.0x5e2428.6
jmp 0x5dfe31
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
mov dword [eax + 0x80], ecx
mov dword [esp + 4], 0xfffffc1e
jmp case.0x5e2428.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
cmp eax, 1
je 0x5dfebf
test eax, eax
je 0x5e004a
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x5df9d2
cmp dword [ebx + 0xb0], 0
jne 0x5dfece
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x5e2428.6
jmp 0x5e004a
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1c
jmp 0x5dff68
mov dword [esp + 4], 0xfffffffb
jmp case.0x5e2428.6
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov dword [esp + 4], ecx
jmp case.0x5e2428.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
cmp eax, 1
je 0x5dffe0
test eax, eax
je 0x5dfffb
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x5df9d2
cmp dword [ebx + 0xb0], 0
jne 0x5dffef
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x5e2428.6
mov dword [esp + 4], 0xfffffc1d
jmp case.0x5e2428.6
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc20
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov dword [esp + 4], 0xfffffff4
jmp case.0x5e2428.6
mov dword [esp + 4], 0xffffffe6
jmp case.0x5e2428.6
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x5e01ba
sub esp, 0xc
push eax
jmp 0x5e0158
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
mov dword [esp + 4], esi
je case.0x5e2428.6
sub esp, 0xc
push eax
call dword [0x6f447c]
add esp, 0x10
jmp case.0x5e2428.6
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x5e01ba
sub esp, 0xc
push eax
call dword [0x6f447c]
add esp, 0x10
mov dword [esp + 4], 0
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
cmp eax, 1
mov dword [esp + 4], eax
je 0x5e01ba
jmp case.0x5e2428.6
cmp eax, 0xfffffc19
mov dword [esp + 4], eax
jne case.0x5e2428.6
mov dword [esp + 4], 0
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov dword [esp + 4], 0
cmp dword [ecx + 0x60], 0
jne case.0x5e2428.6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x64], 0
mov edx, dword [esp + 8]
je 0x5dfbb2
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 0x30], eax
jne 0x5dfbb2
jmp 0x5e01ba
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.005d84c0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.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 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
lea eax, [esi - 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
ja 0x5e0476
mov eax, dword [ebx]
cmp eax, dword [ebp]
je 0x5e04f0
test ecx, ecx
jle 0x5e19cd
mov eax, dword [esp + 0x34]
lea eax, [esi + eax*2]
cmp ebx, eax
ja 0x5e19cd
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 0x5e19cd
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.005d84c0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e0448
jmp case.0x5e2428.6
mov eax, 2
jmp 0x5e04b1
mov eax, dword [esp + 0x50]
test eax, eax
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
js 0x5e0ce5
cmp eax, 0xa
mov edx, dword [esp + 0x14]
ja case.default.0x5dd287
jmp dword [eax*4 + 0x5e4148]
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ebp, 0x80001f
mov edx, dword [esp + 0x10]
inc edx
cmp edx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x5e378b
mov dword [esp + 0x10], edx
lea edi, [ecx + 2]
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
je 0x5e05c4
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e05c4
shl eax, 0xa
and eax, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 4
and edx, 0x3ff
lea eax, [eax + edx + 0x10000]
jmp 0x5e05c6
mov ecx, edi
mov edx, dword [esp + 0x14]
cmp eax, 0x180d
jle 0x5e05e3
lea edi, [eax - 0x2000]
cmp edi, 0x5f
ja case.default.0x5e05dc
jmp dword [edi*4 + 0x5e4174]
cmp eax, 0x84
jg 0x5e063c
lea edi, [eax - 9]
cmp edi, 0x17
ja case.0x5e05dc.8203
bt ebp, edi
jae case.0x5e05dc.8203
cmp dword [esp + 0x44], 0
jne 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e0561
jmp case.0x5e2428.6
cmp eax, 0x85
je case.0x5e05dc.8192
cmp eax, 0xa0
je case.0x5e05dc.8192
cmp eax, 0x1680
je case.0x5e05dc.8192
jmp case.0x5e05dc.8203
cmp eax, 0x3000
je case.0x5e05dc.8192
cmp eax, 0x180e
je case.0x5e05dc.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 + 0x6f7ff0]
shl edi, 7
sub eax, edx
mov edx, dword [esp + 0x14]
add eax, edi
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
xor ebx, ebx
cmp dword [eax*4 + 0x6f5e4c], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x5e0602
jmp 0x5e3371
mov dword [esp + 4], 0xfffffff2
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x5e07d9
test eax, eax
jne case.0x5e2428.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x5e28f9
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x5e0763
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 0x5e076a
add edx, 2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
cmp ebx, eax
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e0708
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
cmp edi, dword [esp + 0x40]
jge 0x5e3371
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 0x5e35a9
movzx eax, word [ecx]
cmp edx, eax
mov edx, dword [esp + 0x14]
jne 0x5e07ac
jmp 0x5e3371
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.005d84c0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x5e0954
test eax, eax
jne case.0x5e2428.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x5e2937
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x5e08b8
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 0x5e08c7
jmp 0x5e349c
add edx, 2
mov dword [esp + 0xc], edx
cmp ebx, eax
je 0x5e349c
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
je case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e085d
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
cmp edi, dword [esp + 0x40]
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov edx, dword [esp + 0x28]
jae 0x5e35e7
movzx eax, word [ecx]
cmp edx, eax
je 0x5e349c
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
jne 0x5e0919
jmp case.0x5e2428.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.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0xb8], ebx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x5e2428.6
movzx eax, ax
cmp eax, 0x77
movzx eax, word [ebx + 2]
mov esi, dword [esp + 0x158]
jne 0x5e0cc4
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 0x5e0a27
jmp 0x5e0cc6
mov dword [esp + 4], 1
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
jmp 0x5dfd1e
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 0x5e0b5e
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov ecx, edi
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x5e34f0
cmp bx, word [ecx]
mov edx, dword [esp + 0x14]
je 0x5e0b3c
jmp 0x5e3371
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 0x5e0bf4
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x5e352a
movzx eax, word [ecx]
cmp bx, ax
mov edx, dword [esp + 0x14]
je 0x5e0bcc
cmp edi, eax
je 0x5e0bcc
jmp 0x5e3371
mov dword [ebx + 0xb0], edi
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x5e01ba
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x5e01ba
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x5e01ba
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
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.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 8], ebp
cmp ebp, 0x16
mov dword [esp + 4], eax
jne 0x5e145a
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x5e2428.6
cmp dword [esp + 0x10], ecx
jge 0x5e349c
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 0x5e3625
lea edx, [ecx + 2]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
je 0x5e0d92
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5e0d92
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 0x5e0d94
mov esi, edx
mov dword [esp + 0xc], esi
cmp esi, eax
jae 0x5e0e85
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 + 0x6f7ff0]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx edx, byte [ecx*8 + 0x6f6972]
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x5e0e19
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x5e0e19
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 + 0x6f7ff0]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6972]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x6f5ec4]
je 0x5e0e65
mov edx, dword [esp + 0xc]
lea edx, [edx + esi*2]
jmp 0x5e0e69
mov edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
cmp edx, eax
jae 0x5e0e81
test ebx, ebx
mov edx, ecx
mov edi, dword [esp + 0x2c]
jne 0x5e0dd3
jmp 0x5e0e85
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0xc], eax
jb 0x5e0eb4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e0eb4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e0eb4
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x5e283e
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x5e0d2b
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov dword [esp + 4], 0xfffffff4
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
add ebp, 4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc1f
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x5e01ba
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x5e01ba
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x5e01ba
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x28]
je 0x5e23a6
test eax, eax
jne case.0x5e2428.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x5e349c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, eax
mov esi, dword [esp + 0x158]
jae 0x5e3860
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x5e150c
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x5e14d2
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5e150c
jmp 0x5e349c
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x5e150c
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x5e150c
cmp ecx, 1
je 0x5e349c
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x5e349c
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5e153d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5e1540
add edi, 2
mov dword [esp + 0xc], edi
cmp ebx, 0xf
ja case.default.0x5e2428
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x5e40c8]
cmp eax, 0xff
ja case.0x5e1555.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0xff
ja 0x5e349c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0xff
ja case.0x5e1555.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0xff
ja 0x5e349c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0xff
ja case.0x5e1555.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0xff
ja 0x5e349c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x5e1555.7
jmp 0x5e349c
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x5e1555.7
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [edx]
jb case.0x5e1555.7
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne case.0x5e1555.7
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne case.0x5e1555.7
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 0x34]
cmp eax, edx
jne case.0x5e1555.7
mov eax, dword [esp + 0x20]
mov dword [eax], 1
cmp ecx, 1
jle case.0x5e1555.7
jmp 0x5e283e
cmp eax, 0xc
jle 0x5e17da
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x5e17e6
cmp eax, 0x85
je 0x5e17e6
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x5e2428.6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
jae case.0x5e1555.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
cmp eax, 0xa
jne case.0x5e1555.7
add dword [esp + 0xc], 2
jmp case.0x5e1555.7
cmp eax, 0x1fff
jle 0x5e17a1
cmp eax, 0x202e
jg 0x5e181c
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x5e1555.7
jmp case.0x5e2428.6
cmp eax, 0x1fff
jle 0x5e17fc
cmp eax, 0x202e
jg 0x5e1861
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x5e1555.7
jmp case.0x5e2428.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x5e349c
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x5e349c
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x5e1555.7
jmp case.0x5e2428.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x5e1555.7
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x5e1555.7
cmp eax, 0x85
je case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0x9f
jle 0x5e1846
cmp eax, 0xa0
je 0x5e349c
cmp eax, 0x1680
je 0x5e349c
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x5e1555.7
jmp case.0x5e2428.6
lea ecx, [eax - 0xb]
cmp ecx, 2
jae 0x5e1876
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x5e1555.7
jmp 0x5e349c
cmp eax, 0x9f
jle 0x5e187b
cmp eax, 0xa0
je case.0x5e1555.7
cmp eax, 0x1680
je case.0x5e1555.7
cmp eax, 0x180e
jmp 0x5e1883
cmp eax, 0x202f
je 0x5e349c
cmp eax, 0x205f
je 0x5e349c
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x5e1555.7
jmp case.0x5e2428.6
cmp eax, 9
je 0x5e349c
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x5e1555.7
jmp case.0x5e2428.6
cmp eax, 0x202f
je case.0x5e1555.7
cmp eax, 0x205f
je case.0x5e1555.7
cmp eax, 0x3000
jmp 0x5e1883
cmp eax, 0xa
jmp 0x5e1883
cmp eax, 9
je case.0x5e1555.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x5e2428.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.005d84c0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e147b
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp ebx, esi
jb 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
cmp edi, edx
jb 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
cmp byte [esp + 4], 0
je 0x5e2266
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
dec edi
inc edi
cmp edi, dword [esp + 0x28]
jge 0x5e3371
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.005e4710
add esp, 0x10
test eax, eax
js 0x5e37c9
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e1a9c
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
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.005d84c0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x5e2975
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x5e2428.6
dec ebx
movzx esi, cx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x5e3371
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x5e3826
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5e1bc7
add edi, 4
jmp 0x5e1bd1
add edi, 2
cmp eax, 0x100
jb 0x5e1bdf
mov edx, dword [esp + 0x14]
cmp esi, 0x6e
jne 0x5e1bfb
jmp 0x5e3371
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 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e1b98
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
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 0x5e1e3f
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, byte [edx + 0x6f5d38]
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.005d84c0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x5e1e94
test eax, eax
jne 0x5e34a9
mov edx, dword [esp + 0xc]
mov ax, word [edx + 2]
mov esi, dword [esp + 8]
jmp 0x5e1ec1
movzx eax, word [esi + 2]
lea ecx, [esi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x5e1eff
movzx edx, word [esi]
cmp edx, 0x77
mov esi, dword [esp + 8]
jne 0x5e1eb5
mov edx, dword [esp + 0xc]
jmp 0x5e1ec1
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, dword [esp + 0xc]
jne 0x5e1eff
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 0x5e1e22
xor esi, esi
jmp 0x5e34bd
mov dword [esp + 4], 0xfffffc20
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp eax, 0xfffffffe
jne 0x5e1f55
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 0x5e01ba
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov dword [esp + 4], 0xfffffffa
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
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 0x5e2167
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov ecx, dword [esp + 8]
cmp ecx, edi
jbe 0x5e3371
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x5e21a7
add ecx, 0xfffffffe
jmp 0x5e2149
add ecx, 0xfffffffc
jmp 0x5e2149
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp edi, dword [esp + 0x28]
mov esi, dword [esp + 8]
jge 0x5e36ad
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.005e4710
add esp, 0x10
test eax, eax
js 0x5e3663
lea esi, [esi + eax*2]
inc edi
cmp edi, dword [esp + 0x28]
jl 0x5e2278
jmp 0x5e369b
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
dec ebx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov eax, ecx
jae 0x5e3916
lea ecx, [eax + 2]
movzx eax, word [eax]
cmp dword [esp + 0x34], 0
je 0x5e2349
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e2349
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 0x5e234d
mov dword [esp + 0xc], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.00626620
add esp, 0x10
test eax, eax
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e22e9
jmp case.0x5e2428.6
test eax, eax
jne case.0x5e2428.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x5e349c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, ecx
jae 0x5e3978
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x5e2411
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x5e244f
sub esp, 0xc
push 0
push dword [esp + 0x58]
push ecx
push eax
push edi
call fcn.00626240
add esp, 0x20
test eax, eax
je 0x5e2490
jmp 0x5e349c
cmp ebx, 0xf
ja case.default.0x5e2428
lea ebp, [edi + 2]
movzx eax, word [edi]
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x5e4108]
cmp eax, 0xff
ja case.0x5e2428.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x5e2428.7
jmp 0x5e349c
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
lea edx, [eax + eax]
sub ecx, edx
cmp edi, ecx
ja 0x5e2490
movzx ecx, word [edi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x5e2490
cmp eax, 1
je 0x5e349c
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x5e349c
lea ebp, [edi + 2]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x5e2428.7
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb case.0x5e2428.7
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x5e2428.7
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x5e2428.7
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x5e2428.7
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle case.0x5e2428.7
jmp 0x5e283e
cmp eax, 0xff
ja 0x5e349c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x5e2428.7
jmp 0x5e349c
cmp eax, 0xff
ja case.0x5e2428.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x5e2428.7
jmp 0x5e349c
cmp eax, 0xff
ja 0x5e349c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x5e2428.7
jmp 0x5e349c
cmp eax, 0xff
ja case.0x5e2428.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x5e2428.7
jmp 0x5e349c
cmp eax, 0xff
ja 0x5e349c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x5e2428.7
jmp 0x5e349c
movsx edx, ax
cmp edx, 0xc
jle 0x5e271c
lea edx, [eax - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x5e272b
movzx eax, ax
cmp eax, 0x85
je 0x5e272b
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x5e2428.6
cmp ebp, ecx
jae case.0x5e2428.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cmp eax, 0xa
jne case.0x5e2428.7
mov ebp, dword [esp + 0xc]
add ebp, 4
jmp case.0x5e2428.7
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x5e26df
cmp ecx, 0x202e
jg 0x5e276d
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x5e2428.7
jmp case.0x5e2428.6
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x5e2741
cmp ecx, 0x202e
jg 0x5e27b5
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x5e2428.7
jmp case.0x5e2428.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb 0x5e349c
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb 0x5e349c
movzx eax, ax
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x5e2428.7
jmp case.0x5e2428.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x5e2428.7
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x5e2428.7
movzx eax, ax
cmp eax, 0x85
je case.0x5e2428.7
jmp 0x5e349c
movzx eax, ax
cmp ecx, 0x9f
jle 0x5e279a
cmp eax, 0xa0
je 0x5e349c
cmp eax, 0x1680
je 0x5e349c
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x5e2428.7
jmp case.0x5e2428.6
lea ecx, [eax - 0xb]
movzx ecx, cx
cmp ecx, 2
jae 0x5e27cd
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x5e2428.7
jmp 0x5e349c
movzx eax, ax
cmp ecx, 0x9f
jle 0x5e27d5
cmp eax, 0xa0
je case.0x5e2428.7
cmp eax, 0x1680
je case.0x5e2428.7
cmp eax, 0x180e
jmp 0x5e27dd
movzx eax, ax
cmp eax, 0x202f
je 0x5e349c
cmp eax, 0x205f
je 0x5e349c
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x5e2428.7
jmp case.0x5e2428.6
cmp eax, 9
je 0x5e349c
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x5e2428.7
jmp case.0x5e2428.6
movzx eax, ax
cmp eax, 0x202f
je case.0x5e2428.7
cmp eax, 0x205f
je case.0x5e2428.7
cmp eax, 0x3000
jmp 0x5e27dd
movzx eax, ax
cmp eax, 0xa
jmp 0x5e27dd
cmp eax, 9
je case.0x5e2428.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x5e2428.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.005d84c0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 0xc], ebp
je 0x5e23b8
jmp case.0x5e2428.6
mov dword [esp + 4], 0xfffffff2
jmp case.0x5e2428.6
mov dword [esp + 4], 0xfffffff4
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0xc]
jbe 0x5e3371
lea edi, [ecx - 2]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x5e28c4
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov edx, dword [esp + 0x14]
jne 0x5e28c8
add ecx, 0xfffffffc
mov edi, ecx
jmp 0x5e28c8
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 8], edi
je 0x5e2886
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x5e2428.6
movzx esi, cx
cmp ebx, dword [esp + 0x10]
jge 0x5e3371
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x5e39b6
movzx eax, word [edi]
cmp eax, 0x100
mov edx, dword [esp + 0x14]
jb 0x5e29b2
cmp esi, 0x6e
jne 0x5e29d0
jmp 0x5e3371
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 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5e2984
jmp case.0x5e2428.6
mov dword [esp + 4], 0
cmp dword [esp + 8], edi
jb case.0x5e2428.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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
add ebx, 0xfffffffe
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
cmp ebx, edi
jae 0x5e2a20
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x5e39f0
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x5e2ae3
movzx ecx, word [edx]
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x5e2ae9
mov dword [esp + 0xc], eax
jmp 0x5e2af0
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 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e2aa7
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3a2e
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e2bd7
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e2bd7
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 0x5e2bdb
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 + 0x6f7ff0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
add al, 0xfb
xor ecx, ecx
cmp al, 4
ja 0x5e2c2b
movsx eax, al
mov ecx, dword [eax*4 + 0x6f5c20]
cmp dword [esp + 0x44], ecx
mov edx, dword [esp + 0x14]
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e2b77
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3a6c
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e2d06
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e2d06
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 0x5e2d0a
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 + 0x6f7ff0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
xor ecx, ecx
mov edx, dword [esp + 0x54]
cmp dword [eax*4 + 0x6f5e4c], edx
sete cl
cmp dword [esp + 0x44], ecx
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e2ca6
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3aaa
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e2e33
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e2e33
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 0x5e2e37
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 + 0x6f7ff0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e2dd3
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3ae8
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e2f59
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e2f59
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 0x5e2f5d
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 + 0x6f7ff0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6970]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e2ef9
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3b26
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e307f
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e307f
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 0x5e3083
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 + 0x6f7ff0]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x6fa1f0]
movzx eax, byte [eax*8 + 0x6f6971]
mov eax, dword [eax*4 + 0x6f5e4c]
or eax, 2
xor ecx, ecx
cmp eax, 3
sete cl
cmp dword [esp + 0x44], ecx
je 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e301f
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3b64
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e31ae
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e31ae
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 0x5e31b2
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 + 0x6f7ff0]
shl ecx, 7
mov esi, eax
sub esi, edx
add esi, ecx
movzx ecx, word [esi + esi + 0x6fa1f0]
movzx ecx, byte [ecx*8 + 0x6f6971]
mov ecx, dword [ecx*4 + 0x6f5e4c]
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 0x5e3371
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e314e
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x5e2428.6
mov eax, dword [esp + 0x54]
lea ebx, [eax*4 + 0x6f6838]
cmp dword [esp + 0x10], ecx
jge 0x5e3371
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
cmp edi, dword [eax]
jae 0x5e3b97
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x5e32e4
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e32e4
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5e32e6
mov edi, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx*4 + 0x6f6834]
cmp eax, ecx
jb 0x5e3304
mov edx, ebx
cmp eax, ecx
je 0x5e331b
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x5e32f7
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x5e3331
jmp 0x5e349c
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x5e349c
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x5e328f
jmp case.0x5e2428.6
mov dword [esp + 4], 0
jmp case.0x5e2428.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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x5e2428.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x5e349c
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x5e3bc6
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x5e3410
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5e3410
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5e3412
mov esi, ecx
mov dword [esp + 0xc], esi
mov cl, 1
cmp eax, 0x24
je 0x5e344d
cmp eax, 0x40
je 0x5e344d
cmp eax, 0x60
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
je 0x5e3458
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb dl
cmp eax, 0xdfff
seta cl
or cl, dl
jmp 0x5e3458
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
movzx eax, cl
cmp dword [esp + 0x44], eax
mov edx, dword [esp + 0x14]
je 0x5e349c
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x5e33b4
jmp case.0x5e2428.6
mov dword [esp + 4], 0
jmp case.0x5e2428.6
mov esi, 0xfffffc1b
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x5e2428.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.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
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.005d84c0
add esp, 0x20
jmp 0x5df9d2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp eax, 0xfffffffe
jne 0x5e369b
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e369b
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x5e369b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jb case.0x5e2428.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.005d84c0
add esp, 0x20
test eax, eax
jne 0x5e36fd
add esi, edi
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jae 0x5e36b7
jmp case.0x5e2428.6
mov dword [esp + 4], eax
jmp case.0x5e2428.6
mov dword [esp + 4], ecx
jmp case.0x5e2428.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
cmp eax, 0xfffffffe
jne 0x5e37d8
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 0x5e01ba
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
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.005d84c0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x5e2428.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xb8], ecx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x5e2428.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 0x5e09e2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
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 0x5e359c
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e01ba
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x5e01ba
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e01ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.6
jmp 0x5e3bf3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5e3bf3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x5e3bf3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x5e2428.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.0x5e2428.6