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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
mov ebx, edx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], ebx
push esi
push edi
test ebx, ebx
je 0xca6545
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0x28], ecx
cmp eax, dword [esi + 4]
jae 0xcae68f
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0xcae685
cmp dword [esi + 0x9c], 2
je 0xca6579
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], edi
cmp edi, 0xa1
ja case.0xc68896.98
movzx eax, byte [edi + 0xc69110]
jmp dword [eax*4 + 0xc68fc4]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
sub edi, eax
mov eax, 0x88
mov dword [ebp - 0x20], edi
movzx ecx, word [edi]
cmp cx, ax
jae 0xca72d4
mov eax, 0x81
cmp cx, ax
je 0xca72d4
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0xc688e3
mov eax, 0x80
cmp cx, ax
jbe 0xcaca6a
mov eax, 0x82
cmp cx, ax
je 0xcaca6a
mov eax, 0x85
cmp cx, ax
je 0xc68ca6
mov eax, 0x8a
cmp cx, ax
je 0xc68ca6
mov eax, 0x86
cmp cx, ax
je 0xc68ca6
mov eax, 0x8b
cmp cx, ax
je 0xc68ca6
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0xca734c
mov eax, 0x81
cmp word [edi], ax
je 0xcaca15
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc6886d
cmp edi, 0x88
jae 0xcac893
cmp edi, 0x81
je 0xcac893
cmp dword [esi + 0x70], 0
jne 0xcac89d
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0xcac89d
movzx eax, word [ebx]
movzx eax, byte [eax + 0xd22140]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x28], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0xc68851
jmp 0xcae68f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0xcae62b
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0xcae671
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
cmp eax, ecx
jae 0xcacdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0xc68a18
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0xca820e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f2]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0xc68ab6
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0xc68a50
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0xc68a70
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0xca823a
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0xd221f0], eax
mov eax, dword [ebp - 0x24]
jne 0xc68b81
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0xca825e
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0xc6886d
movzx edx, word [ebx + 0x22]
lea eax, [ebx + 2]
add ebx, 0x22
mov dword [ebp - 0xc], eax
mov ecx, edx
mov dword [ebp - 0x30], ebx
cmp ecx, 0x6d
jbe 0xca84d2
mov edx, 1
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x28], 0
mov ecx, 1
mov dword [ebp - 0x24], ecx
je 0xca85a0
cmp edx, ecx
jl 0xc68b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0xca856d
cmp edx, 0xff
ja 0xca8592
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0xc68896.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0xc68b11
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0xca8602
mov edx, dword [ebp - 8]
jmp 0xc6886d
lea esi, [ebx + edx*2]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], esi
mov ebx, esi
mov edi, esi
cmp esi, eax
jb 0xc68a50
jmp 0xc68ab0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
cmp dword [ebp - 0x28], 0
je 0xca8b6d
movzx ecx, word [ebx + 2]
add ebx, 2
mov eax, ecx
mov dword [ebp - 0x34], 1
and eax, 0xfc00
mov edx, ecx
mov dword [ebp - 0x24], edx
cmp eax, 0xd800
je 0xca8abe
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0xca8ae9
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0xc68bf7
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0xc68896.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0xc6886d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ecx
je 0xc68c4a
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0xca7fd6
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0xd11c40]
cmp eax, 9
jne 0xca8000
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0xd10a70]
lea eax, [eax*4 + 0xd10a70]
cmp dword [ebp - 0x20], ecx
jb 0xca8200
lea eax, [eax + 4]
cmp edx, ecx
je 0xc68d21
mov ecx, dword [eax]
cmp edx, ecx
jae 0xc68c90
jmp 0xca8200
movzx eax, word [edi + 4]
mov dword [ebp - 0x24], eax
lea edi, [eax + eax]
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], edi
mov ecx, edi
test eax, eax
jne 0xca72ec
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0xca7318
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0xca732b
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
jg 0xc68d19
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0xc6892c
cmp edi, 0x10
jne case.0xc68896.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0xc6886d
cmp dword [ebp - 0x28], 0
je 0xca8a8c
mov ax, word [ebx + 2]
add ebx, 2
mov ecx, 0xfc00
mov edi, 1
and ax, cx
mov dword [ebp - 0x34], edi
mov ecx, 0xd800
cmp ax, cx
je 0xca8a7f
mov ecx, dword [esi + 0x7c]
mov eax, ecx
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x34], eax
jg 0xcacd8f
lea esp, [esp]
movzx ecx, word [ebx]
dec edi
movzx eax, word [edx]
add ebx, 2
add edx, 2
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], edx
cmp cx, ax
jne case.0xc68896.157
test edi, edi
jle 0xc68b79
jmp 0xc68d80
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0xca98e4
mov edx, 1
movsx edi, byte [ecx + 0xd11c2c]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0xd11c20]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0xc68de1
mov dword [ebp - 0x14], bind
movzx edi, word [ebx]
lea ebx, [eax + 2]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0xca98eb
cmp edi, 0xf
je 0xca98eb
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0xca9912
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0xc68b79
test edx, edx
je 0xcaae4f
test eax, eax
jns 0xcad1b2
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0xcada81
cmp dword [ebp - 0x28], 0
je 0xcadf78
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcaa9d7
cmp dword [ebp - 0x20], 0xc
jne 0xc68ea2
mov edx, dword [esi + 0x18]
test edx, edx
je 0xcadc01
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne case.0xc68896.157
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
je 0xcadc3a
cmp dword [ebp - 0x20], 0xc
jne 0xcadc62
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0xcadf36
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov esi, dword [ebp + 0x10]
inc eax
inc dword [ebp - 0xc]
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
jmp 0xc68e60
movzx edx, word [ebx + 4]
mov dword [ebp - 0x30], edx
lea eax, [edx + edx]
mov dword [ebp - 0x20], eax
cmp eax, dword [esi + 0x14]
jge case.0xc68896.129
mov ecx, dword [esi + 0xc]
lea edi, [edx + edx]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x10]
sub eax, edx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ecx], eax
nop
cmp edi, 0x88
jae 0xcae35b
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0xcae3af
cmp eax, 0xfffffc20
je 0xcae36a
test eax, eax
jne 0xc689db
jmp 0xcae38c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0xca6567
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.00c68810
add esp, 0x14
jmp 0xc689db
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0xc689db
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
mov dword [ebp + 0x14], eax
mov dword [esi + 0x9c], 0
jmp 0xc68b79
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0xcac977
movzx eax, word [ebx]
movzx ecx, byte [eax + 0xd22140]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0xc6886d
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xb0]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
cmp eax, 1
je 0xca6641
cmp eax, 0xfffffc20
jne 0xca6621
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0xc689db
cmp word [ebx], 0x77
je 0xca6629
cmp word [ecx], 0x77
jne 0xc689db
jmp 0xca6629
test eax, eax
jne 0xc689db
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0xca65d3
mov ecx, dword [ebp + 8]
jmp 0xca664a
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0xca6660
cmp eax, 0x77
jne case.0xc68896.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca6660
cmp word [ebx], 0x78
mov edx, dword [esi + 0x90]
mov eax, dword [esi + 0x84]
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
je 0xca7204
cmp eax, dword [ebp - 0x1c]
je 0xca7204
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push edx
push ecx
mov ecx, dword [ebp - 8]
jne 0xcac6ae
lea edx, [ebx + 4]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0xc6898f
mov dword [ebp - 0x24], 0
jmp 0xca70b8
mov dword [ebp - 0x24], 0
mov eax, ebx
mov dword [ebp - 0x34], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x20], eax
cmp edi, 0x88
jb 0xca6707
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0xca71a7
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x34], 1
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
cmp dword [ebp - 8], eax
je 0xca71f6
mov dword [ebp - 8], eax
jmp 0xca66f5
cmp word [ebx + 4], 0x76
lea ecx, [ebx + 4]
movzx eax, word [ebx + 2]
mov ebx, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
jne 0xca6863
cmp dword [0xd32620], 0
je 0xca6855
mov dword [ebp - 0xa0], 2
movzx eax, word [ecx + 2]
mov dword [ebp - 0x9c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x88], eax
movzx eax, word [ecx + 4]
mov dword [ebp - 0x78], eax
movzx eax, word [ecx + 6]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0x80], eax
jne 0xca681c
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xa0]
push eax
call dword [0xd32620]
add esp, 4
test eax, eax
jg case.0xc68896.157
js 0xc689db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ecx + 8]
add eax, 0xfffffffc
mov ecx, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [eax]
mov dword [ebp - 0x30], eax
add eax, 0xffffff73
cmp eax, 0x10
ja case.0xca6886.146
movzx eax, byte [eax + 0xcae6b5]
jmp dword [eax*4 + 0xcae69d]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0xca6a97
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0xca68b2
cmp eax, dword [ecx + 4]
jne 0xca6a97
mov ecx, 1
jmp 0xca6a6e
cmp dword [esi + 0xa8], ecx
je case.0xca6886.145
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea ecx, [eax + ecx*2]
test ebx, ebx
je 0xca6a8f
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
dec ebx
cmp eax, dword [ebp - 0x1c]
je 0xca695f
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x34], ecx
test ebx, ebx
jg 0xca68f0
xor ecx, ecx
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0xca6928
cmp word [ebx - 4], 0x77
jne 0xc6886d
cmp edi, 0x8c
jne 0xc68995
mov ecx, dword [ebp - 8]
mov edx, ebx
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
jmp 0xc689db
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0xca6a6e
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0xca698b
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0xca698b
mov ecx, 1
jmp 0xca698d
xor ecx, ecx
test ecx, ecx
jne 0xca6a6e
jmp 0xca6910
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*2]
test ebx, ebx
je 0xca6a8f
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0xca69cf
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0xca695f
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x34], eax
test ebx, ebx
jg 0xca69ba
jmp 0xca690b
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
mov dword [esi + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
cmp eax, 1
jne 0xca6a7d
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0xca6a1f
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0xca6a38
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0xca6a54
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0xca6a46
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0xd22140]
sub ecx, eax
lea ebx, [edx + ecx*2]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 0xd22140]
jmp 0xca6913
test eax, eax
je 0xca6a8c
cmp eax, 0xfffffc20
jne 0xc689db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0xca6886.145
mov ecx, dword [ebp - 0x20]
jmp 0xca6910
movzx ecx, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
mov dword [ebp - 0x1c], ecx
or eax, ecx
lea edi, [ecx + ecx]
mov dword [esi + 0x94], eax
mov dword [ebp - 0x34], edi
cmp edi, dword [esi + 0x14]
jl 0xca6ad4
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0xc68946
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x1c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jl 0xca9253
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0xca6b1b
sub ecx, edx
mov edi, edx
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
jmp 0xca9253
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0xca6b49
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0xca6b4b
xor edi, edi
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0xca6bc2
cmp eax, 0xfffffc19
je 0xca6bc2
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0xca6baa
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0xcae3d4
cmp word [ebx], 0x77
je 0xca6bb2
cmp word [eax], 0x77
je 0xca6bb2
jmp 0xcae3d4
test eax, eax
jne 0xc689db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca6b4b
jmp 0xca6bcb
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0xc68896.157
test edi, edi
jne 0xc689d6
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca6bdd
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0xc68b79
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0xca6c21
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0xca6c28
mov dword [ebp - 0x34], 0
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0xca6c81
jne 0xca6c96
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0xca6caf
cmp word [ebx], 0x77
je 0xca6c71
cmp word [eax], 0x77
jne 0xca6caf
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca6c28
jmp 0xca6cbd
mov ecx, eax
sub ecx, 0
je 0xca6c71
sub ecx, 1
je case.0xc68896.157
jmp 0xc689db
cmp eax, 0xfffffc19
je case.0xc68896.157
add eax, 0x3e4
cmp eax, 3
ja 0xcae3d4
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca6caf
cmp dword [ebp - 0x34], 0
jne 0xc689d6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
cmp dword [ebp - 0x28], 0
je 0xca6d17
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0xca6d31
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0xc68896.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0xca6d11
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0xca6ce0
jmp 0xca6d34
movzx eax, word [ebx + 2]
mov ecx, dword [ebp - 8]
neg eax
lea ecx, [ecx + eax*2]
mov eax, ecx
mov dword [ebp - 8], ecx
cmp eax, dword [esi + 0x78]
jb case.0xc68896.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0xc68946
mov dword [esi + 0x88], eax
jmp 0xc68946
cmp dword [0xd32620], 0
je 0xca6e23
mov dword [ebp - 0xd4], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xbc], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0xac], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0xb4], eax
jne 0xca6dea
mov dword [ebp - 0xb4], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xd4]
push eax
call dword [0xd32620]
add esp, 4
test eax, eax
jg case.0xc68896.157
js 0xc689db
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0xc6886d
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0xca6e43
xor edx, edx
jmp 0xca6e47
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0xca6e6e
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0xca6e68
cmp eax, dword [ecx + 0x14]
jne 0xca6e68
mov eax, 0xffffffe6
jmp 0xc689db
mov ecx, dword [ecx]
test ecx, ecx
jne 0xca6e54
mov dword [ebp - 0x54], edx
add ebx, 4
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x1e
jg 0xca6eae
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0xca6ecc
lea eax, [ecx*4]
push eax
call fcn.00c691b2
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0xcac9de
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00c80e20
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0xca6ef8
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ecx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x4c]
shl eax, 2
push eax
push dword [ebp - 0x50]
push dword [esi + 0xc]
call fcn.00c80e20
mov eax, dword [ebp - 0x48]
add esp, 0xc
mov dword [esi + 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 1
je 0xca6fb7
cmp eax, 0xfffffc19
je 0xca6fb7
cmp eax, 0xfffffc1c
jl 0xca6f66
cmp eax, 0xfffffc20
jle 0xca6f98
test eax, eax
jne 0xcac9bf
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x24], ecx
je 0xca6eea
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0xc68896.157
push eax
call fcn.00c691bb
add esp, 4
jmp case.0xc68896.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0xca6fcd
push eax
call fcn.00c691bb
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0xc68b79
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0xc68896.119
mov dword [ebp - 0x30], ebx
jmp 0xc6886d
mov eax, dword [ebp + 0x18]
add ebx, 2
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, ebx
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca7021
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
add ebx, 2
mov dword [ebp - 0x30], ebx
mov edx, ebx
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0xca7042
mov eax, dword [ebp + 0x18]
add edx, 4
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
jmp 0xc68b79
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca707d
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc6886d
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0xca70b8
cmp edi, 0x8b
jne 0xca66db
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0xca66db
mov ecx, ebx
shl eax, 2
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0xca712f
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0xca722a
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov ecx, 1
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 8], eax
je 0xca72a9
mov dword [ebp - 8], eax
jmp 0xca710a
cmp eax, 0xfffffc20
jne 0xca71d2
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0xcae3d4
cmp word [ebx], 0x77
je 0xca71da
cmp word [eax], 0x77
je 0xca71da
jmp 0xcae3d4
test eax, eax
jne 0xc689db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0xca720f
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0xca66f5
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca71f6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
cmp dword [ebp - 0x34], 0
jne 0xca7204
cmp dword [ebp - 0x24], 0
je case.0xc68896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
cmp eax, 0xfffffc20
jne 0xca7255
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0xcae3d4
cmp word [ebx], 0x77
je 0xca725d
cmp word [eax], 0x77
je 0xca725d
jmp 0xcae3d4
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca7107
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0xca72b7
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0xc]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x30]
jmp 0xca72b7
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xca72a9
cmp dword [ebp - 0x24], 0
jne 0xca7204
test ecx, ecx
je case.0xc68896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
mov eax, dword [ebp + 0x14]
mov esi, eax
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
jmp 0xc688d0
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0xc68cc3
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0xc689db
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0xc68929
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0xca7344
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
jmp 0xc68ceb
cmp eax, 0x7b
je 0xcaca48
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0xcac6c9
mov edx, dword [ebp - 8]
jmp 0xc68938
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0xca7380
cmp eax, dword [esi + 0x78]
je case.0xc68896.157
jmp 0xca7380
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0xc68896.157
jmp 0xc68ac3
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0xca73a0
cmp eax, dword [esi + 0x78]
je case.0xc68896.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0xc68ac3
cmp eax, dword [esi + 0x7c]
je case.0xc68896.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0xca73e4
cmp eax, ecx
jbe case.0xc68896.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00cfba5a
add esp, 0xc
test eax, eax
je case.0xc68896.157
jmp 0xc68ac3
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0xc68896.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0xc68896.157
cmp edi, 1
je 0xc68ac3
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0xc68896.157
jmp 0xc68ac3
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0xc68896.157
jmp 0xc68ac6
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0xca74f5
mov edx, dword [esi + 0x18]
test edx, edx
je 0xca74c2
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne 0xc68ac3
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0xc68896.157
cmp dword [esi + 0x18], 0
jne case.0xc68896.157
cmp dword [esi + 0x1c], 2
jne case.0xc68896.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0xc68896.157
jmp 0xcaa9f0
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0xca7480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0xca747d
cmp edx, 1
je 0xc68ac3
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0xca747d
jmp 0xc68ac3
cmp dword [esi + 0x4c], 0
jne case.0xc68896.157
cmp dword [esi + 0x8c], 0
je 0xc68ac3
cmp eax, dword [esi + 0x88]
jmp 0xca751a
cmp edx, dword [esi + 0x88]
jbe 0xc68ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp 0xc68ac3
cmp dword [esi + 0x4c], 0
jne case.0xc68896.157
cmp dword [esi + 0x5c], 0
je case.0xc68896.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0xc68896.157
jmp 0xca74ff
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0xca74ff
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0xca7583
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne 0xca75b8
jmp 0xca747d
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0xca7480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0xca747d
cmp edx, 1
je 0xca75b8
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0xca747d
mov ecx, dword [edi]
mov eax, dword [esi + 0x7c]
add ecx, ecx
sub eax, ecx
cmp dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jne 0xca7480
jmp 0xca74ff
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0xca7747
cmp eax, dword [esi + 0x78]
je 0xca76ac
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0xca7607
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0xca7615
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7644
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, ecx
cmp dword [esi + 0x58], 0
je 0xca768e
cmp edi, 0x5f
je 0xca7684
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca7684
cmp eax, 3
jne 0xca76a9
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0xca76ae
cmp edi, 0x100
jae 0xca76a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0xca76ac
mov edi, 1
jmp 0xca76ae
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0xca7869
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca76e9
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax + 2]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov edx, ecx
cmp dword [esi + 0x58], 0
je 0xca7711
cmp edx, 0x5f
je 0xca78bb
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, edx
jmp 0xca7806
cmp edx, 0x100
jae 0xca7726
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0xca78bb
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0xca78c5
cmp ecx, edi
je case.0xc68896.157
jmp 0xc68b79
cmp eax, dword [esi + 0x78]
je 0xca77c0
cmp eax, dword [esi + 0x88]
ja 0xca7760
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0xca7841
cmp ecx, 0x5f
je 0xca783a
mov eax, ecx
test eax, eax
jns 0xca7780
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
and ecx, 0x8000007f
jns 0xca779a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca7837
cmp eax, 3
mov eax, dword [ebp - 8]
je 0xca783a
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0xca7869
cmp dword [esi + 0x58], 0
je 0xca789b
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0xca78bb
mov eax, ecx
test eax, eax
jns 0xca77ea
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
and ecx, 0x8000007f
jns 0xca7804
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca78bb
cmp eax, 3
jne 0xca7726
lea ecx, [eax - 2]
jmp 0xca7728
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0xca77c2
mov edx, 0xff
cmp cx, dx
ja 0xca77c0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0xca77c0
mov edi, 1
jmp 0xca77c2
cmp dword [esi + 0x8c], 0
je 0xca7726
cmp eax, dword [esi + 0x88]
jbe 0xca7726
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xca7726
jmp 0xcae351
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0xca7726
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0xca7726
mov ecx, 1
jmp 0xca7728
cmp ecx, edi
jne case.0xc68896.157
jmp 0xc68b79
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0xca7901
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0xca7939
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne case.0xc68896.157
jmp 0xca7936
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0xca7933
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0xca7933
cmp edx, 1
je case.0xc68896.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0xc68896.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0xca797f
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0xca797c
cmp dword [esi + 0x18], 0
jne 0xca797c
cmp dword [esi + 0x1c], 2
jne 0xca797c
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0xca797c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xca797c
jmp 0xcae351
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0xcacdc7
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0xc68ac3
cmp eax, ecx
jae 0xc68ac3
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xc68ac3
add dword [ebp - 8], 2
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0xca7a2c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7a2c
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0xc68ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0xca7a97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7a97
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0xca7b02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7b02
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0xc68ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0xca7b6d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7b6d
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0xca7bd8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7bd8
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0xc68ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0xca7c43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7c43
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0xc68896.157
jmp 0xc68ac3
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0xca7cb3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0xca7cb3
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, edx
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
mov edx, eax
cmp ecx, 0xd
ja 0xca7cff
je 0xca7cd4
cmp ecx, 0xa
je 0xc68ac3
jbe case.0xc68896.157
cmp ecx, 0xc
ja case.0xc68896.157
jmp 0xca7d16
cmp edx, edi
jb 0xca7cea
cmp dword [esi + 0x8c], 0
je 0xc68ac3
jmp 0xca7514
cmp word [eax], 0xa
jne 0xc68ac3
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0xc68ac3
cmp ecx, 0x85
je 0xca7d16
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
cmp dword [esi + 0x6c], 0
jne case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0xca7d6e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7d6e
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0xca7db2
je case.0xc68896.157
cmp ecx, 0xa0
ja 0xca7da1
je case.0xc68896.157
cmp ecx, 9
je case.0xc68896.157
cmp ecx, 0x20
je case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x1680
je case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x205f
ja 0xca7de9
je case.0xc68896.157
cmp ecx, 0x2000
jb 0xc68ac3
cmp ecx, 0x200a
jbe case.0xc68896.157
cmp ecx, 0x202f
je case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x3000
je case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0xca7e43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7e43
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0xca7e87
je 0xc68ac3
cmp ecx, 0xa0
ja 0xca7e76
je 0xc68ac3
cmp ecx, 9
je 0xc68ac3
cmp ecx, 0x20
jne case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x1680
jne case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x205f
ja 0xca7ebe
je 0xc68ac3
cmp ecx, 0x2000
jb case.0xc68896.157
cmp ecx, 0x200a
jbe 0xc68ac3
cmp ecx, 0x202f
jne case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x3000
jne case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0xca7f18
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7f18
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0xca7f3d
je case.0xc68896.157
cmp ecx, 0xa
jb 0xc68ac3
cmp ecx, 0xd
jbe case.0xc68896.157
jmp 0xc68ac3
cmp ecx, 0x2028
jb 0xc68ac3
cmp ecx, 0x2029
jbe case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0xca7fa3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca7fa3
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0xca7fc2
je 0xc68ac3
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0xc68896.157
jmp 0xc68ac3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
jmp 0xc68ac3
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov ecx, edx
mov dword [ebp - 0x20], ecx
jmp 0xc68c4a
cmp eax, 0xa
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae6c9]
mov al, byte [ecx*8 + 0xd0f3f1]
cmp al, 9
je 0xca8035
cmp al, 5
je 0xca8035
cmp al, 8
je 0xca8035
xor ecx, ecx
jmp 0xca8051
cmp edi, 0xf
je case.0xc68896.157
jmp 0xc68d2a
mov ecx, 1
jmp 0xca8051
movzx eax, byte [ecx*8 + 0xd0f3f1]
xor ecx, ecx
cmp dword [eax*4 + 0xd25350], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0xc68896.157
jmp 0xc68d2a
movzx ecx, byte [ecx*8 + 0xd0f3f1]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0xd25350]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0xc68896.157
jmp 0xc68d2a
movzx eax, byte [ecx*8 + 0xd0f3f1]
jmp 0xca80a5
movzx eax, byte [ecx*8 + 0xd0f3f0]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0xc68896.157
jmp 0xc68d2a
movzx eax, byte [ecx*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca8035
cmp eax, 3
je 0xca8035
xor ecx, ecx
jmp 0xca8051
cmp edx, 0x180e
ja 0xca8144
je case.0xca8009.0
cmp edx, 0x85
ja 0xca8127
je case.0xca8009.0
cmp edx, 9
jb case.0xca8168.8203
cmp edx, 0xd
jbe case.0xca8009.0
cmp edx, 0x20
je case.0xca8009.0
jmp case.0xca8168.8203
cmp edx, 0xa0
je case.0xca8009.0
cmp edx, 0x1680
je case.0xca8009.0
jmp case.0xca8168.8203
cmp edx, 0x202f
ja 0xca816f
je case.0xca8009.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0xca8168.8203
movzx eax, byte [edx + 0xcae6fd]
jmp dword [eax*4 + 0xcae6f5]
cmp edx, 0x205f
je case.0xca8009.0
cmp edx, 0x3000
je case.0xca8009.0
jmp case.0xca8168.8203
movzx eax, byte [ecx*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca8035
cmp eax, 3
je 0xca8035
cmp dword [ebp - 0x20], 0x5f
je 0xca8035
xor ecx, ecx
jmp 0xca8051
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0xca8035
cmp eax, 0x40
je 0xca8035
cmp eax, 0x60
je 0xca8035
cmp eax, 0xa0
jb 0xca81ee
cmp eax, 0xd7ff
jbe 0xca8035
cmp eax, 0xe000
jae 0xca8035
xor ecx, ecx
jmp 0xca8051
cmp edi, 0x10
je case.0xc68896.157
jmp 0xc68d2a
mov ecx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
and eax, 0x3ff
mov edi, dword [ebp - 8]
mov ecx, edx
and ecx, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0xc68a18
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0xc68a70
cmp edi, eax
jb 0xc68ac3
cmp edi, dword [esi + 0x88]
jbe 0xc68ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp 0xc68ac3
movzx ecx, word [ebx + 2]
xor eax, eax
cmp edi, 0x74
sete al
imul ecx, dword [esi + 0x24]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 4]
add ebx, 6
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], ebx
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x18], edi
dec ecx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x2c], edi
jbe 0xca8344
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec dword [ebp - 0x2c]
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0xca82ee
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0xca82ee
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0xca8341
cmp dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x34]
mov eax, dword [esi + 0x24]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x34], eax
jg 0xca82cb
jmp 0xca8344
xor eax, eax
cmp edi, 0x72
sete al
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x30], ebx
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0xca8337
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0xca8337
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0xca8341
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x1c], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0xca835d
movzx eax, byte [eax + 0xcae731]
jmp dword [eax*4 + 0xcae729]
mov eax, dword [ebp - 0x1c]
add ebx, 2
mov dword [ebp - 0x30], ebx
lea edi, [eax - 0x62]
and edi, 1
mov dword [ebp - 0x1c], edi
movsx edi, byte [eax + 0xd11bca]
movsx eax, byte [eax + 0xd11bbe]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0xca83c5
mov dword [ebp - 0x2c], bind
jmp 0xca83c5
cmp word [ebx], 0x69
mov eax, 0
movzx edi, word [ebx + 2]
sete al
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0xca83bf
mov dword [ebp - 0x2c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0xc6886d
jns 0xca83d9
test edi, edi
je 0xc6886d
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0xca841b
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.00cfb321
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0xcacb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edi
mov ecx, dword [ebp - 0x20]
jle 0xca83e8
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0xc68b79
cmp dword [ebp - 0x1c], 0
je 0xcacaad
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0xc68896.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.00cfb321
add esp, 0xc
test eax, eax
js 0xcaca8a
inc dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xca8456
jmp 0xc689db
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.00cfb321
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0xcacb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0xc68b79
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0xca84e5
movzx eax, byte [eax + 0xcae741]
jmp dword [eax*4 + 0xcae739]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0xca8504
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0xca850b
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0xd11c2c]
movsx eax, byte [eax + 0xd11c20]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0xc68afb
mov dword [ebp - 0x20], bind
jmp 0xc68afb
xor eax, eax
cmp edx, 0x69
sete al
mov dword [ebp - 0x10], eax
xor eax, eax
cmp edx, 0x6d
movzx edx, word [ebx + 2]
mov dword [ebp - 0x18], edx
sete al
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0xca8562
mov dword [ebp - 0x20], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0xc68afb
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
jmp 0xc68b38
cmp edi, 0x6e
je case.0xc68896.157
jmp 0xc68b62
cmp edx, 1
jl 0xc68b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0xca85d1
cmp edi, 0x6e
je case.0xc68896.157
jmp 0xca85f2
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0xc68896.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0xca85ac
jmp 0xc68b70
cmp dword [ebp - 0x10], 0
jne 0xcacb89
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0xca8752
cmp edx, dword [ebp - 0x20]
jl 0xca8628
jmp 0xca86d8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xca86b3
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca866f
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
mov ecx, 2
mov dword [ebp - 0x34], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
cmp edx, 0xff
jbe 0xca867e
cmp edi, 0x6e
jne 0xca8698
jmp 0xca86d8
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je 0xca86d8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x20]
jl 0xca8625
jmp 0xca86d8
cmp dword [esi + 0x8c], 0
je 0xca86d8
cmp eax, dword [esi + 0x88]
jbe 0xca86d8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0xc68896.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xca872e
add edi, 0xfffffffe
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xca8708
jmp 0xc689db
cmp edx, dword [ebp - 0x20]
jge 0xca87c7
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0xca879f
movzx edx, word [eax]
cmp edx, 0xff
jbe 0xca8771
cmp edi, 0x6e
jne 0xca878e
jmp 0xca87c4
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0xca87c4
mov ecx, dword [ebp - 0x18]
inc ecx
add eax, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x20]
jl 0xca875a
jmp 0xca87c4
cmp dword [esi + 0x8c], 0
je 0xca87c4
cmp eax, dword [esi + 0x88]
jbe 0xca87c4
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, ecx
jb case.0xc68896.157
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0xca87dc
jmp case.0xc68896.157
lea eax, [ebx + 4]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
movzx ecx, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
mov edi, ecx
mov dword [ebp - 0x30], ebx
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0xca8835
movzx eax, byte [eax + 0xcae755]
jmp dword [eax*4 + 0xcae74d]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0xca8854
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0xca885b
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0xd11c20]
movsx edi, byte [eax + 0xd11c2c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0xca88c8
mov ecx, bind
jmp 0xca88c5
movzx edi, word [ebx + 2]
xor eax, eax
cmp ecx, 0x69
mov dword [ebp - 0x18], edi
sete al
cmp ecx, 0x6d
mov ecx, 0
mov dword [ebp - 0x10], eax
sete cl
mov dword [ebp - 0x2c], ecx
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0xca88b0
mov ecx, bind
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0xca88c8
mov eax, dword [ebp - 0x10]
mov ecx, 1
mov edi, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 1
cmp edi, 1
jl 0xca8946
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0xca891e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca891e
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
push edx
mov edx, dword [ebp - 0x24]
call fcn.00cfb51c
add esp, 4
test eax, eax
je case.0xc68896.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0xca88d4
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0xc6886d
test eax, eax
jne 0xcaccde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0xca8968
jmp 0xca89ff
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xca89da
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0xca89b0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca89b0
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
push edx
mov edx, dword [ebp - 0x24]
call fcn.00cfb51c
add esp, 4
test eax, eax
je 0xca8a02
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x20]
jl 0xca8965
jmp 0xca89ff
cmp dword [esi + 0x8c], 0
je 0xca89ff
cmp eax, dword [esi + 0x88]
jbe 0xca89ff
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0xc68896.157
cmp dword [ebp - 0x28], 0
je 0xca8a5b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xca8a5b
add edi, 0xfffffffe
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xca8a2f
jmp 0xc689db
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0xc68d67
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0xcacdaf
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0xc68896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov edx, ecx
mov dword [ebp - 0x24], edx
jmp 0xc68bd6
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca8b22
mov ecx, dword [ebp - 8]
and edi, 0x3ff
shl edi, 0xa
movzx eax, word [ecx]
add ecx, 2
and eax, 0x3ff
mov dword [ebp - 8], ecx
or edi, eax
add edi, 0x10000
mov eax, dword [ebp - 0x34]
cmp edx, edi
mov edx, dword [ebp - 8]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
je 0xc6886d
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
mov eax, dword [eax*8 + 0xd0f3f4]
add eax, edx
cmp edi, eax
jne case.0xc68896.157
jmp 0xc68b79
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0xca8b87
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0xca8b89
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0xca8ba0
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0xc68896.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0xc68b79
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0xca8c7b
mov dword [ebp - 0x2c], 1
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0xca8bef
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0xca8bf6
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0xca8c7b
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0xca8c74
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0xca8c74
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0xca8c7b
cmp edi, 0x2e
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x2e
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0xd11c2c]
movsx eax, byte [eax + 0xd11c20]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0xca8c7b
mov dword [ebp - 0x18], bind
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
je 0xca8f07
and eax, 0xfc00
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x1c], 1
cmp eax, 0xd800
jne 0xca8cee
movzx eax, word [ebx + 2]
mov ebx, dword [ebp - 0x20]
and eax, 0x3ff
and ebx, 0x3ff
mov dword [ebp - 0xc], 2
shl ebx, 0xa
or ebx, eax
mov dword [ebp - 0x30], 2
add ebx, 0x10000
mov dword [ebp - 0x1c], 2
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], eax
jmp 0xca8cf1
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], 1
mov ebx, dword [ebp - 0x30]
lea ebx, [ecx + ebx*2]
mov dword [ebp - 0x30], ebx
jbe 0xca8f0d
cmp edi, 0x2e
jb 0xca8d44
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
mov ecx, dword [eax*8 + 0xd0f3f4]
add ecx, edi
cmp ecx, edi
je 0xca8d44
lea edx, [ebp - 0x6c]
call fcn.00cfb9a7
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0xca8d46
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0xca8ddd
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x7c]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0xca8d8b
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00c81394
add esp, 0xc
test eax, eax
jne 0xca8d8b
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0xca8dca
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0xcaca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0xcaca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00c81394
add esp, 0xc
test eax, eax
jne 0xcaca92
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov eax, edi
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, edx
jle 0xca8d62
mov edi, dword [ebp - 0x20]
jmp 0xca8de0
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0xc68b79
cmp dword [ebp - 0x10], 0
jne 0xcacddf
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0xca8ea3
mov eax, dword [ebp - 0xc]
lea edx, [eax + eax]
mov dword [ebp - 0x1c], edx
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, edx
cmp ecx, eax
ja 0xca8e38
push edx
push dword [ebp - 0x34]
push ecx
call fcn.00c81394
add esp, 0xc
test eax, eax
jne 0xca8e35
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0xca8e5f
mov ecx, dword [ebp - 8]
test edi, edi
jle 0xca8e70
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0xca8e70
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00c81394
add esp, 0xc
test eax, eax
jne 0xca8e70
add dword [ebp - 8], edi
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
inc edx
cmp edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
jl 0xca8e0a
jmp 0xca8e9d
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0xca8ea0
cmp eax, dword [esi + 0x7c]
jb 0xca8e9d
cmp eax, dword [esi + 0x88]
jbe 0xca8e9d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, ecx
jbe 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xca8efd
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0xca8eb8
jmp 0xc68992
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0xca904b
cmp dword [ebp - 0x28], 0
je 0xca8f4d
cmp eax, 0x7f
jbe 0xca8f4d
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
mov eax, dword [eax*8 + 0xd0f3f4]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0xca8f66
cmp eax, 0xff
ja 0xca8f60
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0xca8f63
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0xca8f9f
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0xca8f8e
cmp edi, ecx
jne case.0xc68896.157
mov ecx, dword [ebp - 0x1c]
add eax, 2
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], ecx
cmp ecx, edx
jle 0xca8f75
cmp edx, dword [ebp - 0x18]
je 0xc68b79
cmp dword [ebp - 0x10], 0
jne 0xcace98
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0xca9003
cmp eax, dword [esi + 0x7c]
jae 0xca8fdb
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0xca8fcd
cmp edi, ecx
jne 0xca9000
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0xca8fbc
jmp 0xca9000
cmp dword [esi + 0x8c], 0
je 0xca9000
cmp eax, dword [esi + 0x88]
jbe 0xca9000
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, ecx
je 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0xc689db
cmp edi, dword [ebp - 0x14]
jne 0xca9018
jmp 0xc68992
mov ecx, 1
cmp edx, ecx
jge 0xca9059
mov edi, dword [ebp - 8]
jmp 0xca907f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0xc68896.157
inc ecx
cmp ecx, edx
jle 0xca9059
cmp edx, dword [ebp - 0x18]
je 0xc68b79
cmp dword [ebp - 0x10], 0
jne 0xcacf0f
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0xca90c2
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0xca910a
movzx eax, word [eax]
cmp ecx, eax
jne 0xca90bc
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0xca90a4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, ecx
je 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0xc689db
cmp edi, dword [ebp - 0x14]
jne 0xca90d7
jmp 0xc68992
cmp dword [esi + 0x8c], 0
je 0xca90bf
cmp eax, dword [esi + 0x88]
jbe 0xca90bf
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp 0xca90bf
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
cmp dword [ebp - 0x28], 0
movzx ecx, word [ebx + 2]
je 0xca9226
mov eax, ecx
mov dword [ebp - 0x1c], ecx
add ebx, 4
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ebx
cmp eax, 0xd800
jne 0xca918a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 8]
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca91c3
movzx eax, word [ecx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add ecx, 2
or edx, eax
mov dword [ebp - 8], ecx
add edx, 0x10000
cmp edi, 0x1f
jne 0xca91d6
cmp dword [ebp - 0x24], edx
je case.0xc68896.157
jmp 0xc68b79
mov edi, dword [ebp - 0x24]
cmp edi, 0x7f
jbe 0xca9207
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
mov eax, dword [eax*8 + 0xd0f3f4]
add eax, edi
jmp 0xca9211
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
cmp edi, edx
je case.0xc68896.157
cmp eax, edx
je case.0xc68896.157
jmp 0xc68b79
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0xc68896.157
cmp edi, 0x20
jne 0xca9253
cmp ecx, 0xff
ja 0xca924b
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0xc68896.157
mov edx, dword [ebp - 8]
jmp 0xc68946
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0xca9333
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x42
je 0xca928a
mov dword [ebp - 0x10], edx
cmp ecx, 0x4f
jne 0xca9291
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0xca9333
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0xca932c
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0xca932c
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0xca9333
movzx eax, word [ebx + 2]
xor edx, edx
add ebx, 4
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0xc], edx
mov ecx, ebx
mov dword [ebp - 0x18], eax
jmp 0xca9333
cmp edi, 0x48
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x48
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0xd11c2c]
movsx eax, byte [eax + 0xd11c20]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0xca9333
mov dword [ebp - 0x18], bind
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
lea ebx, [ecx + 2]
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x30], ebx
je 0xca937b
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9378
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or eax, ecx
add eax, 0x10000
add ebx, 2
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x30], ebx
jmp 0xca937b
mov eax, dword [ebp - 0x14]
cmp edi, 0x48
jb 0xca9624
cmp dword [ebp - 0x28], 0
je 0xca93ba
cmp ecx, 0x7f
jbe 0xca93ba
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, dword [ebp - 0x14]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
mov eax, dword [eax*8 + 0xd0f3f4]
add eax, dword [ebp - 0x14]
jmp 0xca93cc
cmp ecx, 0xff
ja 0xca93cc
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x14]
movzx eax, byte [eax + ecx]
cmp dword [ebp - 0x28], 0
mov edi, 1
mov dword [ebp - 0x20], eax
je 0xca9443
cmp edx, edi
jl 0xca9474
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0xca942a
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], ecx
je case.0xc68896.157
cmp dword [ebp - 0x20], ecx
je case.0xc68896.157
inc edi
cmp edi, edx
jle 0xca93e2
jmp 0xca9477
mov eax, dword [ebp - 8]
cmp edx, 1
jl 0xca9477
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je case.0xc68896.157
cmp dword [ebp - 0x20], ecx
je case.0xc68896.157
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, edx
jle 0xca944b
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
je 0xc68b79
cmp dword [ebp - 0x10], 0
jne 0xcacf7e
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0xca958e
cmp edx, ecx
jge 0xca9500
cmp eax, dword [esi + 0x7c]
jae 0xca9564
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca94dd
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0xca94e2
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0xca94fa
cmp dword [ebp - 0x20], edi
je 0xca94fa
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0xca949f
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, edi
jbe 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xca955a
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0xca9515
jmp 0xc68992
cmp dword [esi + 0x8c], 0
je 0xca94fd
cmp eax, dword [esi + 0x88]
jbe 0xca94fd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp 0xca94fd
cmp edx, ecx
jge 0xca95dc
mov edi, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0xca95b4
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je 0xca95d9
cmp edi, ecx
je 0xca95d9
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0xca9595
jmp 0xca95d9
cmp dword [esi + 0x8c], 0
je 0xca95d9
cmp eax, dword [esi + 0x88]
jbe 0xca95d9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, edi
je 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0xca95f1
jmp 0xc68992
cmp dword [ebp - 0x28], 0
mov edi, 1
je 0xca9696
cmp edx, edi
jge 0xca963b
mov ecx, dword [ebp - 0x14]
jmp 0xca96be
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0xca9683
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], ecx
je case.0xc68896.157
inc edi
cmp edi, edx
jle 0xca963b
mov ecx, dword [ebp - 0x14]
jmp 0xca96c1
mov ecx, dword [ebp - 0x14]
cmp edx, 1
jl 0xca96be
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcad08a
movzx eax, word [eax]
add dword [ebp - 8], 2
cmp ecx, eax
je case.0xc68896.157
inc edi
cmp edi, edx
jle 0xca969e
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0xc68b79
cmp dword [ebp - 0x10], 0
jne 0xcad0bc
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x20], edi
je 0xca97d2
cmp edx, dword [ebp - 0x18]
jge 0xca9744
cmp eax, dword [esi + 0x7c]
jae 0xca97a8
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9726
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0xca972b
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0xca973e
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0xca96e8
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, edi
jbe 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xca979e
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0xca9759
jmp 0xc68992
cmp dword [esi + 0x8c], 0
je 0xca9741
cmp eax, dword [esi + 0x88]
jbe 0xca9741
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp 0xca9741
cmp edx, dword [ebp - 0x18]
jge 0xca97f3
cmp eax, dword [esi + 0x7c]
jae 0xca983b
movzx eax, word [eax]
cmp ecx, eax
je 0xca97f0
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jl 0xca97d7
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp eax, edi
je 0xc68992
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0xca9808
jmp 0xc68992
cmp dword [esi + 0x8c], 0
je 0xca97f3
cmp eax, dword [esi + 0x88]
jbe 0xca97f3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xca97f3
jmp 0xcae351
movzx edi, word [ebx + 2]
mov edx, 1
mov ecx, edi
mov dword [ebp - 0x14], edi
add ebx, 4
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
mov eax, ebx
jmp 0xc68de1
movzx edi, word [ebx + 2]
xor edx, edx
cmp ecx, 0x5c
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], edi
sete dl
add ebx, 4
mov dword [ebp - 0x10], edx
mov eax, ebx
xor ecx, ecx
jmp 0xc68de1
xor ecx, ecx
jmp 0xca98ad
mov ecx, 1
mov dword [ebp - 0x14], bind
jmp 0xca98bf
xor ecx, ecx
mov dword [ebp - 0x14], 1
add ebx, 2
jmp 0xca98d0
movzx edi, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x14], edi
add ebx, 4
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0xc], ecx
jmp 0xc68de1
xor edx, edx
jmp 0xc68dbc
movzx ecx, word [ebx]
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x3c], eax
lea eax, [ebx + 2]
movzx ebx, word [eax]
mov dword [ebp - 0x40], ebx
lea ebx, [eax + 2]
mov eax, ecx
mov dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 0xc]
jmp 0xc68e02
test eax, eax
js 0xcaa041
cmp eax, 0xa
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae761]
cmp dword [ebp - 0x3c], 0
jne case.0xc68896.157
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jge 0xca9949
mov ecx, dword [ebp - 0xc]
jmp 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
je 0xca9973
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9973
add edi, 2
mov dword [ebp - 8], edi
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0xca9949
mov ecx, dword [ebp - 0xc]
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0xca99dc
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca99dc
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp eax, 9
je 0xca9a13
cmp eax, 5
je 0xca9a13
cmp eax, 8
je 0xca9a13
xor eax, eax
jmp 0xca9a18
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9994
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0xca9a93
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9a93
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov edx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp dword [eax*4 + 0xd25350], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9a4b
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0xca9b41
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9b41
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9af9
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0xca9be8
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9be8
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9ba0
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0xca9c8f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9c8f
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca9cc8
cmp eax, 3
je 0xca9cc8
xor eax, eax
jmp 0xca9ccd
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9c47
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov eax, 1
mov dword [ebp - 0x24], eax
cmp ecx, eax
jl 0xcaa1c9
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0xca9d4c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9d49
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov edx, ecx
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0xca9d92
je 0xca9e07
cmp ecx, 0x85
ja 0xca9d80
je 0xca9e07
cmp ecx, 9
jb case.0xca9dae.8203
cmp ecx, 0xd
jbe 0xca9e07
cmp ecx, 0x20
jne case.0xca9dae.8203
jmp 0xca9e07
cmp ecx, 0xa0
je 0xca9e07
cmp ecx, 0x1680
jne case.0xca9dae.8203
jmp 0xca9e07
cmp ecx, 0x202f
ja 0xca9db5
je 0xca9e07
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0xca9dae.8203
movzx eax, byte [ecx + 0xcae795]
jmp dword [eax*4 + 0xcae78d]
cmp ecx, 0x205f
je 0xca9e07
cmp ecx, 0x3000
je 0xca9e07
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp dword [eax*4 + 0xd25350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x24]
jmp 0xca9e11
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne case.0xc68896.157
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, ecx
jle 0xca9d00
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0xca9e80
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9e80
movzx edx, word [edi]
and ecx, 0x3ff
and edx, 0x3ff
shl ecx, 0xa
add edi, 2
or edx, ecx
mov dword [ebp - 8], edi
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xca9ec0
cmp eax, 3
je 0xca9ec0
cmp edx, 0x5f
je 0xca9ec0
xor eax, eax
jmp 0xca9ec5
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9e38
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
je 0xca9f46
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9f46
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0xd10a70]
lea eax, [eax*4 + 0xd10a70]
cmp dword [ebp - 0x24], edx
jb 0xca9f69
lea eax, [eax + 4]
cmp ecx, edx
je 0xca9f8a
mov edx, dword [eax]
cmp ecx, edx
jae 0xca9f5c
cmp dword [ebp - 0x3c], 0
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9ef8
jmp 0xcaa1c6
cmp dword [ebp - 0x3c], 0
jne case.0xc68896.157
jmp 0xca9f73
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xc68e10
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0xca9ff1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xca9ff1
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x24
je 0xcaa01c
cmp ecx, 0x40
je 0xcaa01c
cmp ecx, 0x60
je 0xcaa01c
cmp ecx, 0xa0
jb 0xcaa010
cmp ecx, 0xd7ff
jbe 0xcaa01c
cmp ecx, 0xe000
jae 0xcaa01c
xor eax, eax
jmp 0xcaa021
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xca9fa9
jmp 0xcaa1c6
cmp edi, 0x16
jne 0xcaa1d1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
cmp ecx, 1
jl 0xc68e10
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov eax, edi
mov dword [ebp - 8], edi
mov ecx, edx
mov dword [ebp - 0x24], eax
je 0xcaa0b7
mov dword [ebp - 0x24], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaa0b7
movzx ecx, word [edi]
and edx, 0x3ff
add edi, 2
shl edx, 0xa
and ecx, 0x3ff
mov dword [ebp - 8], edi
mov eax, edi
or ecx, edx
mov dword [ebp - 0x24], eax
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0xcaa18a
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0xcaa12e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaa12e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0xd221f0], eax
je 0xcaa17e
mov eax, edx
mov ebx, ecx
lea edi, [eax + esi*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov edx, edi
cmp edi, eax
jb 0xcaa0f3
jmp 0xcaa181
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0xcaa1b3
cmp edx, eax
jb 0xcaa1b3
cmp edx, dword [esi + 0x88]
jbe 0xcaa1b3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0xc]
jle 0xcaa05d
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
jmp 0xc68e10
cmp dword [ebp - 0x28], 0
lea eax, [edi - 6]
je 0xcaa8f6
cmp eax, 0xf
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae7c1]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xcaa1c9
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcaa9d7
mov edx, dword [esi + 0x18]
test edx, edx
je 0xcaa22b
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne case.0xc68896.157
jmp 0xcaa257
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0xcaa257
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcaa257
cmp edx, 1
je case.0xc68896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0xc68896.157
cmp dword [esi + 0x8c], 0
je 0xcaa291
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0xcaa291
cmp dword [esi + 0x18], 0
jne 0xcaa291
cmp dword [esi + 0x1c], 2
jne 0xcaa291
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcaa291
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov ecx, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0xcaa2b9
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0xcaa2b9
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0xc]
jle 0xcaa200
jmp 0xcaa1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0xcaa9d7
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0xcaa31a
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xdc00
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0xc]
jne 0xcaa31a
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0xcaa2e4
jmp 0xcaa1c3
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0xc68896.157
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xcaa1c9
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
mov edx, edi
cmp eax, 0xd800
jne 0xcaa39b
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov edx, edi
cmp ecx, 0xd
ja 0xcaa3ca
je 0xcaa3b5
cmp ecx, 0xa
je 0xcaa3eb
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0xc68896.157
jmp 0xcaa3e1
mov eax, dword [esi + 0x7c]
cmp edx, eax
jae 0xcaa3ee
cmp word [edi], 0xa
jne 0xcaa3ee
lea edi, [edx + 2]
mov dword [ebp - 8], edi
jmp 0xcaa3ee
cmp ecx, 0x85
je 0xcaa3e1
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
cmp dword [esi + 0x6c], 0
jne case.0xc68896.157
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [ebp - 0xc]
jle 0xcaa359
jmp 0xcaa1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaa452
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
ja 0xcaa490
je case.0xc68896.157
cmp ecx, 0xa0
ja 0xcaa482
je case.0xc68896.157
cmp ecx, 9
je case.0xc68896.157
cmp ecx, 0x20
je case.0xc68896.157
jmp 0xcaa4cc
cmp ecx, 0x1680
je case.0xc68896.157
jmp 0xcaa4cc
cmp ecx, 0x205f
ja 0xcaa4c0
je case.0xc68896.157
cmp ecx, 0x2000
jb 0xcaa4cc
cmp ecx, 0x200a
jbe case.0xc68896.157
cmp ecx, 0x202f
je case.0xc68896.157
jmp 0xcaa4cc
cmp ecx, 0x3000
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0xcaa413
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaa52c
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
ja 0xcaa55e
je 0xcaa596
cmp ecx, 0xa0
ja 0xcaa550
je 0xcaa596
cmp ecx, 9
je 0xcaa596
cmp ecx, 0x20
jne case.0xc68896.157
jmp 0xcaa596
cmp ecx, 0x1680
jne case.0xc68896.157
jmp 0xcaa596
cmp ecx, 0x205f
ja 0xcaa58a
je 0xcaa596
cmp ecx, 0x2000
jb case.0xc68896.157
cmp ecx, 0x200a
jbe 0xcaa596
cmp ecx, 0x202f
jne case.0xc68896.157
jmp 0xcaa596
cmp ecx, 0x3000
jne case.0xc68896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0xcaa4ed
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaa5f6
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
ja 0xcaa614
je case.0xc68896.157
cmp ecx, 0xa
jb 0xcaa628
cmp ecx, 0xd
jbe case.0xc68896.157
jmp 0xcaa628
cmp ecx, 0x2028
jb 0xcaa628
cmp ecx, 0x2029
jbe case.0xc68896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0xcaa5b7
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaa684
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
ja 0xcaa69c
je 0xcaa6ab
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0xc68896.157
jmp 0xcaa6ab
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0xcaa645
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xcaa1c9
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcaa70e
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov edx, ecx
cmp edx, 0x80
jae 0xcaa723
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xcaa6cb
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaa746
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xcaa1c9
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0xcaa9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0xcaa7ba
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0xc68896.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0xcaa7e2
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0xcaa7e2
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0xcaa797
jmp 0xcaa1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaa802
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xcaa1c9
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0xcaa9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0xcaa876
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0xc68896.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0xcaa89e
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0xcaa89e
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0xcaa853
jmp 0xcaa1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaa8be
jmp 0xcaa1c6
cmp eax, 0xf
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae801]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0xcaa1c9
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcaa9d7
mov edx, dword [esi + 0x18]
test edx, edx
je 0xcaa946
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne case.0xc68896.157
jmp 0xcaa972
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0xcaa972
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcaa972
cmp edx, 1
je case.0xc68896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0xc68896.157
cmp dword [esi + 0x8c], 0
je 0xcaa9ac
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0xcaa9ac
cmp dword [esi + 0x18], 0
jne 0xcaa9ac
cmp dword [esi + 0x1c], 2
jne 0xcaa9ac
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcaa9ac
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov eax, dword [ebp - 0x1c]
add edi, 2
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0xcaa919
jmp 0xcaa1c6
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
jbe 0xcaaa17
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp edi, dword [esi + 0x88]
jbe case.0xc68896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0xc68896.157
jmp 0xcae351
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0xcaa9d7
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
ja 0xcaaa70
je 0xcaaa5e
cmp eax, 0xa
je 0xcaaa8f
add eax, 0xfffffff5
cmp eax, 1
ja case.0xc68896.157
jmp 0xcaaa85
cmp edi, ecx
jae 0xcaaa8f
cmp word [edi], 0xa
jne 0xcaaa8f
add edi, 2
mov dword [ebp - 8], edi
jmp 0xcaaa8f
cmp eax, 0x85
je 0xcaaa85
add eax, 0xffffdfd8
cmp eax, 1
ja case.0xc68896.157
cmp dword [esi + 0x6c], 0
jne case.0xc68896.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0xcaaa37
jmp 0xcaa1c3
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0xca9979
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0xcaaaf8
je case.0xc68896.157
cmp eax, 0xa0
ja 0xcaaaeb
je case.0xc68896.157
cmp eax, 9
je case.0xc68896.157
cmp eax, 0x20
je case.0xc68896.157
jmp 0xcaab2f
cmp eax, 0x1680
je case.0xc68896.157
jmp 0xcaab2f
cmp eax, 0x205f
ja 0xcaab24
je case.0xc68896.157
cmp eax, 0x2000
jb 0xcaab2f
cmp eax, 0x200a
jbe case.0xc68896.157
cmp eax, 0x202f
je case.0xc68896.157
jmp 0xcaab2f
cmp eax, 0x3000
je case.0xc68896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0xcaaaab
mov ecx, dword [ebp - 0xc]
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0xca9979
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0xcaab93
je 0xcaabc6
cmp eax, 0xa0
ja 0xcaab86
je 0xcaabc6
cmp eax, 9
je 0xcaabc6
cmp eax, 0x20
jne case.0xc68896.157
jmp 0xcaabc6
cmp eax, 0x1680
jne case.0xc68896.157
jmp 0xcaabc6
cmp eax, 0x205f
ja 0xcaabbb
je 0xcaabc6
cmp eax, 0x2000
jb case.0xc68896.157
cmp eax, 0x200a
jbe 0xcaabc6
cmp eax, 0x202f
jne case.0xc68896.157
jmp 0xcaabc6
cmp eax, 0x3000
jne case.0xc68896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0xcaab52
mov ecx, dword [ebp - 0xc]
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0xca9979
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0xcaac14
je case.0xc68896.157
cmp eax, 0xa
jb 0xcaac26
cmp eax, 0xd
jbe case.0xc68896.157
jmp 0xcaac26
cmp eax, 0x2028
jb 0xcaac26
cmp eax, 0x2029
jbe case.0xc68896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0xcaabe5
mov ecx, dword [ebp - 0xc]
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0xca9979
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0xcaac6e
je 0xcaac7c
add eax, 0xfffffff6
cmp eax, 3
ja case.0xc68896.157
jmp 0xcaac7c
add eax, 0xffffdfd8
cmp eax, 1
ja case.0xc68896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0xcaac45
mov ecx, dword [ebp - 0xc]
jmp 0xcaa1c9
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0xcaacc5
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaac9a
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0xc68896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaace5
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0xcaad5c
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaad31
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0xc68896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaad7c
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0xcaadf3
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaadc8
jmp 0xcaa1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0xcaa1c6
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0xc68896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0xc68896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0xcaae13
jmp 0xcaa1c6
mov edx, edi
mov dword [ebp - 0x10], edx
test eax, eax
js 0xcab6c6
cmp eax, 0xa
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae841]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaaeca
cmp dword [ebp - 0x28], 0
mov ecx, 1
je 0xcaaeaa
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xd800
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0x14]
jne 0xcaaeaa
mov ecx, 2
cmp dword [ebp - 0x3c], 0
jne 0xcab661
lea edi, [edi + ecx*2]
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jl 0xcaae77
jmp 0xcab661
cmp dword [esi + 0x8c], 0
je 0xcab661
cmp edi, dword [esi + 0x88]
jbe 0xcab661
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xcab661
jmp 0xcae351
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0xcaaf55
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcaaf50
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0xcaaf5a
mov edx, dword [ebp - 0x38]
jmp 0xcaaf5a
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp eax, 9
je 0xcaaf91
cmp eax, 5
je 0xcaaf91
cmp eax, 8
je 0xcaaf91
xor eax, eax
jmp 0xcaaf96
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcaaf05
jmp 0xcab65e
cmp dword [esi + 0x8c], 0
je 0xcab65e
cmp edi, dword [esi + 0x88]
jbe 0xcab65e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xcab65e
jmp 0xcae351
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0xcab041
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab03c
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0xcab046
mov edx, dword [ebp - 0x38]
jmp 0xcab046
mov edx, 1
mov esi, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp dword [eax*4 + 0xd25350], esi
mov esi, dword [ebp + 0x10]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcaaff5
jmp 0xcab65e
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0xcab0f9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab0f4
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0xcab0fe
mov edx, dword [ebp - 0x38]
jmp 0xcab0fe
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab0a9
jmp 0xcab65e
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0xcab1a7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab1a2
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0xcab1ac
mov edx, dword [ebp - 0x38]
jmp 0xcab1ac
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab157
jmp 0xcab65e
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0xcab255
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab250
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0xcab25a
mov edx, dword [ebp - 0x38]
jmp 0xcab25a
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xcab293
cmp eax, 3
je 0xcab293
xor eax, eax
jmp 0xcab298
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab205
jmp 0xcab65e
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
mov eax, 1
mov dword [ebp - 0x24], eax
cmp edi, dword [esi + 0x7c]
jae 0xcab3f8
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
je 0xcab318
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab315
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x24], eax
mov edx, ecx
jmp 0xcab318
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0xcab35e
je 0xcab3d3
cmp ecx, 0x85
ja 0xcab34c
je 0xcab3d3
cmp ecx, 9
jb case.0xcab37a.8203
cmp ecx, 0xd
jbe 0xcab3d3
cmp ecx, 0x20
jne case.0xcab37a.8203
jmp 0xcab3d3
cmp ecx, 0xa0
je 0xcab3d3
cmp ecx, 0x1680
jne case.0xcab37a.8203
jmp 0xcab3d3
cmp ecx, 0x202f
ja 0xcab381
je 0xcab3d3
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0xcab37a.8203
movzx eax, byte [ecx + 0xcae875]
jmp dword [eax*4 + 0xcae86d]
cmp ecx, 0x205f
je 0xcab3d3
cmp ecx, 0x3000
je 0xcab3d3
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp dword [eax*4 + 0xd25350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0x24]
jmp 0xcab3dd
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne 0xcab65e
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab2c5
jmp 0xcab65e
cmp dword [esi + 0x8c], 0
je 0xcab65e
cmp edi, dword [esi + 0x88]
jbe 0xcab65e
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0xcab65e
jmp 0xcae351
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
mov dword [ebp - 0x1c], 1
je 0xcab479
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab479
movzx edx, word [edi + 2]
and ecx, 0x3ff
and edx, 0x3ff
shl ecx, 0xa
or edx, ecx
mov dword [ebp - 0x1c], 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xcab4b9
cmp eax, 3
je 0xcab4b9
cmp edx, 0x5f
je 0xcab4b9
xor eax, eax
jmp 0xcab4be
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab42e
jmp 0xcab65e
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0xcaafba
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x24], ecx
je 0xcab53f
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab53f
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0xd10a70]
lea eax, [eax*4 + 0xd10a70]
cmp dword [ebp - 0x24], edx
jb 0xcab562
lea eax, [eax + 4]
cmp ecx, edx
je 0xcab58a
mov edx, dword [eax]
cmp ecx, edx
jae 0xcab555
cmp dword [ebp - 0x3c], 0
je 0xcab65e
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab4ee
jmp 0xcab65e
cmp dword [ebp - 0x3c], 0
je 0xcab56c
jmp 0xcab65e
cmp ecx, dword [ebp - 0x14]
jge 0xcab661
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0xcab639
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
je 0xcab5e9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab5e9
movzx ecx, word [edi + 2]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
cmp ecx, 0x24
je 0xcab614
cmp ecx, 0x40
je 0xcab614
cmp ecx, 0x60
je 0xcab614
cmp ecx, 0xa0
jb 0xcab608
cmp ecx, 0xd7ff
jbe 0xcab614
cmp ecx, 0xe000
jae 0xcab614
xor eax, eax
jmp 0xcab619
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0xcab65e
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab59e
jmp 0xcab65e
cmp dword [esi + 0x8c], 0
je 0xcab65e
cmp edi, dword [esi + 0x88]
jbe 0xcab65e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp edi, edx
jbe 0xc68992
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
je 0xcab6bc
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xcab6bc
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0xcab673
jmp 0xc68992
mov eax, dword [ebp - 0x20]
cmp eax, 0x16
jne 0xcab8b3
cmp ecx, dword [ebp - 0x14]
jge 0xcab867
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0xcab83f
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], edi
je 0xcab731
mov eax, edx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab731
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov dword [ebp - 0x24], edi
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0xcab804
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0xcab7a8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcab7a8
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0xd221f0], eax
je 0xcab7f8
mov eax, edx
mov ebx, ecx
lea edi, [eax + esi*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov edx, edi
cmp edi, eax
jb 0xcab76d
jmp 0xcab7fb
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0xcab82d
cmp edx, eax
jb 0xcab82d
cmp edx, dword [esi + 0x88]
jbe 0xcab82d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcab6db
jmp 0xcab864
cmp dword [esi + 0x8c], 0
je 0xcab864
cmp edi, dword [esi + 0x88]
jbe 0xcab864
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp edi, edx
jbe 0xc68992
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
jne 0xcac77e
movzx ecx, word [edi]
jmp 0xcac7c4
add eax, 0xfffffffa
cmp dword [ebp - 0x28], 0
je 0xcac0d7
cmp eax, 0xf
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae8a1]
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0xcab9b2
mov edx, dword [esi + 0x18]
test edx, edx
je 0xcab909
push dword [ebp - 0x28]
lea ecx, [esi + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.00c66cde
add esp, 0xc
test eax, eax
je 0xcab938
jmp 0xcab9d7
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + ecx]
sub edx, eax
cmp edi, edx
ja 0xcab938
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcab938
cmp ecx, 1
je 0xcab9d7
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0xcab9d7
cmp dword [esi + 0x8c], 0
je 0xcab972
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0xcab972
cmp dword [esi + 0x18], 0
jne 0xcab972
cmp dword [esi + 0x1c], 2
jne 0xcab972
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcab972
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0xcab9a0
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0x24]
jne 0xcab9a0
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0xcab8df
jmp 0xcab9d7
cmp dword [esi + 0x8c], 0
je 0xcab9d7
cmp edi, dword [esi + 0x88]
jbe 0xcab9d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp edi, edx
jbe 0xc68992
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov edx, 0xfc00
mov dword [ebp - 8], edi
and ax, dx
mov ecx, edi
mov edx, 0xdc00
cmp ax, dx
jne 0xcaba35
add edi, 0xfffffffe
mov dword [ebp - 8], edi
mov ecx, edi
cmp dword [ebp - 0x20], 0x11
mov eax, dword [ebp - 0x10]
jne 0xcaba55
cmp ecx, eax
jbe 0xcaba55
cmp word [edi], 0xa
jne 0xcaba55
cmp word [edi - 2], 0xd
jne 0xcaba55
lea edi, [ecx - 2]
mov dword [ebp - 8], edi
cmp edi, eax
ja 0xcab9ec
jmp 0xc68992
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
jge 0xcabab6
cmp ecx, eax
jge 0xcab9da
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0xcababc
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0xcabaa8
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xdc00
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0xc]
jne 0xcabaa8
add edi, 2
mov dword [ebp - 8], edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcaba76
jmp 0xcab9da
mov edi, dword [esi + 0x7c]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0xcab9da
cmp edi, dword [esi + 0x88]
jbe 0xcab9da
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xcab9da
jmp 0xcae351
sub dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp - 0x14], eax
jbe 0xcabb36
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0xcab9da
cmp ecx, dword [esi + 0x88]
jbe 0xcab9da
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xcab9da
jmp 0xcae351
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0xcab9da
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0xcab9b2
movzx ecx, word [edi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcabb8d
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0xd
jne 0xcabbae
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0xcab9d7
cmp word [edi], 0xa
jne 0xcabbec
add edi, 2
jmp 0xcabbe9
cmp ecx, 0xa
je 0xcabbe3
cmp dword [esi + 0x6c], 0
jne 0xcab9d7
cmp ecx, 0xb
je 0xcabbe3
cmp ecx, 0xc
je 0xcabbe3
cmp ecx, 0x85
je 0xcabbe3
cmp ecx, 0x2028
je 0xcabbe3
cmp ecx, 0x2029
jne 0xcab9d7
mov eax, dword [esi + 0x7c]
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0xcabb50
jmp 0xcab9d7
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0xcabcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcabc48
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0xcabca4
je 0xcabc66
cmp ecx, 0xa0
ja 0xcabc9a
je 0xcabc66
cmp ecx, 9
je 0xcabc66
cmp ecx, 0x20
jne 0xcabcd0
mov ecx, 1
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x12
sete al
cmp ecx, eax
je 0xcab9d7
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabc0a
jmp 0xcab9d7
cmp ecx, 0x1680
jne 0xcabcd0
jmp 0xcabc66
cmp ecx, 0x205f
ja 0xcabcc8
je 0xcabc66
cmp ecx, 0x2000
jb 0xcabcd0
cmp ecx, 0x200a
jbe 0xcabc66
cmp ecx, 0x202f
jne 0xcabcd0
jmp 0xcabc66
cmp ecx, 0x3000
je 0xcabc66
xor ecx, ecx
jmp 0xcabc6b
cmp dword [esi + 0x8c], 0
je 0xcab9d7
cmp edi, dword [esi + 0x88]
jbe 0xcab9d7
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jmp 0xcab9d1
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0xcabcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcabd3e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x85
ja 0xcabd7f
je 0xcabd8a
cmp ecx, 0xa
jb 0xcabd52
cmp ecx, 0xd
jbe 0xcabd8a
xor ecx, ecx
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x14
sete al
cmp ecx, eax
je 0xcab9d7
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabd04
jmp 0xcab9d7
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0xcabd52
mov ecx, 1
jmp 0xcabd54
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
cmp edi, dword [esi + 0x7c]
jae 0xcab9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcabde3
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x1c], eax
mov edx, ecx
jmp 0xcabde8
mov eax, 1
cmp edx, 0x100
jae 0xcabe00
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0xcab9d7
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabd9a
jmp 0xcab9d7
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
cmp edi, dword [esi + 0x7c]
jae 0xcab9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcabe66
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0xcab9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0xcab9d7
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabe20
jmp 0xcab9d7
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
cmp edi, dword [esi + 0x7c]
jae 0xcab9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcabeeb
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x1c], eax
mov edx, ecx
jmp 0xcabef0
mov eax, 1
cmp edx, 0x100
jae 0xcabf08
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0xcab9d7
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabea2
jmp 0xcab9d7
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
cmp edi, dword [esi + 0x7c]
jae 0xcab9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcabf6e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0xcab9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0xcab9d7
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabf28
jmp 0xcab9d7
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
cmp edi, dword [esi + 0x7c]
jae 0xcab9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcabff3
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x1c], eax
mov edx, ecx
jmp 0xcabff8
mov eax, 1
cmp edx, 0x100
jae 0xcac010
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0xcab9d7
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcabfaa
jmp 0xcab9d7
cmp ecx, dword [ebp - 0x14]
jge 0xcab9da
cmp edi, dword [esi + 0x7c]
jae 0xcac0a5
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0xcac072
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0xcab9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0xcab9d7
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcac030
jmp 0xcab9d7
cmp dword [esi + 0x8c], 0
je 0xcab9d7
cmp edi, dword [esi + 0x88]
jbe 0xcab9d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp 0xcab9d7
cmp eax, 0xf
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae8e1]
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcac196
mov edx, dword [esi + 0x18]
test edx, edx
je 0xcac11c
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00c66cde
add esp, 0xc
test eax, eax
je 0xcac144
jmp 0xcac1bb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0xcac144
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcac144
cmp edx, 1
je 0xcac1bb
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0xcac1bb
cmp dword [esi + 0x8c], 0
je 0xcac17e
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0xcac17e
cmp dword [esi + 0x18], 0
jne 0xcac17e
cmp dword [esi + 0x1c], 2
jne 0xcac17e
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcac17e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcac0f0
jmp 0xcac1bb
cmp dword [esi + 0x8c], 0
je 0xcac1bb
cmp edi, dword [esi + 0x88]
jbe 0xcac1bb
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edx, dword [ebp - 0x10]
jmp 0xcac64a
sub dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp - 0x14], eax
jbe 0xcac20b
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0xcac64a
cmp ecx, dword [esi + 0x88]
jbe 0xcac64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xcac64a
jmp 0xcae351
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcac2a2
movzx eax, word [edi]
cmp eax, 0xd
jne 0xcac247
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0xcac64a
cmp word [edi], 0xa
je 0xcac28b
jmp 0xcac291
cmp eax, 0xa
je 0xcac28b
cmp dword [esi + 0x6c], 0
jne 0xcac64a
cmp eax, 0xb
je 0xcac28b
cmp eax, 0xc
je 0xcac28b
mov dword [ebp - 0x38], 0x85
cmp ax, word [ebp - 0x38]
je 0xcac28b
mov dword [ebp - 0x38], 0x2028
cmp ax, word [ebp - 0x38]
je 0xcac28b
mov dword [ebp - 0x38], 0x2029
cmp ax, word [ebp - 0x38]
jne 0xcac64a
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcac225
jmp 0xcac64a
cmp dword [esi + 0x8c], 0
je 0xcac64a
cmp edi, dword [esi + 0x88]
jbe 0xcac64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0xcac64a
jmp 0xcae351
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
cmp eax, 0x180e
ja 0xcac31e
je 0xcac64a
cmp eax, 0xa0
ja 0xcac312
je 0xcac64a
cmp eax, 9
je 0xcac64a
cmp eax, 0x20
jne 0xcac354
jmp 0xcac64a
cmp eax, 0x1680
jne 0xcac354
jmp 0xcac64a
cmp eax, 0x205f
ja 0xcac349
je 0xcac64a
cmp eax, 0x2000
jb 0xcac354
cmp eax, 0x200a
jbe 0xcac64a
cmp eax, 0x202f
jne 0xcac354
jmp 0xcac64a
cmp eax, 0x3000
je 0xcac64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0xcac2dd
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
cmp eax, 0x180e
ja 0xcac3ab
je 0xcac3dd
cmp eax, 0xa0
ja 0xcac39f
je 0xcac3dd
cmp eax, 9
je 0xcac3dd
cmp eax, 0x20
je 0xcac3dd
jmp 0xcac64a
cmp eax, 0x1680
je 0xcac3dd
jmp 0xcac64a
cmp eax, 0x205f
ja 0xcac3d2
je 0xcac3dd
cmp eax, 0x2000
jb 0xcac64a
cmp eax, 0x200a
jbe 0xcac3dd
cmp eax, 0x202f
je 0xcac3dd
jmp 0xcac64a
cmp eax, 0x3000
jne 0xcac64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0xcac372
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
cmp eax, 0x85
ja 0xcac41f
je 0xcac64a
cmp eax, 0xa
jb 0xcac431
cmp eax, 0xd
ja 0xcac431
jmp 0xcac64a
cmp eax, 0x2028
jb 0xcac431
cmp eax, 0x2029
jbe 0xcac64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0xcac3f7
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
cmp eax, 0x85
ja 0xcac46d
je 0xcac47b
add eax, 0xfffffff6
cmp eax, 3
jbe 0xcac47b
jmp 0xcac64a
add eax, 0xffffdfd8
cmp eax, 1
ja 0xcac64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0xcac44b
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0xcac4c0
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0xcac64a
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0xcac495
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0xcac64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0xcac64a
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcac4dd
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0xcac551
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0xcac64a
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0xcac526
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0xcac64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0xcac64a
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcac56e
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0xcac5de
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0xcac64a
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0xcac5b7
jmp 0xcac64a
cmp ecx, dword [ebp - 0x14]
jge 0xcac64a
cmp edi, dword [esi + 0x7c]
jae 0xcac625
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0xcac64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0xcac64a
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0xcac5f4
jmp 0xcac64a
cmp dword [esi + 0x8c], 0
je 0xcac64a
cmp edi, dword [esi + 0x88]
jbe 0xcac64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
cmp dword [ebp - 0x2c], 0
jne 0xc68b79
cmp edi, edx
je 0xc68992
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x10]
add edi, 0xfffffffe
cmp dword [ebp - 0x20], 0x11
mov dword [ebp - 8], edi
jne 0xcac6a5
cmp edi, eax
jbe 0xcac6a7
cmp word [edi], 0xa
jne 0xcac6a5
cmp word [edi - 2], 0xd
jne 0xcac6a5
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, eax
jne 0xcac65c
jmp 0xc68992
mov edx, dword [ebp - 0x20]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
add ebx, 4
jmp 0xc6898f
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push ecx
push dword [ebp + 8]
jne 0xcac736
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ecx, dword [ebp - 0x20]
mov edx, 0x81
movzx eax, word [ecx]
cmp ax, dx
je 0xcac9e8
mov edx, 0x88
cmp ax, dx
jb 0xca66c1
mov eax, dword [ebp + 0x18]
mov edx, ecx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
jmp 0xc689db
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.00c68810
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0xcac75d
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0xc689db
jmp 0xcac768
test eax, eax
jne 0xc689db
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0xcac9ec
add ebx, 4
jmp 0xc6898f
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xcac799
add edi, 0xfffffffe
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcac7c4
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f2]
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x10]
jbe 0xc68992
cmp dword [ebp - 0x28], 0
lea edx, [edi - 2]
jne 0xcac802
movzx ecx, word [edx]
jmp 0xcac845
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0xcac81a
add edx, 0xfffffffe
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcac845
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f2]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test dword [ecx*4 + 0xd221f0], eax
je 0xcab879
mov edi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
jmp 0xcac7eb
mov dword [esi + 0x9c], 2
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc20
jne 0xcac92b
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0xcae3d4
cmp word [ebx], 0x77
je 0xcac903
cmp word [eax], 0x77
jne 0xcae3d4
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x38]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
jne case.0xc68896.157
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp case.0xc68896.129
test eax, eax
je 0xcac903
cmp eax, 0xfffffc1b
jne 0xc689db
movzx ecx, word [ebx]
mov edx, 0x81
cmp cx, dx
je 0xcac966
cmp ecx, 0x77
jne 0xcac95a
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0xcac94c
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0xb8], ebx
jne 0xc689db
jmp case.0xc68896.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0xd22140]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0xc689db
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0xc689db
push ecx
call fcn.00c691bb
add esp, 4
jmp 0xcae3d4
mov eax, 0xfffffffa
jmp 0xc689db
mov edx, ecx
jmp 0xcac9ef
lea edx, [ebx + 4]
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov edi, dword [ebp - 0x20]
jmp 0xcaca38
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0xc689db
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, 0xfffffc1a
mov dword [esi + 0x90], ecx
jmp 0xc689db
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x90], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
jmp 0xc689d6
cmp eax, 0xfffffffe
jne 0xcaca92
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jb case.0xc68896.157
jmp 0xcaa9e4
mov dword [ebp - 0x1c], eax
cmp edi, edx
jl 0xcacabb
mov edi, eax
jmp 0xcacb20
mov eax, dword [ebp - 8]
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.00cfb321
add esp, 0xc
test eax, eax
js 0xcacae5
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 0x20]
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edi, dword [ebp - 0x2c]
jl 0xcacab8
jmp 0xcacb15
cmp eax, 0xfffffffe
jne 0xcacb12
cmp dword [esi + 0x8c], 0
je 0xcacb12
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0xcacb12
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp edx, edi
jb case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, edi
jae 0xcacb20
jmp case.0xc68896.157
cmp ecx, 0xfffffffe
jne 0xcacb65
mov eax, dword [esi + 0x7c]
jmp 0xcacb68
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp eax, dword [esi + 0x7c]
jb case.0xc68896.157
cmp eax, dword [esi + 0x88]
jmp 0xcaa9ea
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0xcacc5f
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0xc68896.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0xcacdaf
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcacc05
movzx eax, word [ecx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
cmp edx, 0xff
jbe 0xcacc18
cmp edi, 0x6e
je case.0xc68896.157
jmp 0xcacc36
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0xc68896.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcacbb7
jmp 0xc689db
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0xc68896.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0xcacdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0xcacc9b
cmp edi, 0x6e
je case.0xc68896.157
jmp 0xcaccb6
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
inc dword [ebp - 0x18]
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcacc67
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x28]
test edx, edx
je 0xcacd50
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcacd50
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
push edx
mov edx, dword [ebp - 0x24]
call fcn.00cfb51c
add esp, 4
test eax, eax
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcacd04
jmp 0xc689db
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp edx, ecx
jb case.0xc68896.157
cmp edx, dword [esi + 0x88]
jmp 0xcaa9ea
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp ecx, dword [esi + 0x88]
jmp 0xcaa9ea
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp eax, dword [esi + 0x88]
jmp 0xcaa9ea
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge case.0xc68896.157
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0xcace36
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00c81394
add esp, 0xc
test eax, eax
jne 0xcace36
mov eax, dword [ebp - 0xc]
jmp 0xcace6a
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0xcaca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0xcaca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00c81394
add esp, 0xc
test eax, eax
jne 0xcaca92
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcace05
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
cmp dword [ebp - 0x20], ecx
je 0xcacee4
cmp dword [ebp - 0x24], ecx
jne case.0xc68896.157
inc eax
add edi, 2
mov dword [ebp - 0x14], eax
mov edx, ebx
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcacebe
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x20], eax
jne case.0xc68896.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x14], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcacf32
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0xcad02d
test eax, eax
jne 0xc689db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcacff3
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [ebp - 0x14], ecx
je case.0xc68896.157
cmp dword [ebp - 0x20], ecx
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcacfae
jmp 0xc689db
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
cmp dword [ebp - 0x14], ecx
je case.0xc68896.157
cmp dword [ebp - 0x20], ecx
je case.0xc68896.157
inc eax
add edi, 2
mov dword [ebp - 0xc], eax
mov edx, ebx
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad035
jmp 0xc689db
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp eax, dword [esi + 0x88]
jbe case.0xc68896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0xc68896.157
jmp 0xcae351
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0xcad15e
test eax, eax
jne 0xc689db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad12d
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [ebp - 0x14], ecx
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad0e8
jmp 0xc689db
test eax, eax
jne 0xc689db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x14], eax
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0xc], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad166
jmp 0xc689db
cmp eax, 0xa
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae921]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x14]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
je 0xcad215
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad215
add edi, 2
cmp dword [ebp - 0x3c], 0
jne case.0xc68896.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0xc], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad1e5
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0xcad2b7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad2b7
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp eax, 9
je 0xcad2ee
cmp eax, 5
je 0xcad2ee
cmp eax, 8
je 0xcad2ee
xor eax, eax
jmp 0xcad2f3
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad26a
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0xcad398
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad398
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add edi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp dword [eax*4 + 0xd25350], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad34a
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0xcad46f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad46f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad422
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0xcad53f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad53f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad4f2
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0xcad610
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad610
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xcad649
cmp eax, 3
je 0xcad649
xor eax, eax
jmp 0xcad64e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad5c2
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0xcad6f7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad6f4
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov edx, ecx
mov eax, dword [ebp - 0xc]
cmp ecx, 0x180e
ja 0xcad73d
je 0xcad7b2
cmp ecx, 0x85
ja 0xcad72b
je 0xcad7b2
cmp ecx, 9
jb case.0xcad759.8203
cmp ecx, 0xd
jbe 0xcad7b2
cmp ecx, 0x20
jne case.0xcad759.8203
jmp 0xcad7b2
cmp ecx, 0xa0
je 0xcad7b2
cmp ecx, 0x1680
jne case.0xcad759.8203
jmp 0xcad7b2
cmp ecx, 0x202f
ja 0xcad760
je 0xcad7b2
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0xcad759.8203
movzx eax, byte [ecx + 0xcae955]
jmp dword [eax*4 + 0xcae94d]
cmp ecx, 0x205f
je 0xcad7b2
cmp ecx, 0x3000
je 0xcad7b2
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
cmp dword [eax*4 + 0xd25350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp - 0xc]
jmp 0xcad7bc
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], 0
jne case.0xc68896.157
inc eax
mov edx, ebx
mov dword [ebp - 0xc], eax
mov ecx, edi
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad6a5
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0xcad858
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad858
movzx eax, word [edi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0xd1ff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0xd11c40]
movzx eax, byte [eax*8 + 0xd0f3f1]
mov eax, dword [eax*4 + 0xd25350]
cmp eax, 1
je 0xcad898
cmp eax, 3
je 0xcad898
cmp edx, 0x5f
je 0xcad898
xor eax, eax
jmp 0xcad89d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad80b
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ecx
je 0xcad948
mov eax, ecx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcad948
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0xd10a70]
lea eax, [eax*4 + 0xd10a70]
cmp dword [ebp - 0x34], edx
jb 0xcad96b
lea eax, [eax + 4]
cmp ecx, edx
je 0xcad9a0
mov edx, dword [eax]
cmp ecx, edx
jae 0xcad95e
cmp dword [ebp - 0x3c], 0
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad8f4
jmp 0xc689db
cmp dword [ebp - 0x3c], 0
jne case.0xc68896.157
jmp 0xcad975
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0xcada1d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcada1d
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
add edi, 2
cmp ecx, 0x24
je 0xcada48
cmp ecx, 0x40
je 0xcada48
cmp ecx, 0x60
je 0xcada48
cmp ecx, 0xa0
jb 0xcada3c
cmp ecx, 0xd7ff
jbe 0xcada48
cmp ecx, 0xe000
jae 0xcada48
xor eax, eax
jmp 0xcada4d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcad9cf
jmp 0xc689db
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
cmp edi, dword [esi + 0x7c]
jae 0xcaa9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x38], eax
mov edx, edi
je 0xcadadb
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcadadb
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add edi, 2
or ecx, eax
add ecx, 0x10000
mov edx, edi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], ecx
cmp edx, eax
jae 0xcadbad
mov dword [ebp - 0x38], edx
mov ebx, edx
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x34], 1
je 0xcadb51
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0xcadb51
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov esi, dword [ebp - 0x1c]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edx, ebx
movzx eax, byte [eax + 0xd1ff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0xd11c40]
movzx ecx, byte [eax*8 + 0xd0f3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0xd221f0], eax
mov esi, dword [ebp + 0x10]
je 0xcadba7
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], ecx
lea edi, [ebx + eax*2]
mov eax, dword [esi + 0x7c]
mov ebx, edi
mov edx, edi
cmp edi, eax
jb 0xcadb12
jmp 0xcadbaa
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0xcadbd6
cmp edx, eax
jb 0xcadbd6
cmp edx, dword [esi + 0x88]
jbe 0xcadbd6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcada89
jmp 0xc689db
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0xc68ea2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xc68ea2
cmp edx, 1
je case.0xc68896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0xc68896.157
jmp 0xc68ea2
movzx eax, word [edi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, edi
mov edx, ecx
mov dword [ebp - 0x24], eax
jmp 0xc68ebf
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
cmp esi, 0xf
ja case.default.0xca8009
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
jmp dword [esi*4 + 0xcae981]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 0xd
ja 0xcadcbd
je 0xcadca2
cmp ecx, 0xa
je case.0xcadc77.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0xc68896.157
jmp 0xcadcd4
cmp edi, dword [esi + 0x7c]
jae case.0xcadc77.13
cmp word [edi], 0xa
jne case.0xcadc77.13
lea edi, [eax + 2]
jmp case.0xcadc77.13
cmp ecx, 0x85
je 0xcadcd4
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
cmp dword [esi + 0x6c], 0
jne case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x180e
ja 0xcadd27
je case.0xc68896.157
cmp ecx, 0xa0
ja 0xcadd16
je case.0xc68896.157
cmp ecx, 9
je case.0xc68896.157
cmp ecx, 0x20
je case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x1680
je case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x205f
ja 0xcadd5e
je case.0xc68896.157
cmp ecx, 0x2000
jb case.0xcadc77.13
cmp ecx, 0x200a
jbe case.0xc68896.157
cmp ecx, 0x202f
je case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x3000
je case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x180e
ja 0xcaddb3
je case.0xcadc77.13
cmp ecx, 0xa0
ja 0xcadda2
je case.0xcadc77.13
cmp ecx, 9
je case.0xcadc77.13
cmp ecx, 0x20
jne case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x1680
jne case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x205f
ja 0xcaddea
je case.0xcadc77.13
cmp ecx, 0x2000
jb case.0xc68896.157
cmp ecx, 0x200a
jbe case.0xcadc77.13
cmp ecx, 0x202f
jne case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x3000
jne case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x85
ja 0xcade20
je case.0xc68896.157
cmp ecx, 0xa
jb case.0xcadc77.13
cmp ecx, 0xd
jbe case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x2028
jb case.0xcadc77.13
cmp ecx, 0x2029
jbe case.0xc68896.157
jmp case.0xcadc77.13
cmp ecx, 0x85
ja 0xcade5c
je case.0xcadc77.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0xc68896.157
jmp case.0xcadc77.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
jmp case.0xcadc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0xcadc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0xc68896.157
jmp case.0xcadc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0xc68896.157
jmp case.0xcadc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0xcadc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0xc68896.157
jmp case.0xcadc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0xc68896.157
jmp case.0xcadc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0xcadc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0xc68896.157
jmp case.0xcadc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0xc68896.157
jmp case.0xcadc77.13
cmp eax, dword [esi + 0x7c]
jb case.0xcadc77.13
cmp dword [esi + 0x18], 0
jne case.0xcadc77.13
cmp dword [esi + 0x1c], 2
jne case.0xcadc77.13
movzx eax, word [esi + 0x34]
cmp edx, eax
jne case.0xcadc77.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0xcae351
jmp case.0xcadc77.13
test eax, eax
jne 0xc689db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0xc68896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0xcae324
cmp dword [ebp - 0x20], 0xc
jne 0xcadfeb
mov edx, dword [esi + 0x18]
test edx, edx
je 0xcadfbf
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00c66cde
add esp, 0xc
test eax, eax
jne case.0xc68896.157
jmp 0xcadfeb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0xcadfeb
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0xcadfeb
cmp edx, 1
je case.0xc68896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0xc68896.157
movzx eax, word [edi]
add edi, 2
mov ecx, eax
mov edx, eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffffa
mov dword [ebp - 0x38], ecx
cmp eax, 0xf
ja case.default.0xca8009
jmp dword [eax*4 + 0xcae9c1]
cmp dword [esi + 0x8c], 0
je case.0xcae007.13
cmp edi, dword [esi + 0x7c]
jb case.0xcae007.13
cmp dword [esi + 0x18], 0
jne case.0xcae007.13
cmp dword [esi + 0x1c], 2
jne case.0xcae007.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0xcae007.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0xcae007.13
jmp 0xcae351
cmp ecx, 0xd
ja 0xcae096
je 0xcae07b
cmp ecx, 0xa
je case.0xcae007.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0xc68896.157
jmp 0xcae0ad
cmp edi, dword [esi + 0x7c]
jae case.0xcae007.13
cmp word [edi], 0xa
jne case.0xcae007.13
add edi, 2
jmp case.0xcae007.13
cmp ecx, 0x85
je 0xcae0ad
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
cmp dword [esi + 0x6c], 0
jne case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x180e
ja 0xcae100
je case.0xc68896.157
cmp ecx, 0xa0
ja 0xcae0ef
je case.0xc68896.157
cmp ecx, 9
je case.0xc68896.157
cmp ecx, 0x20
je case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x1680
je case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x205f
ja 0xcae137
je case.0xc68896.157
cmp ecx, 0x2000
jb case.0xcae007.13
cmp ecx, 0x200a
jbe case.0xc68896.157
cmp ecx, 0x202f
je case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x3000
je case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x180e
ja 0xcae18c
je case.0xcae007.13
cmp ecx, 0xa0
ja 0xcae17b
je case.0xcae007.13
cmp ecx, 9
je case.0xcae007.13
cmp ecx, 0x20
jne case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x1680
jne case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x205f
ja 0xcae1c3
je case.0xcae007.13
cmp ecx, 0x2000
jb case.0xc68896.157
cmp ecx, 0x200a
jbe case.0xcae007.13
cmp ecx, 0x202f
jne case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x3000
jne case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x85
ja 0xcae1f9
je case.0xc68896.157
cmp ecx, 0xa
jb case.0xcae007.13
cmp ecx, 0xd
jbe case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x2028
jb case.0xcae007.13
cmp ecx, 0x2029
jbe case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0x85
ja 0xcae235
je case.0xcae007.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0xc68896.157
jmp case.0xcae007.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0xc68896.157
jmp case.0xcae007.13
cmp ecx, 0xff
ja case.0xcae007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0xc68896.157
jmp case.0xcae007.13
mov eax, 0xff
cmp word [ebp - 0x38], ax
ja case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0xc68896.157
jmp case.0xcae007.13
mov eax, 0xff
cmp dx, ax
ja case.0xcae007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0xc68896.157
jmp case.0xcae007.13
mov eax, 0xff
cmp dx, ax
ja case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0xc68896.157
jmp case.0xcae007.13
mov eax, 0xff
cmp dx, ax
ja case.0xcae007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0xc68896.157
jmp case.0xcae007.13
mov eax, 0xff
cmp dx, ax
ja case.0xc68896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0xc68896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcadf80
jmp 0xc689db
mov eax, 0xfffffff2
jmp 0xc689db
cmp dword [esi + 0x8c], 0
je case.0xc68896.157
cmp edi, dword [esi + 0x88]
jbe case.0xc68896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0xc68896.157
mov eax, 0xfffffff4
jmp 0xc689db
mov dword [esi + 0x9c], 2
jmp 0xc68f6c
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0xcae3d4
cmp word [ebx], 0x77
je 0xcae385
cmp word [eax], 0x77
jne 0xcae3d4
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x34]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
je 0xc68f60
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x40]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x30]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x3c]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x2c]
jmp 0xc689db
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0xd22140]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.00c68810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0xcae42d
cmp eax, 0xfffffc19
jne 0xcae441
cmp dword [esi + 0xb0], 0
jne 0xcae441
mov dword [esi + 0xb0], edi
jmp 0xc689db
cmp eax, 0xfffffc1f
jne 0xc689db
mov edx, dword [esi + 0x80]
mov ecx, edi
call fcn.00cfb94c
test eax, eax
jne 0xcae3d4
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov eax, 0xfffffc1c
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcae53d
jmp 0xc689db
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0xd22140]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00c68810
add esp, 0x14
cmp eax, 1
je 0xcae526
cmp eax, 0xfffffc19
jne 0xcae535
cmp dword [esi + 0xb0], 0
jne 0xcae535
mov dword [esi + 0xb0], edi
test eax, eax
jne 0xc689db
mov eax, 0xfffffc1d
jmp 0xc689db
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.00c68810
add esp, 0x14
test eax, eax
jne 0xc689db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0xc689db
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0xd22140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00c68810
add esp, 0x14
test eax, eax
je 0xcae61b
jmp 0xc689db
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0xd22140]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00c68810
add esp, 0x14
cmp eax, 1
je 0xcae604
cmp eax, 0xfffffc19
jne 0xcae613
cmp dword [esi + 0xb0], 0
jne 0xcae613
mov dword [esi + 0xb0], edi
test eax, eax
jne 0xc689db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0xc689db
cmp edi, 0x9f
je 0xc689b9
cmp dword [esi + 0xa8], 0
jne 0xc689b9
cmp dword [esi + 0x60], 0
jne case.0xc68896.157
cmp dword [esi + 0x64], 0
je 0xc689b9
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0xc68896.157
jmp 0xc689b9
mov eax, 0xfffffc19
jmp 0xc689db
mov eax, 0xfffffffb
jmp 0xc689db
mov eax, 0xffffffeb
jmp 0xc689db
inc eax
mov dword [esi], eax
mov eax, 0xfffffff8
jmp 0xc689db