40cb6b:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cb71:	83 c4 08             	add    $0x8,%esp
40cb74:	85 c0                	test   %eax,%eax
40cb76:	0f 85 fc 07 01 00    	jne    0x41d378
40cb7c:	33 db                	xor    %ebx,%ebx
40cb7e:	8b ff                	mov    %edi,%edi
40cb80:	0f b7 37             	movzwl (%edi),%esi
40cb83:	56                   	push   %esi
40cb84:	68 b4 22 40 00       	push   $0x4022b4
40cb89:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cb8f:	83 c4 08             	add    $0x8,%esp
40cb92:	85 c0                	test   %eax,%eax
40cb94:	75 33                	jne    0x40cbc9
40cb96:	56                   	push   %esi
40cb97:	68 c4 22 40 00       	push   $0x4022c4
40cb9c:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cba2:	83 c4 08             	add    $0x8,%esp
40cba5:	85 c0                	test   %eax,%eax
40cba7:	75 20                	jne    0x40cbc9
40cba9:	83 fe 5e             	cmp    $0x5e,%esi
40cbac:	0f 84 d7 07 01 00    	je     0x41d389
40cbb2:	8b ce                	mov    %esi,%ecx
40cbb4:	8d 43 01             	lea    0x1(%ebx),%eax
40cbb7:	66 89 8c 5d f4 fd ff 	mov    %cx,-0x20c(%ebp,%ebx,2)
40cbbe:	ff
40cbbf:	83 c7 02             	add    $0x2,%edi
40cbc2:	8b d8                	mov    %eax,%ebx
40cbc4:	83 f8 7f             	cmp    $0x7f,%eax
40cbc7:	72 b7                	jb     0x40cb80
40cbc9:	33 c0                	xor    %eax,%eax
40cbcb:	66 89 84 5d f4 fd ff 	mov    %ax,-0x20c(%ebp,%ebx,2)
40cbd2:	ff
40cbd3:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40cbd9:	50                   	push   %eax
40cbda:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40cbe0:	50                   	push   %eax
40cbe1:	ff 15 40 a4 44 00    	call   *0x44a440
40cbe7:	8b 9d e0 f9 ff ff    	mov    -0x620(%ebp),%ebx
40cbed:	83 c4 08             	add    $0x8,%esp
40cbf0:	85 c0                	test   %eax,%eax
40cbf2:	0f 85 4d fe ff ff    	jne    0x40ca45
40cbf8:	8b 85 bc f9 ff ff    	mov    -0x644(%ebp),%eax
40cbfe:	f6 40 40 01          	testb  $0x1,0x40(%eax)
40cc02:	0f 84 8d 07 01 00    	je     0x41d395
40cc08:	b0 01                	mov    $0x1,%al
40cc0a:	a2 44 67 43 00       	mov    %al,0x436744
40cc0f:	e8 20 c8 ff ff       	call   0x409434
40cc14:	85 db                	test   %ebx,%ebx
40cc16:	0f 84 80 07 01 00    	je     0x41d39c
40cc1c:	8d 8d ec f9 ff ff    	lea    -0x614(%ebp),%ecx
40cc22:	2b d9                	sub    %ecx,%ebx
40cc24:	83 c3 02             	add    $0x2,%ebx
40cc27:	d1 fb                	sar    $1,%ebx
40cc29:	84 c0                	test   %al,%al
40cc2b:	0f 85 99 07 01 00    	jne    0x41d3ca
40cc31:	8b b5 e4 f9 ff ff    	mov    -0x61c(%ebp),%esi
40cc37:	8b bd dc f9 ff ff    	mov    -0x624(%ebp),%edi
40cc3d:	01 5e 08             	add    %ebx,0x8(%esi)
40cc40:	8b de                	mov    %esi,%ebx
40cc42:	e9 24 fe ff ff       	jmp    0x40ca6b
40cc47:	50                   	push   %eax
40cc48:	ff 15 ac a3 44 00    	call   *0x44a3ac
40cc4e:	83 c4 04             	add    $0x4,%esp
40cc51:	85 c0                	test   %eax,%eax
40cc53:	0f 85 40 fb ff ff    	jne    0x40c799
40cc59:	e9 48 fc ff ff       	jmp    0x40c8a6
40cc5e:	33 c0                	xor    %eax,%eax
40cc60:	e9 c1 fb ff ff       	jmp    0x40c826
40cc65:	e8 0e a0 00 00       	call   0x416c78
40cc6a:	cc                   	int3
40cc6b:	cc                   	int3
40cc6c:	cc                   	int3
40cc6d:	cc                   	int3
40cc6e:	cc                   	int3
40cc6f:	cc                   	int3
40cc70:	83 3d f0 65 43 00 00 	cmpl   $0x0,0x4365f0
40cc77:	56                   	push   %esi
40cc78:	75 4e                	jne    0x40ccc8
40cc7a:	51                   	push   %ecx
40cc7b:	ba 00 20 00 00       	mov    $0x2000,%edx
40cc80:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40cc85:	e8 86 02 00 00       	call   0x40cf10
40cc8a:	8b d0                	mov    %eax,%edx
40cc8c:	89 15 00 67 43 00    	mov    %edx,0x436700
40cc92:	83 fa ff             	cmp    $0xffffffff,%edx
40cc95:	0f 84 99 07 01 00    	je     0x41d434
40cc9b:	b8 f0 4a 44 00       	mov    $0x444af0,%eax
40cca0:	8d 70 02             	lea    0x2(%eax),%esi
40cca3:	66 8b 08             	mov    (%eax),%cx
40cca6:	83 c0 02             	add    $0x2,%eax
40cca9:	66 85 c9             	test   %cx,%cx
40ccac:	75 f5                	jne    0x40cca3
40ccae:	2b c6                	sub    %esi,%eax
40ccb0:	d1 f8                	sar    $1,%eax
40ccb2:	40                   	inc    %eax
40ccb3:	a3 fc 66 43 00       	mov    %eax,0x4366fc
40ccb8:	38 0d 59 90 44 00    	cmp    %cl,0x449059
40ccbe:	0f 85 87 07 01 00    	jne    0x41d44b
40ccc4:	8b c2                	mov    %edx,%eax
40ccc6:	5e                   	pop    %esi
40ccc7:	c3                   	ret
40ccc8:	83 c9 10             	or     $0x10,%ecx
40cccb:	eb ad                	jmp    0x40cc7a
40cccd:	cc                   	int3
40ccce:	cc                   	int3
40cccf:	cc                   	int3
40ccd0:	8b ff                	mov    %edi,%edi
40ccd2:	55                   	push   %ebp
40ccd3:	8b ec                	mov    %esp,%ebp
40ccd5:	51                   	push   %ecx
40ccd6:	53                   	push   %ebx
40ccd7:	56                   	push   %esi
40ccd8:	8b 75 0c             	mov    0xc(%ebp),%esi
40ccdb:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ccde:	57                   	push   %edi
40ccdf:	8b f9                	mov    %ecx,%edi
40cce1:	81 fe 30 de 40 00    	cmp    $0x40de30,%esi
40cce7:	74 2b                	je     0x40cd14
40cce9:	81 fe 90 e0 40 00    	cmp    $0x40e090,%esi
40ccef:	0f 84 f3 00 00 00    	je     0x40cde8
40ccf5:	81 fe 10 e2 40 00    	cmp    $0x40e210,%esi
40ccfb:	0f 84 f1 00 00 00    	je     0x40cdf2
40cd01:	81 fe 30 e2 40 00    	cmp    $0x40e230,%esi
40cd07:	0f 85 5c 07 01 00    	jne    0x41d469
40cd0d:	e8 1e 15 00 00       	call   0x40e230
40cd12:	eb 05                	jmp    0x40cd19
40cd14:	e8 17 11 00 00       	call   0x40de30
40cd19:	8b d8                	mov    %eax,%ebx
40cd1b:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40cd20:	66 83 38 00          	cmpw   $0x0,(%eax)
40cd24:	0f 84 b3 00 00 00    	je     0x40cddd
40cd2a:	33 c0                	xor    %eax,%eax
40cd2c:	39 05 f0 65 43 00    	cmp    %eax,0x4365f0
40cd32:	0f 85 c4 00 00 00    	jne    0x40cdfc
40cd38:	50                   	push   %eax
40cd39:	ba 00 20 00 00       	mov    $0x2000,%edx
40cd3e:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40cd43:	e8 c8 01 00 00       	call   0x40cf10
40cd48:	8b d0                	mov    %eax,%edx
40cd4a:	89 15 00 67 43 00    	mov    %edx,0x436700
40cd50:	83 fa ff             	cmp    $0xffffffff,%edx
40cd53:	0f 84 1f 07 01 00    	je     0x41d478
40cd59:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40cd5e:	8d 71 02             	lea    0x2(%ecx),%esi
40cd61:	66 8b 01             	mov    (%ecx),%ax
40cd64:	83 c1 02             	add    $0x2,%ecx
40cd67:	66 85 c0             	test   %ax,%ax
40cd6a:	75 f5                	jne    0x40cd61
40cd6c:	2b ce                	sub    %esi,%ecx
40cd6e:	d1 f9                	sar    $1,%ecx
40cd70:	80 3d 59 90 44 00 00 	cmpb   $0x0,0x449059
40cd77:	8d 41 01             	lea    0x1(%ecx),%eax
40cd7a:	a3 fc 66 43 00       	mov    %eax,0x4366fc
40cd7f:	0f 85 0a 07 01 00    	jne    0x41d48f
40cd85:	b8 f0 4a 44 00       	mov    $0x444af0,%eax
40cd8a:	8b cf                	mov    %edi,%ecx
40cd8c:	8d 64 24 00          	lea    0x0(%esp),%esp
40cd90:	66 8b 11             	mov    (%ecx),%dx
40cd93:	66 3b 10             	cmp    (%eax),%dx
40cd96:	0f 85 38 01 00 00    	jne    0x40ced4
40cd9c:	66 85 d2             	test   %dx,%dx
40cd9f:	74 19                	je     0x40cdba
40cda1:	66 8b 51 02          	mov    0x2(%ecx),%dx
40cda5:	66 3b 50 02          	cmp    0x2(%eax),%dx
40cda9:	0f 85 25 01 00 00    	jne    0x40ced4
40cdaf:	83 c1 04             	add    $0x4,%ecx
40cdb2:	83 c0 04             	add    $0x4,%eax
40cdb5:	66 85 d2             	test   %dx,%dx
40cdb8:	75 d6                	jne    0x40cd90
40cdba:	33 c0                	xor    %eax,%eax
40cdbc:	85 c0                	test   %eax,%eax
40cdbe:	0f 84 24 01 00 00    	je     0x40cee8
40cdc4:	a1 f8 66 43 00       	mov    0x4366f8,%eax
40cdc9:	80 b8 f7 65 43 00 33 	cmpb   $0x33,0x4365f7(%eax)
40cdd0:	74 34                	je     0x40ce06
40cdd2:	6a 00                	push   $0x0
40cdd4:	33 d2                	xor    %edx,%edx
40cdd6:	33 c9                	xor    %ecx,%ecx
40cdd8:	e8 33 01 00 00       	call   0x40cf10
40cddd:	8b c3                	mov    %ebx,%eax
40cddf:	5f                   	pop    %edi
40cde0:	5e                   	pop    %esi
40cde1:	5b                   	pop    %ebx
40cde2:	8b e5                	mov    %ebp,%esp
40cde4:	5d                   	pop    %ebp
40cde5:	c2 08 00             	ret    $0x8
40cde8:	e8 a3 12 00 00       	call   0x40e090
40cded:	e9 27 ff ff ff       	jmp    0x40cd19
40cdf2:	e8 19 14 00 00       	call   0x40e210
40cdf7:	e9 1d ff ff ff       	jmp    0x40cd19
40cdfc:	b8 10 00 00 00       	mov    $0x10,%eax
40ce01:	e9 32 ff ff ff       	jmp    0x40cd38
40ce06:	b8 b0 22 40 00       	mov    $0x4022b0,%eax
40ce0b:	eb 03                	jmp    0x40ce10
40ce0d:	8d 49 00             	lea    0x0(%ecx),%ecx
40ce10:	66 8b 0f             	mov    (%edi),%cx
40ce13:	66 3b 08             	cmp    (%eax),%cx
40ce16:	0f 85 c2 00 00 00    	jne    0x40cede
40ce1c:	66 85 c9             	test   %cx,%cx
40ce1f:	74 19                	je     0x40ce3a
40ce21:	66 8b 4f 02          	mov    0x2(%edi),%cx
40ce25:	66 3b 48 02          	cmp    0x2(%eax),%cx
40ce29:	0f 85 af 00 00 00    	jne    0x40cede
40ce2f:	83 c7 04             	add    $0x4,%edi
40ce32:	83 c0 04             	add    $0x4,%eax
40ce35:	66 85 c9             	test   %cx,%cx
40ce38:	75 d6                	jne    0x40ce10
40ce3a:	33 c0                	xor    %eax,%eax
40ce3c:	85 c0                	test   %eax,%eax
40ce3e:	75 92                	jne    0x40cdd2
40ce40:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40ce47:	0a
40ce48:	75 88                	jne    0x40cdd2
40ce4a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40ce50:	33 c9                	xor    %ecx,%ecx
40ce52:	e8 19 fe ff ff       	call   0x40cc70
40ce57:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40ce5e:	0a
40ce5f:	74 ef                	je     0x40ce50
40ce61:	6a 00                	push   $0x0
40ce63:	33 d2                	xor    %edx,%edx
40ce65:	33 c9                	xor    %ecx,%ecx
40ce67:	e8 a4 00 00 00       	call   0x40cf10
40ce6c:	66 83 3d f0 4a 44 00 	cmpw   $0x29,0x444af0
40ce73:	29
40ce74:	0f 84 63 ff ff ff    	je     0x40cddd
40ce7a:	bf 2e 00 00 00       	mov    $0x2e,%edi
40ce7f:	b9 50 00 00 00       	mov    $0x50,%ecx
40ce84:	e8 47 0e 00 00       	call   0x40dcd0
40ce89:	8b f0                	mov    %eax,%esi
40ce8b:	85 f6                	test   %esi,%esi
40ce8d:	0f 84 14 06 01 00    	je     0x41d4a7
40ce93:	b9 08 00 00 00       	mov    $0x8,%ecx
40ce98:	89 3e                	mov    %edi,(%esi)
40ce9a:	89 5e 38             	mov    %ebx,0x38(%esi)
40ce9d:	c7 05 d0 65 43 00 01 	movl   $0x1,0x4365d0
40cea4:	00 00 00
40cea7:	e8 c4 fd ff ff       	call   0x40cc70
40ceac:	8b 7d 08             	mov    0x8(%ebp),%edi
40ceaf:	c7 05 d0 65 43 00 00 	movl   $0x0,0x4365d0
40ceb6:	00 00 00
40ceb9:	81 ff b0 ba 40 00    	cmp    $0x40bab0,%edi
40cebf:	75 3a                	jne    0x40cefb
40cec1:	e8 ea eb ff ff       	call   0x40bab0
40cec6:	89 46 3c             	mov    %eax,0x3c(%esi)
40cec9:	8b c6                	mov    %esi,%eax
40cecb:	5f                   	pop    %edi
40cecc:	5e                   	pop    %esi
40cecd:	5b                   	pop    %ebx
40cece:	8b e5                	mov    %ebp,%esp
40ced0:	5d                   	pop    %ebp
40ced1:	c2 08 00             	ret    $0x8
40ced4:	1b c0                	sbb    %eax,%eax
40ced6:	83 c8 01             	or     $0x1,%eax
40ced9:	e9 de fe ff ff       	jmp    0x40cdbc
40cede:	1b c0                	sbb    %eax,%eax
40cee0:	83 c8 01             	or     $0x1,%eax
40cee3:	e9 54 ff ff ff       	jmp    0x40ce3c
40cee8:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40ceef:	0a
40cef0:	0f 84 5a ff ff ff    	je     0x40ce50
40cef6:	8b 7d fc             	mov    -0x4(%ebp),%edi
40cef9:	eb 84                	jmp    0x40ce7f
40cefb:	8b cf                	mov    %edi,%ecx
40cefd:	ff 15 c4 a4 44 00    	call   *0x44a4c4
40cf03:	ff d7                	call   *%edi
40cf05:	eb bf                	jmp    0x40cec6
40cf07:	cc                   	int3
40cf08:	cc                   	int3
40cf09:	cc                   	int3
40cf0a:	cc                   	int3
40cf0b:	cc                   	int3
40cf0c:	cc                   	int3
40cf0d:	cc                   	int3
40cf0e:	cc                   	int3
40cf0f:	cc                   	int3
40cf10:	8b ff                	mov    %edi,%edi
40cf12:	55                   	push   %ebp
40cf13:	8b ec                	mov    %esp,%ebp
40cf15:	83 ec 18             	sub    $0x18,%esp
40cf18:	53                   	push   %ebx
40cf19:	56                   	push   %esi
40cf1a:	57                   	push   %edi
40cf1b:	6a 00                	push   $0x0
40cf1d:	68 70 0a 44 00       	push   $0x440a70
40cf22:	89 55 f4             	mov    %edx,-0xc(%ebp)
40cf25:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40cf28:	e8 84 b0 00 00       	call   0x417fb1
40cf2d:	83 c4 08             	add    $0x8,%esp
40cf30:	85 c0                	test   %eax,%eax
40cf32:	0f 85 39 06 01 00    	jne    0x41d571
40cf38:	8b 7d fc             	mov    -0x4(%ebp),%edi
40cf3b:	85 ff                	test   %edi,%edi
40cf3d:	0f 84 f8 00 00 00    	je     0x40d03b
40cf43:	83 7d f4 06          	cmpl   $0x6,-0xc(%ebp)
40cf47:	0f 8c 24 06 01 00    	jl     0x41d571
40cf4d:	8b 5d 08             	mov    0x8(%ebp),%ebx
40cf50:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40cf55:	a3 c8 65 43 00       	mov    %eax,0x4365c8
40cf5a:	89 7d f0             	mov    %edi,-0x10(%ebp)
40cf5d:	f6 c3 21             	test   $0x21,%bl
40cf60:	75 50                	jne    0x40cfb2
40cf62:	e8 99 06 00 00       	call   0x40d600
40cf67:	0f b7 f0             	movzwl %ax,%esi
40cf6a:	56                   	push   %esi
40cf6b:	ff 15 ac a3 44 00    	call   *0x44a3ac
40cf71:	83 c4 04             	add    $0x4,%esp
40cf74:	85 c0                	test   %eax,%eax
40cf76:	74 05                	je     0x40cf7d
40cf78:	83 fe 0a             	cmp    $0xa,%esi
40cf7b:	75 e5                	jne    0x40cf62
40cf7d:	f6 c3 04             	test   $0x4,%bl
40cf80:	0f 85 d6 03 00 00    	jne    0x40d35c
40cf86:	b8 d0 22 40 00       	mov    $0x4022d0,%eax
40cf8b:	56                   	push   %esi
40cf8c:	50                   	push   %eax
40cf8d:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cf93:	83 c4 08             	add    $0x8,%esp
40cf96:	85 c0                	test   %eax,%eax
40cf98:	0f 85 5d 03 00 00    	jne    0x40d2fb
40cf9e:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40cfa3:	3d c0 25 43 00       	cmp    $0x4325c0,%eax
40cfa8:	74 08                	je     0x40cfb2
40cfaa:	83 e8 02             	sub    $0x2,%eax
40cfad:	a3 cc 65 43 00       	mov    %eax,0x4365cc
40cfb2:	e8 49 06 00 00       	call   0x40d600
40cfb7:	83 3d 2c 95 44 00 00 	cmpl   $0x0,0x44952c
40cfbe:	0f b7 f0             	movzwl %ax,%esi
40cfc1:	0f 85 0b 05 01 00    	jne    0x41d4d2
40cfc7:	0f b7 c6             	movzwl %si,%eax
40cfca:	83 f8 0a             	cmp    $0xa,%eax
40cfcd:	0f 85 8a 00 00 00    	jne    0x40d05d
40cfd3:	83 e3 dd             	and    $0xffffffdd,%ebx
40cfd6:	89 5d 08             	mov    %ebx,0x8(%ebp)
40cfd9:	f6 c3 22             	test   $0x22,%bl
40cfdc:	0f 85 ba 00 00 00    	jne    0x40d09c
40cfe2:	66 89 37             	mov    %si,(%edi)
40cfe5:	83 c7 02             	add    $0x2,%edi
40cfe8:	56                   	push   %esi
40cfe9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40cfec:	8b df                	mov    %edi,%ebx
40cfee:	ff 15 34 a4 44 00    	call   *0x44a434
40cff4:	83 c4 04             	add    $0x4,%esp
40cff7:	85 c0                	test   %eax,%eax
40cff9:	0f 85 81 03 00 00    	jne    0x40d380
40cfff:	66 83 fe 3e          	cmp    $0x3e,%si
40d003:	0f 84 97 02 00 00    	je     0x40d2a0
40d009:	66 83 fe 26          	cmp    $0x26,%si
40d00d:	0f 84 8d 02 00 00    	je     0x40d2a0
40d013:	66 83 fe 7c          	cmp    $0x7c,%si