40d9c5:	83 c1 02             	add    $0x2,%ecx
40d9c8:	66 85 c0             	test   %ax,%ax
40d9cb:	75 f5                	jne    0x40d9c2
40d9cd:	2b ca                	sub    %edx,%ecx
40d9cf:	d1 f9                	sar    $1,%ecx
40d9d1:	8d 04 4e             	lea    (%esi,%ecx,2),%eax
40d9d4:	a3 d4 65 43 00       	mov    %eax,0x4365d4
40d9d9:	eb 96                	jmp    0x40d971
40d9db:	85 c9                	test   %ecx,%ecx
40d9dd:	0f 84 21 ff ff ff    	je     0x40d904
40d9e3:	81 ff 00 20 00 00    	cmp    $0x2000,%edi
40d9e9:	72 86                	jb     0x40d971
40d9eb:	e9 91 fe 00 00       	jmp    0x41d881
40d9f0:	33 c0                	xor    %eax,%eax
40d9f2:	e9 18 fe ff ff       	jmp    0x40d80f
40d9f7:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40d9fe:	ff 15 80 a0 44 00    	call   *0x44a080
40da04:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40da07:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40da0a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40da0d:	e9 21 fe ff ff       	jmp    0x40d833
40da12:	85 c0                	test   %eax,%eax
40da14:	0f 85 26 fe ff ff    	jne    0x40d840
40da1a:	e9 00 fe 00 00       	jmp    0x41d81f
40da1f:	b8 02 00 00 00       	mov    $0x2,%eax
40da24:	33 ff                	xor    %edi,%edi
40da26:	e9 07 ff ff ff       	jmp    0x40d932
40da2b:	cc                   	int3
40da2c:	cc                   	int3
40da2d:	cc                   	int3
40da2e:	cc                   	int3
40da2f:	cc                   	int3
40da30:	8b ff                	mov    %edi,%edi
40da32:	55                   	push   %ebp
40da33:	8b ec                	mov    %esp,%ebp
40da35:	83 ec 14             	sub    $0x14,%esp
40da38:	53                   	push   %ebx
40da39:	56                   	push   %esi
40da3a:	57                   	push   %edi
40da3b:	b9 02 40 00 00       	mov    $0x4002,%ecx
40da40:	e8 8b 02 00 00       	call   0x40dcd0
40da45:	89 45 fc             	mov    %eax,-0x4(%ebp)
40da48:	8b f8                	mov    %eax,%edi
40da4a:	85 c0                	test   %eax,%eax
40da4c:	0f 84 f6 fe 00 00    	je     0x41d948
40da52:	8b 35 cc 65 43 00    	mov    0x4365cc,%esi
40da58:	ba 01 20 00 00       	mov    $0x2001,%edx
40da5d:	8b de                	mov    %esi,%ebx
40da5f:	8b c8                	mov    %eax,%ecx
40da61:	2b d8                	sub    %eax,%ebx
40da63:	8d 82 fd df ff 7f    	lea    0x7fffdffd(%edx),%eax
40da69:	85 c0                	test   %eax,%eax
40da6b:	74 19                	je     0x40da86
40da6d:	0f b7 04 0b          	movzwl (%ebx,%ecx,1),%eax
40da71:	66 85 c0             	test   %ax,%ax
40da74:	74 10                	je     0x40da86
40da76:	66 89 01             	mov    %ax,(%ecx)
40da79:	83 c1 02             	add    $0x2,%ecx
40da7c:	83 ea 01             	sub    $0x1,%edx
40da7f:	75 e2                	jne    0x40da63
40da81:	e9 ed fe 00 00       	jmp    0x41d973
40da86:	85 d2                	test   %edx,%edx
40da88:	0f 84 e5 fe 00 00    	je     0x41d973
40da8e:	33 c0                	xor    %eax,%eax
40da90:	33 db                	xor    %ebx,%ebx
40da92:	66 89 01             	mov    %ax,(%ecx)
40da95:	8b cf                	mov    %edi,%ecx
40da97:	89 45 f8             	mov    %eax,-0x8(%ebp)
40da9a:	0f b7 01             	movzwl (%ecx),%eax
40da9d:	66 85 c0             	test   %ax,%ax
40daa0:	74 34                	je     0x40dad6
40daa2:	8b cf                	mov    %edi,%ecx
40daa4:	83 c7 02             	add    $0x2,%edi
40daa7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40daaa:	81 fb 01 20 00 00    	cmp    $0x2001,%ebx
40dab0:	7f 21                	jg     0x40dad3
40dab2:	66 83 f8 25          	cmp    $0x25,%ax
40dab6:	74 45                	je     0x40dafd
40dab8:	66 89 06             	mov    %ax,(%esi)
40dabb:	43                   	inc    %ebx
40dabc:	83 c6 02             	add    $0x2,%esi
40dabf:	89 35 cc 65 43 00    	mov    %esi,0x4365cc
40dac5:	66 83 f8 0a          	cmp    $0xa,%ax
40dac9:	74 08                	je     0x40dad3
40dacb:	0f b7 07             	movzwl (%edi),%eax
40dace:	66 85 c0             	test   %ax,%ax
40dad1:	75 cf                	jne    0x40daa2
40dad3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dad6:	33 c0                	xor    %eax,%eax
40dad8:	c7 05 cc 65 43 00 c2 	movl   $0x4325c2,0x4365cc
40dadf:	25 43 00
40dae2:	66 89 06             	mov    %ax,(%esi)
40dae5:	81 fb 01 20 00 00    	cmp    $0x2001,%ebx
40daeb:	0f 8f bc fe 00 00    	jg     0x41d9ad
40daf1:	e8 6a 01 00 00       	call   0x40dc60
40daf6:	5f                   	pop    %edi
40daf7:	5e                   	pop    %esi
40daf8:	5b                   	pop    %ebx
40daf9:	8b e5                	mov    %ebp,%esp
40dafb:	5d                   	pop    %ebp
40dafc:	c3                   	ret
40dafd:	8b 15 48 67 43 00    	mov    0x436748,%edx
40db03:	85 d2                	test   %edx,%edx
40db05:	74 34                	je     0x40db3b
40db07:	0f b7 07             	movzwl (%edi),%eax
40db0a:	83 f8 25             	cmp    $0x25,%eax
40db0d:	0f 84 1b 01 00 00    	je     0x40dc2e
40db13:	83 f8 2a             	cmp    $0x2a,%eax
40db16:	0f 84 97 00 00 00    	je     0x40dbb3
40db1c:	8d 42 3c             	lea    0x3c(%edx),%eax
40db1f:	b9 70 0a 44 00       	mov    $0x440a70,%ecx
40db24:	50                   	push   %eax
40db25:	68 7c 23 40 00       	push   $0x40237c
40db2a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40db2d:	8b d7                	mov    %edi,%edx
40db2f:	50                   	push   %eax
40db30:	e8 ce 12 00 00       	call   0x40ee03
40db35:	8b c8                	mov    %eax,%ecx
40db37:	85 c9                	test   %ecx,%ecx
40db39:	75 1c                	jne    0x40db57
40db3b:	6a 25                	push   $0x25
40db3d:	8d 45 f8             	lea    -0x8(%ebp),%eax
40db40:	8b d7                	mov    %edi,%edx
40db42:	50                   	push   %eax
40db43:	b9 70 0a 44 00       	mov    $0x440a70,%ecx
40db48:	e8 23 e4 ff ff       	call   0x40bf70
40db4d:	8b c8                	mov    %eax,%ecx
40db4f:	85 c9                	test   %ecx,%ecx
40db51:	0f 84 eb 00 00 00    	je     0x40dc42
40db57:	8b f9                	mov    %ecx,%edi
40db59:	8d 57 02             	lea    0x2(%edi),%edx
40db5c:	8d 64 24 00          	lea    0x0(%esp),%esp
40db60:	66 8b 07             	mov    (%edi),%ax
40db63:	83 c7 02             	add    $0x2,%edi
40db66:	66 85 c0             	test   %ax,%ax
40db69:	75 f5                	jne    0x40db60
40db6b:	2b fa                	sub    %edx,%edi
40db6d:	d1 ff                	sar    $1,%edi
40db6f:	03 df                	add    %edi,%ebx
40db71:	81 fb 01 20 00 00    	cmp    $0x2001,%ebx
40db77:	0f 8f 38 fe 00 00    	jg     0x41d9b5
40db7d:	8b 35 cc 65 43 00    	mov    0x4365cc,%esi
40db83:	ba 03 20 00 00       	mov    $0x2003,%edx
40db88:	8b c6                	mov    %esi,%eax
40db8a:	2d c0 25 43 00       	sub    $0x4325c0,%eax
40db8f:	d1 f8                	sar    $1,%eax
40db91:	51                   	push   %ecx
40db92:	2b d0                	sub    %eax,%edx
40db94:	8b ce                	mov    %esi,%ecx
40db96:	e8 05 18 00 00       	call   0x40f3a0
40db9b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40db9e:	8d 34 7e             	lea    (%esi,%edi,2),%esi
40dba1:	8b 7d f8             	mov    -0x8(%ebp),%edi
40dba4:	47                   	inc    %edi
40dba5:	8d 3c 79             	lea    (%ecx,%edi,2),%edi
40dba8:	89 35 cc 65 43 00    	mov    %esi,0x4365cc
40dbae:	e9 18 ff ff ff       	jmp    0x40dacb
40dbb3:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40dbba:	0f 84 5c ff ff ff    	je     0x40db1c
40dbc0:	8b 52 34             	mov    0x34(%edx),%edx
40dbc3:	8d 79 04             	lea    0x4(%ecx),%edi
40dbc6:	85 d2                	test   %edx,%edx
40dbc8:	0f 84 fd fe ff ff    	je     0x40dacb
40dbce:	8b ca                	mov    %edx,%ecx
40dbd0:	8d 41 02             	lea    0x2(%ecx),%eax
40dbd3:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dbd6:	66 8b 01             	mov    (%ecx),%ax
40dbd9:	83 c1 02             	add    $0x2,%ecx
40dbdc:	66 85 c0             	test   %ax,%ax
40dbdf:	75 f5                	jne    0x40dbd6
40dbe1:	2b 4d f4             	sub    -0xc(%ebp),%ecx
40dbe4:	d1 f9                	sar    $1,%ecx
40dbe6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40dbe9:	85 c9                	test   %ecx,%ecx
40dbeb:	0f 8e da fe ff ff    	jle    0x40dacb
40dbf1:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40dbf4:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dbf7:	3d 00 20 00 00       	cmp    $0x2000,%eax
40dbfc:	0f 8f 79 fd 00 00    	jg     0x41d97b
40dc02:	8b c6                	mov    %esi,%eax
40dc04:	8b ce                	mov    %esi,%ecx
40dc06:	52                   	push   %edx
40dc07:	2d c0 25 43 00       	sub    $0x4325c0,%eax
40dc0c:	ba 03 20 00 00       	mov    $0x2003,%edx
40dc11:	d1 f8                	sar    $1,%eax
40dc13:	2b d0                	sub    %eax,%edx
40dc15:	e8 86 17 00 00       	call   0x40f3a0
40dc1a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40dc1d:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40dc20:	8d 34 46             	lea    (%esi,%eax,2),%esi
40dc23:	89 35 cc 65 43 00    	mov    %esi,0x4365cc
40dc29:	e9 9d fe ff ff       	jmp    0x40dacb
40dc2e:	8d 79 04             	lea    0x4(%ecx),%edi
40dc31:	b8 25 00 00 00       	mov    $0x25,%eax
40dc36:	66 89 06             	mov    %ax,(%esi)
40dc39:	83 c6 02             	add    $0x2,%esi
40dc3c:	43                   	inc    %ebx
40dc3d:	e9 66 ff ff ff       	jmp    0x40dba8
40dc42:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40dc49:	8b 35 cc 65 43 00    	mov    0x4365cc,%esi
40dc4f:	74 e0                	je     0x40dc31
40dc51:	8b 7d f8             	mov    -0x8(%ebp),%edi
40dc54:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40dc57:	47                   	inc    %edi
40dc58:	8d 3c 79             	lea    (%ecx,%edi,2),%edi
40dc5b:	e9 6b fe ff ff       	jmp    0x40dacb
40dc60:	8b ff                	mov    %edi,%edi
40dc62:	53                   	push   %ebx
40dc63:	33 db                	xor    %ebx,%ebx
40dc65:	85 c9                	test   %ecx,%ecx
40dc67:	74 44                	je     0x40dcad
40dc69:	56                   	push   %esi
40dc6a:	8b 35 84 67 43 00    	mov    0x436784,%esi
40dc70:	85 f6                	test   %esi,%esi
40dc72:	74 38                	je     0x40dcac
40dc74:	57                   	push   %edi
40dc75:	8b 3d 78 67 43 00    	mov    0x436778,%edi
40dc7b:	8d 51 f8             	lea    -0x8(%ecx),%edx
40dc7e:	8b c6                	mov    %esi,%eax
40dc80:	85 ff                	test   %edi,%edi
40dc82:	74 27                	je     0x40dcab
40dc84:	8b 48 04             	mov    0x4(%eax),%ecx
40dc87:	3b c2                	cmp    %edx,%eax
40dc89:	75 24                	jne    0x40dcaf
40dc8b:	3b c6                	cmp    %esi,%eax
40dc8d:	75 2d                	jne    0x40dcbc
40dc8f:	89 0d 84 67 43 00    	mov    %ecx,0x436784
40dc95:	50                   	push   %eax
40dc96:	6a 00                	push   $0x0
40dc98:	ff 15 34 a1 44 00    	call   *0x44a134
40dc9e:	50                   	push   %eax
40dc9f:	ff 15 3c a1 44 00    	call   *0x44a13c
40dca5:	ff 0d 78 67 43 00    	decl   0x436778
40dcab:	5f                   	pop    %edi
40dcac:	5e                   	pop    %esi
40dcad:	5b                   	pop    %ebx
40dcae:	c3                   	ret
40dcaf:	8b d8                	mov    %eax,%ebx
40dcb1:	8b c1                	mov    %ecx,%eax
40dcb3:	83 ef 01             	sub    $0x1,%edi
40dcb6:	75 cc                	jne    0x40dc84
40dcb8:	5f                   	pop    %edi
40dcb9:	5e                   	pop    %esi
40dcba:	5b                   	pop    %ebx
40dcbb:	c3                   	ret
40dcbc:	89 4b 04             	mov    %ecx,0x4(%ebx)
40dcbf:	eb d4                	jmp    0x40dc95
40dcc1:	cc                   	int3
40dcc2:	cc                   	int3
40dcc3:	cc                   	int3
40dcc4:	cc                   	int3
40dcc5:	cc                   	int3
40dcc6:	cc                   	int3
40dcc7:	cc                   	int3
40dcc8:	cc                   	int3
40dcc9:	cc                   	int3
40dcca:	cc                   	int3
40dccb:	cc                   	int3
40dccc:	cc                   	int3
40dccd:	cc                   	int3
40dcce:	cc                   	int3
40dccf:	cc                   	int3
40dcd0:	8b ff                	mov    %edi,%edi
40dcd2:	56                   	push   %esi
40dcd3:	8d 71 08             	lea    0x8(%ecx),%esi
40dcd6:	3b f1                	cmp    %ecx,%esi
40dcd8:	0f 82 fc fc 00 00    	jb     0x41d9da
40dcde:	56                   	push   %esi
40dcdf:	6a 08                	push   $0x8
40dce1:	ff 15 34 a1 44 00    	call   *0x44a134
40dce7:	50                   	push   %eax
40dce8:	ff 15 28 a1 44 00    	call   *0x44a128
40dcee:	85 c0                	test   %eax,%eax
40dcf0:	0f 84 e4 fc 00 00    	je     0x41d9da
40dcf6:	8b 0d 84 67 43 00    	mov    0x436784,%ecx
40dcfc:	ff 05 78 67 43 00    	incl   0x436778
40dd02:	89 30                	mov    %esi,(%eax)
40dd04:	89 48 04             	mov    %ecx,0x4(%eax)
40dd07:	a3 84 67 43 00       	mov    %eax,0x436784
40dd0c:	83 c0 08             	add    $0x8,%eax
40dd0f:	5e                   	pop    %esi
40dd10:	c3                   	ret
40dd11:	cc                   	int3
40dd12:	cc                   	int3
40dd13:	cc                   	int3
40dd14:	cc                   	int3
40dd15:	cc                   	int3
40dd16:	cc                   	int3
40dd17:	cc                   	int3
40dd18:	cc                   	int3
40dd19:	cc                   	int3
40dd1a:	cc                   	int3
40dd1b:	cc                   	int3
40dd1c:	cc                   	int3
40dd1d:	cc                   	int3
40dd1e:	cc                   	int3
40dd1f:	cc                   	int3
40dd20:	8b ff                	mov    %edi,%edi
40dd22:	53                   	push   %ebx
40dd23:	56                   	push   %esi
40dd24:	8d 5a 08             	lea    0x8(%edx),%ebx
40dd27:	8d 71 f8             	lea    -0x8(%ecx),%esi
40dd2a:	57                   	push   %edi
40dd2b:	3b da                	cmp    %edx,%ebx
40dd2d:	0f 82 b7 fc 00 00    	jb     0x41d9ea
40dd33:	53                   	push   %ebx
40dd34:	56                   	push   %esi
40dd35:	6a 00                	push   $0x0
40dd37:	ff 15 34 a1 44 00    	call   *0x44a134
40dd3d:	50                   	push   %eax
40dd3e:	ff 15 30 a1 44 00    	call   *0x44a130
40dd44:	8b f8                	mov    %eax,%edi
40dd46:	85 ff                	test   %edi,%edi
40dd48:	0f 84 9c fc 00 00    	je     0x41d9ea
40dd4e:	57                   	push   %edi
40dd4f:	6a 00                	push   $0x0
40dd51:	89 1f                	mov    %ebx,(%edi)
40dd53:	ff 15 34 a1 44 00    	call   *0x44a134
40dd59:	50                   	push   %eax
40dd5a:	ff 15 38 a1 44 00    	call   *0x44a138
40dd60:	3b fe                	cmp    %esi,%edi
40dd62:	75 07                	jne    0x40dd6b
40dd64:	8d 47 08             	lea    0x8(%edi),%eax
40dd67:	5f                   	pop    %edi
40dd68:	5e                   	pop    %esi
40dd69:	5b                   	pop    %ebx
40dd6a:	c3                   	ret
40dd6b:	a1 84 67 43 00       	mov    0x436784,%eax
40dd70:	3b c6                	cmp    %esi,%eax
40dd72:	75 0d                	jne    0x40dd81
40dd74:	89 3d 84 67 43 00    	mov    %edi,0x436784
40dd7a:	8d 47 08             	lea    0x8(%edi),%eax
40dd7d:	5f                   	pop    %edi
40dd7e:	5e                   	pop    %esi
40dd7f:	5b                   	pop    %ebx
40dd80:	c3                   	ret
40dd81:	85 c0                	test   %eax,%eax
40dd83:	74 df                	je     0x40dd64
40dd85:	8d 48 04             	lea    0x4(%eax),%ecx
40dd88:	8b 01                	mov    (%ecx),%eax
40dd8a:	3b c6                	cmp    %esi,%eax
40dd8c:	74 06                	je     0x40dd94
40dd8e:	85 c0                	test   %eax,%eax
40dd90:	75 f3                	jne    0x40dd85
40dd92:	eb d0                	jmp    0x40dd64
40dd94:	89 39                	mov    %edi,(%ecx)
40dd96:	eb cc                	jmp    0x40dd64
40dd98:	8b ff                	mov    %edi,%edi
40dd9a:	55                   	push   %ebp
40dd9b:	8b ec                	mov    %esp,%ebp