40bc2c:	6a 11                	push   $0x11
40bc2e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bc31:	50                   	push   %eax
40bc32:	6a 01                	push   $0x1
40bc34:	68 80 00 00 00       	push   $0x80
40bc39:	e8 c6 58 ff ff       	call   0x401504
40bc3e:	83 c4 1c             	add    $0x1c,%esp
40bc41:	ff 75 ec             	push   -0x14(%ebp)
40bc44:	8d 45 cc             	lea    -0x34(%ebp),%eax
40bc47:	50                   	push   %eax
40bc48:	e8 93 58 ff ff       	call   0x4014e0
40bc4d:	8d 45 90             	lea    -0x70(%ebp),%eax
40bc50:	50                   	push   %eax
40bc51:	ff 75 e8             	push   -0x18(%ebp)
40bc54:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bc57:	33 c9                	xor    %ecx,%ecx
40bc59:	2b 48 14             	sub    0x14(%eax),%ecx
40bc5c:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bc5f:	8b 40 0c             	mov    0xc(%eax),%eax
40bc62:	03 c1                	add    %ecx,%eax
40bc64:	50                   	push   %eax
40bc65:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bc68:	8b 00                	mov    (%eax),%eax
40bc6a:	ff 75 e0             	push   -0x20(%ebp)
40bc6d:	ff 50 0c             	call   *0xc(%eax)
40bc70:	db e2                	fnclex
40bc72:	89 45 88             	mov    %eax,-0x78(%ebp)
40bc75:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bc79:	7d 1a                	jge    0x40bc95
40bc7b:	6a 0c                	push   $0xc
40bc7d:	68 c0 47 40 00       	push   $0x4047c0
40bc82:	ff 75 e0             	push   -0x20(%ebp)
40bc85:	ff 75 88             	push   -0x78(%ebp)
40bc88:	e8 47 58 ff ff       	call   0x4014d4
40bc8d:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
40bc93:	eb 07                	jmp    0x40bc9c
40bc95:	83 a5 4c ff ff ff 00 	andl   $0x0,-0xb4(%ebp)
40bc9c:	8d 45 cc             	lea    -0x34(%ebp),%eax
40bc9f:	50                   	push   %eax
40bca0:	e8 35 58 ff ff       	call   0x4014da
40bca5:	8b 45 80             	mov    -0x80(%ebp),%eax
40bca8:	8b 40 50             	mov    0x50(%eax),%eax
40bcab:	83 e0 01             	and    $0x1,%eax
40bcae:	85 c0                	test   %eax,%eax
40bcb0:	74 46                	je     0x40bcf8
40bcb2:	8b 45 80             	mov    -0x80(%ebp),%eax
40bcb5:	8b 40 04             	mov    0x4(%eax),%eax
40bcb8:	89 45 9c             	mov    %eax,-0x64(%ebp)
40bcbb:	c7 45 94 08 00 00 00 	movl   $0x8,-0x6c(%ebp)
40bcc2:	8d 55 94             	lea    -0x6c(%ebp),%edx
40bcc5:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40bcc8:	e8 89 57 ff ff       	call   0x401456
40bccd:	6a ff                	push   $0xffffffff
40bccf:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40bcd2:	50                   	push   %eax
40bcd3:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bcd6:	50                   	push   %eax
40bcd7:	e8 f4 0e 00 00       	call   0x40cbd0
40bcdc:	66 f7 d0             	not    %ax
40bcdf:	66 89 45 88          	mov    %ax,-0x78(%ebp)
40bce3:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40bce6:	e8 b9 57 ff ff       	call   0x4014a4
40bceb:	0f bf 45 88          	movswl -0x78(%ebp),%eax
40bcef:	85 c0                	test   %eax,%eax
40bcf1:	74 05                	je     0x40bcf8
40bcf3:	e9 72 07 00 00       	jmp    0x40c46a
40bcf8:	8b 45 80             	mov    -0x80(%ebp),%eax
40bcfb:	8b 40 50             	mov    0x50(%eax),%eax
40bcfe:	83 e0 04             	and    $0x4,%eax
40bd01:	85 c0                	test   %eax,%eax
40bd03:	74 15                	je     0x40bd1a
40bd05:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bd08:	50                   	push   %eax
40bd09:	e8 0d 0c 00 00       	call   0x40c91b
40bd0e:	0f bf c0             	movswl %ax,%eax
40bd11:	85 c0                	test   %eax,%eax
40bd13:	75 05                	jne    0x40bd1a
40bd15:	e9 50 07 00 00       	jmp    0x40c46a
40bd1a:	8d 45 90             	lea    -0x70(%ebp),%eax
40bd1d:	50                   	push   %eax
40bd1e:	6a 04                	push   $0x4
40bd20:	8d 45 e8             	lea    -0x18(%ebp),%eax
40bd23:	50                   	push   %eax
40bd24:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bd27:	8b 00                	mov    (%eax),%eax
40bd29:	ff 75 e0             	push   -0x20(%ebp)
40bd2c:	ff 50 0c             	call   *0xc(%eax)
40bd2f:	db e2                	fnclex
40bd31:	89 45 88             	mov    %eax,-0x78(%ebp)
40bd34:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bd38:	7d 1a                	jge    0x40bd54
40bd3a:	6a 0c                	push   $0xc
40bd3c:	68 c0 47 40 00       	push   $0x4047c0
40bd41:	ff 75 e0             	push   -0x20(%ebp)
40bd44:	ff 75 88             	push   -0x78(%ebp)
40bd47:	e8 88 57 ff ff       	call   0x4014d4
40bd4c:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
40bd52:	eb 07                	jmp    0x40bd5b
40bd54:	83 a5 48 ff ff ff 00 	andl   $0x0,-0xb8(%ebp)
40bd5b:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40bd5f:	0f 8e 52 01 00 00    	jle    0x40beb7
40bd65:	81 7d e8 00 00 00 10 	cmpl   $0x10000000,-0x18(%ebp)
40bd6c:	0f 8d 45 01 00 00    	jge    0x40beb7
40bd72:	6a 00                	push   $0x0
40bd74:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bd77:	48                   	dec    %eax
40bd78:	50                   	push   %eax
40bd79:	6a 01                	push   $0x1
40bd7b:	6a 11                	push   $0x11
40bd7d:	8d 45 d8             	lea    -0x28(%ebp),%eax
40bd80:	50                   	push   %eax
40bd81:	6a 01                	push   $0x1
40bd83:	68 80 00 00 00       	push   $0x80
40bd88:	e8 77 57 ff ff       	call   0x401504
40bd8d:	83 c4 1c             	add    $0x1c,%esp
40bd90:	ff 75 d8             	push   -0x28(%ebp)
40bd93:	8d 45 cc             	lea    -0x34(%ebp),%eax
40bd96:	50                   	push   %eax
40bd97:	e8 44 57 ff ff       	call   0x4014e0
40bd9c:	8d 45 90             	lea    -0x70(%ebp),%eax
40bd9f:	50                   	push   %eax
40bda0:	ff 75 e8             	push   -0x18(%ebp)
40bda3:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bda6:	33 c9                	xor    %ecx,%ecx
40bda8:	2b 48 14             	sub    0x14(%eax),%ecx
40bdab:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bdae:	8b 40 0c             	mov    0xc(%eax),%eax
40bdb1:	03 c1                	add    %ecx,%eax
40bdb3:	50                   	push   %eax
40bdb4:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bdb7:	8b 00                	mov    (%eax),%eax
40bdb9:	ff 75 e0             	push   -0x20(%ebp)
40bdbc:	ff 50 0c             	call   *0xc(%eax)
40bdbf:	db e2                	fnclex
40bdc1:	89 45 88             	mov    %eax,-0x78(%ebp)
40bdc4:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bdc8:	7d 1a                	jge    0x40bde4
40bdca:	6a 0c                	push   $0xc
40bdcc:	68 c0 47 40 00       	push   $0x4047c0
40bdd1:	ff 75 e0             	push   -0x20(%ebp)
40bdd4:	ff 75 88             	push   -0x78(%ebp)
40bdd7:	e8 f8 56 ff ff       	call   0x4014d4
40bddc:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
40bde2:	eb 07                	jmp    0x40bdeb
40bde4:	83 a5 44 ff ff ff 00 	andl   $0x0,-0xbc(%ebp)
40bdeb:	8d 45 cc             	lea    -0x34(%ebp),%eax
40bdee:	50                   	push   %eax
40bdef:	e8 e6 56 ff ff       	call   0x4014da
40bdf4:	8b 45 80             	mov    -0x80(%ebp),%eax
40bdf7:	8b 40 50             	mov    0x50(%eax),%eax
40bdfa:	83 e0 02             	and    $0x2,%eax
40bdfd:	85 c0                	test   %eax,%eax
40bdff:	74 46                	je     0x40be47
40be01:	8b 45 80             	mov    -0x80(%ebp),%eax
40be04:	8b 40 08             	mov    0x8(%eax),%eax
40be07:	89 45 9c             	mov    %eax,-0x64(%ebp)
40be0a:	c7 45 94 08 00 00 00 	movl   $0x8,-0x6c(%ebp)
40be11:	8d 55 94             	lea    -0x6c(%ebp),%edx
40be14:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40be17:	e8 3a 56 ff ff       	call   0x401456
40be1c:	6a ff                	push   $0xffffffff
40be1e:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40be21:	50                   	push   %eax
40be22:	8d 45 d8             	lea    -0x28(%ebp),%eax
40be25:	50                   	push   %eax
40be26:	e8 a5 0d 00 00       	call   0x40cbd0
40be2b:	66 f7 d0             	not    %ax
40be2e:	66 89 45 88          	mov    %ax,-0x78(%ebp)
40be32:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40be35:	e8 6a 56 ff ff       	call   0x4014a4
40be3a:	0f bf 45 88          	movswl -0x78(%ebp),%eax
40be3e:	85 c0                	test   %eax,%eax
40be40:	74 05                	je     0x40be47
40be42:	e9 23 06 00 00       	jmp    0x40c46a
40be47:	8b 45 80             	mov    -0x80(%ebp),%eax
40be4a:	8b 40 50             	mov    0x50(%eax),%eax
40be4d:	83 e0 08             	and    $0x8,%eax
40be50:	85 c0                	test   %eax,%eax
40be52:	74 15                	je     0x40be69
40be54:	8d 45 d8             	lea    -0x28(%ebp),%eax
40be57:	50                   	push   %eax
40be58:	e8 be 0a 00 00       	call   0x40c91b
40be5d:	0f bf c0             	movswl %ax,%eax
40be60:	85 c0                	test   %eax,%eax
40be62:	75 05                	jne    0x40be69
40be64:	e9 01 06 00 00       	jmp    0x40c46a
40be69:	ff 75 d8             	push   -0x28(%ebp)
40be6c:	8d 45 cc             	lea    -0x34(%ebp),%eax
40be6f:	50                   	push   %eax
40be70:	e8 6b 56 ff ff       	call   0x4014e0
40be75:	8b 45 cc             	mov    -0x34(%ebp),%eax
40be78:	33 c9                	xor    %ecx,%ecx
40be7a:	2b 48 14             	sub    0x14(%eax),%ecx
40be7d:	8b 45 cc             	mov    -0x34(%ebp),%eax
40be80:	8b 40 0c             	mov    0xc(%eax),%eax
40be83:	03 c1                	add    %ecx,%eax
40be85:	50                   	push   %eax
40be86:	e8 2b 56 ff ff       	call   0x4014b6
40be8b:	89 45 90             	mov    %eax,-0x70(%ebp)
40be8e:	8d 45 cc             	lea    -0x34(%ebp),%eax
40be91:	50                   	push   %eax
40be92:	e8 43 56 ff ff       	call   0x4014da
40be97:	8b 45 d8             	mov    -0x28(%ebp),%eax
40be9a:	f7 d0                	not    %eax
40be9c:	f7 d0                	not    %eax
40be9e:	50                   	push   %eax
40be9f:	e8 ad a5 ff ff       	call   0x406451
40bea4:	50                   	push   %eax
40bea5:	ff 75 90             	push   -0x70(%ebp)
40bea8:	e8 97 38 05 00       	call   0x45f744
40bead:	50                   	push   %eax
40beae:	8d 45 d0             	lea    -0x30(%ebp),%eax
40beb1:	50                   	push   %eax
40beb2:	e8 47 56 ff ff       	call   0x4014fe
40beb7:	ff 75 ec             	push   -0x14(%ebp)
40beba:	8d 45 cc             	lea    -0x34(%ebp),%eax
40bebd:	50                   	push   %eax
40bebe:	e8 1d 56 ff ff       	call   0x4014e0
40bec3:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bec6:	33 c9                	xor    %ecx,%ecx
40bec8:	2b 48 14             	sub    0x14(%eax),%ecx
40becb:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bece:	8b 40 0c             	mov    0xc(%eax),%eax
40bed1:	03 c1                	add    %ecx,%eax
40bed3:	50                   	push   %eax
40bed4:	e8 dd 55 ff ff       	call   0x4014b6
40bed9:	89 45 90             	mov    %eax,-0x70(%ebp)
40bedc:	8d 45 cc             	lea    -0x34(%ebp),%eax
40bedf:	50                   	push   %eax
40bee0:	e8 f5 55 ff ff       	call   0x4014da
40bee5:	8b 45 ec             	mov    -0x14(%ebp),%eax
40bee8:	f7 d0                	not    %eax
40beea:	f7 d0                	not    %eax
40beec:	50                   	push   %eax
40beed:	e8 5f a5 ff ff       	call   0x406451
40bef2:	50                   	push   %eax
40bef3:	ff 75 90             	push   -0x70(%ebp)
40bef6:	e8 49 38 05 00       	call   0x45f744
40befb:	50                   	push   %eax
40befc:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40beff:	50                   	push   %eax
40bf00:	e8 f9 55 ff ff       	call   0x4014fe
40bf05:	8b 45 80             	mov    -0x80(%ebp),%eax
40bf08:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40bf0c:	7e 20                	jle    0x40bf2e
40bf0e:	6a 00                	push   $0x0
40bf10:	8b 45 80             	mov    -0x80(%ebp),%eax
40bf13:	8b 40 0c             	mov    0xc(%eax),%eax
40bf16:	48                   	dec    %eax
40bf17:	50                   	push   %eax
40bf18:	6a 01                	push   $0x1
40bf1a:	68 5c 37 40 00       	push   $0x40375c
40bf1f:	ff 75 10             	push   0x10(%ebp)
40bf22:	6a 20                	push   $0x20
40bf24:	6a 00                	push   $0x0
40bf26:	e8 d9 55 ff ff       	call   0x401504
40bf2b:	83 c4 1c             	add    $0x1c,%esp
40bf2e:	8b 45 80             	mov    -0x80(%ebp),%eax
40bf31:	8b 40 0c             	mov    0xc(%eax),%eax
40bf34:	48                   	dec    %eax
40bf35:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40bf3b:	c7 85 78 ff ff ff 01 	movl   $0x1,-0x88(%ebp)
40bf42:	00 00 00
40bf45:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
40bf49:	eb 0c                	jmp    0x40bf57
40bf4b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40bf4e:	03 85 78 ff ff ff    	add    -0x88(%ebp),%eax
40bf54:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40bf57:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40bf5a:	3b 85 74 ff ff ff    	cmp    -0x8c(%ebp),%eax
40bf60:	0f 8f fb 04 00 00    	jg     0x40c461
40bf66:	8b 45 10             	mov    0x10(%ebp),%eax
40bf69:	ff 30                	push   (%eax)
40bf6b:	8d 45 84             	lea    -0x7c(%ebp),%eax
40bf6e:	50                   	push   %eax
40bf6f:	e8 6c 55 ff ff       	call   0x4014e0
40bf74:	8b 45 84             	mov    -0x7c(%ebp),%eax
40bf77:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40bf7a:	2b 48 14             	sub    0x14(%eax),%ecx
40bf7d:	c1 e1 05             	shl    $0x5,%ecx
40bf80:	8b 45 84             	mov    -0x7c(%ebp),%eax
40bf83:	8b 40 0c             	mov    0xc(%eax),%eax
40bf86:	03 c1                	add    %ecx,%eax
40bf88:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40bf8e:	8b 45 0c             	mov    0xc(%ebp),%eax
40bf91:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40bf94:	3b 48 10             	cmp    0x10(%eax),%ecx
40bf97:	0f 84 be 03 00 00    	je     0x40c35b
40bf9d:	8d 45 90             	lea    -0x70(%ebp),%eax
40bfa0:	50                   	push   %eax
40bfa1:	6a 04                	push   $0x4
40bfa3:	8d 45 e8             	lea    -0x18(%ebp),%eax
40bfa6:	50                   	push   %eax
40bfa7:	8b 45 d0             	mov    -0x30(%ebp),%eax
40bfaa:	8b 00                	mov    (%eax),%eax
40bfac:	ff 75 d0             	push   -0x30(%ebp)
40bfaf:	ff 50 0c             	call   *0xc(%eax)
40bfb2:	db e2                	fnclex
40bfb4:	89 45 88             	mov    %eax,-0x78(%ebp)
40bfb7:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bfbb:	7d 1a                	jge    0x40bfd7
40bfbd:	6a 0c                	push   $0xc
40bfbf:	68 c0 47 40 00       	push   $0x4047c0
40bfc4:	ff 75 d0             	push   -0x30(%ebp)
40bfc7:	ff 75 88             	push   -0x78(%ebp)
40bfca:	e8 05 55 ff ff       	call   0x4014d4
40bfcf:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
40bfd5:	eb 07                	jmp    0x40bfde
40bfd7:	83 a5 40 ff ff ff 00 	andl   $0x0,-0xc0(%ebp)
40bfde:	6a 20                	push   $0x20
40bfe0:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40bfe3:	50                   	push   %eax
40bfe4:	e8 7f 54 ff ff       	call   0x401468
40bfe9:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40bfec:	50                   	push   %eax
40bfed:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bff0:	99                   	cltd
40bff1:	2b c2                	sub    %edx,%eax
40bff3:	d1 f8                	sar    $1,%eax
40bff5:	50                   	push   %eax
40bff6:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40bff9:	50                   	push   %eax
40bffa:	e8 1b 54 ff ff       	call   0x40141a
40bfff:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40c002:	50                   	push   %eax
40c003:	e8 6c 54 ff ff       	call   0x401474
40c008:	8b d0                	mov    %eax,%edx
40c00a:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40c00d:	e8 b0 54 ff ff       	call   0x4014c2
40c012:	8b d0                	mov    %eax,%edx
40c014:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
40c01a:	e8 a9 54 ff ff       	call   0x4014c8
40c01f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40c022:	e8 95 54 ff ff       	call   0x4014bc
40c027:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40c02a:	50                   	push   %eax
40c02b:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40c02e:	50                   	push   %eax
40c02f:	6a 02                	push   $0x2
40c031:	e8 5c 54 ff ff       	call   0x401492
40c036:	83 c4 0c             	add    $0xc,%esp
40c039:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c03f:	ff 30                	push   (%eax)
40c041:	e8 70 54 ff ff       	call   0x4014b6
40c046:	89 45 8c             	mov    %eax,-0x74(%ebp)
40c049:	8d 45 90             	lea    -0x70(%ebp),%eax
40c04c:	50                   	push   %eax
40c04d:	ff 75 e8             	push   -0x18(%ebp)
40c050:	ff 75 8c             	push   -0x74(%ebp)
40c053:	8b 45 d0             	mov    -0x30(%ebp),%eax