405e74:	1b ff                	sbb    %edi,%edi
405e76:	23 fe                	and    %esi,%edi
405e78:	e8 93 73 00 00       	call   0x40d210
405e7d:	59                   	pop    %ecx
405e7e:	85 c0                	test   %eax,%eax
405e80:	74 02                	je     0x405e84
405e82:	8b fb                	mov    %ebx,%edi
405e84:	8b ce                	mov    %esi,%ecx
405e86:	88 5e 48             	mov    %bl,0x48(%esi)
405e89:	88 5e 3d             	mov    %bl,0x3d(%esi)
405e8c:	e8 66 fe ff ff       	call   0x405cf7
405e91:	89 5e 4c             	mov    %ebx,0x4c(%esi)
405e94:	8b c7                	mov    %edi,%eax
405e96:	8b 0d c4 40 43 00    	mov    0x4340c4,%ecx
405e9c:	8b 15 c8 40 43 00    	mov    0x4340c8,%edx
405ea2:	5f                   	pop    %edi
405ea3:	89 5e 38             	mov    %ebx,0x38(%esi)
405ea6:	89 4e 40             	mov    %ecx,0x40(%esi)
405ea9:	89 56 44             	mov    %edx,0x44(%esi)
405eac:	5e                   	pop    %esi
405ead:	5b                   	pop    %ebx
405eae:	c3                   	ret
405eaf:	b0 01                	mov    $0x1,%al
405eb1:	c3                   	ret
405eb2:	33 c0                	xor    %eax,%eax
405eb4:	40                   	inc    %eax
405eb5:	c3                   	ret
405eb6:	55                   	push   %ebp
405eb7:	8b ec                	mov    %esp,%ebp
405eb9:	8b 4d 14             	mov    0x14(%ebp),%ecx
405ebc:	8b 45 0c             	mov    0xc(%ebp),%eax
405ebf:	6a 03                	push   $0x3
405ec1:	89 01                	mov    %eax,(%ecx)
405ec3:	8b 4d 20             	mov    0x20(%ebp),%ecx
405ec6:	8b 45 18             	mov    0x18(%ebp),%eax
405ec9:	89 01                	mov    %eax,(%ecx)
405ecb:	58                   	pop    %eax
405ecc:	5d                   	pop    %ebp
405ecd:	c2 1c 00             	ret    $0x1c
405ed0:	55                   	push   %ebp
405ed1:	8b ec                	mov    %esp,%ebp
405ed3:	8b 45 10             	mov    0x10(%ebp),%eax
405ed6:	2b 45 0c             	sub    0xc(%ebp),%eax
405ed9:	3b 45 14             	cmp    0x14(%ebp),%eax
405edc:	72 03                	jb     0x405ee1
405ede:	8b 45 14             	mov    0x14(%ebp),%eax
405ee1:	5d                   	pop    %ebp
405ee2:	c2 10 00             	ret    $0x10
405ee5:	55                   	push   %ebp
405ee6:	8b ec                	mov    %esp,%ebp
405ee8:	8b 4d 14             	mov    0x14(%ebp),%ecx
405eeb:	8b 45 0c             	mov    0xc(%ebp),%eax
405eee:	6a 03                	push   $0x3
405ef0:	89 01                	mov    %eax,(%ecx)
405ef2:	58                   	pop    %eax
405ef3:	5d                   	pop    %ebp
405ef4:	c2 10 00             	ret    $0x10
405ef7:	55                   	push   %ebp
405ef8:	8b ec                	mov    %esp,%ebp
405efa:	56                   	push   %esi
405efb:	ff 75 08             	push   0x8(%ebp)
405efe:	8b f1                	mov    %ecx,%esi
405f00:	e8 fe f7 ff ff       	call   0x405703
405f05:	59                   	pop    %ecx
405f06:	50                   	push   %eax
405f07:	8b ce                	mov    %esi,%ecx
405f09:	e8 91 fe ff ff       	call   0x405d9f
405f0e:	5e                   	pop    %esi
405f0f:	5d                   	pop    %ebp
405f10:	c2 04 00             	ret    $0x4
405f13:	c2 04 00             	ret    $0x4
405f16:	55                   	push   %ebp
405f17:	8b ec                	mov    %esp,%ebp
405f19:	56                   	push   %esi
405f1a:	8b f1                	mov    %ecx,%esi
405f1c:	e8 13 fe ff ff       	call   0x405d34
405f21:	8b 45 08             	mov    0x8(%ebp),%eax
405f24:	8b ce                	mov    %esi,%ecx
405f26:	83 66 3c 00          	andl   $0x0,0x3c(%esi)
405f2a:	6a 20                	push   $0x20
405f2c:	89 46 38             	mov    %eax,0x38(%esi)
405f2f:	e8 73 06 00 00       	call   0x4065a7
405f34:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
405f38:	88 46 40             	mov    %al,0x40(%esi)
405f3b:	75 10                	jne    0x405f4d
405f3d:	8b 46 0c             	mov    0xc(%esi),%eax
405f40:	8b ce                	mov    %esi,%ecx
405f42:	6a 00                	push   $0x0
405f44:	83 c8 04             	or     $0x4,%eax
405f47:	50                   	push   %eax
405f48:	e8 53 bf ff ff       	call   0x401ea0
405f4d:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
405f51:	74 07                	je     0x405f5a
405f53:	56                   	push   %esi
405f54:	e8 d9 10 00 00       	call   0x407032
405f59:	59                   	pop    %ecx
405f5a:	5e                   	pop    %esi
405f5b:	5d                   	pop    %ebp
405f5c:	c2 08 00             	ret    $0x8
405f5f:	55                   	push   %ebp
405f60:	8b ec                	mov    %esp,%ebp
405f62:	83 ec 34             	sub    $0x34,%esp
405f65:	a1 14 30 43 00       	mov    0x433014,%eax
405f6a:	33 c5                	xor    %ebp,%eax
405f6c:	89 45 fc             	mov    %eax,-0x4(%ebp)
405f6f:	53                   	push   %ebx
405f70:	8b 5d 08             	mov    0x8(%ebp),%ebx
405f73:	57                   	push   %edi
405f74:	8b f9                	mov    %ecx,%edi
405f76:	83 fb ff             	cmp    $0xffffffff,%ebx
405f79:	75 07                	jne    0x405f82
405f7b:	33 c0                	xor    %eax,%eax
405f7d:	e9 d7 00 00 00       	jmp    0x406059
405f82:	8b 47 20             	mov    0x20(%edi),%eax
405f85:	56                   	push   %esi
405f86:	8b 08                	mov    (%eax),%ecx
405f88:	85 c9                	test   %ecx,%ecx
405f8a:	74 22                	je     0x405fae
405f8c:	8b 57 30             	mov    0x30(%edi),%edx
405f8f:	8b 32                	mov    (%edx),%esi
405f91:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
405f94:	3b c8                	cmp    %eax,%ecx
405f96:	73 16                	jae    0x405fae
405f98:	8d 4e ff             	lea    -0x1(%esi),%ecx
405f9b:	89 0a                	mov    %ecx,(%edx)
405f9d:	8b 57 20             	mov    0x20(%edi),%edx
405fa0:	8b 32                	mov    (%edx),%esi
405fa2:	8d 4e 01             	lea    0x1(%esi),%ecx
405fa5:	89 0a                	mov    %ecx,(%edx)
405fa7:	88 1e                	mov    %bl,(%esi)
405fa9:	e9 a3 00 00 00       	jmp    0x406051
405fae:	83 7f 4c 00          	cmpl   $0x0,0x4c(%edi)
405fb2:	0f 84 9d 00 00 00    	je     0x406055
405fb8:	8b cf                	mov    %edi,%ecx
405fba:	e8 1e fe ff ff       	call   0x405ddd
405fbf:	8b 47 38             	mov    0x38(%edi),%eax
405fc2:	8a cb                	mov    %bl,%cl
405fc4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405fc7:	85 c0                	test   %eax,%eax
405fc9:	75 06                	jne    0x405fd1
405fcb:	ff 77 4c             	push   0x4c(%edi)
405fce:	51                   	push   %ecx
405fcf:	eb 47                	jmp    0x406018
405fd1:	88 4d d8             	mov    %cl,-0x28(%ebp)
405fd4:	8b 00                	mov    (%eax),%eax
405fd6:	8b 70 1c             	mov    0x1c(%eax),%esi
405fd9:	8d 45 d0             	lea    -0x30(%ebp),%eax
405fdc:	50                   	push   %eax
405fdd:	8d 45 fc             	lea    -0x4(%ebp),%eax
405fe0:	8b ce                	mov    %esi,%ecx
405fe2:	50                   	push   %eax
405fe3:	8d 45 dc             	lea    -0x24(%ebp),%eax
405fe6:	50                   	push   %eax
405fe7:	8d 45 cc             	lea    -0x34(%ebp),%eax
405fea:	50                   	push   %eax
405feb:	8d 45 d9             	lea    -0x27(%ebp),%eax
405fee:	50                   	push   %eax
405fef:	8d 45 d8             	lea    -0x28(%ebp),%eax
405ff2:	50                   	push   %eax
405ff3:	8d 47 40             	lea    0x40(%edi),%eax
405ff6:	50                   	push   %eax
405ff7:	ff 15 54 41 42 00    	call   *0x424154
405ffd:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406000:	ff d6                	call   *%esi
406002:	83 e8 00             	sub    $0x0,%eax
406005:	74 21                	je     0x406028
406007:	83 e8 01             	sub    $0x1,%eax
40600a:	74 1c                	je     0x406028
40600c:	48                   	dec    %eax
40600d:	83 e8 01             	sub    $0x1,%eax
406010:	75 43                	jne    0x406055
406012:	ff 77 4c             	push   0x4c(%edi)
406015:	ff 75 d8             	push   -0x28(%ebp)
406018:	e8 2b f6 ff ff       	call   0x405648
40601d:	59                   	pop    %ecx
40601e:	59                   	pop    %ecx
40601f:	84 c0                	test   %al,%al
406021:	75 2e                	jne    0x406051
406023:	83 cb ff             	or     $0xffffffff,%ebx
406026:	eb 29                	jmp    0x406051
406028:	8b 75 d0             	mov    -0x30(%ebp),%esi
40602b:	8d 45 dc             	lea    -0x24(%ebp),%eax
40602e:	2b f0                	sub    %eax,%esi
406030:	74 13                	je     0x406045
406032:	ff 77 4c             	push   0x4c(%edi)
406035:	56                   	push   %esi
406036:	6a 01                	push   $0x1
406038:	50                   	push   %eax
406039:	e8 c2 80 00 00       	call   0x40e100
40603e:	83 c4 10             	add    $0x10,%esp
406041:	3b f0                	cmp    %eax,%esi
406043:	75 10                	jne    0x406055
406045:	8d 45 d8             	lea    -0x28(%ebp),%eax
406048:	c6 47 3d 01          	movb   $0x1,0x3d(%edi)
40604c:	39 45 cc             	cmp    %eax,-0x34(%ebp)
40604f:	74 04                	je     0x406055
406051:	8b c3                	mov    %ebx,%eax
406053:	eb 03                	jmp    0x406058
406055:	83 c8 ff             	or     $0xffffffff,%eax
406058:	5e                   	pop    %esi
406059:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40605c:	5f                   	pop    %edi
40605d:	33 cd                	xor    %ebp,%ecx
40605f:	5b                   	pop    %ebx
406060:	e8 a7 13 00 00       	call   0x40740c
406065:	c9                   	leave
406066:	c2 04 00             	ret    $0x4
406069:	83 c8 ff             	or     $0xffffffff,%eax
40606c:	c2 04 00             	ret    $0x4
40606f:	55                   	push   %ebp
406070:	8b ec                	mov    %esp,%ebp
406072:	53                   	push   %ebx
406073:	8b 5d 08             	mov    0x8(%ebp),%ebx
406076:	56                   	push   %esi
406077:	8b f1                	mov    %ecx,%esi
406079:	8b 46 1c             	mov    0x1c(%esi),%eax
40607c:	8b 08                	mov    (%eax),%ecx
40607e:	85 c9                	test   %ecx,%ecx
406080:	74 29                	je     0x4060ab
406082:	8b 46 0c             	mov    0xc(%esi),%eax
406085:	39 08                	cmp    %ecx,(%eax)
406087:	73 22                	jae    0x4060ab
406089:	83 fb ff             	cmp    $0xffffffff,%ebx
40608c:	74 08                	je     0x406096
40608e:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
406092:	3b c3                	cmp    %ebx,%eax
406094:	75 15                	jne    0x4060ab
406096:	8b 46 2c             	mov    0x2c(%esi),%eax
406099:	ff 00                	incl   (%eax)
40609b:	8b 46 1c             	mov    0x1c(%esi),%eax
40609e:	ff 08                	decl   (%eax)
4060a0:	8d 43 01             	lea    0x1(%ebx),%eax
4060a3:	f7 d8                	neg    %eax
4060a5:	1b c0                	sbb    %eax,%eax
4060a7:	23 c3                	and    %ebx,%eax
4060a9:	eb 40                	jmp    0x4060eb
4060ab:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
4060af:	74 37                	je     0x4060e8
4060b1:	83 fb ff             	cmp    $0xffffffff,%ebx
4060b4:	74 32                	je     0x4060e8
4060b6:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
4060ba:	75 17                	jne    0x4060d3
4060bc:	ff 76 4c             	push   0x4c(%esi)
4060bf:	0f b6 c3             	movzbl %bl,%eax
4060c2:	50                   	push   %eax
4060c3:	e8 42 83 00 00       	call   0x40e40a
4060c8:	59                   	pop    %ecx
4060c9:	59                   	pop    %ecx
4060ca:	83 f8 ff             	cmp    $0xffffffff,%eax
4060cd:	74 04                	je     0x4060d3
4060cf:	8b c3                	mov    %ebx,%eax
4060d1:	eb 18                	jmp    0x4060eb
4060d3:	8b 46 1c             	mov    0x1c(%esi),%eax
4060d6:	8d 4e 3c             	lea    0x3c(%esi),%ecx
4060d9:	39 08                	cmp    %ecx,(%eax)
4060db:	74 0b                	je     0x4060e8
4060dd:	88 19                	mov    %bl,(%ecx)
4060df:	8b ce                	mov    %esi,%ecx
4060e1:	e8 1a fd ff ff       	call   0x405e00
4060e6:	eb e7                	jmp    0x4060cf
4060e8:	83 c8 ff             	or     $0xffffffff,%eax
4060eb:	5e                   	pop    %esi
4060ec:	5b                   	pop    %ebx
4060ed:	5d                   	pop    %ebp
4060ee:	c2 04 00             	ret    $0x4
4060f1:	55                   	push   %ebp
4060f2:	8b ec                	mov    %esp,%ebp
4060f4:	51                   	push   %ecx
4060f5:	8b 51 10             	mov    0x10(%ecx),%edx
4060f8:	3b 51 14             	cmp    0x14(%ecx),%edx
4060fb:	73 1b                	jae    0x406118
4060fd:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
406101:	8d 42 01             	lea    0x1(%edx),%eax
406104:	89 41 10             	mov    %eax,0x10(%ecx)
406107:	72 02                	jb     0x40610b
406109:	8b 09                	mov    (%ecx),%ecx
40610b:	8a 45 08             	mov    0x8(%ebp),%al
40610e:	88 04 11             	mov    %al,(%ecx,%edx,1)
406111:	c6 44 11 01 00       	movb   $0x0,0x1(%ecx,%edx,1)
406116:	eb 0d                	jmp    0x406125
406118:	ff 75 08             	push   0x8(%ebp)
40611b:	ff 75 fc             	push   -0x4(%ebp)
40611e:	6a 01                	push   $0x1
406120:	e8 3d f5 ff ff       	call   0x405662
406125:	c9                   	leave
406126:	c2 04 00             	ret    $0x4
406129:	55                   	push   %ebp
40612a:	8b ec                	mov    %esp,%ebp
40612c:	51                   	push   %ecx
40612d:	51                   	push   %ecx
40612e:	53                   	push   %ebx
40612f:	56                   	push   %esi
406130:	57                   	push   %edi
406131:	8b f9                	mov    %ecx,%edi
406133:	8b 57 1c             	mov    0x1c(%edi),%edx
406136:	8d 47 3c             	lea    0x3c(%edi),%eax
406139:	39 02                	cmp    %eax,(%edx)
40613b:	75 1a                	jne    0x406157
40613d:	83 7d 14 01          	cmpl   $0x1,0x14(%ebp)
406141:	75 14                	jne    0x406157
406143:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
406147:	75 0e                	jne    0x406157
406149:	8b 75 0c             	mov    0xc(%ebp),%esi
40614c:	8b 5d 10             	mov    0x10(%ebp),%ebx
40614f:	83 c6 ff             	add    $0xffffffff,%esi
406152:	83 d3 ff             	adc    $0xffffffff,%ebx
406155:	eb 06                	jmp    0x40615d
406157:	8b 5d 10             	mov    0x10(%ebp),%ebx
40615a:	8b 75 0c             	mov    0xc(%ebp),%esi
40615d:	83 7f 4c 00          	cmpl   $0x0,0x4c(%edi)
406161:	74 66                	je     0x4061c9
406163:	e8 bb f9 ff ff       	call   0x405b23
406168:	84 c0                	test   %al,%al
40616a:	74 5d                	je     0x4061c9
40616c:	8b c6                	mov    %esi,%eax
40616e:	0b c3                	or     %ebx,%eax
406170:	75 06                	jne    0x406178
406172:	83 7d 14 01          	cmpl   $0x1,0x14(%ebp)
406176:	74 14                	je     0x40618c
406178:	ff 75 14             	push   0x14(%ebp)
40617b:	53                   	push   %ebx
40617c:	56                   	push   %esi
40617d:	ff 77 4c             	push   0x4c(%edi)
406180:	e8 41 7d 00 00       	call   0x40dec6
406185:	83 c4 10             	add    $0x10,%esp
406188:	85 c0                	test   %eax,%eax
40618a:	75 3d                	jne    0x4061c9
40618c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40618f:	50                   	push   %eax
406190:	ff 77 4c             	push   0x4c(%edi)
406193:	e8 88 75 00 00       	call   0x40d720
406198:	59                   	pop    %ecx
406199:	59                   	pop    %ecx
40619a:	85 c0                	test   %eax,%eax
40619c:	75 2b                	jne    0x4061c9
40619e:	8b cf                	mov    %edi,%ecx
4061a0:	e8 38 fc ff ff       	call   0x405ddd
4061a5:	8b 45 08             	mov    0x8(%ebp),%eax
4061a8:	8b 77 40             	mov    0x40(%edi),%esi
4061ab:	8b 7f 44             	mov    0x44(%edi),%edi
4061ae:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4061b1:	8b 55 fc             	mov    -0x4(%ebp),%edx
4061b4:	83 60 08 00          	andl   $0x0,0x8(%eax)
4061b8:	83 60 0c 00          	andl   $0x0,0xc(%eax)
4061bc:	89 08                	mov    %ecx,(%eax)
4061be:	89 50 04             	mov    %edx,0x4(%eax)
4061c1:	89 70 10             	mov    %esi,0x10(%eax)
4061c4:	89 78 14             	mov    %edi,0x14(%eax)
4061c7:	eb 1a                	jmp    0x4061e3
4061c9:	8b 45 08             	mov    0x8(%ebp),%eax