404cd9:	33 c9                	xor    %ecx,%ecx
404cdb:	51                   	push   %ecx
404cdc:	50                   	push   %eax
404cdd:	ff 74 24 10          	push   0x10(%esp)
404ce1:	ff 74 24 10          	push   0x10(%esp)
404ce5:	e8 22 ff ff ff       	call   0x404c0c
404cea:	c2 0c 00             	ret    $0xc
404ced:	8b 15 8c a2 42 00    	mov    0x42a28c,%edx
404cf3:	8b 0d 88 a2 42 00    	mov    0x42a288,%ecx
404cf9:	33 c0                	xor    %eax,%eax
404cfb:	85 d2                	test   %edx,%edx
404cfd:	74 18                	je     0x404d17
404cff:	56                   	push   %esi
404d00:	f6 41 08 01          	testb  $0x1,0x8(%ecx)
404d04:	74 07                	je     0x404d0d
404d06:	8b 74 24 08          	mov    0x8(%esp),%esi
404d0a:	03 04 b1             	add    (%ecx,%esi,4),%eax
404d0d:	81 c1 18 08 00 00    	add    $0x818,%ecx
404d13:	4a                   	dec    %edx
404d14:	75 ea                	jne    0x404d00
404d16:	5e                   	pop    %esi
404d17:	c2 04 00             	ret    $0x4
404d1a:	55                   	push   %ebp
404d1b:	8b ec                	mov    %esp,%ebp
404d1d:	83 ec 38             	sub    $0x38,%esp
404d20:	56                   	push   %esi
404d21:	8b 35 18 82 40 00    	mov    0x408218,%esi
404d27:	57                   	push   %edi
404d28:	8b 7d 08             	mov    0x8(%ebp),%edi
404d2b:	6a 00                	push   $0x0
404d2d:	6a 09                	push   $0x9
404d2f:	68 0a 11 00 00       	push   $0x110a
404d34:	57                   	push   %edi
404d35:	ff d6                	call   *%esi
404d37:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
404d3b:	74 3c                	je     0x404d79
404d3d:	ff 15 bc 81 40 00    	call   *0x4081bc
404d43:	0f bf c8             	movswl %ax,%ecx
404d46:	c1 e8 10             	shr    $0x10,%eax
404d49:	0f bf c0             	movswl %ax,%eax
404d4c:	89 45 f4             	mov    %eax,-0xc(%ebp)
404d4f:	8d 45 f0             	lea    -0x10(%ebp),%eax
404d52:	50                   	push   %eax
404d53:	57                   	push   %edi
404d54:	89 4d f0             	mov    %ecx,-0x10(%ebp)
404d57:	ff 15 dc 81 40 00    	call   *0x4081dc
404d5d:	8d 45 f0             	lea    -0x10(%ebp),%eax
404d60:	50                   	push   %eax
404d61:	6a 00                	push   $0x0
404d63:	68 11 11 00 00       	push   $0x1111
404d68:	57                   	push   %edi
404d69:	ff d6                	call   *%esi
404d6b:	f6 45 f8 66          	testb  $0x66,-0x8(%ebp)
404d6f:	75 05                	jne    0x404d76
404d71:	83 c8 ff             	or     $0xffffffff,%eax
404d74:	eb 1e                	jmp    0x404d94
404d76:	8b 45 fc             	mov    -0x4(%ebp),%eax
404d79:	89 45 cc             	mov    %eax,-0x34(%ebp)
404d7c:	8d 45 c8             	lea    -0x38(%ebp),%eax
404d7f:	50                   	push   %eax
404d80:	6a 00                	push   $0x0
404d82:	68 3e 11 00 00       	push   $0x113e
404d87:	57                   	push   %edi
404d88:	c7 45 c8 04 00 00 00 	movl   $0x4,-0x38(%ebp)
404d8f:	ff d6                	call   *%esi
404d91:	8b 45 ec             	mov    -0x14(%ebp),%eax
404d94:	5f                   	pop    %edi
404d95:	5e                   	pop    %esi
404d96:	c9                   	leave
404d97:	c2 08 00             	ret    $0x8
404d9a:	56                   	push   %esi
404d9b:	57                   	push   %edi
404d9c:	be 00 b0 42 00       	mov    $0x42b000,%esi
404da1:	bf 28 37 42 00       	mov    $0x423728,%edi
404da6:	56                   	push   %esi
404da7:	57                   	push   %edi
404da8:	e8 3b 16 00 00       	call   0x4063e8
404dad:	ff 74 24 10          	push   0x10(%esp)
404db1:	56                   	push   %esi
404db2:	e8 78 15 00 00       	call   0x40632f
404db7:	ff 74 24 0c          	push   0xc(%esp)
404dbb:	e8 4b c6 ff ff       	call   0x40140b
404dc0:	57                   	push   %edi
404dc1:	56                   	push   %esi
404dc2:	e8 21 16 00 00       	call   0x4063e8
404dc7:	5f                   	pop    %edi
404dc8:	5e                   	pop    %esi
404dc9:	c2 08 00             	ret    $0x8
404dcc:	55                   	push   %ebp
404dcd:	8b ec                	mov    %esp,%ebp
404dcf:	83 ec 50             	sub    $0x50,%esp
404dd2:	53                   	push   %ebx
404dd3:	56                   	push   %esi
404dd4:	8b 35 e4 81 40 00    	mov    0x4081e4,%esi
404dda:	57                   	push   %edi
404ddb:	8b 7d 08             	mov    0x8(%ebp),%edi
404dde:	68 f9 03 00 00       	push   $0x3f9
404de3:	57                   	push   %edi
404de4:	ff d6                	call   *%esi
404de6:	68 08 04 00 00       	push   $0x408
404deb:	57                   	push   %edi
404dec:	89 45 f8             	mov    %eax,-0x8(%ebp)
404def:	ff d6                	call   *%esi
404df1:	89 45 fc             	mov    %eax,-0x4(%ebp)
404df4:	a1 88 a2 42 00       	mov    0x42a288,%eax
404df9:	8b 35 18 82 40 00    	mov    0x408218,%esi
404dff:	89 45 f0             	mov    %eax,-0x10(%ebp)
404e02:	a1 54 a2 42 00       	mov    0x42a254,%eax
404e07:	33 db                	xor    %ebx,%ebx
404e09:	05 94 00 00 00       	add    $0x94,%eax
404e0e:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
404e15:	89 45 ec             	mov    %eax,-0x14(%ebp)
404e18:	0f 85 1b 02 00 00    	jne    0x405039
404e1e:	a1 8c a2 42 00       	mov    0x42a28c,%eax
404e23:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
404e26:	c1 e0 02             	shl    $0x2,%eax
404e29:	50                   	push   %eax
404e2a:	6a 40                	push   $0x40
404e2c:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
404e33:	89 3d c0 a2 42 00    	mov    %edi,0x42a2c0
404e39:	ff 15 34 81 40 00    	call   *0x408134
404e3f:	6a 6e                	push   $0x6e
404e41:	a3 20 37 42 00       	mov    %eax,0x423720
404e46:	ff 35 40 a2 42 00    	push   0x42a240
404e4c:	ff 15 c0 81 40 00    	call   *0x4081c0
404e52:	83 0d 14 37 42 00 ff 	orl    $0xffffffff,0x423714
404e59:	68 c4 53 40 00       	push   $0x4053c4
404e5e:	6a fc                	push   $0xfffffffc
404e60:	8b f8                	mov    %eax,%edi
404e62:	ff 75 fc             	push   -0x4(%ebp)
404e65:	ff 15 70 82 40 00    	call   *0x408270
404e6b:	53                   	push   %ebx
404e6c:	6a 06                	push   $0x6
404e6e:	6a 21                	push   $0x21
404e70:	6a 10                	push   $0x10
404e72:	6a 10                	push   $0x10
404e74:	a3 1c 37 42 00       	mov    %eax,0x42371c
404e79:	ff 15 38 80 40 00    	call   *0x408038
404e7f:	68 ff 00 ff 00       	push   $0xff00ff
404e84:	57                   	push   %edi
404e85:	50                   	push   %eax
404e86:	a3 0c 37 42 00       	mov    %eax,0x42370c
404e8b:	ff 15 3c 80 40 00    	call   *0x40803c
404e91:	ff 35 0c 37 42 00    	push   0x42370c
404e97:	6a 02                	push   $0x2
404e99:	68 09 11 00 00       	push   $0x1109
404e9e:	ff 75 fc             	push   -0x4(%ebp)
404ea1:	ff d6                	call   *%esi
404ea3:	53                   	push   %ebx
404ea4:	53                   	push   %ebx
404ea5:	68 1c 11 00 00       	push   $0x111c
404eaa:	ff 75 fc             	push   -0x4(%ebp)
404ead:	ff d6                	call   *%esi
404eaf:	83 f8 10             	cmp    $0x10,%eax
404eb2:	7d 0d                	jge    0x404ec1
404eb4:	53                   	push   %ebx
404eb5:	6a 10                	push   $0x10
404eb7:	68 1b 11 00 00       	push   $0x111b
404ebc:	ff 75 fc             	push   -0x4(%ebp)
404ebf:	ff d6                	call   *%esi
404ec1:	57                   	push   %edi
404ec2:	ff 15 5c 80 40 00    	call   *0x40805c
404ec8:	33 ff                	xor    %edi,%edi
404eca:	8b 45 ec             	mov    -0x14(%ebp),%eax
404ecd:	8b 04 b8             	mov    (%eax,%edi,4),%eax
404ed0:	3b c3                	cmp    %ebx,%eax
404ed2:	74 27                	je     0x404efb
404ed4:	83 ff 20             	cmp    $0x20,%edi
404ed7:	74 03                	je     0x404edc
404ed9:	89 5d f4             	mov    %ebx,-0xc(%ebp)
404edc:	50                   	push   %eax
404edd:	53                   	push   %ebx
404ede:	e8 27 15 00 00       	call   0x40640a
404ee3:	50                   	push   %eax
404ee4:	53                   	push   %ebx
404ee5:	68 43 01 00 00       	push   $0x143
404eea:	ff 75 f8             	push   -0x8(%ebp)
404eed:	ff d6                	call   *%esi
404eef:	57                   	push   %edi
404ef0:	50                   	push   %eax
404ef1:	68 51 01 00 00       	push   $0x151
404ef6:	ff 75 f8             	push   -0x8(%ebp)
404ef9:	ff d6                	call   *%esi
404efb:	47                   	inc    %edi
404efc:	83 ff 21             	cmp    $0x21,%edi
404eff:	7c c9                	jl     0x404eca
404f01:	8b 7d 14             	mov    0x14(%ebp),%edi
404f04:	8b 5d f4             	mov    -0xc(%ebp),%ebx
404f07:	ff 74 9f 30          	push   0x30(%edi,%ebx,4)
404f0b:	6a 15                	push   $0x15
404f0d:	ff 75 08             	push   0x8(%ebp)
404f10:	e8 4a f4 ff ff       	call   0x40435f
404f15:	ff 74 9f 34          	push   0x34(%edi,%ebx,4)
404f19:	6a 16                	push   $0x16
404f1b:	ff 75 08             	push   0x8(%ebp)
404f1e:	e8 3c f4 ff ff       	call   0x40435f
404f23:	33 ff                	xor    %edi,%edi
404f25:	33 db                	xor    %ebx,%ebx
404f27:	39 3d 8c a2 42 00    	cmp    %edi,0x42a28c
404f2d:	0f 8e c5 00 00 00    	jle    0x404ff8
404f33:	8b 45 f0             	mov    -0x10(%ebp),%eax
404f36:	8d 50 08             	lea    0x8(%eax),%edx
404f39:	89 55 e8             	mov    %edx,-0x18(%ebp)
404f3c:	8d 42 10             	lea    0x10(%edx),%eax
404f3f:	66 83 38 00          	cmpw   $0x0,(%eax)
404f43:	0f 84 90 00 00 00    	je     0x404fd9
404f49:	89 45 c8             	mov    %eax,-0x38(%ebp)
404f4c:	8b 02                	mov    (%edx),%eax
404f4e:	6a 20                	push   $0x20
404f50:	8b d0                	mov    %eax,%edx
404f52:	59                   	pop    %ecx
404f53:	89 5d b0             	mov    %ebx,-0x50(%ebp)
404f56:	23 d1                	and    %ecx,%edx
404f58:	c7 45 b4 02 00 ff ff 	movl   $0xffff0002,-0x4c(%ebp)
404f5f:	a8 02                	test   $0x2,%al
404f61:	c7 45 b8 0d 00 00 00 	movl   $0xd,-0x48(%ebp)
404f68:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
404f6b:	89 7d dc             	mov    %edi,-0x24(%ebp)
404f6e:	89 55 c0             	mov    %edx,-0x40(%ebp)
404f71:	74 38                	je     0x404fab
404f73:	8d 45 b0             	lea    -0x50(%ebp),%eax
404f76:	c7 45 b8 4d 00 00 00 	movl   $0x4d,-0x48(%ebp)
404f7d:	50                   	push   %eax
404f7e:	6a 00                	push   $0x0
404f80:	68 32 11 00 00       	push   $0x1132
404f85:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
404f8c:	ff 75 fc             	push   -0x4(%ebp)
404f8f:	ff d6                	call   *%esi
404f91:	8b 0d 20 37 42 00    	mov    0x423720,%ecx
404f97:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
404f9e:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
404fa1:	a1 20 37 42 00       	mov    0x423720,%eax
404fa6:	8b 1c b8             	mov    (%eax,%edi,4),%ebx
404fa9:	eb 2e                	jmp    0x404fd9
404fab:	a8 04                	test   $0x4,%al
404fad:	74 11                	je     0x404fc0
404faf:	53                   	push   %ebx
404fb0:	6a 03                	push   $0x3
404fb2:	68 0a 11 00 00       	push   $0x110a
404fb7:	ff 75 fc             	push   -0x4(%ebp)
404fba:	ff d6                	call   *%esi
404fbc:	8b d8                	mov    %eax,%ebx
404fbe:	eb 19                	jmp    0x404fd9
404fc0:	8d 45 b0             	lea    -0x50(%ebp),%eax
404fc3:	50                   	push   %eax
404fc4:	6a 00                	push   $0x0
404fc6:	68 32 11 00 00       	push   $0x1132
404fcb:	ff 75 fc             	push   -0x4(%ebp)
404fce:	ff d6                	call   *%esi
404fd0:	8b 0d 20 37 42 00    	mov    0x423720,%ecx
404fd6:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
404fd9:	8b 55 e8             	mov    -0x18(%ebp),%edx
404fdc:	47                   	inc    %edi
404fdd:	81 c2 18 08 00 00    	add    $0x818,%edx
404fe3:	3b 3d 8c a2 42 00    	cmp    0x42a28c,%edi
404fe9:	89 55 e8             	mov    %edx,-0x18(%ebp)
404fec:	0f 8c 4a ff ff ff    	jl     0x404f3c
404ff2:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
404ff6:	75 19                	jne    0x405011
404ff8:	6a f0                	push   $0xfffffff0
404ffa:	ff 75 fc             	push   -0x4(%ebp)
404ffd:	ff 15 ac 81 40 00    	call   *0x4081ac
405003:	24 fb                	and    $0xfb,%al
405005:	50                   	push   %eax
405006:	6a f0                	push   $0xfffffff0
405008:	ff 75 fc             	push   -0x4(%ebp)
40500b:	ff 15 70 82 40 00    	call   *0x408270
405011:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
405015:	75 18                	jne    0x40502f
405017:	6a 05                	push   $0x5
405019:	ff 75 f8             	push   -0x8(%ebp)
40501c:	ff 15 68 82 40 00    	call   *0x408268
405022:	ff 75 f8             	push   -0x8(%ebp)
405025:	e8 6a f3 ff ff       	call   0x404394
40502a:	e9 80 03 00 00       	jmp    0x4053af
40502f:	ff 75 fc             	push   -0x4(%ebp)
405032:	e8 5d f3 ff ff       	call   0x404394
405037:	33 db                	xor    %ebx,%ebx
405039:	81 7d 0c 05 04 00 00 	cmpl   $0x405,0xc(%ebp)
405040:	75 12                	jne    0x405054
405042:	33 c9                	xor    %ecx,%ecx
405044:	89 5d 10             	mov    %ebx,0x10(%ebp)
405047:	41                   	inc    %ecx
405048:	c7 45 0c 0f 04 00 00 	movl   $0x40f,0xc(%ebp)
40504f:	89 4d 14             	mov    %ecx,0x14(%ebp)
405052:	eb 03                	jmp    0x405057
405054:	8b 4d 14             	mov    0x14(%ebp),%ecx
405057:	83 7d 0c 4e          	cmpl   $0x4e,0xc(%ebp)
40505b:	b8 13 04 00 00       	mov    $0x413,%eax
405060:	74 09                	je     0x40506b
405062:	39 45 0c             	cmp    %eax,0xc(%ebp)
405065:	0f 85 e4 00 00 00    	jne    0x40514f
40506b:	39 45 0c             	cmp    %eax,0xc(%ebp)
40506e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
405071:	74 0d                	je     0x405080
405073:	81 79 04 08 04 00 00 	cmpl   $0x408,0x4(%ecx)
40507a:	0f 85 cf 00 00 00    	jne    0x40514f
405080:	f6 05 5d a2 42 00 02 	testb  $0x2,0x42a25d
405087:	75 73                	jne    0x4050fc
405089:	39 45 0c             	cmp    %eax,0xc(%ebp)
40508c:	74 09                	je     0x405097
40508e:	8b 4d 14             	mov    0x14(%ebp),%ecx
405091:	83 79 08 fe          	cmpl   $0xfffffffe,0x8(%ecx)
405095:	75 65                	jne    0x4050fc
405097:	33 c9                	xor    %ecx,%ecx
405099:	39 45 0c             	cmp    %eax,0xc(%ebp)
40509c:	0f 95 c1             	setne  %cl
40509f:	51                   	push   %ecx
4050a0:	ff 75 fc             	push   -0x4(%ebp)
4050a3:	e8 72 fc ff ff       	call   0x404d1a
4050a8:	8b f8                	mov    %eax,%edi
4050aa:	3b fb                	cmp    %ebx,%edi
4050ac:	7c 4e                	jl     0x4050fc
4050ae:	69 c0 18 08 00 00    	imul   $0x818,%eax,%eax
4050b4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4050b7:	8d 4c 08 08          	lea    0x8(%eax,%ecx,1),%ecx
4050bb:	8b 01                	mov    (%ecx),%eax
4050bd:	a8 10                	test   $0x10,%al
4050bf:	75 3b                	jne    0x4050fc
4050c1:	a8 40                	test   $0x40,%al
4050c3:	74 11                	je     0x4050d6
4050c5:	35 80 00 00 00       	xor    $0x80,%eax
4050ca:	84 c0                	test   %al,%al
4050cc:	79 04                	jns    0x4050d2
4050ce:	0c 01                	or     $0x1,%al
4050d0:	eb 07                	jmp    0x4050d9
4050d2:	24 fe                	and    $0xfe,%al
4050d4:	eb 03                	jmp    0x4050d9
4050d6:	83 f0 01             	xor    $0x1,%eax
4050d9:	57                   	push   %edi
4050da:	89 01                	mov    %eax,(%ecx)
4050dc:	e8 9c c0 ff ff       	call   0x40117d
4050e1:	a1 5c a2 42 00       	mov    0x42a25c,%eax
4050e6:	47                   	inc    %edi
4050e7:	f7 d0                	not    %eax
4050e9:	c1 e8 08             	shr    $0x8,%eax
4050ec:	83 e0 01             	and    $0x1,%eax
4050ef:	89 7d 10             	mov    %edi,0x10(%ebp)
4050f2:	89 45 14             	mov    %eax,0x14(%ebp)
4050f5:	c7 45 0c 0f 04 00 00 	movl   $0x40f,0xc(%ebp)
4050fc:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
4050ff:	74 4e                	je     0x40514f
405101:	8b 45 f4             	mov    -0xc(%ebp),%eax
405104:	81 78 08 3d fe ff ff 	cmpl   $0xfffffe3d,0x8(%eax)
40510b:	75 0e                	jne    0x40511b
40510d:	ff 70 5c             	push   0x5c(%eax)
405110:	53                   	push   %ebx
405111:	68 19 04 00 00       	push   $0x419
405116:	ff 75 fc             	push   -0x4(%ebp)
405119:	ff d6                	call   *%esi