Function at 0x408810
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 0x446545
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 0x44e68f
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x44e685
cmp dword [esi + 0x9c], 2
je 0x446579
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.0x408896.98
movzx eax, byte [edi + 0x409110]
jmp dword [eax*4 + 0x408fc4]
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 0x4472d4
mov eax, 0x81
cmp cx, ax
je 0x4472d4
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0x4088e3
mov eax, 0x80
cmp cx, ax
jbe 0x44ca6a
mov eax, 0x82
cmp cx, ax
je 0x44ca6a
mov eax, 0x85
cmp cx, ax
je 0x408ca6
mov eax, 0x8a
cmp cx, ax
je 0x408ca6
mov eax, 0x86
cmp cx, ax
je 0x408ca6
mov eax, 0x8b
cmp cx, ax
je 0x408ca6
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x44734c
mov eax, 0x81
cmp word [edi], ax
je 0x44ca15
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40886d
cmp edi, 0x88
jae 0x44c893
cmp edi, 0x81
je 0x44c893
cmp dword [esi + 0x70], 0
jne 0x44c89d
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x44c89d
movzx eax, word [ebx]
movzx eax, byte [eax + 0x4c2140]
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 0x408851
jmp 0x44e68f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x44e62b
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x44e671
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 0x44cdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0x408a18
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44820e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f2]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x408ab6
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0x408a50
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0x408a70
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44823a
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c21f0], eax
mov eax, dword [ebp - 0x24]
jne 0x408b81
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0x44825e
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x40886d
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 0x4484d2
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 0x4485a0
cmp edx, ecx
jl 0x408b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44856d
cmp edx, 0xff
ja 0x448592
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.0x408896.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x408b11
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0x448602
mov edx, dword [ebp - 8]
jmp 0x40886d
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 0x408a50
jmp 0x408ab0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
cmp dword [ebp - 0x28], 0
je 0x448b6d
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 0x448abe
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0x448ae9
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0x408bf7
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0x408896.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40886d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
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 0x408c4a
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x447fd6
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x4b1c40]
cmp eax, 9
jne 0x448000
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4b0a70]
lea eax, [eax*4 + 0x4b0a70]
cmp dword [ebp - 0x20], ecx
jb 0x448200
lea eax, [eax + 4]
cmp edx, ecx
je 0x408d21
mov ecx, dword [eax]
cmp edx, ecx
jae 0x408c90
jmp 0x448200
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 0x4472ec
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0x447318
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0x44732b
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 0x408d19
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0x40892c
cmp edi, 0x10
jne case.0x408896.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40886d
cmp dword [ebp - 0x28], 0
je 0x448a8c
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 0x448a7f
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 0x44cd8f
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.0x408896.157
test edi, edi
jle 0x408b79
jmp 0x408d80
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0x4498e4
mov edx, 1
movsx edi, byte [ecx + 0x4b1c2c]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0x4b1c20]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x408de1
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 0x4498eb
cmp edi, 0xf
je 0x4498eb
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0x449912
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0x408b79
test edx, edx
je 0x44ae4f
test eax, eax
jns 0x44d1b2
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.00408810
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0x44da81
cmp dword [ebp - 0x28], 0
je 0x44df78
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44a9d7
cmp dword [ebp - 0x20], 0xc
jne 0x408ea2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44dc01
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.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 0x44dc3a
cmp dword [ebp - 0x20], 0xc
jne 0x44dc62
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0x44df36
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
jmp 0x408e60
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.0x408896.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 0x44e35b
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0x44e3af
cmp eax, 0xfffffc20
je 0x44e36a
test eax, eax
jne 0x4089db
jmp 0x44e38c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0x446567
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.00408810
add esp, 0x14
jmp 0x4089db
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0x4089db
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 0x408b79
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44c977
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4c2140]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x40886d
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.00408810
add esp, 0x14
cmp eax, 1
je 0x446641
cmp eax, 0xfffffc20
jne 0x446621
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x4089db
cmp word [ebx], 0x77
je 0x446629
cmp word [ecx], 0x77
jne 0x4089db
jmp 0x446629
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x4465d3
mov ecx, dword [ebp + 8]
jmp 0x44664a
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x446660
cmp eax, 0x77
jne case.0x408896.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446660
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 0x447204
cmp eax, dword [ebp - 0x1c]
je 0x447204
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 0x44c6ae
lea edx, [ebx + 4]
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0x40898f
mov dword [ebp - 0x24], 0
jmp 0x4470b8
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 0x446707
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x4471a7
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 0x4471f6
mov dword [ebp - 8], eax
jmp 0x4466f5
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 0x446863
cmp dword [0x4d2620], 0
je 0x446855
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 0x44681c
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 [0x4d2620]
add esp, 4
test eax, eax
jg case.0x408896.157
js 0x4089db
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.0x446886.146
movzx eax, byte [eax + 0x44e6b5]
jmp dword [eax*4 + 0x44e69d]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0x446a97
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x4468b2
cmp eax, dword [ecx + 4]
jne 0x446a97
mov ecx, 1
jmp 0x446a6e
cmp dword [esi + 0xa8], ecx
je case.0x446886.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 0x446a8f
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 0x44695f
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 0x4468f0
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 0x446928
cmp word [ebx - 4], 0x77
jne 0x40886d
cmp edi, 0x8c
jne 0x408995
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.00408810
add esp, 0x14
jmp 0x4089db
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0x446a6e
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x44698b
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x44698b
mov ecx, 1
jmp 0x44698d
xor ecx, ecx
test ecx, ecx
jne 0x446a6e
jmp 0x446910
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 0x446a8f
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x4469cf
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x44695f
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 0x4469ba
jmp 0x44690b
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.00408810
add esp, 0x14
cmp eax, 1
jne 0x446a7d
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x446a1f
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0x446a38
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x446a54
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x446a46
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0x4c2140]
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 + 0x4c2140]
jmp 0x446913
test eax, eax
je 0x446a8c
cmp eax, 0xfffffc20
jne 0x4089db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0x446886.145
mov ecx, dword [ebp - 0x20]
jmp 0x446910
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 0x446ad4
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x408946
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 0x449253
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x446b1b
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 0x449253
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0x446b49
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0x446b4b
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.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x446bc2
cmp eax, 0xfffffc19
je 0x446bc2
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0x446baa
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x446bb2
cmp word [eax], 0x77
je 0x446bb2
jmp 0x44e3d4
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446b4b
jmp 0x446bcb
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x408896.157
test edi, edi
jne 0x4089d6
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446bdd
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x408b79
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x446c21
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0x446c28
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.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0x446c81
jne 0x446c96
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446caf
cmp word [ebx], 0x77
je 0x446c71
cmp word [eax], 0x77
jne 0x446caf
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446c28
jmp 0x446cbd
mov ecx, eax
sub ecx, 0
je 0x446c71
sub ecx, 1
je case.0x408896.157
jmp 0x4089db
cmp eax, 0xfffffc19
je case.0x408896.157
add eax, 0x3e4
cmp eax, 3
ja 0x44e3d4
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446caf
cmp dword [ebp - 0x34], 0
jne 0x4089d6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
cmp dword [ebp - 0x28], 0
je 0x446d17
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0x446d31
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x408896.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x446d11
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x446ce0
jmp 0x446d34
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.0x408896.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x408946
mov dword [esi + 0x88], eax
jmp 0x408946
cmp dword [0x4d2620], 0
je 0x446e23
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 0x446dea
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 [0x4d2620]
add esp, 4
test eax, eax
jg case.0x408896.157
js 0x4089db
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x40886d
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0x446e43
xor edx, edx
jmp 0x446e47
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x446e6e
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x446e68
cmp eax, dword [ecx + 0x14]
jne 0x446e68
mov eax, 0xffffffe6
jmp 0x4089db
mov ecx, dword [ecx]
test ecx, ecx
jne 0x446e54
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 0x446eae
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x446ecc
lea eax, [ecx*4]
push eax
call fcn.004091b2
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x44c9de
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00420e10
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0x446ef8
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 + 0x4c2140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.00408810
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.00420e10
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 0x446fb7
cmp eax, 0xfffffc19
je 0x446fb7
cmp eax, 0xfffffc1c
jl 0x446f66
cmp eax, 0xfffffc20
jle 0x446f98
test eax, eax
jne 0x44c9bf
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 0x446eea
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x408896.157
push eax
call fcn.004091bb
add esp, 4
jmp case.0x408896.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x446fcd
push eax
call fcn.004091bb
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x408b79
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x408896.119
mov dword [ebp - 0x30], ebx
jmp 0x40886d
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447021
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
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 0x447042
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
jmp 0x408b79
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44707d
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40886d
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0x4470b8
cmp edi, 0x8b
jne 0x4466db
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x4466db
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 0x44712f
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x44722a
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 0x4472a9
mov dword [ebp - 8], eax
jmp 0x44710a
cmp eax, 0xfffffc20
jne 0x4471d2
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x4471da
cmp word [eax], 0x77
je 0x4471da
jmp 0x44e3d4
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x44720f
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0x4466f5
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4471f6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
cmp dword [ebp - 0x34], 0
jne 0x447204
cmp dword [ebp - 0x24], 0
je case.0x408896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
cmp eax, 0xfffffc20
jne 0x447255
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x44725d
cmp word [eax], 0x77
je 0x44725d
jmp 0x44e3d4
test eax, eax
jne 0x4089db
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 0x447107
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x4472b7
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 0x4472b7
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4472a9
cmp dword [ebp - 0x24], 0
jne 0x447204
test ecx, ecx
je case.0x408896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
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 0x4088d0
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0x408cc3
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x4089db
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x408929
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x447344
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 0x408ceb
cmp eax, 0x7b
je 0x44ca48
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0x44c6c9
mov edx, dword [ebp - 8]
jmp 0x408938
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447380
cmp eax, dword [esi + 0x78]
je case.0x408896.157
jmp 0x447380
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0x408896.157
jmp 0x408ac3
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x4473a0
cmp eax, dword [esi + 0x78]
je case.0x408896.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x408ac3
cmp eax, dword [esi + 0x7c]
je case.0x408896.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4473e4
cmp eax, ecx
jbe case.0x408896.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0049badc
add esp, 0xc
test eax, eax
je case.0x408896.157
jmp 0x408ac3
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0x408896.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x408896.157
cmp edi, 1
je 0x408ac3
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x408896.157
jmp 0x408ac3
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x408896.157
jmp 0x408ac6
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x408b79
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4474f5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4474c2
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00406cde
add esp, 0xc
test eax, eax
jne 0x408ac3
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x408896.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x408896.157
cmp dword [esi + 0x18], 0
jne case.0x408896.157
cmp dword [esi + 0x1c], 2
jne case.0x408896.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x408896.157
jmp 0x44a9f0
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44747d
cmp edx, 1
je 0x408ac3
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44747d
jmp 0x408ac3
cmp dword [esi + 0x4c], 0
jne case.0x408896.157
cmp dword [esi + 0x8c], 0
je 0x408ac3
cmp eax, dword [esi + 0x88]
jmp 0x44751a
cmp edx, dword [esi + 0x88]
jbe 0x408ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x408ac3
cmp dword [esi + 0x4c], 0
jne case.0x408896.157
cmp dword [esi + 0x5c], 0
je case.0x408896.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x408896.157
jmp 0x4474ff
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4474ff
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x447583
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.00406cde
add esp, 0xc
test eax, eax
jne 0x4475b8
jmp 0x44747d
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44747d
cmp edx, 1
je 0x4475b8
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44747d
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 0x447480
jmp 0x4474ff
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0x447747
cmp eax, dword [esi + 0x78]
je 0x4476ac
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x447607
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0x447615
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447644
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 0x44768e
cmp edi, 0x5f
je 0x447684
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x447684
cmp eax, 3
jne 0x4476a9
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4476ae
cmp edi, 0x100
jae 0x4476a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x4476ac
mov edi, 1
jmp 0x4476ae
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x447869
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4476e9
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 0x447711
cmp edx, 0x5f
je 0x4478bb
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
jmp 0x447806
cmp edx, 0x100
jae 0x447726
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x4478bb
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0x4478c5
cmp ecx, edi
je case.0x408896.157
jmp 0x408b79
cmp eax, dword [esi + 0x78]
je 0x4477c0
cmp eax, dword [esi + 0x88]
ja 0x447760
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x447841
cmp ecx, 0x5f
je 0x44783a
mov eax, ecx
test eax, eax
jns 0x447780
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
and ecx, 0x8000007f
jns 0x44779a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x447837
cmp eax, 3
mov eax, dword [ebp - 8]
je 0x44783a
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x447869
cmp dword [esi + 0x58], 0
je 0x44789b
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x4478bb
mov eax, ecx
test eax, eax
jns 0x4477ea
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
and ecx, 0x8000007f
jns 0x447804
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x4478bb
cmp eax, 3
jne 0x447726
lea ecx, [eax - 2]
jmp 0x447728
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4477c2
mov edx, 0xff
cmp cx, dx
ja 0x4477c0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x4477c0
mov edi, 1
jmp 0x4477c2
cmp dword [esi + 0x8c], 0
je 0x447726
cmp eax, dword [esi + 0x88]
jbe 0x447726
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x447726
jmp 0x44e351
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x447726
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x447726
mov ecx, 1
jmp 0x447728
cmp ecx, edi
jne case.0x408896.157
jmp 0x408b79
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x447901
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x447939
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.157
jmp 0x447936
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447933
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447933
cmp edx, 1
je case.0x408896.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x408896.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x44797f
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0x44797c
cmp dword [esi + 0x18], 0
jne 0x44797c
cmp dword [esi + 0x1c], 2
jne 0x44797c
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0x44797c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44797c
jmp 0x44e351
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44cdc7
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x408ac3
cmp eax, ecx
jae 0x408ac3
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x408ac3
add dword [ebp - 8], 2
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x408b79
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447a2c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447a2c
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 0x408ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447a97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447a97
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.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447b02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447b02
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 0x408ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447b6d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447b6d
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.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447bd8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447bd8
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 0x408ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447c43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447c43
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.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x408896.157
jmp 0x408ac3
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0x447cb3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0x447cb3
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 0x447cff
je 0x447cd4
cmp ecx, 0xa
je 0x408ac3
jbe case.0x408896.157
cmp ecx, 0xc
ja case.0x408896.157
jmp 0x447d16
cmp edx, edi
jb 0x447cea
cmp dword [esi + 0x8c], 0
je 0x408ac3
jmp 0x447514
cmp word [eax], 0xa
jne 0x408ac3
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0x408ac3
cmp ecx, 0x85
je 0x447d16
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
cmp dword [esi + 0x6c], 0
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447d6e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447d6e
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 0x447db2
je case.0x408896.157
cmp ecx, 0xa0
ja 0x447da1
je case.0x408896.157
cmp ecx, 9
je case.0x408896.157
cmp ecx, 0x20
je case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x1680
je case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x205f
ja 0x447de9
je case.0x408896.157
cmp ecx, 0x2000
jb 0x408ac3
cmp ecx, 0x200a
jbe case.0x408896.157
cmp ecx, 0x202f
je case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x3000
je case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447e43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447e43
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 0x447e87
je 0x408ac3
cmp ecx, 0xa0
ja 0x447e76
je 0x408ac3
cmp ecx, 9
je 0x408ac3
cmp ecx, 0x20
jne case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x1680
jne case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x205f
ja 0x447ebe
je 0x408ac3
cmp ecx, 0x2000
jb case.0x408896.157
cmp ecx, 0x200a
jbe 0x408ac3
cmp ecx, 0x202f
jne case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x3000
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447f18
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447f18
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 0x447f3d
je case.0x408896.157
cmp ecx, 0xa
jb 0x408ac3
cmp ecx, 0xd
jbe case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x2028
jb 0x408ac3
cmp ecx, 0x2029
jbe case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447fa3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447fa3
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 0x447fc2
je 0x408ac3
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x408896.157
jmp 0x408ac3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
jmp 0x408ac3
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 0x408c4a
cmp eax, 0xa
ja case.default.0x448009
jmp dword [eax*4 + 0x44e6c9]
mov al, byte [ecx*8 + 0x4af3f1]
cmp al, 9
je 0x448035
cmp al, 5
je 0x448035
cmp al, 8
je 0x448035
xor ecx, ecx
jmp 0x448051
cmp edi, 0xf
je case.0x408896.157
jmp 0x408d2a
mov ecx, 1
jmp 0x448051
movzx eax, byte [ecx*8 + 0x4af3f1]
xor ecx, ecx
cmp dword [eax*4 + 0x4c5350], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x408896.157
jmp 0x408d2a
movzx ecx, byte [ecx*8 + 0x4af3f1]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4c5350]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x408896.157
jmp 0x408d2a
movzx eax, byte [ecx*8 + 0x4af3f1]
jmp 0x4480a5
movzx eax, byte [ecx*8 + 0x4af3f0]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x408896.157
jmp 0x408d2a
movzx eax, byte [ecx*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x448035
cmp eax, 3
je 0x448035
xor ecx, ecx
jmp 0x448051
cmp edx, 0x180e
ja 0x448144
je case.0x448009.0
cmp edx, 0x85
ja 0x448127
je case.0x448009.0
cmp edx, 9
jb case.0x448168.8203
cmp edx, 0xd
jbe case.0x448009.0
cmp edx, 0x20
je case.0x448009.0
jmp case.0x448168.8203
cmp edx, 0xa0
je case.0x448009.0
cmp edx, 0x1680
je case.0x448009.0
jmp case.0x448168.8203
cmp edx, 0x202f
ja 0x44816f
je case.0x448009.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x448168.8203
movzx eax, byte [edx + 0x44e6fd]
jmp dword [eax*4 + 0x44e6f5]
cmp edx, 0x205f
je case.0x448009.0
cmp edx, 0x3000
je case.0x448009.0
jmp case.0x448168.8203
movzx eax, byte [ecx*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x448035
cmp eax, 3
je 0x448035
cmp dword [ebp - 0x20], 0x5f
je 0x448035
xor ecx, ecx
jmp 0x448051
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0x448035
cmp eax, 0x40
je 0x448035
cmp eax, 0x60
je 0x448035
cmp eax, 0xa0
jb 0x4481ee
cmp eax, 0xd7ff
jbe 0x448035
cmp eax, 0xe000
jae 0x448035
xor ecx, ecx
jmp 0x448051
cmp edi, 0x10
je case.0x408896.157
jmp 0x408d2a
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 0x408a18
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0x408a70
cmp edi, eax
jb 0x408ac3
cmp edi, dword [esi + 0x88]
jbe 0x408ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x408ac3
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 0x448344
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 0x4482ee
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x4482ee
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448341
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 0x4482cb
jmp 0x448344
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 0x448337
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x448337
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448341
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.0x44835d
movzx eax, byte [eax + 0x44e731]
jmp dword [eax*4 + 0x44e729]
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 + 0x4b1bca]
movsx eax, byte [eax + 0x4b1bbe]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x4483c5
mov dword [ebp - 0x2c], bind
jmp 0x4483c5
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 0x4483bf
mov dword [ebp - 0x2c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0x40886d
jns 0x4483d9
test edi, edi
je 0x40886d
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0x44841b
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049b3a3
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44cb5b
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 0x4483e8
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0x408b79
cmp dword [ebp - 0x1c], 0
je 0x44caad
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0x408896.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.0049b3a3
add esp, 0xc
test eax, eax
js 0x44ca8a
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.00408810
add esp, 0x14
test eax, eax
je 0x448456
jmp 0x4089db
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0049b3a3
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44cb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x408b79
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x4484e5
movzx eax, byte [eax + 0x44e741]
jmp dword [eax*4 + 0x44e739]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x448504
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44850b
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0x4b1c2c]
movsx eax, byte [eax + 0x4b1c20]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x408afb
mov dword [ebp - 0x20], bind
jmp 0x408afb
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 0x448562
mov dword [ebp - 0x20], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x408afb
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 0x408b38
cmp edi, 0x6e
je case.0x408896.157
jmp 0x408b62
cmp edx, 1
jl 0x408b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x4485d1
cmp edi, 0x6e
je case.0x408896.157
jmp 0x4485f2
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.0x408896.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 0x4485ac
jmp 0x408b70
cmp dword [ebp - 0x10], 0
jne 0x44cb89
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x448752
cmp edx, dword [ebp - 0x20]
jl 0x448628
jmp 0x4486d8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x4486b3
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44866f
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 0x44867e
cmp edi, 0x6e
jne 0x448698
jmp 0x4486d8
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 0x4486d8
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 0x448625
jmp 0x4486d8
cmp dword [esi + 0x8c], 0
je 0x4486d8
cmp eax, dword [esi + 0x88]
jbe 0x4486d8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
cmp dword [ebp - 0x2c], 0
jne 0x408b79
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0x408896.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44872e
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.00408810
add esp, 0x14
test eax, eax
je 0x448708
jmp 0x4089db
cmp edx, dword [ebp - 0x20]
jge 0x4487c7
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x44879f
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x448771
cmp edi, 0x6e
jne 0x44878e
jmp 0x4487c4
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 0x4487c4
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 0x44875a
jmp 0x4487c4
cmp dword [esi + 0x8c], 0
je 0x4487c4
cmp eax, dword [esi + 0x88]
jbe 0x4487c4
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
jb case.0x408896.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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0x4487dc
jmp case.0x408896.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.0x448835
movzx eax, byte [eax + 0x44e755]
jmp dword [eax*4 + 0x44e74d]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x448854
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44885b
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0x4b1c20]
movsx edi, byte [eax + 0x4b1c2c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x4488c8
mov ecx, bind
jmp 0x4488c5
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 0x4488b0
mov ecx, bind
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x4488c8
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 0x448946
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0x44891e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44891e
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.0049b59e
add esp, 4
test eax, eax
je case.0x408896.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0x4488d4
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0x40886d
test eax, eax
jne 0x44ccde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x448968
jmp 0x4489ff
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x4489da
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0x4489b0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4489b0
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.0049b59e
add esp, 4
test eax, eax
je 0x448a02
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 0x448965
jmp 0x4489ff
cmp dword [esi + 0x8c], 0
je 0x4489ff
cmp eax, dword [esi + 0x88]
jbe 0x4489ff
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0x408896.157
cmp dword [ebp - 0x28], 0
je 0x448a5b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x448a5b
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.00408810
add esp, 0x14
test eax, eax
je 0x448a2f
jmp 0x4089db
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x408d67
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44cdaf
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x408896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
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 0x408bd6
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448b22
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 0x40886d
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov eax, dword [eax*8 + 0x4af3f4]
add eax, edx
cmp edi, eax
jne case.0x408896.157
jmp 0x408b79
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x448b87
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x448b89
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x448ba0
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x408896.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x408b79
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 0x448c7b
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 0x448bef
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0x448bf6
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x448c7b
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x448c74
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x448c74
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 0x448c7b
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 + 0x4b1c2c]
movsx eax, byte [eax + 0x4b1c20]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x448c7b
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 0x448f07
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 0x448cee
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 0x448cf1
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 0x448f0d
cmp edi, 0x2e
jb 0x448d44
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov ecx, dword [eax*8 + 0x4af3f4]
add ecx, edi
cmp ecx, edi
je 0x448d44
lea edx, [ebp - 0x6c]
call fcn.0049ba29
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0x448d46
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0x448ddd
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 0x448d8b
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421384
add esp, 0xc
test eax, eax
jne 0x448d8b
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0x448dca
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44ca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44ca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421384
add esp, 0xc
test eax, eax
jne 0x44ca92
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 0x448d62
mov edi, dword [ebp - 0x20]
jmp 0x448de0
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44cddf
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0x448ea3
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 0x448e38
push edx
push dword [ebp - 0x34]
push ecx
call fcn.00421384
add esp, 0xc
test eax, eax
jne 0x448e35
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x448e5f
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x448e70
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0x448e70
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00421384
add esp, 0xc
test eax, eax
jne 0x448e70
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 0x448e0a
jmp 0x448e9d
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x448ea0
cmp eax, dword [esi + 0x7c]
jb 0x448e9d
cmp eax, dword [esi + 0x88]
jbe 0x448e9d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
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 0x448efd
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x448eb8
jmp 0x408992
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x44904b
cmp dword [ebp - 0x28], 0
je 0x448f4d
cmp eax, 0x7f
jbe 0x448f4d
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov eax, dword [eax*8 + 0x4af3f4]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0x448f66
cmp eax, 0xff
ja 0x448f60
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0x448f63
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0x448f9f
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x448f8e
cmp edi, ecx
jne case.0x408896.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 0x448f75
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44ce98
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0x449003
cmp eax, dword [esi + 0x7c]
jae 0x448fdb
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x448fcd
cmp edi, ecx
jne 0x449000
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x448fbc
jmp 0x449000
cmp dword [esi + 0x8c], 0
je 0x449000
cmp eax, dword [esi + 0x88]
jbe 0x449000
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
je 0x408992
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.00408810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x4089db
cmp edi, dword [ebp - 0x14]
jne 0x449018
jmp 0x408992
mov ecx, 1
cmp edx, ecx
jge 0x449059
mov edi, dword [ebp - 8]
jmp 0x44907f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0x408896.157
inc ecx
cmp ecx, edx
jle 0x449059
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44cf0f
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0x4490c2
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x44910a
movzx eax, word [eax]
cmp ecx, eax
jne 0x4490bc
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0x4490a4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
je 0x408992
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.00408810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x4089db
cmp edi, dword [ebp - 0x14]
jne 0x4490d7
jmp 0x408992
cmp dword [esi + 0x8c], 0
je 0x4490bf
cmp eax, dword [esi + 0x88]
jbe 0x4490bf
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x4490bf
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
cmp dword [ebp - 0x28], 0
movzx ecx, word [ebx + 2]
je 0x449226
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 0x44918a
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 0x4491c3
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 0x4491d6
cmp dword [ebp - 0x24], edx
je case.0x408896.157
jmp 0x408b79
mov edi, dword [ebp - 0x24]
cmp edi, 0x7f
jbe 0x449207
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov eax, dword [eax*8 + 0x4af3f4]
add eax, edi
jmp 0x449211
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
cmp edi, edx
je case.0x408896.157
cmp eax, edx
je case.0x408896.157
jmp 0x408b79
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x408896.157
cmp edi, 0x20
jne 0x449253
cmp ecx, 0xff
ja 0x44924b
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x408896.157
mov edx, dword [ebp - 8]
jmp 0x408946
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 0x449333
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x42
je 0x44928a
mov dword [ebp - 0x10], edx
cmp ecx, 0x4f
jne 0x449291
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x449333
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x44932c
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x44932c
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 0x449333
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 0x449333
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 + 0x4b1c2c]
movsx eax, byte [eax + 0x4b1c20]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x449333
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 0x44937b
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449378
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 0x44937b
mov eax, dword [ebp - 0x14]
cmp edi, 0x48
jb 0x449624
cmp dword [ebp - 0x28], 0
je 0x4493ba
cmp ecx, 0x7f
jbe 0x4493ba
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, dword [ebp - 0x14]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov eax, dword [eax*8 + 0x4af3f4]
add eax, dword [ebp - 0x14]
jmp 0x4493cc
cmp ecx, 0xff
ja 0x4493cc
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 0x449443
cmp edx, edi
jl 0x449474
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
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 0x44942a
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.0x408896.157
cmp dword [ebp - 0x20], ecx
je case.0x408896.157
inc edi
cmp edi, edx
jle 0x4493e2
jmp 0x449477
mov eax, dword [ebp - 8]
cmp edx, 1
jl 0x449477
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je case.0x408896.157
cmp dword [ebp - 0x20], ecx
je case.0x408896.157
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, edx
jle 0x44944b
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44cf7e
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x44958e
cmp edx, ecx
jge 0x449500
cmp eax, dword [esi + 0x7c]
jae 0x449564
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4494dd
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x4494e2
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x4494fa
cmp dword [ebp - 0x20], edi
je 0x4494fa
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44949f
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, edi
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
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 0x44955a
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x449515
jmp 0x408992
cmp dword [esi + 0x8c], 0
je 0x4494fd
cmp eax, dword [esi + 0x88]
jbe 0x4494fd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x4494fd
cmp edx, ecx
jge 0x4495dc
mov edi, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x4495b4
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je 0x4495d9
cmp edi, ecx
je 0x4495d9
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x449595
jmp 0x4495d9
cmp dword [esi + 0x8c], 0
je 0x4495d9
cmp eax, dword [esi + 0x88]
jbe 0x4495d9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, edi
je 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x4495f1
jmp 0x408992
cmp dword [ebp - 0x28], 0
mov edi, 1
je 0x449696
cmp edx, edi
jge 0x44963b
mov ecx, dword [ebp - 0x14]
jmp 0x4496be
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
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 0x449683
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.0x408896.157
inc edi
cmp edi, edx
jle 0x44963b
mov ecx, dword [ebp - 0x14]
jmp 0x4496c1
mov ecx, dword [ebp - 0x14]
cmp edx, 1
jl 0x4496be
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
movzx eax, word [eax]
add dword [ebp - 8], 2
cmp ecx, eax
je case.0x408896.157
inc edi
cmp edi, edx
jle 0x44969e
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44d0bc
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x20], edi
je 0x4497d2
cmp edx, dword [ebp - 0x18]
jge 0x449744
cmp eax, dword [esi + 0x7c]
jae 0x4497a8
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449726
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44972b
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44973e
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x4496e8
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, edi
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
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 0x44979e
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x449759
jmp 0x408992
cmp dword [esi + 0x8c], 0
je 0x449741
cmp eax, dword [esi + 0x88]
jbe 0x449741
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x449741
cmp edx, dword [ebp - 0x18]
jge 0x4497f3
cmp eax, dword [esi + 0x7c]
jae 0x44983b
movzx eax, word [eax]
cmp ecx, eax
je 0x4497f0
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jl 0x4497d7
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, edi
je 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x449808
jmp 0x408992
cmp dword [esi + 0x8c], 0
je 0x4497f3
cmp eax, dword [esi + 0x88]
jbe 0x4497f3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x4497f3
jmp 0x44e351
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 0x408de1
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 0x408de1
xor ecx, ecx
jmp 0x4498ad
mov ecx, 1
mov dword [ebp - 0x14], bind
jmp 0x4498bf
xor ecx, ecx
mov dword [ebp - 0x14], 1
add ebx, 2
jmp 0x4498d0
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 0x408de1
xor edx, edx
jmp 0x408dbc
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 0x408e02
test eax, eax
js 0x44a041
cmp eax, 0xa
ja case.default.0x448009
jmp dword [eax*4 + 0x44e761]
cmp dword [ebp - 0x3c], 0
jne case.0x408896.157
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jge 0x449949
mov ecx, dword [ebp - 0xc]
jmp 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
je 0x449973
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449973
add edi, 2
mov dword [ebp - 8], edi
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x449949
mov ecx, dword [ebp - 0xc]
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x4499dc
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4499dc
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp eax, 9
je 0x449a13
cmp eax, 5
je 0x449a13
cmp eax, 8
je 0x449a13
xor eax, eax
jmp 0x449a18
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449994
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x449a93
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449a93
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 + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp dword [eax*4 + 0x4c5350], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449a4b
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x449b41
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449b41
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 + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449af9
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x449be8
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449be8
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 + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449ba0
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x449c8f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449c8f
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x449cc8
cmp eax, 3
je 0x449cc8
xor eax, eax
jmp 0x449ccd
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449c47
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov eax, 1
mov dword [ebp - 0x24], eax
cmp ecx, eax
jl 0x44a1c9
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x449d4c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449d49
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 0x449d92
je 0x449e07
cmp ecx, 0x85
ja 0x449d80
je 0x449e07
cmp ecx, 9
jb case.0x449dae.8203
cmp ecx, 0xd
jbe 0x449e07
cmp ecx, 0x20
jne case.0x449dae.8203
jmp 0x449e07
cmp ecx, 0xa0
je 0x449e07
cmp ecx, 0x1680
jne case.0x449dae.8203
jmp 0x449e07
cmp ecx, 0x202f
ja 0x449db5
je 0x449e07
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x449dae.8203
movzx eax, byte [ecx + 0x44e795]
jmp dword [eax*4 + 0x44e78d]
cmp ecx, 0x205f
je 0x449e07
cmp ecx, 0x3000
je 0x449e07
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp dword [eax*4 + 0x4c5350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x24]
jmp 0x449e11
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne case.0x408896.157
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, ecx
jle 0x449d00
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x449e80
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449e80
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 + 0x4bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x449ec0
cmp eax, 3
je 0x449ec0
cmp edx, 0x5f
je 0x449ec0
xor eax, eax
jmp 0x449ec5
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449e38
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
je 0x449f46
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449f46
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 + 0x4b0a70]
lea eax, [eax*4 + 0x4b0a70]
cmp dword [ebp - 0x24], edx
jb 0x449f69
lea eax, [eax + 4]
cmp ecx, edx
je 0x449f8a
mov edx, dword [eax]
cmp ecx, edx
jae 0x449f5c
cmp dword [ebp - 0x3c], 0
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449ef8
jmp 0x44a1c6
cmp dword [ebp - 0x3c], 0
jne case.0x408896.157
jmp 0x449f73
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x408e10
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x449ff1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449ff1
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 0x44a01c
cmp ecx, 0x40
je 0x44a01c
cmp ecx, 0x60
je 0x44a01c
cmp ecx, 0xa0
jb 0x44a010
cmp ecx, 0xd7ff
jbe 0x44a01c
cmp ecx, 0xe000
jae 0x44a01c
xor eax, eax
jmp 0x44a021
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x449fa9
jmp 0x44a1c6
cmp edi, 0x16
jne 0x44a1d1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
cmp ecx, 1
jl 0x408e10
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44a9d7
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 0x44a0b7
mov dword [ebp - 0x24], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a0b7
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44a18a
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44a12e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a12e
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c21f0], eax
je 0x44a17e
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 0x44a0f3
jmp 0x44a181
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 0x44a1b3
cmp edx, eax
jb 0x44a1b3
cmp edx, dword [esi + 0x88]
jbe 0x44a1b3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44a05d
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
jmp 0x408e10
cmp dword [ebp - 0x28], 0
lea eax, [edi - 6]
je 0x44a8f6
cmp eax, 0xf
ja case.default.0x448009
jmp dword [eax*4 + 0x44e7c1]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44a1c9
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44a9d7
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44a22b
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.157
jmp 0x44a257
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44a257
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a257
cmp edx, 1
je case.0x408896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x408896.157
cmp dword [esi + 0x8c], 0
je 0x44a291
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44a291
cmp dword [esi + 0x18], 0
jne 0x44a291
cmp dword [esi + 0x1c], 2
jne 0x44a291
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a291
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov ecx, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44a2b9
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x44a2b9
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 0x44a200
jmp 0x44a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44a9d7
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44a31a
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 0x44a31a
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x44a2e4
jmp 0x44a1c3
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x408896.157
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44a1c9
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44a9d7
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 0x44a39b
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 0x44a3ca
je 0x44a3b5
cmp ecx, 0xa
je 0x44a3eb
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x408896.157
jmp 0x44a3e1
mov eax, dword [esi + 0x7c]
cmp edx, eax
jae 0x44a3ee
cmp word [edi], 0xa
jne 0x44a3ee
lea edi, [edx + 2]
mov dword [ebp - 8], edi
jmp 0x44a3ee
cmp ecx, 0x85
je 0x44a3e1
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
cmp dword [esi + 0x6c], 0
jne case.0x408896.157
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44a359
jmp 0x44a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a452
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 0x44a490
je case.0x408896.157
cmp ecx, 0xa0
ja 0x44a482
je case.0x408896.157
cmp ecx, 9
je case.0x408896.157
cmp ecx, 0x20
je case.0x408896.157
jmp 0x44a4cc
cmp ecx, 0x1680
je case.0x408896.157
jmp 0x44a4cc
cmp ecx, 0x205f
ja 0x44a4c0
je case.0x408896.157
cmp ecx, 0x2000
jb 0x44a4cc
cmp ecx, 0x200a
jbe case.0x408896.157
cmp ecx, 0x202f
je case.0x408896.157
jmp 0x44a4cc
cmp ecx, 0x3000
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44a413
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a52c
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 0x44a55e
je 0x44a596
cmp ecx, 0xa0
ja 0x44a550
je 0x44a596
cmp ecx, 9
je 0x44a596
cmp ecx, 0x20
jne case.0x408896.157
jmp 0x44a596
cmp ecx, 0x1680
jne case.0x408896.157
jmp 0x44a596
cmp ecx, 0x205f
ja 0x44a58a
je 0x44a596
cmp ecx, 0x2000
jb case.0x408896.157
cmp ecx, 0x200a
jbe 0x44a596
cmp ecx, 0x202f
jne case.0x408896.157
jmp 0x44a596
cmp ecx, 0x3000
jne case.0x408896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44a4ed
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a5f6
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 0x44a614
je case.0x408896.157
cmp ecx, 0xa
jb 0x44a628
cmp ecx, 0xd
jbe case.0x408896.157
jmp 0x44a628
cmp ecx, 0x2028
jb 0x44a628
cmp ecx, 0x2029
jbe case.0x408896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44a5b7
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a684
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 0x44a69c
je 0x44a6ab
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x408896.157
jmp 0x44a6ab
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44a645
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44a1c9
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
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 0x44a70e
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 0x44a723
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x408896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a6cb
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44a746
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44a1c9
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44a7ba
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x408896.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44a7e2
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44a7e2
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44a797
jmp 0x44a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44a802
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44a1c9
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44a876
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x408896.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44a89e
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44a89e
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44a853
jmp 0x44a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44a8be
jmp 0x44a1c6
cmp eax, 0xf
ja case.default.0x448009
jmp dword [eax*4 + 0x44e801]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44a1c9
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44a9d7
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44a946
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.157
jmp 0x44a972
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44a972
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a972
cmp edx, 1
je case.0x408896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x408896.157
cmp dword [esi + 0x8c], 0
je 0x44a9ac
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44a9ac
cmp dword [esi + 0x18], 0
jne 0x44a9ac
cmp dword [esi + 0x1c], 2
jne 0x44a9ac
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a9ac
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
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 0x44a919
jmp 0x44a1c6
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
jbe 0x44aa17
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp edi, dword [esi + 0x88]
jbe case.0x408896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x408896.157
jmp 0x44e351
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44a9d7
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
ja 0x44aa70
je 0x44aa5e
cmp eax, 0xa
je 0x44aa8f
add eax, 0xfffffff5
cmp eax, 1
ja case.0x408896.157
jmp 0x44aa85
cmp edi, ecx
jae 0x44aa8f
cmp word [edi], 0xa
jne 0x44aa8f
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44aa8f
cmp eax, 0x85
je 0x44aa85
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x408896.157
cmp dword [esi + 0x6c], 0
jne case.0x408896.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44aa37
jmp 0x44a1c3
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x449979
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44aaf8
je case.0x408896.157
cmp eax, 0xa0
ja 0x44aaeb
je case.0x408896.157
cmp eax, 9
je case.0x408896.157
cmp eax, 0x20
je case.0x408896.157
jmp 0x44ab2f
cmp eax, 0x1680
je case.0x408896.157
jmp 0x44ab2f
cmp eax, 0x205f
ja 0x44ab24
je case.0x408896.157
cmp eax, 0x2000
jb 0x44ab2f
cmp eax, 0x200a
jbe case.0x408896.157
cmp eax, 0x202f
je case.0x408896.157
jmp 0x44ab2f
cmp eax, 0x3000
je case.0x408896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44aaab
mov ecx, dword [ebp - 0xc]
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x449979
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44ab93
je 0x44abc6
cmp eax, 0xa0
ja 0x44ab86
je 0x44abc6
cmp eax, 9
je 0x44abc6
cmp eax, 0x20
jne case.0x408896.157
jmp 0x44abc6
cmp eax, 0x1680
jne case.0x408896.157
jmp 0x44abc6
cmp eax, 0x205f
ja 0x44abbb
je 0x44abc6
cmp eax, 0x2000
jb case.0x408896.157
cmp eax, 0x200a
jbe 0x44abc6
cmp eax, 0x202f
jne case.0x408896.157
jmp 0x44abc6
cmp eax, 0x3000
jne case.0x408896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44ab52
mov ecx, dword [ebp - 0xc]
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x449979
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44ac14
je case.0x408896.157
cmp eax, 0xa
jb 0x44ac26
cmp eax, 0xd
jbe case.0x408896.157
jmp 0x44ac26
cmp eax, 0x2028
jb 0x44ac26
cmp eax, 0x2029
jbe case.0x408896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44abe5
mov ecx, dword [ebp - 0xc]
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x449979
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44ac6e
je 0x44ac7c
add eax, 0xfffffff6
cmp eax, 3
ja case.0x408896.157
jmp 0x44ac7c
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x408896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44ac45
mov ecx, dword [ebp - 0xc]
jmp 0x44a1c9
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44acc5
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ac9a
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x408896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ace5
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44ad5c
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ad31
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x408896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ad7c
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44adf3
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44adc8
jmp 0x44a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44a1c6
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x408896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x408896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ae13
jmp 0x44a1c6
mov edx, edi
mov dword [ebp - 0x10], edx
test eax, eax
js 0x44b6c6
cmp eax, 0xa
ja case.default.0x448009
jmp dword [eax*4 + 0x44e841]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44aeca
cmp dword [ebp - 0x28], 0
mov ecx, 1
je 0x44aeaa
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 0x44aeaa
mov ecx, 2
cmp dword [ebp - 0x3c], 0
jne 0x44b661
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 0x44ae77
jmp 0x44b661
cmp dword [esi + 0x8c], 0
je 0x44b661
cmp edi, dword [esi + 0x88]
jbe 0x44b661
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b661
jmp 0x44e351
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44af55
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44af50
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44af5a
mov edx, dword [ebp - 0x38]
jmp 0x44af5a
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp eax, 9
je 0x44af91
cmp eax, 5
je 0x44af91
cmp eax, 8
je 0x44af91
xor eax, eax
jmp 0x44af96
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44b65e
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 0x44af05
jmp 0x44b65e
cmp dword [esi + 0x8c], 0
je 0x44b65e
cmp edi, dword [esi + 0x88]
jbe 0x44b65e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b65e
jmp 0x44e351
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44b041
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b03c
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44b046
mov edx, dword [ebp - 0x38]
jmp 0x44b046
mov edx, 1
mov esi, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp dword [eax*4 + 0x4c5350], esi
mov esi, dword [ebp + 0x10]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44b65e
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 0x44aff5
jmp 0x44b65e
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44b0f9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b0f4
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44b0fe
mov edx, dword [ebp - 0x38]
jmp 0x44b0fe
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44b65e
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 0x44b0a9
jmp 0x44b65e
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44b1a7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b1a2
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44b1ac
mov edx, dword [ebp - 0x38]
jmp 0x44b1ac
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44b65e
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 0x44b157
jmp 0x44b65e
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44b255
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b250
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44b25a
mov edx, dword [ebp - 0x38]
jmp 0x44b25a
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x44b293
cmp eax, 3
je 0x44b293
xor eax, eax
jmp 0x44b298
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44b65e
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 0x44b205
jmp 0x44b65e
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
mov eax, 1
mov dword [ebp - 0x24], eax
cmp edi, dword [esi + 0x7c]
jae 0x44b3f8
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
je 0x44b318
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b315
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 0x44b318
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x44b35e
je 0x44b3d3
cmp ecx, 0x85
ja 0x44b34c
je 0x44b3d3
cmp ecx, 9
jb case.0x44b37a.8203
cmp ecx, 0xd
jbe 0x44b3d3
cmp ecx, 0x20
jne case.0x44b37a.8203
jmp 0x44b3d3
cmp ecx, 0xa0
je 0x44b3d3
cmp ecx, 0x1680
jne case.0x44b37a.8203
jmp 0x44b3d3
cmp ecx, 0x202f
ja 0x44b381
je 0x44b3d3
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44b37a.8203
movzx eax, byte [ecx + 0x44e875]
jmp dword [eax*4 + 0x44e86d]
cmp ecx, 0x205f
je 0x44b3d3
cmp ecx, 0x3000
je 0x44b3d3
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp dword [eax*4 + 0x4c5350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44b65e
mov eax, dword [ebp - 0x24]
jmp 0x44b3dd
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne 0x44b65e
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 0x44b2c5
jmp 0x44b65e
cmp dword [esi + 0x8c], 0
je 0x44b65e
cmp edi, dword [esi + 0x88]
jbe 0x44b65e
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x44b65e
jmp 0x44e351
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
mov dword [ebp - 0x1c], 1
je 0x44b479
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b479
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 + 0x4bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x44b4b9
cmp eax, 3
je 0x44b4b9
cmp edx, 0x5f
je 0x44b4b9
xor eax, eax
jmp 0x44b4be
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44b65e
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 0x44b42e
jmp 0x44b65e
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44afba
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x24], ecx
je 0x44b53f
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b53f
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 + 0x4b0a70]
lea eax, [eax*4 + 0x4b0a70]
cmp dword [ebp - 0x24], edx
jb 0x44b562
lea eax, [eax + 4]
cmp ecx, edx
je 0x44b58a
mov edx, dword [eax]
cmp ecx, edx
jae 0x44b555
cmp dword [ebp - 0x3c], 0
je 0x44b65e
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 0x44b4ee
jmp 0x44b65e
cmp dword [ebp - 0x3c], 0
je 0x44b56c
jmp 0x44b65e
cmp ecx, dword [ebp - 0x14]
jge 0x44b661
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b639
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
je 0x44b5e9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b5e9
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 0x44b614
cmp ecx, 0x40
je 0x44b614
cmp ecx, 0x60
je 0x44b614
cmp ecx, 0xa0
jb 0x44b608
cmp ecx, 0xd7ff
jbe 0x44b614
cmp ecx, 0xe000
jae 0x44b614
xor eax, eax
jmp 0x44b619
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44b65e
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 0x44b59e
jmp 0x44b65e
cmp dword [esi + 0x8c], 0
je 0x44b65e
cmp edi, dword [esi + 0x88]
jbe 0x44b65e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp edi, edx
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
je 0x44b6bc
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44b6bc
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44b673
jmp 0x408992
mov eax, dword [ebp - 0x20]
cmp eax, 0x16
jne 0x44b8b3
cmp ecx, dword [ebp - 0x14]
jge 0x44b867
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44b83f
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 0x44b731
mov eax, edx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b731
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44b804
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44b7a8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b7a8
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c21f0], eax
je 0x44b7f8
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 0x44b76d
jmp 0x44b7fb
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 0x44b82d
cmp edx, eax
jb 0x44b82d
cmp edx, dword [esi + 0x88]
jbe 0x44b82d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44b6db
jmp 0x44b864
cmp dword [esi + 0x8c], 0
je 0x44b864
cmp edi, dword [esi + 0x88]
jbe 0x44b864
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp edi, edx
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
jne 0x44c77e
movzx ecx, word [edi]
jmp 0x44c7c4
add eax, 0xfffffffa
cmp dword [ebp - 0x28], 0
je 0x44c0d7
cmp eax, 0xf
ja case.default.0x448009
jmp dword [eax*4 + 0x44e8a1]
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44b9b2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44b909
push dword [ebp - 0x28]
lea ecx, [esi + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
je 0x44b938
jmp 0x44b9d7
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + ecx]
sub edx, eax
cmp edi, edx
ja 0x44b938
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44b938
cmp ecx, 1
je 0x44b9d7
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44b9d7
cmp dword [esi + 0x8c], 0
je 0x44b972
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44b972
cmp dword [esi + 0x18], 0
jne 0x44b972
cmp dword [esi + 0x1c], 2
jne 0x44b972
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44b972
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44b9a0
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0x24]
jne 0x44b9a0
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 0x44b8df
jmp 0x44b9d7
cmp dword [esi + 0x8c], 0
je 0x44b9d7
cmp edi, dword [esi + 0x88]
jbe 0x44b9d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp edi, edx
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
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 0x44ba35
add edi, 0xfffffffe
mov dword [ebp - 8], edi
mov ecx, edi
cmp dword [ebp - 0x20], 0x11
mov eax, dword [ebp - 0x10]
jne 0x44ba55
cmp ecx, eax
jbe 0x44ba55
cmp word [edi], 0xa
jne 0x44ba55
cmp word [edi - 2], 0xd
jne 0x44ba55
lea edi, [ecx - 2]
mov dword [ebp - 8], edi
cmp edi, eax
ja 0x44b9ec
jmp 0x408992
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
jge 0x44bab6
cmp ecx, eax
jge 0x44b9da
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44babc
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44baa8
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 0x44baa8
add edi, 2
mov dword [ebp - 8], edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44ba76
jmp 0x44b9da
mov edi, dword [esi + 0x7c]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44b9da
cmp edi, dword [esi + 0x88]
jbe 0x44b9da
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b9da
jmp 0x44e351
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 0x44bb36
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44b9da
cmp ecx, dword [esi + 0x88]
jbe 0x44b9da
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b9da
jmp 0x44e351
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44b9da
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44b9b2
movzx ecx, word [edi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bb8d
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 0x44bbae
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x44b9d7
cmp word [edi], 0xa
jne 0x44bbec
add edi, 2
jmp 0x44bbe9
cmp ecx, 0xa
je 0x44bbe3
cmp dword [esi + 0x6c], 0
jne 0x44b9d7
cmp ecx, 0xb
je 0x44bbe3
cmp ecx, 0xc
je 0x44bbe3
cmp ecx, 0x85
je 0x44bbe3
cmp ecx, 0x2028
je 0x44bbe3
cmp ecx, 0x2029
jne 0x44b9d7
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 0x44bb50
jmp 0x44b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bc48
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 0x44bca4
je 0x44bc66
cmp ecx, 0xa0
ja 0x44bc9a
je 0x44bc66
cmp ecx, 9
je 0x44bc66
cmp ecx, 0x20
jne 0x44bcd0
mov ecx, 1
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x12
sete al
cmp ecx, eax
je 0x44b9d7
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 0x44bc0a
jmp 0x44b9d7
cmp ecx, 0x1680
jne 0x44bcd0
jmp 0x44bc66
cmp ecx, 0x205f
ja 0x44bcc8
je 0x44bc66
cmp ecx, 0x2000
jb 0x44bcd0
cmp ecx, 0x200a
jbe 0x44bc66
cmp ecx, 0x202f
jne 0x44bcd0
jmp 0x44bc66
cmp ecx, 0x3000
je 0x44bc66
xor ecx, ecx
jmp 0x44bc6b
cmp dword [esi + 0x8c], 0
je 0x44b9d7
cmp edi, dword [esi + 0x88]
jbe 0x44b9d7
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jmp 0x44b9d1
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bd3e
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 0x44bd7f
je 0x44bd8a
cmp ecx, 0xa
jb 0x44bd52
cmp ecx, 0xd
jbe 0x44bd8a
xor ecx, ecx
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x14
sete al
cmp ecx, eax
je 0x44b9d7
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 0x44bd04
jmp 0x44b9d7
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x44bd52
mov ecx, 1
jmp 0x44bd54
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
cmp edi, dword [esi + 0x7c]
jae 0x44b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44bde3
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 0x44bde8
mov eax, 1
cmp edx, 0x100
jae 0x44be00
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44b9d7
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 0x44bd9a
jmp 0x44b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
cmp edi, dword [esi + 0x7c]
jae 0x44b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44be66
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 0x44b9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44b9d7
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 0x44be20
jmp 0x44b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
cmp edi, dword [esi + 0x7c]
jae 0x44b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44beeb
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 0x44bef0
mov eax, 1
cmp edx, 0x100
jae 0x44bf08
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44b9d7
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 0x44bea2
jmp 0x44b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
cmp edi, dword [esi + 0x7c]
jae 0x44b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44bf6e
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 0x44b9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44b9d7
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 0x44bf28
jmp 0x44b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
cmp edi, dword [esi + 0x7c]
jae 0x44b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44bff3
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 0x44bff8
mov eax, 1
cmp edx, 0x100
jae 0x44c010
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44b9d7
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 0x44bfaa
jmp 0x44b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x44b9da
cmp edi, dword [esi + 0x7c]
jae 0x44c0a5
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44c072
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 0x44b9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44b9d7
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 0x44c030
jmp 0x44b9d7
cmp dword [esi + 0x8c], 0
je 0x44b9d7
cmp edi, dword [esi + 0x88]
jbe 0x44b9d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x44b9d7
cmp eax, 0xf
ja case.default.0x448009
jmp dword [eax*4 + 0x44e8e1]
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c196
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44c11c
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
je 0x44c144
jmp 0x44c1bb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44c144
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c144
cmp edx, 1
je 0x44c1bb
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44c1bb
cmp dword [esi + 0x8c], 0
je 0x44c17e
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44c17e
cmp dword [esi + 0x18], 0
jne 0x44c17e
cmp dword [esi + 0x1c], 2
jne 0x44c17e
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c17e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
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 0x44c0f0
jmp 0x44c1bb
cmp dword [esi + 0x8c], 0
je 0x44c1bb
cmp edi, dword [esi + 0x88]
jbe 0x44c1bb
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edx, dword [ebp - 0x10]
jmp 0x44c64a
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 0x44c20b
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44c64a
cmp ecx, dword [esi + 0x88]
jbe 0x44c64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c64a
jmp 0x44e351
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c2a2
movzx eax, word [edi]
cmp eax, 0xd
jne 0x44c247
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44c64a
cmp word [edi], 0xa
je 0x44c28b
jmp 0x44c291
cmp eax, 0xa
je 0x44c28b
cmp dword [esi + 0x6c], 0
jne 0x44c64a
cmp eax, 0xb
je 0x44c28b
cmp eax, 0xc
je 0x44c28b
mov dword [ebp - 0x38], 0x85
cmp ax, word [ebp - 0x38]
je 0x44c28b
mov dword [ebp - 0x38], 0x2028
cmp ax, word [ebp - 0x38]
je 0x44c28b
mov dword [ebp - 0x38], 0x2029
cmp ax, word [ebp - 0x38]
jne 0x44c64a
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 0x44c225
jmp 0x44c64a
cmp dword [esi + 0x8c], 0
je 0x44c64a
cmp edi, dword [esi + 0x88]
jbe 0x44c64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c64a
jmp 0x44e351
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44c31e
je 0x44c64a
cmp eax, 0xa0
ja 0x44c312
je 0x44c64a
cmp eax, 9
je 0x44c64a
cmp eax, 0x20
jne 0x44c354
jmp 0x44c64a
cmp eax, 0x1680
jne 0x44c354
jmp 0x44c64a
cmp eax, 0x205f
ja 0x44c349
je 0x44c64a
cmp eax, 0x2000
jb 0x44c354
cmp eax, 0x200a
jbe 0x44c64a
cmp eax, 0x202f
jne 0x44c354
jmp 0x44c64a
cmp eax, 0x3000
je 0x44c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44c2dd
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44c3ab
je 0x44c3dd
cmp eax, 0xa0
ja 0x44c39f
je 0x44c3dd
cmp eax, 9
je 0x44c3dd
cmp eax, 0x20
je 0x44c3dd
jmp 0x44c64a
cmp eax, 0x1680
je 0x44c3dd
jmp 0x44c64a
cmp eax, 0x205f
ja 0x44c3d2
je 0x44c3dd
cmp eax, 0x2000
jb 0x44c64a
cmp eax, 0x200a
jbe 0x44c3dd
cmp eax, 0x202f
je 0x44c3dd
jmp 0x44c64a
cmp eax, 0x3000
jne 0x44c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44c372
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44c41f
je 0x44c64a
cmp eax, 0xa
jb 0x44c431
cmp eax, 0xd
ja 0x44c431
jmp 0x44c64a
cmp eax, 0x2028
jb 0x44c431
cmp eax, 0x2029
jbe 0x44c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44c3f7
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44c46d
je 0x44c47b
add eax, 0xfffffff6
cmp eax, 3
jbe 0x44c47b
jmp 0x44c64a
add eax, 0xffffdfd8
cmp eax, 1
ja 0x44c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44c44b
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44c4c0
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c64a
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 0x44c495
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c64a
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 0x44c4dd
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44c551
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c64a
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 0x44c526
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c64a
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 0x44c56e
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44c5de
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c64a
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 0x44c5b7
jmp 0x44c64a
cmp ecx, dword [ebp - 0x14]
jge 0x44c64a
cmp edi, dword [esi + 0x7c]
jae 0x44c625
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c64a
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 0x44c5f4
jmp 0x44c64a
cmp dword [esi + 0x8c], 0
je 0x44c64a
cmp edi, dword [esi + 0x88]
jbe 0x44c64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp edi, edx
je 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x10]
add edi, 0xfffffffe
cmp dword [ebp - 0x20], 0x11
mov dword [ebp - 8], edi
jne 0x44c6a5
cmp edi, eax
jbe 0x44c6a7
cmp word [edi], 0xa
jne 0x44c6a5
cmp word [edi - 2], 0xd
jne 0x44c6a5
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, eax
jne 0x44c65c
jmp 0x408992
mov edx, dword [ebp - 0x20]
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
add ebx, 4
jmp 0x40898f
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 0x44c736
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0x20]
mov edx, 0x81
movzx eax, word [ecx]
cmp ax, dx
je 0x44c9e8
mov edx, 0x88
cmp ax, dx
jb 0x4466c1
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.00408810
add esp, 0x14
jmp 0x4089db
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.00408810
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x44c75d
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x4089db
jmp 0x44c768
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x44c9ec
add ebx, 4
jmp 0x40898f
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c799
add edi, 0xfffffffe
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c7c4
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f2]
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x10]
jbe 0x408992
cmp dword [ebp - 0x28], 0
lea edx, [edi - 2]
jne 0x44c802
movzx ecx, word [edx]
jmp 0x44c845
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c81a
add edx, 0xfffffffe
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c845
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 + 0x4bff40]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f2]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test dword [ecx*4 + 0x4c21f0], eax
je 0x44b879
mov edi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
jmp 0x44c7eb
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc20
jne 0x44c92b
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x44c903
cmp word [eax], 0x77
jne 0x44e3d4
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.0x408896.157
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp case.0x408896.129
test eax, eax
je 0x44c903
cmp eax, 0xfffffc1b
jne 0x4089db
movzx ecx, word [ebx]
mov edx, 0x81
cmp cx, dx
je 0x44c966
cmp ecx, 0x77
jne 0x44c95a
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44c94c
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0xb8], ebx
jne 0x4089db
jmp case.0x408896.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c2140]
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x4089db
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x4089db
push ecx
call fcn.004091bb
add esp, 4
jmp 0x44e3d4
mov eax, 0xfffffffa
jmp 0x4089db
mov edx, ecx
jmp 0x44c9ef
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov edi, dword [ebp - 0x20]
jmp 0x44ca38
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x4089db
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 0x4089db
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 0x4089d6
cmp eax, 0xfffffffe
jne 0x44ca92
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp edi, dword [esi + 0x7c]
jb case.0x408896.157
jmp 0x44a9e4
mov dword [ebp - 0x1c], eax
cmp edi, edx
jl 0x44cabb
mov edi, eax
jmp 0x44cb20
mov eax, dword [ebp - 8]
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049b3a3
add esp, 0xc
test eax, eax
js 0x44cae5
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 0x44cab8
jmp 0x44cb15
cmp eax, 0xfffffffe
jne 0x44cb12
cmp dword [esi + 0x8c], 0
je 0x44cb12
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x44cb12
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp edx, edi
jb case.0x408896.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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
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 0x44cb20
jmp case.0x408896.157
cmp ecx, 0xfffffffe
jne 0x44cb65
mov eax, dword [esi + 0x7c]
jmp 0x44cb68
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp eax, dword [esi + 0x7c]
jb case.0x408896.157
cmp eax, dword [esi + 0x88]
jmp 0x44a9ea
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.00408810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44cc5f
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x408896.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x44cdaf
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cc05
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 0x44cc18
cmp edi, 0x6e
je case.0x408896.157
jmp 0x44cc36
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.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44cbb7
jmp 0x4089db
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x408896.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44cc9b
cmp edi, 0x6e
je case.0x408896.157
jmp 0x44ccb6
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.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44cc67
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x44cd50
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cd50
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.0049b59e
add esp, 4
test eax, eax
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44cd04
jmp 0x4089db
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp edx, ecx
jb case.0x408896.157
cmp edx, dword [esi + 0x88]
jmp 0x44a9ea
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp ecx, dword [esi + 0x88]
jmp 0x44a9ea
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp eax, dword [esi + 0x88]
jmp 0x44a9ea
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge case.0x408896.157
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44ce36
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421384
add esp, 0xc
test eax, eax
jne 0x44ce36
mov eax, dword [ebp - 0xc]
jmp 0x44ce6a
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44ca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44ca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421384
add esp, 0xc
test eax, eax
jne 0x44ca92
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.00408810
add esp, 0x14
test eax, eax
je 0x44ce05
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
cmp dword [ebp - 0x20], ecx
je 0x44cee4
cmp dword [ebp - 0x24], ecx
jne case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44cebe
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x20], eax
jne case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44cf32
jmp 0x4089db
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.00408810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44d02d
test eax, eax
jne 0x4089db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cff3
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.0x408896.157
cmp dword [ebp - 0x20], ecx
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44cfae
jmp 0x4089db
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
cmp dword [ebp - 0x14], ecx
je case.0x408896.157
cmp dword [ebp - 0x20], ecx
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d035
jmp 0x4089db
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp eax, dword [esi + 0x88]
jbe case.0x408896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x408896.157
jmp 0x44e351
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.00408810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44d15e
test eax, eax
jne 0x4089db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d12d
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.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d0e8
jmp 0x4089db
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x14], eax
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d166
jmp 0x4089db
cmp eax, 0xa
ja case.default.0x448009
jmp dword [eax*4 + 0x44e921]
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x14]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
je 0x44d215
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d215
add edi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d1e5
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44d2b7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d2b7
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp eax, 9
je 0x44d2ee
cmp eax, 5
je 0x44d2ee
cmp eax, 8
je 0x44d2ee
xor eax, eax
jmp 0x44d2f3
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d26a
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44d398
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d398
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 + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp dword [eax*4 + 0x4c5350], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d34a
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44d46f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d46f
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 + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d422
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44d53f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d53f
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 + 0x4bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d4f2
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44d610
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d610
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x44d649
cmp eax, 3
je 0x44d649
xor eax, eax
jmp 0x44d64e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d5c2
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44d6f7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d6f4
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 0x44d73d
je 0x44d7b2
cmp ecx, 0x85
ja 0x44d72b
je 0x44d7b2
cmp ecx, 9
jb case.0x44d759.8203
cmp ecx, 0xd
jbe 0x44d7b2
cmp ecx, 0x20
jne case.0x44d759.8203
jmp 0x44d7b2
cmp ecx, 0xa0
je 0x44d7b2
cmp ecx, 0x1680
jne case.0x44d759.8203
jmp 0x44d7b2
cmp ecx, 0x202f
ja 0x44d760
je 0x44d7b2
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44d759.8203
movzx eax, byte [ecx + 0x44e955]
jmp dword [eax*4 + 0x44e94d]
cmp ecx, 0x205f
je 0x44d7b2
cmp ecx, 0x3000
je 0x44d7b2
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
cmp dword [eax*4 + 0x4c5350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x408896.157
mov eax, dword [ebp - 0xc]
jmp 0x44d7bc
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], 0
jne case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d6a5
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44d858
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d858
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 + 0x4bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x44d898
cmp eax, 3
je 0x44d898
cmp edx, 0x5f
je 0x44d898
xor eax, eax
jmp 0x44d89d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d80b
jmp 0x4089db
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ecx
je 0x44d948
mov eax, ecx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d948
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 + 0x4b0a70]
lea eax, [eax*4 + 0x4b0a70]
cmp dword [ebp - 0x34], edx
jb 0x44d96b
lea eax, [eax + 4]
cmp ecx, edx
je 0x44d9a0
mov edx, dword [eax]
cmp ecx, edx
jae 0x44d95e
cmp dword [ebp - 0x3c], 0
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d8f4
jmp 0x4089db
cmp dword [ebp - 0x3c], 0
jne case.0x408896.157
jmp 0x44d975
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44da1d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44da1d
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 0x44da48
cmp ecx, 0x40
je 0x44da48
cmp ecx, 0x60
je 0x44da48
cmp ecx, 0xa0
jb 0x44da3c
cmp ecx, 0xd7ff
jbe 0x44da48
cmp ecx, 0xe000
jae 0x44da48
xor eax, eax
jmp 0x44da4d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44d9cf
jmp 0x4089db
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
cmp edi, dword [esi + 0x7c]
jae 0x44a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x38], eax
mov edx, edi
je 0x44dadb
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dadb
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], ecx
cmp edx, eax
jae 0x44dbad
mov dword [ebp - 0x38], edx
mov ebx, edx
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x34], 1
je 0x44db51
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44db51
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 + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c21f0], eax
mov esi, dword [ebp + 0x10]
je 0x44dba7
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 0x44db12
jmp 0x44dbaa
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x44dbd6
cmp edx, eax
jb 0x44dbd6
cmp edx, dword [esi + 0x88]
jbe 0x44dbd6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
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.00408810
add esp, 0x14
test eax, eax
je 0x44da89
jmp 0x4089db
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x408ea2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x408ea2
cmp edx, 1
je case.0x408896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x408896.157
jmp 0x408ea2
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 0x408ebf
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
cmp esi, 0xf
ja case.default.0x448009
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
jmp dword [esi*4 + 0x44e981]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 0xd
ja 0x44dcbd
je 0x44dca2
cmp ecx, 0xa
je case.0x44dc77.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x408896.157
jmp 0x44dcd4
cmp edi, dword [esi + 0x7c]
jae case.0x44dc77.13
cmp word [edi], 0xa
jne case.0x44dc77.13
lea edi, [eax + 2]
jmp case.0x44dc77.13
cmp ecx, 0x85
je 0x44dcd4
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
cmp dword [esi + 0x6c], 0
jne case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x180e
ja 0x44dd27
je case.0x408896.157
cmp ecx, 0xa0
ja 0x44dd16
je case.0x408896.157
cmp ecx, 9
je case.0x408896.157
cmp ecx, 0x20
je case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x1680
je case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x205f
ja 0x44dd5e
je case.0x408896.157
cmp ecx, 0x2000
jb case.0x44dc77.13
cmp ecx, 0x200a
jbe case.0x408896.157
cmp ecx, 0x202f
je case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x3000
je case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x180e
ja 0x44ddb3
je case.0x44dc77.13
cmp ecx, 0xa0
ja 0x44dda2
je case.0x44dc77.13
cmp ecx, 9
je case.0x44dc77.13
cmp ecx, 0x20
jne case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x1680
jne case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x205f
ja 0x44ddea
je case.0x44dc77.13
cmp ecx, 0x2000
jb case.0x408896.157
cmp ecx, 0x200a
jbe case.0x44dc77.13
cmp ecx, 0x202f
jne case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x3000
jne case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x85
ja 0x44de20
je case.0x408896.157
cmp ecx, 0xa
jb case.0x44dc77.13
cmp ecx, 0xd
jbe case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x2028
jb case.0x44dc77.13
cmp ecx, 0x2029
jbe case.0x408896.157
jmp case.0x44dc77.13
cmp ecx, 0x85
ja 0x44de5c
je case.0x44dc77.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x408896.157
jmp case.0x44dc77.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
jmp case.0x44dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44dc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x408896.157
jmp case.0x44dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x408896.157
jmp case.0x44dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44dc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x408896.157
jmp case.0x44dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x408896.157
jmp case.0x44dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44dc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x408896.157
jmp case.0x44dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x408896.157
jmp case.0x44dc77.13
cmp eax, dword [esi + 0x7c]
jb case.0x44dc77.13
cmp dword [esi + 0x18], 0
jne case.0x44dc77.13
cmp dword [esi + 0x1c], 2
jne case.0x44dc77.13
movzx eax, word [esi + 0x34]
cmp edx, eax
jne case.0x44dc77.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp case.0x44dc77.13
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44e324
cmp dword [ebp - 0x20], 0xc
jne 0x44dfeb
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44dfbf
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.157
jmp 0x44dfeb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44dfeb
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44dfeb
cmp edx, 1
je case.0x408896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x408896.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.0x448009
jmp dword [eax*4 + 0x44e9c1]
cmp dword [esi + 0x8c], 0
je case.0x44e007.13
cmp edi, dword [esi + 0x7c]
jb case.0x44e007.13
cmp dword [esi + 0x18], 0
jne case.0x44e007.13
cmp dword [esi + 0x1c], 2
jne case.0x44e007.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44e007.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x44e007.13
jmp 0x44e351
cmp ecx, 0xd
ja 0x44e096
je 0x44e07b
cmp ecx, 0xa
je case.0x44e007.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x408896.157
jmp 0x44e0ad
cmp edi, dword [esi + 0x7c]
jae case.0x44e007.13
cmp word [edi], 0xa
jne case.0x44e007.13
add edi, 2
jmp case.0x44e007.13
cmp ecx, 0x85
je 0x44e0ad
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
cmp dword [esi + 0x6c], 0
jne case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x180e
ja 0x44e100
je case.0x408896.157
cmp ecx, 0xa0
ja 0x44e0ef
je case.0x408896.157
cmp ecx, 9
je case.0x408896.157
cmp ecx, 0x20
je case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x1680
je case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x205f
ja 0x44e137
je case.0x408896.157
cmp ecx, 0x2000
jb case.0x44e007.13
cmp ecx, 0x200a
jbe case.0x408896.157
cmp ecx, 0x202f
je case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x3000
je case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x180e
ja 0x44e18c
je case.0x44e007.13
cmp ecx, 0xa0
ja 0x44e17b
je case.0x44e007.13
cmp ecx, 9
je case.0x44e007.13
cmp ecx, 0x20
jne case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x1680
jne case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x205f
ja 0x44e1c3
je case.0x44e007.13
cmp ecx, 0x2000
jb case.0x408896.157
cmp ecx, 0x200a
jbe case.0x44e007.13
cmp ecx, 0x202f
jne case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x3000
jne case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x85
ja 0x44e1f9
je case.0x408896.157
cmp ecx, 0xa
jb case.0x44e007.13
cmp ecx, 0xd
jbe case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x2028
jb case.0x44e007.13
cmp ecx, 0x2029
jbe case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0x85
ja 0x44e235
je case.0x44e007.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x408896.157
jmp case.0x44e007.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
jmp case.0x44e007.13
cmp ecx, 0xff
ja case.0x44e007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x408896.157
jmp case.0x44e007.13
mov eax, 0xff
cmp word [ebp - 0x38], ax
ja case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x408896.157
jmp case.0x44e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x44e007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x408896.157
jmp case.0x44e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x408896.157
jmp case.0x44e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x44e007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x408896.157
jmp case.0x44e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x408896.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.00408810
add esp, 0x14
test eax, eax
je 0x44df80
jmp 0x4089db
mov eax, 0xfffffff2
jmp 0x4089db
cmp dword [esi + 0x8c], 0
je case.0x408896.157
cmp edi, dword [esi + 0x88]
jbe case.0x408896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x408896.157
mov eax, 0xfffffff4
jmp 0x4089db
mov dword [esi + 0x9c], 2
jmp 0x408f6c
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x44e385
cmp word [eax], 0x77
jne 0x44e3d4
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 0x408f60
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 0x4089db
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 + 0x4c2140]
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.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x44e42d
cmp eax, 0xfffffc19
jne 0x44e441
cmp dword [esi + 0xb0], 0
jne 0x44e441
mov dword [esi + 0xb0], edi
jmp 0x4089db
cmp eax, 0xfffffc1f
jne 0x4089db
mov edx, dword [esi + 0x80]
mov ecx, edi
call fcn.0049b9ce
test eax, eax
jne 0x44e3d4
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x4089db
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, 0xfffffc1c
jmp 0x4089db
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
test eax, eax
je 0x44e53d
jmp 0x4089db
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 + 0x4c2140]
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.00408810
add esp, 0x14
cmp eax, 1
je 0x44e526
cmp eax, 0xfffffc19
jne 0x44e535
cmp dword [esi + 0xb0], 0
jne 0x44e535
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x4089db
mov eax, 0xfffffc1d
jmp 0x4089db
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4c2140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x4089db
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
test eax, eax
je 0x44e61b
jmp 0x4089db
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 + 0x4c2140]
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.00408810
add esp, 0x14
cmp eax, 1
je 0x44e604
cmp eax, 0xfffffc19
jne 0x44e613
cmp dword [esi + 0xb0], 0
jne 0x44e613
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x4089db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x4089db
cmp edi, 0x9f
je 0x4089b9
cmp dword [esi + 0xa8], 0
jne 0x4089b9
cmp dword [esi + 0x60], 0
jne case.0x408896.157
cmp dword [esi + 0x64], 0
je 0x4089b9
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x408896.157
jmp 0x4089b9
mov eax, 0xfffffc19
jmp 0x4089db
mov eax, 0xfffffffb
jmp 0x4089db
mov eax, 0xffffffeb
jmp 0x4089db
inc eax
mov dword [esi], eax
mov eax, 0xfffffff8
jmp 0x4089db