40db5e:	8a 51 08             	mov    0x8(%ecx),%dl
40db61:	84 d2                	test   %dl,%dl
40db63:	75 26                	jne    0x40db8b
40db65:	8b 4c 24 28          	mov    0x28(%esp),%ecx
40db69:	8b 54 24 24          	mov    0x24(%esp),%edx
40db6d:	55                   	push   %ebp
40db6e:	57                   	push   %edi
40db6f:	56                   	push   %esi
40db70:	83 c0 f0             	add    $0xfffffff0,%eax
40db73:	6a 00                	push   $0x0
40db75:	50                   	push   %eax
40db76:	8b 44 24 34          	mov    0x34(%esp),%eax
40db7a:	53                   	push   %ebx
40db7b:	51                   	push   %ecx
40db7c:	8b 4c 24 38          	mov    0x38(%esp),%ecx
40db80:	52                   	push   %edx
40db81:	50                   	push   %eax
40db82:	51                   	push   %ecx
40db83:	e8 08 01 00 00       	call   0x40dc90
40db88:	83 c4 28             	add    $0x28,%esp
40db8b:	8b 44 24 10          	mov    0x10(%esp),%eax
40db8f:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40db93:	40                   	inc    %eax
40db94:	83 c6 14             	add    $0x14,%esi
40db97:	3b c1                	cmp    %ecx,%eax
40db99:	89 44 24 10          	mov    %eax,0x10(%esp)
40db9d:	72 9e                	jb     0x40db3d
40db9f:	5f                   	pop    %edi
40dba0:	5e                   	pop    %esi
40dba1:	5d                   	pop    %ebp
40dba2:	5b                   	pop    %ebx
40dba3:	83 c4 08             	add    $0x8,%esp
40dba6:	c3                   	ret
40dba7:	90                   	nop
40dba8:	90                   	nop
40dba9:	90                   	nop
40dbaa:	90                   	nop
40dbab:	90                   	nop
40dbac:	90                   	nop
40dbad:	90                   	nop
40dbae:	90                   	nop
40dbaf:	90                   	nop
40dbb0:	55                   	push   %ebp
40dbb1:	8b ec                	mov    %esp,%ebp
40dbb3:	6a ff                	push   $0xffffffff
40dbb5:	68 20 c0 42 00       	push   $0x42c020
40dbba:	68 18 f1 40 00       	push   $0x40f118
40dbbf:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40dbc5:	50                   	push   %eax
40dbc6:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40dbcd:	83 c4 f4             	add    $0xfffffff4,%esp
40dbd0:	53                   	push   %ebx
40dbd1:	56                   	push   %esi
40dbd2:	57                   	push   %edi
40dbd3:	89 65 e8             	mov    %esp,-0x18(%ebp)
40dbd6:	8b 5d 08             	mov    0x8(%ebp),%ebx
40dbd9:	8b 73 08             	mov    0x8(%ebx),%esi
40dbdc:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40dbdf:	8b 7d 10             	mov    0x10(%ebp),%edi
40dbe2:	3b 75 14             	cmp    0x14(%ebp),%esi
40dbe5:	74 6a                	je     0x40dc51
40dbe7:	83 fe ff             	cmp    $0xffffffff,%esi
40dbea:	7e 05                	jle    0x40dbf1
40dbec:	3b 77 04             	cmp    0x4(%edi),%esi
40dbef:	7c 05                	jl     0x40dbf6
40dbf1:	e8 fa 07 00 00       	call   0x40e3f0
40dbf6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40dbfd:	8b 47 08             	mov    0x8(%edi),%eax
40dc00:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
40dc04:	85 c0                	test   %eax,%eax
40dc06:	74 0c                	je     0x40dc14
40dc08:	68 03 01 00 00       	push   $0x103
40dc0d:	53                   	push   %ebx
40dc0e:	50                   	push   %eax
40dc0f:	e8 5c 05 00 00       	call   0x40e170
40dc14:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40dc1b:	8b 57 08             	mov    0x8(%edi),%edx
40dc1e:	8b 34 f2             	mov    (%edx,%esi,8),%esi
40dc21:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40dc24:	eb bc                	jmp    0x40dbe2
40dc26:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40dc29:	51                   	push   %ecx
40dc2a:	e8 41 00 00 00       	call   0x40dc70
40dc2f:	83 c4 04             	add    $0x4,%esp
40dc32:	c3                   	ret
40dc33:	8b 65 e8             	mov    -0x18(%ebp),%esp
40dc36:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40dc3d:	8b 7d 10             	mov    0x10(%ebp),%edi
40dc40:	8b 5d 08             	mov    0x8(%ebp),%ebx
40dc43:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40dc46:	8b 57 08             	mov    0x8(%edi),%edx
40dc49:	8b 34 f2             	mov    (%edx,%esi,8),%esi
40dc4c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40dc4f:	eb 91                	jmp    0x40dbe2
40dc51:	89 73 08             	mov    %esi,0x8(%ebx)
40dc54:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40dc57:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40dc5e:	5f                   	pop    %edi
40dc5f:	5e                   	pop    %esi
40dc60:	5b                   	pop    %ebx
40dc61:	8b e5                	mov    %ebp,%esp
40dc63:	5d                   	pop    %ebp
40dc64:	c3                   	ret
40dc65:	90                   	nop
40dc66:	90                   	nop
40dc67:	90                   	nop
40dc68:	90                   	nop
40dc69:	90                   	nop
40dc6a:	90                   	nop
40dc6b:	90                   	nop
40dc6c:	90                   	nop
40dc6d:	90                   	nop
40dc6e:	90                   	nop
40dc6f:	90                   	nop
40dc70:	8b 44 24 04          	mov    0x4(%esp),%eax
40dc74:	8b 08                	mov    (%eax),%ecx
40dc76:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
40dc7c:	75 05                	jne    0x40dc83
40dc7e:	e8 dd 06 00 00       	call   0x40e360
40dc83:	33 c0                	xor    %eax,%eax
40dc85:	c3                   	ret
40dc86:	90                   	nop
40dc87:	90                   	nop
40dc88:	90                   	nop
40dc89:	90                   	nop
40dc8a:	90                   	nop
40dc8b:	90                   	nop
40dc8c:	90                   	nop
40dc8d:	90                   	nop
40dc8e:	90                   	nop
40dc8f:	90                   	nop
40dc90:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40dc94:	53                   	push   %ebx
40dc95:	55                   	push   %ebp
40dc96:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
40dc9a:	56                   	push   %esi
40dc9b:	8b 74 24 14          	mov    0x14(%esp),%esi
40dc9f:	85 c0                	test   %eax,%eax
40dca1:	57                   	push   %edi
40dca2:	74 10                	je     0x40dcb4
40dca4:	50                   	push   %eax
40dca5:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40dca9:	50                   	push   %eax
40dcaa:	56                   	push   %esi
40dcab:	55                   	push   %ebp
40dcac:	e8 ff 01 00 00       	call   0x40deb0
40dcb1:	83 c4 10             	add    $0x10,%esp
40dcb4:	8b 44 24 38          	mov    0x38(%esp),%eax
40dcb8:	55                   	push   %ebp
40dcb9:	85 c0                	test   %eax,%eax
40dcbb:	75 03                	jne    0x40dcc0
40dcbd:	56                   	push   %esi
40dcbe:	eb 01                	jmp    0x40dcc1
40dcc0:	50                   	push   %eax
40dcc1:	e8 6a db ff ff       	call   0x40b830
40dcc6:	8b 7c 24 30          	mov    0x30(%esp),%edi
40dcca:	8b 5c 24 24          	mov    0x24(%esp),%ebx
40dcce:	8b 54 24 20          	mov    0x20(%esp),%edx
40dcd2:	8b 0f                	mov    (%edi),%ecx
40dcd4:	51                   	push   %ecx
40dcd5:	53                   	push   %ebx
40dcd6:	52                   	push   %edx
40dcd7:	56                   	push   %esi
40dcd8:	e8 d3 fe ff ff       	call   0x40dbb0
40dcdd:	8b 47 04             	mov    0x4(%edi),%eax
40dce0:	8b 54 24 38          	mov    0x38(%esp),%edx
40dce4:	8b 4c 24 44          	mov    0x44(%esp),%ecx
40dce8:	83 c4 10             	add    $0x10,%esp
40dceb:	40                   	inc    %eax
40dcec:	89 46 08             	mov    %eax,0x8(%esi)
40dcef:	8b 42 0c             	mov    0xc(%edx),%eax
40dcf2:	68 00 01 00 00       	push   $0x100
40dcf7:	51                   	push   %ecx
40dcf8:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40dcfc:	50                   	push   %eax
40dcfd:	53                   	push   %ebx
40dcfe:	51                   	push   %ecx
40dcff:	56                   	push   %esi
40dd00:	55                   	push   %ebp
40dd01:	e8 1a 00 00 00       	call   0x40dd20
40dd06:	83 c4 1c             	add    $0x1c,%esp
40dd09:	85 c0                	test   %eax,%eax
40dd0b:	74 07                	je     0x40dd14
40dd0d:	56                   	push   %esi
40dd0e:	50                   	push   %eax
40dd0f:	e8 cc da ff ff       	call   0x40b7e0
40dd14:	5f                   	pop    %edi
40dd15:	5e                   	pop    %esi
40dd16:	5d                   	pop    %ebp
40dd17:	5b                   	pop    %ebx
40dd18:	c3                   	ret
40dd19:	90                   	nop
40dd1a:	90                   	nop
40dd1b:	90                   	nop
40dd1c:	90                   	nop
40dd1d:	90                   	nop
40dd1e:	90                   	nop
40dd1f:	90                   	nop
40dd20:	55                   	push   %ebp
40dd21:	8b ec                	mov    %esp,%ebp
40dd23:	6a ff                	push   $0xffffffff
40dd25:	68 30 c0 42 00       	push   $0x42c030
40dd2a:	68 18 f1 40 00       	push   $0x40f118
40dd2f:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40dd35:	50                   	push   %eax
40dd36:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40dd3d:	83 c4 e4             	add    $0xffffffe4,%esp
40dd40:	53                   	push   %ebx
40dd41:	56                   	push   %esi
40dd42:	57                   	push   %edi
40dd43:	89 65 e8             	mov    %esp,-0x18(%ebp)
40dd46:	8b 5d 18             	mov    0x18(%ebp),%ebx
40dd49:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40dd4c:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
40dd53:	8b 75 0c             	mov    0xc(%ebp),%esi
40dd56:	8b 46 fc             	mov    -0x4(%esi),%eax
40dd59:	89 45 d8             	mov    %eax,-0x28(%ebp)
40dd5c:	e8 df 04 00 00       	call   0x40e240
40dd61:	8b 48 6c             	mov    0x6c(%eax),%ecx
40dd64:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40dd67:	e8 d4 04 00 00       	call   0x40e240
40dd6c:	8b 50 70             	mov    0x70(%eax),%edx
40dd6f:	89 55 e0             	mov    %edx,-0x20(%ebp)
40dd72:	e8 c9 04 00 00       	call   0x40e240
40dd77:	8b 7d 08             	mov    0x8(%ebp),%edi
40dd7a:	89 78 6c             	mov    %edi,0x6c(%eax)
40dd7d:	e8 be 04 00 00       	call   0x40e240
40dd82:	8b 4d 10             	mov    0x10(%ebp),%ecx
40dd85:	89 48 70             	mov    %ecx,0x70(%eax)
40dd88:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40dd8f:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40dd96:	8b 55 20             	mov    0x20(%ebp),%edx
40dd99:	52                   	push   %edx
40dd9a:	8b 45 1c             	mov    0x1c(%ebp),%eax
40dd9d:	50                   	push   %eax
40dd9e:	53                   	push   %ebx
40dd9f:	8b 4d 14             	mov    0x14(%ebp),%ecx
40dda2:	51                   	push   %ecx
40dda3:	56                   	push   %esi
40dda4:	e8 27 db ff ff       	call   0x40b8d0
40dda9:	83 c4 14             	add    $0x14,%esp
40ddac:	8b d8                	mov    %eax,%ebx
40ddae:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40ddb1:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40ddb8:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40ddbf:	e8 54 00 00 00       	call   0x40de18
40ddc4:	8b c3                	mov    %ebx,%eax
40ddc6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ddc9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ddd0:	5f                   	pop    %edi
40ddd1:	5e                   	pop    %esi
40ddd2:	5b                   	pop    %ebx
40ddd3:	8b e5                	mov    %ebp,%esp
40ddd5:	5d                   	pop    %ebp
40ddd6:	c3                   	ret
40ddd7:	8b 55 ec             	mov    -0x14(%ebp),%edx
40ddda:	52                   	push   %edx
40dddb:	e8 a0 00 00 00       	call   0x40de80
40dde0:	83 c4 04             	add    $0x4,%esp
40dde3:	c3                   	ret
40dde4:	8b 65 e8             	mov    -0x18(%ebp),%esp
40dde7:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
40ddee:	6a ff                	push   $0xffffffff
40ddf0:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ddf3:	50                   	push   %eax
40ddf4:	e8 89 dd ff ff       	call   0x40bb82
40ddf9:	83 c4 08             	add    $0x8,%esp
40ddfc:	33 c0                	xor    %eax,%eax
40ddfe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40de01:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40de08:	5f                   	pop    %edi
40de09:	5e                   	pop    %esi
40de0a:	5b                   	pop    %ebx
40de0b:	8b e5                	mov    %ebp,%esp
40de0d:	5d                   	pop    %ebp
40de0e:	c3                   	ret
40de0f:	8b 75 0c             	mov    0xc(%ebp),%esi
40de12:	8b 7d 08             	mov    0x8(%ebp),%edi
40de15:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40de18:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40de1b:	89 4e fc             	mov    %ecx,-0x4(%esi)
40de1e:	e8 1d 04 00 00       	call   0x40e240
40de23:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40de26:	89 50 6c             	mov    %edx,0x6c(%eax)
40de29:	e8 12 04 00 00       	call   0x40e240
40de2e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40de31:	89 48 70             	mov    %ecx,0x70(%eax)
40de34:	81 3f 63 73 6d e0    	cmpl   $0xe06d7363,(%edi)
40de3a:	75 29                	jne    0x40de65
40de3c:	83 7f 10 03          	cmpl   $0x3,0x10(%edi)
40de40:	75 23                	jne    0x40de65
40de42:	81 7f 14 20 05 93 19 	cmpl   $0x19930520,0x14(%edi)
40de49:	75 1a                	jne    0x40de65
40de4b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40de4e:	85 c0                	test   %eax,%eax
40de50:	75 13                	jne    0x40de65
40de52:	85 db                	test   %ebx,%ebx
40de54:	74 0f                	je     0x40de65
40de56:	e8 8f dd ff ff       	call   0x40bbea
40de5b:	50                   	push   %eax
40de5c:	57                   	push   %edi
40de5d:	e8 5e 02 00 00       	call   0x40e0c0
40de62:	83 c4 08             	add    $0x8,%esp
40de65:	c3                   	ret
40de66:	8b c3                	mov    %ebx,%eax
40de68:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40de6b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40de72:	5f                   	pop    %edi
40de73:	5e                   	pop    %esi
40de74:	5b                   	pop    %ebx
40de75:	8b e5                	mov    %ebp,%esp
40de77:	5d                   	pop    %ebp
40de78:	c3                   	ret
40de79:	90                   	nop
40de7a:	90                   	nop
40de7b:	90                   	nop
40de7c:	90                   	nop
40de7d:	90                   	nop
40de7e:	90                   	nop
40de7f:	90                   	nop
40de80:	8b 44 24 04          	mov    0x4(%esp),%eax
40de84:	8b 00                	mov    (%eax),%eax
40de86:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40de8c:	75 1c                	jne    0x40deaa
40de8e:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40de92:	75 16                	jne    0x40deaa
40de94:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40de9b:	75 0d                	jne    0x40deaa
40de9d:	8b 48 1c             	mov    0x1c(%eax),%ecx
40dea0:	85 c9                	test   %ecx,%ecx
40dea2:	75 06                	jne    0x40deaa
40dea4:	b8 01 00 00 00       	mov    $0x1,%eax
40dea9:	c3                   	ret
40deaa:	33 c0                	xor    %eax,%eax
40deac:	c3                   	ret
40dead:	90                   	nop
40deae:	90                   	nop
40deaf:	90                   	nop
40deb0:	55                   	push   %ebp
40deb1:	8b ec                	mov    %esp,%ebp
40deb3:	6a ff                	push   $0xffffffff
40deb5:	68 48 c0 42 00       	push   $0x42c048
40deba:	68 18 f1 40 00       	push   $0x40f118
40debf:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40dec5:	50                   	push   %eax
40dec6:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40decd:	83 c4 f4             	add    $0xfffffff4,%esp
40ded0:	53                   	push   %ebx
40ded1:	56                   	push   %esi
40ded2:	57                   	push   %edi