40be45:	83 c4 08             	add    $0x8,%esp
40be48:	85 c0                	test   %eax,%eax
40be4a:	75 2e                	jne    0x40be7a
40be4c:	66 83 3e 00          	cmpw   $0x0,(%esi)
40be50:	0f 84 47 ff ff ff    	je     0x40bd9d
40be56:	83 bd 24 ff ff ff 00 	cmpl   $0x0,-0xdc(%ebp)
40be5d:	75 0c                	jne    0x40be6b
40be5f:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
40be66:	75 03                	jne    0x40be6b
40be68:	83 c7 02             	add    $0x2,%edi
40be6b:	c7 85 28 ff ff ff 01 	movl   $0x1,-0xd8(%ebp)
40be72:	00 00 00
40be75:	e9 d0 fe ff ff       	jmp    0x40bd4a
40be7a:	83 bd 20 ff ff ff 00 	cmpl   $0x0,-0xe0(%ebp)
40be81:	74 16                	je     0x40be99
40be83:	85 db                	test   %ebx,%ebx
40be85:	74 12                	je     0x40be99
40be87:	0f b7 06             	movzwl (%esi),%eax
40be8a:	50                   	push   %eax
40be8b:	53                   	push   %ebx
40be8c:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40be92:	83 c4 08             	add    $0x8,%esp
40be95:	85 c0                	test   %eax,%eax
40be97:	75 b3                	jne    0x40be4c
40be99:	83 bd 1c ff ff ff 00 	cmpl   $0x0,-0xe4(%ebp)
40bea0:	0f 85 c7 10 01 00    	jne    0x41cf6d
40bea6:	0f b7 46 02          	movzwl 0x2(%esi),%eax
40beaa:	83 c6 02             	add    $0x2,%esi
40bead:	8b c8                	mov    %eax,%ecx
40beaf:	66 85 c0             	test   %ax,%ax
40beb2:	0f 85 68 ff ff ff    	jne    0x40be20
40beb8:	e9 e0 fe ff ff       	jmp    0x40bd9d
40bebd:	8b 45 08             	mov    0x8(%ebp),%eax
40bec0:	a8 02                	test   $0x2,%al
40bec2:	75 48                	jne    0x40bf0c
40bec4:	a8 04                	test   $0x4,%al
40bec6:	0f 85 b8 10 01 00    	jne    0x41cf84
40becc:	c7 85 28 ff ff ff 00 	movl   $0x0,-0xd8(%ebp)
40bed3:	00 00 00
40bed6:	83 c7 02             	add    $0x2,%edi
40bed9:	e9 ad fe ff ff       	jmp    0x40bd8b
40bede:	8b ff                	mov    %edi,%edi
40bee0:	66 8b 46 02          	mov    0x2(%esi),%ax
40bee4:	8b ce                	mov    %esi,%ecx
40bee6:	83 c6 02             	add    $0x2,%esi
40bee9:	66 89 07             	mov    %ax,(%edi)
40beec:	83 c7 02             	add    $0x2,%edi
40beef:	0f b7 06             	movzwl (%esi),%eax
40bef2:	66 85 c0             	test   %ax,%ax
40bef5:	74 5f                	je     0x40bf56
40bef7:	83 f8 22             	cmp    $0x22,%eax
40befa:	0f 84 81 fe ff ff    	je     0x40bd81
40bf00:	66 83 7e 02 00       	cmpw   $0x0,0x2(%esi)
40bf05:	75 d9                	jne    0x40bee0
40bf07:	e9 75 fe ff ff       	jmp    0x40bd81
40bf0c:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
40bf13:	0f b7 06             	movzwl (%esi),%eax
40bf16:	74 39                	je     0x40bf51
40bf18:	66 89 07             	mov    %ax,(%edi)
40bf1b:	83 c7 02             	add    $0x2,%edi
40bf1e:	c7 85 28 ff ff ff 01 	movl   $0x1,-0xd8(%ebp)
40bf25:	00 00 00
40bf28:	83 c7 02             	add    $0x2,%edi
40bf2b:	e9 5b fe ff ff       	jmp    0x40bd8b
40bf30:	83 bd 24 ff ff ff 00 	cmpl   $0x0,-0xdc(%ebp)
40bf37:	0f 84 0d fe ff ff    	je     0x40bd4a
40bf3d:	e9 97 fe ff ff       	jmp    0x40bdd9
40bf42:	b9 04 00 00 00       	mov    $0x4,%ecx
40bf47:	e8 84 1d 00 00       	call   0x40dcd0
40bf4c:	e9 62 fe ff ff       	jmp    0x40bdb3
40bf51:	83 c7 02             	add    $0x2,%edi
40bf54:	eb c2                	jmp    0x40bf18
40bf56:	8b f1                	mov    %ecx,%esi
40bf58:	e9 24 fe ff ff       	jmp    0x40bd81
40bf5d:	e8 16 ad 00 00       	call   0x416c78
40bf62:	cc                   	int3
40bf63:	cc                   	int3
40bf64:	cc                   	int3
40bf65:	cc                   	int3
40bf66:	cc                   	int3
40bf67:	cc                   	int3
40bf68:	cc                   	int3
40bf69:	cc                   	int3
40bf6a:	cc                   	int3
40bf6b:	cc                   	int3
40bf6c:	cc                   	int3
40bf6d:	cc                   	int3
40bf6e:	cc                   	int3
40bf6f:	cc                   	int3
40bf70:	8b ff                	mov    %edi,%edi
40bf72:	55                   	push   %ebp
40bf73:	8b ec                	mov    %esp,%ebp
40bf75:	6a fe                	push   $0xfffffffe
40bf77:	68 10 ca 42 00       	push   $0x42ca10
40bf7c:	68 00 6e 41 00       	push   $0x416e00
40bf81:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40bf87:	50                   	push   %eax
40bf88:	83 ec 54             	sub    $0x54,%esp
40bf8b:	53                   	push   %ebx
40bf8c:	56                   	push   %esi
40bf8d:	57                   	push   %edi
40bf8e:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40bf93:	31 45 f8             	xor    %eax,-0x8(%ebp)
40bf96:	33 c5                	xor    %ebp,%eax
40bf98:	50                   	push   %eax
40bf99:	8d 45 f0             	lea    -0x10(%ebp),%eax
40bf9c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40bfa2:	8b da                	mov    %edx,%ebx
40bfa4:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40bfa7:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40bfaa:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40bfb1:	33 ff                	xor    %edi,%edi
40bfb3:	89 7d dc             	mov    %edi,-0x24(%ebp)
40bfb6:	33 f6                	xor    %esi,%esi
40bfb8:	89 75 e0             	mov    %esi,-0x20(%ebp)
40bfbb:	89 75 fc             	mov    %esi,-0x4(%ebp)
40bfbe:	b9 00 40 00 00       	mov    $0x4000,%ecx
40bfc3:	e8 08 1d 00 00       	call   0x40dcd0
40bfc8:	89 45 c8             	mov    %eax,-0x38(%ebp)
40bfcb:	85 c0                	test   %eax,%eax
40bfcd:	0f 84 cf 0f 01 00    	je     0x41cfa2
40bfd3:	8b cb                	mov    %ebx,%ecx
40bfd5:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40bfd8:	8b f3                	mov    %ebx,%esi
40bfda:	8a 15 55 67 43 00    	mov    0x436755,%dl
40bfe0:	0f b7 01             	movzwl (%ecx),%eax
40bfe3:	66 85 c0             	test   %ax,%ax
40bfe6:	74 22                	je     0x40c00a
40bfe8:	66 8b 5d 0c          	mov    0xc(%ebp),%bx
40bfec:	66 3b c3             	cmp    %bx,%ax
40bfef:	74 19                	je     0x40c00a
40bff1:	84 d2                	test   %dl,%dl
40bff3:	74 05                	je     0x40bffa
40bff5:	83 f8 3a             	cmp    $0x3a,%eax
40bff8:	74 0a                	je     0x40c004
40bffa:	8d 4e 02             	lea    0x2(%esi),%ecx
40bffd:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40c000:	8b f1                	mov    %ecx,%esi
40c002:	eb dc                	jmp    0x40bfe0
40c004:	66 39 59 02          	cmp    %bx,0x2(%ecx)
40c008:	74 f0                	je     0x40bffa
40c00a:	66 83 39 00          	cmpw   $0x0,(%ecx)
40c00e:	0f 84 52 03 00 00    	je     0x40c366
40c014:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40c017:	3b f3                	cmp    %ebx,%esi
40c019:	0f 84 47 03 00 00    	je     0x40c366
40c01f:	2b f3                	sub    %ebx,%esi
40c021:	d1 fe                	sar    $1,%esi
40c023:	46                   	inc    %esi
40c024:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
40c027:	e8 a4 1c 00 00       	call   0x40dcd0
40c02c:	8b f8                	mov    %eax,%edi
40c02e:	89 7d dc             	mov    %edi,-0x24(%ebp)
40c031:	85 ff                	test   %edi,%edi
40c033:	0f 84 7d 0f 01 00    	je     0x41cfb6
40c039:	8d 46 ff             	lea    -0x1(%esi),%eax
40c03c:	85 f6                	test   %esi,%esi
40c03e:	74 61                	je     0x40c0a1
40c040:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40c046:	0f 87 8d 0f 01 00    	ja     0x41cfd9
40c04c:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
40c051:	0f 87 8a 0f 01 00    	ja     0x41cfe1
40c057:	8b cb                	mov    %ebx,%ecx
40c059:	8b d7                	mov    %edi,%edx
40c05b:	33 db                	xor    %ebx,%ebx
40c05d:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40c060:	89 55 c4             	mov    %edx,-0x3c(%ebp)
40c063:	89 75 a4             	mov    %esi,-0x5c(%ebp)
40c066:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40c069:	89 45 a0             	mov    %eax,-0x60(%ebp)
40c06c:	85 f6                	test   %esi,%esi
40c06e:	0f 84 56 0f 01 00    	je     0x41cfca
40c074:	85 c0                	test   %eax,%eax
40c076:	74 16                	je     0x40c08e
40c078:	0f b7 39             	movzwl (%ecx),%edi
40c07b:	66 85 ff             	test   %di,%di
40c07e:	74 0e                	je     0x40c08e
40c080:	66 89 3a             	mov    %di,(%edx)
40c083:	83 c2 02             	add    $0x2,%edx
40c086:	83 c1 02             	add    $0x2,%ecx
40c089:	4e                   	dec    %esi
40c08a:	48                   	dec    %eax
40c08b:	43                   	inc    %ebx
40c08c:	eb cf                	jmp    0x40c05d
40c08e:	85 f6                	test   %esi,%esi
40c090:	0f 84 34 0f 01 00    	je     0x41cfca
40c096:	33 c0                	xor    %eax,%eax
40c098:	66 89 02             	mov    %ax,(%edx)
40c09b:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40c09e:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c0a1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c0a4:	66 8b 30             	mov    (%eax),%si
40c0a7:	83 c0 02             	add    $0x2,%eax
40c0aa:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c0ad:	8b cf                	mov    %edi,%ecx
40c0af:	e8 7a 2b 00 00       	call   0x40ec2e
40c0b4:	8b f8                	mov    %eax,%edi
40c0b6:	89 7d d8             	mov    %edi,-0x28(%ebp)
40c0b9:	66 83 fe 3a          	cmp    $0x3a,%si
40c0bd:	74 36                	je     0x40c0f5
40c0bf:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40c0c2:	2b cb                	sub    %ebx,%ecx
40c0c4:	d1 f9                	sar    $1,%ecx
40c0c6:	8b 45 08             	mov    0x8(%ebp),%eax
40c0c9:	89 08                	mov    %ecx,(%eax)
40c0cb:	8b f7                	mov    %edi,%esi
40c0cd:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c0d0:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c0d3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c0da:	e8 15 03 00 00       	call   0x40c3f4
40c0df:	8b c6                	mov    %esi,%eax
40c0e1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c0e4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c0eb:	59                   	pop    %ecx
40c0ec:	5f                   	pop    %edi
40c0ed:	5e                   	pop    %esi
40c0ee:	5b                   	pop    %ebx
40c0ef:	8b e5                	mov    %ebp,%esp
40c0f1:	5d                   	pop    %ebp
40c0f2:	c2 08 00             	ret    $0x8
40c0f5:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40c0fc:	74 c1                	je     0x40c0bf
40c0fe:	85 ff                	test   %edi,%edi
40c100:	74 bd                	je     0x40c0bf
40c102:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c105:	0f b7 08             	movzwl (%eax),%ecx
40c108:	83 f9 7e             	cmp    $0x7e,%ecx
40c10b:	0f 84 de 00 00 00    	je     0x40c1ef
40c111:	83 f9 2a             	cmp    $0x2a,%ecx
40c114:	0f 84 ee 0e 01 00    	je     0x41d008
40c11a:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
40c121:	8b f0                	mov    %eax,%esi
40c123:	89 75 9c             	mov    %esi,-0x64(%ebp)
40c126:	8b d6                	mov    %esi,%edx
40c128:	0f b7 08             	movzwl (%eax),%ecx
40c12b:	66 85 c9             	test   %cx,%cx
40c12e:	74 0f                	je     0x40c13f
40c130:	83 f9 3d             	cmp    $0x3d,%ecx
40c133:	74 0a                	je     0x40c13f
40c135:	8d 42 02             	lea    0x2(%edx),%eax
40c138:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c13b:	8b d0                	mov    %eax,%edx
40c13d:	eb e9                	jmp    0x40c128
40c13f:	66 83 38 00          	cmpw   $0x0,(%eax)
40c143:	0f 84 d1 0e 01 00    	je     0x41d01a
40c149:	8b da                	mov    %edx,%ebx
40c14b:	2b de                	sub    %esi,%ebx
40c14d:	d1 fb                	sar    $1,%ebx
40c14f:	0f 84 cd 0e 01 00    	je     0x41d022
40c155:	8d 42 02             	lea    0x2(%edx),%eax
40c158:	8b f0                	mov    %eax,%esi
40c15a:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40c15d:	8b d0                	mov    %eax,%edx
40c15f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c162:	0f b7 08             	movzwl (%eax),%ecx
40c165:	66 85 c9             	test   %cx,%cx
40c168:	74 0b                	je     0x40c175
40c16a:	66 3b 4d 0c          	cmp    0xc(%ebp),%cx
40c16e:	74 05                	je     0x40c175
40c170:	8d 42 02             	lea    0x2(%edx),%eax
40c173:	eb e8                	jmp    0x40c15d
40c175:	66 83 38 00          	cmpw   $0x0,(%eax)
40c179:	8b 45 08             	mov    0x8(%ebp),%eax
40c17c:	0f 84 7b 0e 01 00    	je     0x41cffd
40c182:	8d 4a 02             	lea    0x2(%edx),%ecx
40c185:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40c188:	2b d6                	sub    %esi,%edx
40c18a:	d1 fa                	sar    $1,%edx
40c18c:	89 55 cc             	mov    %edx,-0x34(%ebp)
40c18f:	2b 4d d0             	sub    -0x30(%ebp),%ecx
40c192:	d1 f9                	sar    $1,%ecx
40c194:	89 08                	mov    %ecx,(%eax)
40c196:	66 83 3f 00          	cmpw   $0x0,(%edi)
40c19a:	74 46                	je     0x40c1e2
40c19c:	57                   	push   %edi
40c19d:	ba 00 20 00 00       	mov    $0x2000,%edx
40c1a2:	8b 75 c8             	mov    -0x38(%ebp),%esi
40c1a5:	8b ce                	mov    %esi,%ecx
40c1a7:	e8 f4 31 00 00       	call   0x40f3a0
40c1ac:	89 75 ac             	mov    %esi,-0x54(%ebp)
40c1af:	89 7d b0             	mov    %edi,-0x50(%ebp)
40c1b2:	53                   	push   %ebx
40c1b3:	ff 75 9c             	push   -0x64(%ebp)
40c1b6:	56                   	push   %esi
40c1b7:	ff 15 28 a4 44 00    	call   *0x44a428
40c1bd:	83 c4 0c             	add    $0xc,%esp
40c1c0:	85 c0                	test   %eax,%eax
40c1c2:	0f 84 54 01 00 00    	je     0x40c31c
40c1c8:	0f b7 06             	movzwl (%esi),%eax
40c1cb:	66 89 07             	mov    %ax,(%edi)
40c1ce:	83 c7 02             	add    $0x2,%edi
40c1d1:	89 7d b0             	mov    %edi,-0x50(%ebp)
40c1d4:	83 c6 02             	add    $0x2,%esi
40c1d7:	89 75 ac             	mov    %esi,-0x54(%ebp)
40c1da:	66 85 c0             	test   %ax,%ax
40c1dd:	75 d3                	jne    0x40c1b2
40c1df:	8b 7d d8             	mov    -0x28(%ebp),%edi
40c1e2:	8b f7                	mov    %edi,%esi
40c1e4:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c1e7:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c1ea:	e9 e4 fe ff ff       	jmp    0x40c0d3
40c1ef:	83 c0 02             	add    $0x2,%eax
40c1f2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c1f5:	6a 00                	push   $0x0
40c1f7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c1fa:	51                   	push   %ecx
40c1fb:	50                   	push   %eax
40c1fc:	ff 15 38 a4 44 00    	call   *0x44a438
40c202:	83 c4 0c             	add    $0xc,%esp
40c205:	8b f8                	mov    %eax,%edi
40c207:	89 7d bc             	mov    %edi,-0x44(%ebp)
40c20a:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40c20d:	85 ff                	test   %edi,%edi
40c20f:	79 19                	jns    0x40c22a
40c211:	8b cb                	mov    %ebx,%ecx
40c213:	8d 51 02             	lea    0x2(%ecx),%edx
40c216:	66 8b 01             	mov    (%ecx),%ax
40c219:	83 c1 02             	add    $0x2,%ecx
40c21c:	66 85 c0             	test   %ax,%ax
40c21f:	75 f5                	jne    0x40c216
40c221:	2b ca                	sub    %edx,%ecx
40c223:	d1 f9                	sar    $1,%ecx
40c225:	03 f9                	add    %ecx,%edi
40c227:	89 7d bc             	mov    %edi,-0x44(%ebp)
40c22a:	8b cb                	mov    %ebx,%ecx
40c22c:	8d 51 02             	lea    0x2(%ecx),%edx
40c22f:	90                   	nop
40c230:	66 8b 01             	mov    (%ecx),%ax
40c233:	83 c1 02             	add    $0x2,%ecx
40c236:	66 85 c0             	test   %ax,%ax
40c239:	75 f5                	jne    0x40c230
40c23b:	2b ca                	sub    %edx,%ecx
40c23d:	d1 f9                	sar    $1,%ecx
40c23f:	3b f9                	cmp    %ecx,%edi
40c241:	0f 8d 76 01 00 00    	jge    0x40c3bd
40c247:	8b cf                	mov    %edi,%ecx
40c249:	85 c9                	test   %ecx,%ecx
40c24b:	0f 88 9a 0d 01 00    	js     0x41cfeb
40c251:	8b cb                	mov    %ebx,%ecx
40c253:	8d 51 02             	lea    0x2(%ecx),%edx
40c256:	66 8b 01             	mov    (%ecx),%ax
40c259:	83 c1 02             	add    $0x2,%ecx
40c25c:	66 85 c0             	test   %ax,%ax
40c25f:	75 f5                	jne    0x40c256
40c261:	2b ca                	sub    %edx,%ecx
40c263:	d1 f9                	sar    $1,%ecx
40c265:	3b f9                	cmp    %ecx,%edi
40c267:	0f 8d 69 01 00 00    	jge    0x40c3d6
40c26d:	89 7d bc             	mov    %edi,-0x44(%ebp)
40c270:	8b 45 e4             	mov    -0x1c(%ebp),%eax