405d83:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
405d87:	8b 8d c0 fc ff ff    	mov    -0x340(%ebp),%ecx
405d8d:	c7 85 d4 fc ff ff 00 	movl   $0x0,-0x32c(%ebp)
405d94:	00 00 00
405d97:	c7 85 d8 fc ff ff 07 	movl   $0x7,-0x328(%ebp)
405d9e:	00 00 00
405da1:	66 89 85 c4 fc ff ff 	mov    %ax,-0x33c(%ebp)
405da8:	83 f9 08             	cmp    $0x8,%ecx
405dab:	72 35                	jb     0x405de2
405dad:	8b 95 ac fc ff ff    	mov    -0x354(%ebp),%edx
405db3:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405dba:	8b c2                	mov    %edx,%eax
405dbc:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405dc2:	72 14                	jb     0x405dd8
405dc4:	8b 50 fc             	mov    -0x4(%eax),%edx
405dc7:	83 c1 23             	add    $0x23,%ecx
405dca:	2b c2                	sub    %edx,%eax
405dcc:	83 c0 fc             	add    $0xfffffffc,%eax
405dcf:	83 f8 1f             	cmp    $0x1f,%eax
405dd2:	0f 87 43 07 00 00    	ja     0x40651b
405dd8:	51                   	push   %ecx
405dd9:	52                   	push   %edx
405dda:	e8 2f 5b 01 00       	call   0x41b90e
405ddf:	83 c4 08             	add    $0x8,%esp
405de2:	33 c0                	xor    %eax,%eax
405de4:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
405de8:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
405dee:	c7 85 bc fc ff ff 00 	movl   $0x0,-0x344(%ebp)
405df5:	00 00 00
405df8:	c7 85 c0 fc ff ff 07 	movl   $0x7,-0x340(%ebp)
405dff:	00 00 00
405e02:	66 89 85 ac fc ff ff 	mov    %ax,-0x354(%ebp)
405e09:	83 f9 08             	cmp    $0x8,%ecx
405e0c:	72 35                	jb     0x405e43
405e0e:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
405e14:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405e1b:	8b c2                	mov    %edx,%eax
405e1d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405e23:	72 14                	jb     0x405e39
405e25:	8b 50 fc             	mov    -0x4(%eax),%edx
405e28:	83 c1 23             	add    $0x23,%ecx
405e2b:	2b c2                	sub    %edx,%eax
405e2d:	83 c0 fc             	add    $0xfffffffc,%eax
405e30:	83 f8 1f             	cmp    $0x1f,%eax
405e33:	0f 87 e2 06 00 00    	ja     0x40651b
405e39:	51                   	push   %ecx
405e3a:	52                   	push   %edx
405e3b:	e8 ce 5a 01 00       	call   0x41b90e
405e40:	83 c4 08             	add    $0x8,%esp
405e43:	33 c0                	xor    %eax,%eax
405e45:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405e49:	8b 8d a8 fc ff ff    	mov    -0x358(%ebp),%ecx
405e4f:	c7 85 1c fd ff ff 00 	movl   $0x0,-0x2e4(%ebp)
405e56:	00 00 00
405e59:	c7 85 20 fd ff ff 07 	movl   $0x7,-0x2e0(%ebp)
405e60:	00 00 00
405e63:	66 89 85 0c fd ff ff 	mov    %ax,-0x2f4(%ebp)
405e6a:	83 f9 08             	cmp    $0x8,%ecx
405e6d:	72 35                	jb     0x405ea4
405e6f:	8b 95 94 fc ff ff    	mov    -0x36c(%ebp),%edx
405e75:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405e7c:	8b c2                	mov    %edx,%eax
405e7e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405e84:	72 14                	jb     0x405e9a
405e86:	8b 50 fc             	mov    -0x4(%eax),%edx
405e89:	83 c1 23             	add    $0x23,%ecx
405e8c:	2b c2                	sub    %edx,%eax
405e8e:	83 c0 fc             	add    $0xfffffffc,%eax
405e91:	83 f8 1f             	cmp    $0x1f,%eax
405e94:	0f 87 81 06 00 00    	ja     0x40651b
405e9a:	51                   	push   %ecx
405e9b:	52                   	push   %edx
405e9c:	e8 6d 5a 01 00       	call   0x41b90e
405ea1:	83 c4 08             	add    $0x8,%esp
405ea4:	33 c0                	xor    %eax,%eax
405ea6:	c7 85 a4 fc ff ff 00 	movl   $0x0,-0x35c(%ebp)
405ead:	00 00 00
405eb0:	88 45 fc             	mov    %al,-0x4(%ebp)
405eb3:	8b 8d 08 fd ff ff    	mov    -0x2f8(%ebp),%ecx
405eb9:	c7 85 a8 fc ff ff 07 	movl   $0x7,-0x358(%ebp)
405ec0:	00 00 00
405ec3:	66 89 85 94 fc ff ff 	mov    %ax,-0x36c(%ebp)
405eca:	83 f9 08             	cmp    $0x8,%ecx
405ecd:	72 35                	jb     0x405f04
405ecf:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
405ed5:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405edc:	8b c2                	mov    %edx,%eax
405ede:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405ee4:	72 14                	jb     0x405efa
405ee6:	8b 50 fc             	mov    -0x4(%eax),%edx
405ee9:	83 c1 23             	add    $0x23,%ecx
405eec:	2b c2                	sub    %edx,%eax
405eee:	83 c0 fc             	add    $0xfffffffc,%eax
405ef1:	83 f8 1f             	cmp    $0x1f,%eax
405ef4:	0f 87 21 06 00 00    	ja     0x40651b
405efa:	51                   	push   %ecx
405efb:	52                   	push   %edx
405efc:	e8 0d 5a 01 00       	call   0x41b90e
405f01:	83 c4 08             	add    $0x8,%esp
405f04:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
405f0a:	bb 2c af 44 00       	mov    $0x44af2c,%ebx
405f0f:	85 c0                	test   %eax,%eax
405f11:	8b d3                	mov    %ebx,%edx
405f13:	0f 45 d0             	cmovne %eax,%edx
405f16:	8b ca                	mov    %edx,%ecx
405f18:	8d 41 02             	lea    0x2(%ecx),%eax
405f1b:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
405f21:	66 8b 01             	mov    (%ecx),%ax
405f24:	83 c1 02             	add    $0x2,%ecx
405f27:	66 85 c0             	test   %ax,%ax
405f2a:	75 f5                	jne    0x405f21
405f2c:	2b 8d f0 fc ff ff    	sub    -0x310(%ebp),%ecx
405f32:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
405f37:	2b 46 10             	sub    0x10(%esi),%eax
405f3a:	d1 f9                	sar    $1,%ecx
405f3c:	3b c1                	cmp    %ecx,%eax
405f3e:	0f 82 d2 05 00 00    	jb     0x406516
405f44:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
405f48:	8b c6                	mov    %esi,%eax
405f4a:	72 02                	jb     0x405f4e
405f4c:	8b 06                	mov    (%esi),%eax
405f4e:	ff 76 10             	push   0x10(%esi)
405f51:	50                   	push   %eax
405f52:	51                   	push   %ecx
405f53:	52                   	push   %edx
405f54:	51                   	push   %ecx
405f55:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
405f5b:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
405f61:	e8 0a 6f 00 00       	call   0x40ce70
405f66:	8d 85 0c fd ff ff    	lea    -0x2f4(%ebp),%eax
405f6c:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
405f70:	50                   	push   %eax
405f71:	8b cf                	mov    %edi,%ecx
405f73:	e8 78 47 00 00       	call   0x40a6f0
405f78:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
405f7c:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
405f82:	83 f9 08             	cmp    $0x8,%ecx
405f85:	72 35                	jb     0x405fbc
405f87:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
405f8d:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405f94:	8b c2                	mov    %edx,%eax
405f96:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405f9c:	72 14                	jb     0x405fb2
405f9e:	8b 50 fc             	mov    -0x4(%eax),%edx
405fa1:	83 c1 23             	add    $0x23,%ecx
405fa4:	2b c2                	sub    %edx,%eax
405fa6:	83 c0 fc             	add    $0xfffffffc,%eax
405fa9:	83 f8 1f             	cmp    $0x1f,%eax
405fac:	0f 87 73 05 00 00    	ja     0x406525
405fb2:	51                   	push   %ecx
405fb3:	52                   	push   %edx
405fb4:	e8 55 59 01 00       	call   0x41b90e
405fb9:	83 c4 08             	add    $0x8,%esp
405fbc:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
405fc2:	8b d3                	mov    %ebx,%edx
405fc4:	85 c0                	test   %eax,%eax
405fc6:	0f 45 d0             	cmovne %eax,%edx
405fc9:	8b ca                	mov    %edx,%ecx
405fcb:	8d 41 02             	lea    0x2(%ecx),%eax
405fce:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
405fd4:	66 8b 01             	mov    (%ecx),%ax
405fd7:	83 c1 02             	add    $0x2,%ecx
405fda:	66 85 c0             	test   %ax,%ax
405fdd:	75 f5                	jne    0x405fd4
405fdf:	2b 8d ec fc ff ff    	sub    -0x314(%ebp),%ecx
405fe5:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
405fea:	2b 46 10             	sub    0x10(%esi),%eax
405fed:	d1 f9                	sar    $1,%ecx
405fef:	3b c1                	cmp    %ecx,%eax
405ff1:	0f 82 1f 05 00 00    	jb     0x406516
405ff7:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
405ffb:	8b c6                	mov    %esi,%eax
405ffd:	72 02                	jb     0x406001
405fff:	8b 06                	mov    (%esi),%eax
406001:	ff 76 10             	push   0x10(%esi)
406004:	50                   	push   %eax
406005:	51                   	push   %ecx
406006:	52                   	push   %edx
406007:	51                   	push   %ecx
406008:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
40600e:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
406014:	e8 57 6e 00 00       	call   0x40ce70
406019:	8d 85 0c fd ff ff    	lea    -0x2f4(%ebp),%eax
40601f:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
406023:	50                   	push   %eax
406024:	8b cf                	mov    %edi,%ecx
406026:	e8 c5 46 00 00       	call   0x40a6f0
40602b:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40602f:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
406035:	83 f9 08             	cmp    $0x8,%ecx
406038:	72 35                	jb     0x40606f
40603a:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
406040:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406047:	8b c2                	mov    %edx,%eax
406049:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40604f:	72 14                	jb     0x406065
406051:	8b 50 fc             	mov    -0x4(%eax),%edx
406054:	83 c1 23             	add    $0x23,%ecx
406057:	2b c2                	sub    %edx,%eax
406059:	83 c0 fc             	add    $0xfffffffc,%eax
40605c:	83 f8 1f             	cmp    $0x1f,%eax
40605f:	0f 87 c0 04 00 00    	ja     0x406525
406065:	51                   	push   %ecx
406066:	52                   	push   %edx
406067:	e8 a2 58 01 00       	call   0x41b90e
40606c:	83 c4 08             	add    $0x8,%esp
40606f:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
406075:	8b d3                	mov    %ebx,%edx
406077:	85 c0                	test   %eax,%eax
406079:	0f 45 d0             	cmovne %eax,%edx
40607c:	8b ca                	mov    %edx,%ecx
40607e:	8d 41 02             	lea    0x2(%ecx),%eax
406081:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
406087:	66 8b 01             	mov    (%ecx),%ax
40608a:	83 c1 02             	add    $0x2,%ecx
40608d:	66 85 c0             	test   %ax,%ax
406090:	75 f5                	jne    0x406087
406092:	2b 8d e8 fc ff ff    	sub    -0x318(%ebp),%ecx
406098:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40609d:	2b 46 10             	sub    0x10(%esi),%eax
4060a0:	d1 f9                	sar    $1,%ecx
4060a2:	3b c1                	cmp    %ecx,%eax
4060a4:	0f 82 6c 04 00 00    	jb     0x406516
4060aa:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4060ae:	8b c6                	mov    %esi,%eax
4060b0:	72 02                	jb     0x4060b4
4060b2:	8b 06                	mov    (%esi),%eax
4060b4:	ff 76 10             	push   0x10(%esi)
4060b7:	50                   	push   %eax
4060b8:	51                   	push   %ecx
4060b9:	52                   	push   %edx
4060ba:	51                   	push   %ecx
4060bb:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
4060c1:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
4060c7:	e8 a4 6d 00 00       	call   0x40ce70
4060cc:	8d 85 0c fd ff ff    	lea    -0x2f4(%ebp),%eax
4060d2:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
4060d6:	50                   	push   %eax
4060d7:	8b cf                	mov    %edi,%ecx
4060d9:	e8 12 46 00 00       	call   0x40a6f0
4060de:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4060e2:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
4060e8:	83 f9 08             	cmp    $0x8,%ecx
4060eb:	72 35                	jb     0x406122
4060ed:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
4060f3:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4060fa:	8b c2                	mov    %edx,%eax
4060fc:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406102:	72 14                	jb     0x406118
406104:	8b 50 fc             	mov    -0x4(%eax),%edx
406107:	83 c1 23             	add    $0x23,%ecx
40610a:	2b c2                	sub    %edx,%eax
40610c:	83 c0 fc             	add    $0xfffffffc,%eax
40610f:	83 f8 1f             	cmp    $0x1f,%eax
406112:	0f 87 0d 04 00 00    	ja     0x406525
406118:	51                   	push   %ecx
406119:	52                   	push   %edx
40611a:	e8 ef 57 01 00       	call   0x41b90e
40611f:	83 c4 08             	add    $0x8,%esp
406122:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
406128:	8b d3                	mov    %ebx,%edx
40612a:	85 c0                	test   %eax,%eax
40612c:	0f 45 d0             	cmovne %eax,%edx
40612f:	8b ca                	mov    %edx,%ecx
406131:	8d 41 02             	lea    0x2(%ecx),%eax
406134:	89 85 e4 fc ff ff    	mov    %eax,-0x31c(%ebp)
40613a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
406140:	66 8b 01             	mov    (%ecx),%ax
406143:	83 c1 02             	add    $0x2,%ecx
406146:	66 85 c0             	test   %ax,%ax
406149:	75 f5                	jne    0x406140
40614b:	2b 8d e4 fc ff ff    	sub    -0x31c(%ebp),%ecx
406151:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
406156:	2b 46 10             	sub    0x10(%esi),%eax
406159:	d1 f9                	sar    $1,%ecx
40615b:	3b c1                	cmp    %ecx,%eax
40615d:	0f 82 b3 03 00 00    	jb     0x406516
406163:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
406167:	8b c6                	mov    %esi,%eax
406169:	72 02                	jb     0x40616d
40616b:	8b 06                	mov    (%esi),%eax
40616d:	ff 76 10             	push   0x10(%esi)
406170:	50                   	push   %eax
406171:	51                   	push   %ecx
406172:	52                   	push   %edx
406173:	51                   	push   %ecx
406174:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
40617a:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
406180:	e8 eb 6c 00 00       	call   0x40ce70
406185:	8d 85 0c fd ff ff    	lea    -0x2f4(%ebp),%eax
40618b:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
40618f:	50                   	push   %eax
406190:	8b cf                	mov    %edi,%ecx
406192:	e8 59 45 00 00       	call   0x40a6f0
406197:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40619b:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
4061a1:	83 f9 08             	cmp    $0x8,%ecx
4061a4:	72 35                	jb     0x4061db
4061a6:	8b 95 0c fd ff ff    	mov    -0x2f4(%ebp),%edx
4061ac:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4061b3:	8b c2                	mov    %edx,%eax
4061b5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4061bb:	72 14                	jb     0x4061d1
4061bd:	8b 50 fc             	mov    -0x4(%eax),%edx
4061c0:	83 c1 23             	add    $0x23,%ecx
4061c3:	2b c2                	sub    %edx,%eax
4061c5:	83 c0 fc             	add    $0xfffffffc,%eax
4061c8:	83 f8 1f             	cmp    $0x1f,%eax
4061cb:	0f 87 54 03 00 00    	ja     0x406525
4061d1:	51                   	push   %ecx
4061d2:	52                   	push   %edx
4061d3:	e8 36 57 01 00       	call   0x41b90e
4061d8:	83 c4 08             	add    $0x8,%esp
4061db:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
4061e1:	8b d3                	mov    %ebx,%edx
4061e3:	85 c0                	test   %eax,%eax
4061e5:	0f 45 d0             	cmovne %eax,%edx
4061e8:	8b ca                	mov    %edx,%ecx
4061ea:	8d 41 02             	lea    0x2(%ecx),%eax
4061ed:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
4061f3:	66 8b 01             	mov    (%ecx),%ax
4061f6:	83 c1 02             	add    $0x2,%ecx
4061f9:	66 85 c0             	test   %ax,%ax
4061fc:	75 f5                	jne    0x4061f3
4061fe:	2b 8d e0 fc ff ff    	sub    -0x320(%ebp),%ecx
406204:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
406209:	2b 46 10             	sub    0x10(%esi),%eax
40620c:	d1 f9                	sar    $1,%ecx
40620e:	3b c1                	cmp    %ecx,%eax
406210:	0f 82 00 03 00 00    	jb     0x406516
406216:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40621a:	8b c6                	mov    %esi,%eax
40621c:	72 02                	jb     0x406220
40621e:	8b 06                	mov    (%esi),%eax
406220:	ff 76 10             	push   0x10(%esi)
406223:	50                   	push   %eax
406224:	51                   	push   %ecx
406225:	52                   	push   %edx
406226:	51                   	push   %ecx
406227:	ff b5 24 fd ff ff    	push   -0x2dc(%ebp)
40622d:	8d 8d 0c fd ff ff    	lea    -0x2f4(%ebp),%ecx
406233:	e8 38 6c 00 00       	call   0x40ce70
406238:	8d 85 0c fd ff ff    	lea    -0x2f4(%ebp),%eax
40623e:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
406242:	50                   	push   %eax
406243:	8b cf                	mov    %edi,%ecx
406245:	e8 a6 44 00 00       	call   0x40a6f0
40624a:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40624e:	8b 8d 20 fd ff ff    	mov    -0x2e0(%ebp),%ecx
406254:	83 f9 08             	cmp    $0x8,%ecx