40d958:	8d 45 0c             	lea    0xc(%ebp),%eax
40d95b:	50                   	push   %eax
40d95c:	68 e0 09 45 00       	push   $0x4509e0
40d961:	ff 75 fc             	push   -0x4(%ebp)
40d964:	e8 72 5a 03 00       	call   0x4433db
40d969:	8b f0                	mov    %eax,%esi
40d96b:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40d971:	75 09                	jne    0x40d97c
40d973:	33 c9                	xor    %ecx,%ecx
40d975:	33 f6                	xor    %esi,%esi
40d977:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40d97a:	eb 03                	jmp    0x40d97f
40d97c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d97f:	85 f6                	test   %esi,%esi
40d981:	78 2b                	js     0x40d9ae
40d983:	33 c0                	xor    %eax,%eax
40d985:	85 c9                	test   %ecx,%ecx
40d987:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d98a:	0f 94 c0             	sete   %al
40d98d:	40                   	inc    %eax
40d98e:	89 41 04             	mov    %eax,0x4(%ecx)
40d991:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d994:	85 c9                	test   %ecx,%ecx
40d996:	74 0a                	je     0x40d9a2
40d998:	8b 01                	mov    (%ecx),%eax
40d99a:	51                   	push   %ecx
40d99b:	ff 50 08             	call   *0x8(%eax)
40d99e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d9a2:	47                   	inc    %edi
40d9a3:	3b 7d f8             	cmp    -0x8(%ebp),%edi
40d9a6:	0f 82 79 ff ff ff    	jb     0x40d925
40d9ac:	eb 1b                	jmp    0x40d9c9
40d9ae:	68 f0 09 45 00       	push   $0x4509f0
40d9b3:	eb 0c                	jmp    0x40d9c1
40d9b5:	68 b8 09 45 00       	push   $0x4509b8
40d9ba:	eb 05                	jmp    0x40d9c1
40d9bc:	68 48 ca 44 00       	push   $0x44ca48
40d9c1:	56                   	push   %esi
40d9c2:	e8 68 27 03 00       	call   0x44012f
40d9c7:	59                   	pop    %ecx
40d9c8:	59                   	pop    %ecx
40d9c9:	5b                   	pop    %ebx
40d9ca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d9cd:	85 c9                	test   %ecx,%ecx
40d9cf:	74 06                	je     0x40d9d7
40d9d1:	8b 01                	mov    (%ecx),%eax
40d9d3:	51                   	push   %ecx
40d9d4:	ff 50 08             	call   *0x8(%eax)
40d9d7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d9da:	85 c9                	test   %ecx,%ecx
40d9dc:	74 06                	je     0x40d9e4
40d9de:	8b 01                	mov    (%ecx),%eax
40d9e0:	51                   	push   %ecx
40d9e1:	ff 50 08             	call   *0x8(%eax)
40d9e4:	5f                   	pop    %edi
40d9e5:	8b c6                	mov    %esi,%eax
40d9e7:	5e                   	pop    %esi
40d9e8:	8b e5                	mov    %ebp,%esp
40d9ea:	5d                   	pop    %ebp
40d9eb:	c2 08 00             	ret    $0x8
40d9ee:	55                   	push   %ebp
40d9ef:	8b ec                	mov    %esp,%ebp
40d9f1:	83 ec 10             	sub    $0x10,%esp
40d9f4:	56                   	push   %esi
40d9f5:	57                   	push   %edi
40d9f6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d9f9:	33 ff                	xor    %edi,%edi
40d9fb:	50                   	push   %eax
40d9fc:	68 7c 08 45 00       	push   $0x45087c
40da01:	ff 75 10             	push   0x10(%ebp)
40da04:	89 7d f4             	mov    %edi,-0xc(%ebp)
40da07:	89 7d fc             	mov    %edi,-0x4(%ebp)
40da0a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40da0d:	89 7d f0             	mov    %edi,-0x10(%ebp)
40da10:	e8 ee 5d 03 00       	call   0x443803
40da15:	8b f0                	mov    %eax,%esi
40da17:	85 f6                	test   %esi,%esi
40da19:	79 12                	jns    0x40da2d
40da1b:	68 90 02 45 00       	push   $0x450290
40da20:	56                   	push   %esi
40da21:	e8 09 27 03 00       	call   0x44012f
40da26:	59                   	pop    %ecx
40da27:	59                   	pop    %ecx
40da28:	e9 d0 00 00 00       	jmp    0x40dafd
40da2d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40da30:	8d 55 f8             	lea    -0x8(%ebp),%edx
40da33:	52                   	push   %edx
40da34:	50                   	push   %eax
40da35:	8b 08                	mov    (%eax),%ecx
40da37:	ff 51 20             	call   *0x20(%ecx)
40da3a:	8b f0                	mov    %eax,%esi
40da3c:	85 f6                	test   %esi,%esi
40da3e:	79 07                	jns    0x40da47
40da40:	68 b0 02 45 00       	push   $0x4502b0
40da45:	eb d9                	jmp    0x40da20
40da47:	8b 45 f8             	mov    -0x8(%ebp),%eax
40da4a:	85 c0                	test   %eax,%eax
40da4c:	75 07                	jne    0x40da55
40da4e:	8b f7                	mov    %edi,%esi
40da50:	e9 a8 00 00 00       	jmp    0x40dafd
40da55:	53                   	push   %ebx
40da56:	6a 01                	push   $0x1
40da58:	c1 e0 03             	shl    $0x3,%eax
40da5b:	50                   	push   %eax
40da5c:	e8 73 5e ff ff       	call   0x4038d4
40da61:	8b 5d 08             	mov    0x8(%ebp),%ebx
40da64:	89 43 7c             	mov    %eax,0x7c(%ebx)
40da67:	85 c0                	test   %eax,%eax
40da69:	75 1f                	jne    0x40da8a
40da6b:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40da70:	56                   	push   %esi
40da71:	68 2b 02 00 00       	push   $0x22b
40da76:	68 98 01 45 00       	push   $0x450198
40da7b:	e8 53 5d ff ff       	call   0x4037d3
40da80:	68 94 08 45 00       	push   $0x450894
40da85:	e9 b8 00 00 00       	jmp    0x40db42
40da8a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40da8d:	89 83 80 00 00 00    	mov    %eax,0x80(%ebx)
40da93:	85 c0                	test   %eax,%eax
40da95:	74 63                	je     0x40dafa
40da97:	8b 43 7c             	mov    0x7c(%ebx),%eax
40da9a:	6a 00                	push   $0x0
40da9c:	8d 04 f8             	lea    (%eax,%edi,8),%eax
40da9f:	89 45 10             	mov    %eax,0x10(%ebp)
40daa2:	8d 45 fc             	lea    -0x4(%ebp),%eax
40daa5:	50                   	push   %eax
40daa6:	ff 75 f4             	push   -0xc(%ebp)
40daa9:	e8 b2 5c 03 00       	call   0x443760
40daae:	8b f0                	mov    %eax,%esi
40dab0:	85 f6                	test   %esi,%esi
40dab2:	0f 88 85 00 00 00    	js     0x40db3d
40dab8:	8d 45 f0             	lea    -0x10(%ebp),%eax
40dabb:	50                   	push   %eax
40dabc:	68 64 ca 44 00       	push   $0x44ca64
40dac1:	ff 75 fc             	push   -0x4(%ebp)
40dac4:	e8 fe 56 03 00       	call   0x4431c7
40dac9:	8b f0                	mov    %eax,%esi
40dacb:	85 f6                	test   %esi,%esi
40dacd:	78 67                	js     0x40db36
40dacf:	ff 75 10             	push   0x10(%ebp)
40dad2:	ff 75 f0             	push   -0x10(%ebp)
40dad5:	ff 75 0c             	push   0xc(%ebp)
40dad8:	e8 7a f1 ff ff       	call   0x40cc57
40dadd:	8b f0                	mov    %eax,%esi
40dadf:	85 f6                	test   %esi,%esi
40dae1:	78 4c                	js     0x40db2f
40dae3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dae6:	85 c9                	test   %ecx,%ecx
40dae8:	74 0a                	je     0x40daf4
40daea:	8b 01                	mov    (%ecx),%eax
40daec:	51                   	push   %ecx
40daed:	ff 50 08             	call   *0x8(%eax)
40daf0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40daf4:	47                   	inc    %edi
40daf5:	3b 7d f8             	cmp    -0x8(%ebp),%edi
40daf8:	72 9d                	jb     0x40da97
40dafa:	33 f6                	xor    %esi,%esi
40dafc:	5b                   	pop    %ebx
40dafd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40db00:	85 c9                	test   %ecx,%ecx
40db02:	74 06                	je     0x40db0a
40db04:	8b 01                	mov    (%ecx),%eax
40db06:	51                   	push   %ecx
40db07:	ff 50 08             	call   *0x8(%eax)
40db0a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40db0d:	85 c9                	test   %ecx,%ecx
40db0f:	74 06                	je     0x40db17
40db11:	8b 01                	mov    (%ecx),%eax
40db13:	51                   	push   %ecx
40db14:	ff 50 08             	call   *0x8(%eax)
40db17:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40db1b:	74 08                	je     0x40db25
40db1d:	ff 75 f0             	push   -0x10(%ebp)
40db20:	e8 ca 79 03 00       	call   0x4454ef
40db25:	5f                   	pop    %edi
40db26:	8b c6                	mov    %esi,%eax
40db28:	5e                   	pop    %esi
40db29:	8b e5                	mov    %ebp,%esp
40db2b:	5d                   	pop    %ebp
40db2c:	c2 0c 00             	ret    $0xc
40db2f:	68 e0 08 45 00       	push   $0x4508e0
40db34:	eb 0c                	jmp    0x40db42
40db36:	68 c4 08 45 00       	push   $0x4508c4
40db3b:	eb 05                	jmp    0x40db42
40db3d:	68 48 ca 44 00       	push   $0x44ca48
40db42:	56                   	push   %esi
40db43:	e8 e7 25 03 00       	call   0x44012f
40db48:	59                   	pop    %ecx
40db49:	59                   	pop    %ecx
40db4a:	eb b0                	jmp    0x40dafc
40db4c:	55                   	push   %ebp
40db4d:	8b ec                	mov    %esp,%ebp
40db4f:	56                   	push   %esi
40db50:	57                   	push   %edi
40db51:	8b 7d 08             	mov    0x8(%ebp),%edi
40db54:	33 f6                	xor    %esi,%esi
40db56:	39 77 10             	cmp    %esi,0x10(%edi)
40db59:	75 38                	jne    0x40db93
40db5b:	69 47 0c e0 00 00 00 	imul   $0xe0,0xc(%edi),%eax
40db62:	6a 01                	push   $0x1
40db64:	50                   	push   %eax
40db65:	e8 6a 5d ff ff       	call   0x4038d4
40db6a:	89 47 10             	mov    %eax,0x10(%edi)
40db6d:	85 c0                	test   %eax,%eax
40db6f:	75 22                	jne    0x40db93
40db71:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40db76:	56                   	push   %esi
40db77:	68 06 02 00 00       	push   $0x206
40db7c:	68 98 01 45 00       	push   $0x450198
40db81:	e8 4d 5c ff ff       	call   0x4037d3
40db86:	68 48 08 45 00       	push   $0x450848
40db8b:	56                   	push   %esi
40db8c:	e8 9e 25 03 00       	call   0x44012f
40db91:	59                   	pop    %ecx
40db92:	59                   	pop    %ecx
40db93:	5f                   	pop    %edi
40db94:	8b c6                	mov    %esi,%eax
40db96:	5e                   	pop    %esi
40db97:	5d                   	pop    %ebp
40db98:	c2 04 00             	ret    $0x4
40db9b:	55                   	push   %ebp
40db9c:	8b ec                	mov    %esp,%ebp
40db9e:	51                   	push   %ecx
40db9f:	53                   	push   %ebx
40dba0:	56                   	push   %esi
40dba1:	57                   	push   %edi
40dba2:	8b 7d 08             	mov    0x8(%ebp),%edi
40dba5:	33 f6                	xor    %esi,%esi
40dba7:	89 75 fc             	mov    %esi,-0x4(%ebp)
40dbaa:	39 77 0c             	cmp    %esi,0xc(%edi)
40dbad:	76 39                	jbe    0x40dbe8
40dbaf:	8b ce                	mov    %esi,%ecx
40dbb1:	89 75 08             	mov    %esi,0x8(%ebp)
40dbb4:	8b 5f 08             	mov    0x8(%edi),%ebx
40dbb7:	6a ff                	push   $0xffffffff
40dbb9:	ff 75 0c             	push   0xc(%ebp)
40dbbc:	03 d9                	add    %ecx,%ebx
40dbbe:	6a ff                	push   $0xffffffff
40dbc0:	ff 33                	push   (%ebx)
40dbc2:	56                   	push   %esi
40dbc3:	6a 7f                	push   $0x7f
40dbc5:	ff 15 28 b1 44 00    	call   *0x44b128
40dbcb:	83 f8 02             	cmp    $0x2,%eax
40dbce:	74 69                	je     0x40dc39
40dbd0:	8b 45 fc             	mov    -0x4(%ebp),%eax
40dbd3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dbd6:	40                   	inc    %eax
40dbd7:	81 c1 e0 00 00 00    	add    $0xe0,%ecx
40dbdd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dbe0:	89 4d 08             	mov    %ecx,0x8(%ebp)
40dbe3:	3b 47 0c             	cmp    0xc(%edi),%eax
40dbe6:	72 cc                	jb     0x40dbb4
40dbe8:	89 75 08             	mov    %esi,0x8(%ebp)
40dbeb:	39 77 14             	cmp    %esi,0x14(%edi)
40dbee:	76 39                	jbe    0x40dc29
40dbf0:	8b ce                	mov    %esi,%ecx
40dbf2:	89 75 fc             	mov    %esi,-0x4(%ebp)
40dbf5:	8b 5f 10             	mov    0x10(%edi),%ebx
40dbf8:	6a ff                	push   $0xffffffff
40dbfa:	ff 75 0c             	push   0xc(%ebp)
40dbfd:	03 d9                	add    %ecx,%ebx
40dbff:	6a ff                	push   $0xffffffff
40dc01:	ff 33                	push   (%ebx)
40dc03:	56                   	push   %esi
40dc04:	6a 7f                	push   $0x7f
40dc06:	ff 15 28 b1 44 00    	call   *0x44b128
40dc0c:	83 f8 02             	cmp    $0x2,%eax
40dc0f:	74 28                	je     0x40dc39
40dc11:	8b 45 08             	mov    0x8(%ebp),%eax
40dc14:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dc17:	40                   	inc    %eax
40dc18:	81 c1 e0 00 00 00    	add    $0xe0,%ecx
40dc1e:	89 45 08             	mov    %eax,0x8(%ebp)
40dc21:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40dc24:	3b 47 14             	cmp    0x14(%edi),%eax
40dc27:	72 cc                	jb     0x40dbf5
40dc29:	be 90 04 07 80       	mov    $0x80070490,%esi
40dc2e:	5f                   	pop    %edi
40dc2f:	8b c6                	mov    %esi,%eax
40dc31:	5e                   	pop    %esi
40dc32:	5b                   	pop    %ebx
40dc33:	8b e5                	mov    %ebp,%esp
40dc35:	5d                   	pop    %ebp
40dc36:	c2 0c 00             	ret    $0xc
40dc39:	8b 45 10             	mov    0x10(%ebp),%eax
40dc3c:	89 18                	mov    %ebx,(%eax)
40dc3e:	eb ee                	jmp    0x40dc2e
40dc40:	55                   	push   %ebp
40dc41:	8b ec                	mov    %esp,%ebp
40dc43:	51                   	push   %ecx
40dc44:	53                   	push   %ebx
40dc45:	56                   	push   %esi
40dc46:	57                   	push   %edi
40dc47:	8b 7d 08             	mov    0x8(%ebp),%edi
40dc4a:	33 f6                	xor    %esi,%esi
40dc4c:	8b de                	mov    %esi,%ebx
40dc4e:	39 77 04             	cmp    %esi,0x4(%edi)
40dc51:	76 38                	jbe    0x40dc8b
40dc53:	8b ce                	mov    %esi,%ecx
40dc55:	89 75 08             	mov    %esi,0x8(%ebp)
40dc58:	8b 07                	mov    (%edi),%eax
40dc5a:	6a ff                	push   $0xffffffff
40dc5c:	ff 75 0c             	push   0xc(%ebp)
40dc5f:	83 c0 18             	add    $0x18,%eax
40dc62:	03 c1                	add    %ecx,%eax
40dc64:	6a ff                	push   $0xffffffff
40dc66:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dc69:	ff 30                	push   (%eax)
40dc6b:	56                   	push   %esi
40dc6c:	6a 7f                	push   $0x7f
40dc6e:	ff 15 28 b1 44 00    	call   *0x44b128
40dc74:	83 f8 02             	cmp    $0x2,%eax
40dc77:	74 22                	je     0x40dc9b
40dc79:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dc7c:	43                   	inc    %ebx
40dc7d:	81 c1 f8 00 00 00    	add    $0xf8,%ecx
40dc83:	89 4d 08             	mov    %ecx,0x8(%ebp)
40dc86:	3b 5f 04             	cmp    0x4(%edi),%ebx
40dc89:	72 cd                	jb     0x40dc58
40dc8b:	be 90 04 07 80       	mov    $0x80070490,%esi
40dc90:	5f                   	pop    %edi
40dc91:	8b c6                	mov    %esi,%eax
40dc93:	5e                   	pop    %esi
40dc94:	5b                   	pop    %ebx
40dc95:	8b e5                	mov    %ebp,%esp
40dc97:	5d                   	pop    %ebp
40dc98:	c2 0c 00             	ret    $0xc
40dc9b:	8b 45 10             	mov    0x10(%ebp),%eax
40dc9e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dca1:	89 08                	mov    %ecx,(%eax)
40dca3:	eb eb                	jmp    0x40dc90
40dca5:	55                   	push   %ebp
40dca6:	8b ec                	mov    %esp,%ebp
40dca8:	8b 45 08             	mov    0x8(%ebp),%eax
40dcab:	53                   	push   %ebx
40dcac:	56                   	push   %esi
40dcad:	57                   	push   %edi
40dcae:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
40dcb4:	33 ff                	xor    %edi,%edi
40dcb6:	33 db                	xor    %ebx,%ebx
40dcb8:	be 90 04 07 80       	mov    $0x80070490,%esi
40dcbd:	83 f9 02             	cmp    $0x2,%ecx
40dcc0:	75 0e                	jne    0x40dcd0
40dcc2:	8b b8 b4 00 00 00    	mov    0xb4(%eax),%edi
40dcc8:	8b 98 b8 00 00 00    	mov    0xb8(%eax),%ebx
40dcce:	eb 11                	jmp    0x40dce1
40dcd0:	83 f9 03             	cmp    $0x3,%ecx
40dcd3:	75 0c                	jne    0x40dce1
40dcd5:	8b b8 9c 00 00 00    	mov    0x9c(%eax),%edi
40dcdb:	8b 98 a0 00 00 00    	mov    0xa0(%eax),%ebx