401d27:	68 14 c2 40 00       	push   $0x40c214
401d2c:	56                   	push   %esi
401d2d:	6a 08                	push   $0x8
401d2f:	68 00 04 00 00       	push   $0x400
401d34:	ff 15 f4 a0 40 00    	call   *0x40a0f4
401d3a:	8d 43 2d             	lea    0x2d(%ebx),%eax
401d3d:	50                   	push   %eax
401d3e:	56                   	push   %esi
401d3f:	6a 0c                	push   $0xc
401d41:	ff 75 08             	push   0x8(%ebp)
401d44:	ff 15 dc a2 40 00    	call   *0x40a2dc
401d4a:	e8 48 71 00 00       	call   0x408e97
401d4f:	8b c8                	mov    %eax,%ecx
401d51:	0b ca                	or     %edx,%ecx
401d53:	74 78                	je     0x401dcd
401d55:	57                   	push   %edi
401d56:	56                   	push   %esi
401d57:	68 80 96 98 00       	push   $0x989680
401d5c:	52                   	push   %edx
401d5d:	50                   	push   %eax
401d5e:	e8 7d 72 00 00       	call   0x408fe0
401d63:	bf 80 51 01 00       	mov    $0x15180,%edi
401d68:	56                   	push   %esi
401d69:	57                   	push   %edi
401d6a:	52                   	push   %edx
401d6b:	50                   	push   %eax
401d6c:	89 45 f8             	mov    %eax,-0x8(%ebp)
401d6f:	e8 ec 71 00 00       	call   0x408f60
401d74:	56                   	push   %esi
401d75:	be 10 0e 00 00       	mov    $0xe10,%esi
401d7a:	56                   	push   %esi
401d7b:	52                   	push   %edx
401d7c:	50                   	push   %eax
401d7d:	89 45 f0             	mov    %eax,-0x10(%ebp)
401d80:	e8 db 71 00 00       	call   0x408f60
401d85:	6a 3c                	push   $0x3c
401d87:	33 d2                	xor    %edx,%edx
401d89:	59                   	pop    %ecx
401d8a:	f7 f1                	div    %ecx
401d8c:	33 d2                	xor    %edx,%edx
401d8e:	50                   	push   %eax
401d8f:	8b 45 f0             	mov    -0x10(%ebp),%eax
401d92:	f7 f6                	div    %esi
401d94:	33 d2                	xor    %edx,%edx
401d96:	50                   	push   %eax
401d97:	8b 45 f8             	mov    -0x8(%ebp),%eax
401d9a:	f7 f7                	div    %edi
401d9c:	50                   	push   %eax
401d9d:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
401da3:	68 00 c2 40 00       	push   $0x40c200
401da8:	50                   	push   %eax
401da9:	ff 15 58 a1 40 00    	call   *0x40a158
401daf:	83 c4 14             	add    $0x14,%esp
401db2:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
401db8:	50                   	push   %eax
401db9:	6a 03                	push   $0x3
401dbb:	68 01 04 00 00       	push   $0x401
401dc0:	ff b3 f4 01 00 00    	push   0x1f4(%ebx)
401dc6:	ff 15 dc a2 40 00    	call   *0x40a2dc
401dcc:	5f                   	pop    %edi
401dcd:	5e                   	pop    %esi
401dce:	5b                   	pop    %ebx
401dcf:	c9                   	leave
401dd0:	c2 0c 00             	ret    $0xc
401dd3:	55                   	push   %ebp
401dd4:	8b ec                	mov    %esp,%ebp
401dd6:	8b 45 0c             	mov    0xc(%ebp),%eax
401dd9:	83 e8 10             	sub    $0x10,%eax
401ddc:	74 49                	je     0x401e27
401dde:	2d 00 01 00 00       	sub    $0x100,%eax
401de3:	74 32                	je     0x401e17
401de5:	48                   	dec    %eax
401de6:	75 2b                	jne    0x401e13
401de8:	0f b7 45 10          	movzwl 0x10(%ebp),%eax
401dec:	2d ea 03 00 00       	sub    $0x3ea,%eax
401df1:	74 07                	je     0x401dfa
401df3:	48                   	dec    %eax
401df4:	75 1d                	jne    0x401e13
401df6:	6a 02                	push   $0x2
401df8:	eb 10                	jmp    0x401e0a
401dfa:	ff 75 08             	push   0x8(%ebp)
401dfd:	8b 0d ec d4 40 00    	mov    0x40d4ec,%ecx
401e03:	e8 ea 01 00 00       	call   0x401ff2
401e08:	6a 01                	push   $0x1
401e0a:	ff 75 08             	push   0x8(%ebp)
401e0d:	ff 15 c0 a2 40 00    	call   *0x40a2c0
401e13:	33 c0                	xor    %eax,%eax
401e15:	eb 1e                	jmp    0x401e35
401e17:	ff 75 08             	push   0x8(%ebp)
401e1a:	8b 0d ec d4 40 00    	mov    0x40d4ec,%ecx
401e20:	e8 56 00 00 00       	call   0x401e7b
401e25:	eb 0b                	jmp    0x401e32
401e27:	6a 02                	push   $0x2
401e29:	ff 75 08             	push   0x8(%ebp)
401e2c:	ff 15 c0 a2 40 00    	call   *0x40a2c0
401e32:	6a 01                	push   $0x1
401e34:	58                   	pop    %eax
401e35:	5d                   	pop    %ebp
401e36:	c2 10 00             	ret    $0x10
401e39:	83 3d ec d4 40 00 00 	cmpl   $0x0,0x40d4ec
401e40:	74 05                	je     0x401e47
401e42:	83 c8 ff             	or     $0xffffffff,%eax
401e45:	eb 31                	jmp    0x401e78
401e47:	8b 44 24 08          	mov    0x8(%esp),%eax
401e4b:	6a 00                	push   $0x0
401e4d:	68 d3 1d 40 00       	push   $0x401dd3
401e52:	89 0d ec d4 40 00    	mov    %ecx,0x40d4ec
401e58:	ff 74 24 0c          	push   0xc(%esp)
401e5c:	89 01                	mov    %eax,(%ecx)
401e5e:	6a 67                	push   $0x67
401e60:	6a 00                	push   $0x0
401e62:	ff 15 f8 a0 40 00    	call   *0x40a0f8
401e68:	50                   	push   %eax
401e69:	ff 15 e4 a2 40 00    	call   *0x40a2e4
401e6f:	83 25 ec d4 40 00 00 	andl   $0x0,0x40d4ec
401e76:	33 c0                	xor    %eax,%eax
401e78:	c2 08 00             	ret    $0x8
401e7b:	81 ec 14 01 00 00    	sub    $0x114,%esp
401e81:	53                   	push   %ebx
401e82:	55                   	push   %ebp
401e83:	8b 1d dc a2 40 00    	mov    0x40a2dc,%ebx
401e89:	56                   	push   %esi
401e8a:	8d 44 24 1c          	lea    0x1c(%esp),%eax
401e8e:	57                   	push   %edi
401e8f:	50                   	push   %eax
401e90:	8b f1                	mov    %ecx,%esi
401e92:	68 04 01 00 00       	push   $0x104
401e97:	6a 0d                	push   $0xd
401e99:	ff 36                	push   (%esi)
401e9b:	89 74 24 2c          	mov    %esi,0x2c(%esp)
401e9f:	ff d3                	call   *%ebx
401ea1:	85 c0                	test   %eax,%eax
401ea3:	74 17                	je     0x401ebc
401ea5:	8d 44 24 20          	lea    0x20(%esp),%eax
401ea9:	50                   	push   %eax
401eaa:	68 e9 03 00 00       	push   $0x3e9
401eaf:	ff b4 24 30 01 00 00 	push   0x130(%esp)
401eb6:	ff 15 b4 a2 40 00    	call   *0x40a2b4
401ebc:	6a f0                	push   $0xfffffff0
401ebe:	ff 36                	push   (%esi)
401ec0:	ff 15 b8 a2 40 00    	call   *0x40a2b8
401ec6:	8b 3d bc a2 40 00    	mov    0x40a2bc,%edi
401ecc:	33 f6                	xor    %esi,%esi
401ece:	89 44 24 18          	mov    %eax,0x18(%esp)
401ed2:	89 74 24 14          	mov    %esi,0x14(%esp)
401ed6:	c7 44 24 10 24 c2 40 	movl   $0x40c224,0x10(%esp)
401edd:	00
401ede:	bd f1 00 00 00       	mov    $0xf1,%ebp
401ee3:	8b 44 24 10          	mov    0x10(%esp),%eax
401ee7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
401eeb:	8b 00                	mov    (%eax),%eax
401eed:	85 c1                	test   %eax,%ecx
401eef:	74 1d                	je     0x401f0e
401ef1:	0b f0                	or     %eax,%esi
401ef3:	8b 44 24 14          	mov    0x14(%esp),%eax
401ef7:	6a 00                	push   $0x0
401ef9:	6a 01                	push   $0x1
401efb:	05 f2 03 00 00       	add    $0x3f2,%eax
401f00:	55                   	push   %ebp
401f01:	50                   	push   %eax
401f02:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f09:	ff d7                	call   *%edi
401f0b:	50                   	push   %eax
401f0c:	ff d3                	call   *%ebx
401f0e:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
401f13:	ff 44 24 14          	incl   0x14(%esp)
401f17:	81 7c 24 10 6c c2 40 	cmpl   $0x40c26c,0x10(%esp)
401f1e:	00
401f1f:	7c c2                	jl     0x401ee3
401f21:	8b 44 24 1c          	mov    0x1c(%esp),%eax
401f25:	6a ec                	push   $0xffffffec
401f27:	f7 d6                	not    %esi
401f29:	23 74 24 1c          	and    0x1c(%esp),%esi
401f2d:	ff 30                	push   (%eax)
401f2f:	89 70 04             	mov    %esi,0x4(%eax)
401f32:	ff 15 b8 a2 40 00    	call   *0x40a2b8
401f38:	33 f6                	xor    %esi,%esi
401f3a:	89 44 24 18          	mov    %eax,0x18(%esp)
401f3e:	f6 c4 20             	test   $0x20,%ah
401f41:	89 74 24 14          	mov    %esi,0x14(%esp)
401f45:	75 15                	jne    0x401f5c
401f47:	56                   	push   %esi
401f48:	6a 01                	push   $0x1
401f4a:	55                   	push   %ebp
401f4b:	68 1d 04 00 00       	push   $0x41d
401f50:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f57:	ff d7                	call   *%edi
401f59:	50                   	push   %eax
401f5a:	ff d3                	call   *%ebx
401f5c:	f6 44 24 19 10       	testb  $0x10,0x19(%esp)
401f61:	75 15                	jne    0x401f78
401f63:	56                   	push   %esi
401f64:	6a 01                	push   $0x1
401f66:	55                   	push   %ebp
401f67:	68 1b 04 00 00       	push   $0x41b
401f6c:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f73:	ff d7                	call   *%edi
401f75:	50                   	push   %eax
401f76:	ff d3                	call   *%ebx
401f78:	f6 44 24 19 40       	testb  $0x40,0x19(%esp)
401f7d:	75 15                	jne    0x401f94
401f7f:	56                   	push   %esi
401f80:	6a 01                	push   $0x1
401f82:	55                   	push   %ebp
401f83:	68 1f 04 00 00       	push   $0x41f
401f88:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f8f:	ff d7                	call   *%edi
401f91:	50                   	push   %eax
401f92:	ff d3                	call   *%ebx
401f94:	c7 44 24 10 6c c2 40 	movl   $0x40c26c,0x10(%esp)
401f9b:	00
401f9c:	8b 44 24 10          	mov    0x10(%esp),%eax
401fa0:	8b 00                	mov    (%eax),%eax
401fa2:	85 44 24 18          	test   %eax,0x18(%esp)
401fa6:	74 1c                	je     0x401fc4
401fa8:	09 44 24 14          	or     %eax,0x14(%esp)
401fac:	6a 00                	push   $0x0
401fae:	6a 01                	push   $0x1
401fb0:	8d 86 10 04 00 00    	lea    0x410(%esi),%eax
401fb6:	55                   	push   %ebp
401fb7:	50                   	push   %eax
401fb8:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401fbf:	ff d7                	call   *%edi
401fc1:	50                   	push   %eax
401fc2:	ff d3                	call   *%ebx
401fc4:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
401fc9:	46                   	inc    %esi
401fca:	81 7c 24 10 b8 c2 40 	cmpl   $0x40c2b8,0x10(%esp)
401fd1:	00
401fd2:	7c c8                	jl     0x401f9c
401fd4:	8b 44 24 14          	mov    0x14(%esp),%eax
401fd8:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
401fdc:	f7 d0                	not    %eax
401fde:	23 44 24 18          	and    0x18(%esp),%eax
401fe2:	5f                   	pop    %edi
401fe3:	5e                   	pop    %esi
401fe4:	5d                   	pop    %ebp
401fe5:	89 41 08             	mov    %eax,0x8(%ecx)
401fe8:	5b                   	pop    %ebx
401fe9:	81 c4 14 01 00 00    	add    $0x114,%esp
401fef:	c2 04 00             	ret    $0x4
401ff2:	55                   	push   %ebp
401ff3:	8b ec                	mov    %esp,%ebp
401ff5:	81 ec 10 01 00 00    	sub    $0x110,%esp
401ffb:	53                   	push   %ebx
401ffc:	56                   	push   %esi
401ffd:	57                   	push   %edi
401ffe:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
402004:	68 04 01 00 00       	push   $0x104
402009:	50                   	push   %eax
40200a:	68 e9 03 00 00       	push   $0x3e9
40200f:	8b f9                	mov    %ecx,%edi
402011:	ff 75 08             	push   0x8(%ebp)
402014:	ff 15 ac a2 40 00    	call   *0x40a2ac
40201a:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
402020:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
402026:	33 db                	xor    %ebx,%ebx
402028:	50                   	push   %eax
402029:	53                   	push   %ebx
40202a:	6a 0c                	push   $0xc
40202c:	ff 37                	push   (%edi)
40202e:	ff d6                	call   *%esi
402030:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402033:	89 5d f4             	mov    %ebx,-0xc(%ebp)
402036:	8b 1d bc a2 40 00    	mov    0x40a2bc,%ebx
40203c:	c7 45 fc 24 c2 40 00 	movl   $0x40c224,-0x4(%ebp)
402043:	8b 45 f4             	mov    -0xc(%ebp),%eax
402046:	6a 00                	push   $0x0
402048:	6a 00                	push   $0x0
40204a:	05 f2 03 00 00       	add    $0x3f2,%eax
40204f:	68 f0 00 00 00       	push   $0xf0
402054:	50                   	push   %eax
402055:	ff 75 08             	push   0x8(%ebp)
402058:	ff d3                	call   *%ebx
40205a:	50                   	push   %eax
40205b:	ff d6                	call   *%esi
40205d:	83 f8 01             	cmp    $0x1,%eax
402060:	75 08                	jne    0x40206a
402062:	8b 45 fc             	mov    -0x4(%ebp),%eax
402065:	8b 00                	mov    (%eax),%eax
402067:	09 45 f8             	or     %eax,-0x8(%ebp)
40206a:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
40206e:	ff 45 f4             	incl   -0xc(%ebp)
402071:	81 7d fc 6c c2 40 00 	cmpl   $0x40c26c,-0x4(%ebp)
402078:	7c c9                	jl     0x402043
40207a:	8b 47 04             	mov    0x4(%edi),%eax
40207d:	0b 45 f8             	or     -0x8(%ebp),%eax
402080:	50                   	push   %eax
402081:	6a f0                	push   $0xfffffff0
402083:	ff 37                	push   (%edi)
402085:	ff 15 b0 a2 40 00    	call   *0x40a2b0
40208b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40208f:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
402093:	c7 45 fc 6c c2 40 00 	movl   $0x40c26c,-0x4(%ebp)
40209a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40209d:	6a 00                	push   $0x0
40209f:	6a 00                	push   $0x0
4020a1:	05 10 04 00 00       	add    $0x410,%eax
4020a6:	68 f0 00 00 00       	push   $0xf0
4020ab:	50                   	push   %eax
4020ac:	ff 75 08             	push   0x8(%ebp)
4020af:	ff d3                	call   *%ebx
4020b1:	50                   	push   %eax
4020b2:	ff d6                	call   *%esi
4020b4:	83 f8 01             	cmp    $0x1,%eax
4020b7:	75 08                	jne    0x4020c1
4020b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4020bc:	8b 00                	mov    (%eax),%eax
4020be:	09 45 f8             	or     %eax,-0x8(%ebp)
4020c1:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
4020c5:	ff 45 f4             	incl   -0xc(%ebp)
4020c8:	81 7d fc b8 c2 40 00 	cmpl   $0x40c2b8,-0x4(%ebp)
4020cf:	7c c9                	jl     0x40209a
4020d1:	8b 47 08             	mov    0x8(%edi),%eax
4020d4:	0b 45 f8             	or     -0x8(%ebp),%eax
4020d7:	50                   	push   %eax
4020d8:	6a ec                	push   $0xffffffec
4020da:	ff 37                	push   (%edi)
4020dc:	ff 15 b0 a2 40 00    	call   *0x40a2b0
4020e2:	5f                   	pop    %edi
4020e3:	5e                   	pop    %esi
4020e4:	5b                   	pop    %ebx
4020e5:	c9                   	leave
4020e6:	c2 04 00             	ret    $0x4
4020e9:	55                   	push   %ebp
4020ea:	8b ec                	mov    %esp,%ebp
4020ec:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4020f0:	53                   	push   %ebx
4020f1:	56                   	push   %esi
4020f2:	8b 75 10             	mov    0x10(%ebp),%esi
4020f5:	75 72                	jne    0x402169
4020f7:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
4020fd:	57                   	push   %edi
4020fe:	56                   	push   %esi
4020ff:	e8 6a 02 00 00       	call   0x40236e
402104:	ff 76 04             	push   0x4(%esi)
402107:	ff 36                	push   (%esi)
402109:	ff 15 a4 a2 40 00    	call   *0x40a2a4
40210f:	8b 3d d4 a2 40 00    	mov    0x40a2d4,%edi
402115:	6a 01                	push   $0x1
402117:	8b d8                	mov    %eax,%ebx
402119:	ff d7                	call   *%edi
40211b:	66 85 c0             	test   %ax,%ax
40211e:	74 0e                	je     0x40212e
402120:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
402126:	56                   	push   %esi
402127:	e8 cf 01 00 00       	call   0x4022fb
40212c:	eb 20                	jmp    0x40214e
40212e:	6a 02                	push   $0x2
402130:	ff d7                	call   *%edi