40ba07:	ff 50 0c             	call   *0xc(%eax)
40ba0a:	db e2                	fnclex
40ba0c:	89 45 88             	mov    %eax,-0x78(%ebp)
40ba0f:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40ba13:	7d 1a                	jge    0x40ba2f
40ba15:	6a 0c                	push   $0xc
40ba17:	68 c0 47 40 00       	push   $0x4047c0
40ba1c:	ff 75 e0             	push   -0x20(%ebp)
40ba1f:	ff 75 88             	push   -0x78(%ebp)
40ba22:	e8 ad 5a ff ff       	call   0x4014d4
40ba27:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
40ba2d:	eb 07                	jmp    0x40ba36
40ba2f:	83 a5 64 ff ff ff 00 	andl   $0x0,-0x9c(%ebp)
40ba36:	8d 45 90             	lea    -0x70(%ebp),%eax
40ba39:	50                   	push   %eax
40ba3a:	6a 04                	push   $0x4
40ba3c:	8b 45 80             	mov    -0x80(%ebp),%eax
40ba3f:	83 c0 14             	add    $0x14,%eax
40ba42:	50                   	push   %eax
40ba43:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ba46:	8b 00                	mov    (%eax),%eax
40ba48:	ff 75 e0             	push   -0x20(%ebp)
40ba4b:	ff 50 0c             	call   *0xc(%eax)
40ba4e:	db e2                	fnclex
40ba50:	89 45 88             	mov    %eax,-0x78(%ebp)
40ba53:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40ba57:	7d 1a                	jge    0x40ba73
40ba59:	6a 0c                	push   $0xc
40ba5b:	68 c0 47 40 00       	push   $0x4047c0
40ba60:	ff 75 e0             	push   -0x20(%ebp)
40ba63:	ff 75 88             	push   -0x78(%ebp)
40ba66:	e8 69 5a ff ff       	call   0x4014d4
40ba6b:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
40ba71:	eb 07                	jmp    0x40ba7a
40ba73:	83 a5 60 ff ff ff 00 	andl   $0x0,-0xa0(%ebp)
40ba7a:	ff 75 e0             	push   -0x20(%ebp)
40ba7d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ba80:	50                   	push   %eax
40ba81:	e8 60 5a ff ff       	call   0x4014e6
40ba86:	50                   	push   %eax
40ba87:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40ba8a:	50                   	push   %eax
40ba8b:	e8 5a 0a 00 00       	call   0x40c4ea
40ba90:	8d 55 b4             	lea    -0x4c(%ebp),%edx
40ba93:	8b 4d 80             	mov    -0x80(%ebp),%ecx
40ba96:	83 c1 28             	add    $0x28,%ecx
40ba99:	e8 ee 59 ff ff       	call   0x40148c
40ba9e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40baa1:	e8 46 5a ff ff       	call   0x4014ec
40baa6:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40baa9:	e8 f6 59 ff ff       	call   0x4014a4
40baae:	ff 75 e0             	push   -0x20(%ebp)
40bab1:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40bab4:	50                   	push   %eax
40bab5:	e8 2c 5a ff ff       	call   0x4014e6
40baba:	50                   	push   %eax
40babb:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40babe:	50                   	push   %eax
40babf:	e8 26 0a 00 00       	call   0x40c4ea
40bac4:	8d 55 b4             	lea    -0x4c(%ebp),%edx
40bac7:	8b 4d 80             	mov    -0x80(%ebp),%ecx
40baca:	83 c1 18             	add    $0x18,%ecx
40bacd:	e8 ba 59 ff ff       	call   0x40148c
40bad2:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40bad5:	e8 12 5a ff ff       	call   0x4014ec
40bada:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40badd:	e8 c2 59 ff ff       	call   0x4014a4
40bae2:	ff 75 e0             	push   -0x20(%ebp)
40bae5:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40bae8:	50                   	push   %eax
40bae9:	e8 f8 59 ff ff       	call   0x4014e6
40baee:	50                   	push   %eax
40baef:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40baf2:	50                   	push   %eax
40baf3:	e8 f2 09 00 00       	call   0x40c4ea
40baf8:	8d 55 b4             	lea    -0x4c(%ebp),%edx
40bafb:	8b 4d 80             	mov    -0x80(%ebp),%ecx
40bafe:	83 c1 38             	add    $0x38,%ecx
40bb01:	e8 86 59 ff ff       	call   0x40148c
40bb06:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40bb09:	e8 de 59 ff ff       	call   0x4014ec
40bb0e:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40bb11:	e8 8e 59 ff ff       	call   0x4014a4
40bb16:	8d 45 90             	lea    -0x70(%ebp),%eax
40bb19:	50                   	push   %eax
40bb1a:	6a 04                	push   $0x4
40bb1c:	8b 45 80             	mov    -0x80(%ebp),%eax
40bb1f:	83 c0 48             	add    $0x48,%eax
40bb22:	50                   	push   %eax
40bb23:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bb26:	8b 00                	mov    (%eax),%eax
40bb28:	ff 75 e0             	push   -0x20(%ebp)
40bb2b:	ff 50 0c             	call   *0xc(%eax)
40bb2e:	db e2                	fnclex
40bb30:	89 45 88             	mov    %eax,-0x78(%ebp)
40bb33:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bb37:	7d 1a                	jge    0x40bb53
40bb39:	6a 0c                	push   $0xc
40bb3b:	68 c0 47 40 00       	push   $0x4047c0
40bb40:	ff 75 e0             	push   -0x20(%ebp)
40bb43:	ff 75 88             	push   -0x78(%ebp)
40bb46:	e8 89 59 ff ff       	call   0x4014d4
40bb4b:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40bb51:	eb 07                	jmp    0x40bb5a
40bb53:	83 a5 5c ff ff ff 00 	andl   $0x0,-0xa4(%ebp)
40bb5a:	8d 45 90             	lea    -0x70(%ebp),%eax
40bb5d:	50                   	push   %eax
40bb5e:	6a 04                	push   $0x4
40bb60:	8b 45 80             	mov    -0x80(%ebp),%eax
40bb63:	83 c0 4c             	add    $0x4c,%eax
40bb66:	50                   	push   %eax
40bb67:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bb6a:	8b 00                	mov    (%eax),%eax
40bb6c:	ff 75 e0             	push   -0x20(%ebp)
40bb6f:	ff 50 0c             	call   *0xc(%eax)
40bb72:	db e2                	fnclex
40bb74:	89 45 88             	mov    %eax,-0x78(%ebp)
40bb77:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bb7b:	7d 1a                	jge    0x40bb97
40bb7d:	6a 0c                	push   $0xc
40bb7f:	68 c0 47 40 00       	push   $0x4047c0
40bb84:	ff 75 e0             	push   -0x20(%ebp)
40bb87:	ff 75 88             	push   -0x78(%ebp)
40bb8a:	e8 45 59 ff ff       	call   0x4014d4
40bb8f:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
40bb95:	eb 07                	jmp    0x40bb9e
40bb97:	83 a5 58 ff ff ff 00 	andl   $0x0,-0xa8(%ebp)
40bb9e:	8d 45 90             	lea    -0x70(%ebp),%eax
40bba1:	50                   	push   %eax
40bba2:	6a 04                	push   $0x4
40bba4:	8b 45 80             	mov    -0x80(%ebp),%eax
40bba7:	83 c0 50             	add    $0x50,%eax
40bbaa:	50                   	push   %eax
40bbab:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bbae:	8b 00                	mov    (%eax),%eax
40bbb0:	ff 75 e0             	push   -0x20(%ebp)
40bbb3:	ff 50 0c             	call   *0xc(%eax)
40bbb6:	db e2                	fnclex
40bbb8:	89 45 88             	mov    %eax,-0x78(%ebp)
40bbbb:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bbbf:	7d 1a                	jge    0x40bbdb
40bbc1:	6a 0c                	push   $0xc
40bbc3:	68 c0 47 40 00       	push   $0x4047c0
40bbc8:	ff 75 e0             	push   -0x20(%ebp)
40bbcb:	ff 75 88             	push   -0x78(%ebp)
40bbce:	e8 01 59 ff ff       	call   0x4014d4
40bbd3:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
40bbd9:	eb 07                	jmp    0x40bbe2
40bbdb:	83 a5 54 ff ff ff 00 	andl   $0x0,-0xac(%ebp)
40bbe2:	8d 45 90             	lea    -0x70(%ebp),%eax
40bbe5:	50                   	push   %eax
40bbe6:	6a 04                	push   $0x4
40bbe8:	8d 45 e8             	lea    -0x18(%ebp),%eax
40bbeb:	50                   	push   %eax
40bbec:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bbef:	8b 00                	mov    (%eax),%eax
40bbf1:	ff 75 e0             	push   -0x20(%ebp)
40bbf4:	ff 50 0c             	call   *0xc(%eax)
40bbf7:	db e2                	fnclex
40bbf9:	89 45 88             	mov    %eax,-0x78(%ebp)
40bbfc:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40bc00:	7d 1a                	jge    0x40bc1c
40bc02:	6a 0c                	push   $0xc
40bc04:	68 c0 47 40 00       	push   $0x4047c0
40bc09:	ff 75 e0             	push   -0x20(%ebp)
40bc0c:	ff 75 88             	push   -0x78(%ebp)
40bc0f:	e8 c0 58 ff ff       	call   0x4014d4
40bc14:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
40bc1a:	eb 07                	jmp    0x40bc23
40bc1c:	83 a5 50 ff ff ff 00 	andl   $0x0,-0xb0(%ebp)
40bc23:	6a 00                	push   $0x0
40bc25:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bc28:	48                   	dec    %eax
40bc29:	50                   	push   %eax
40bc2a:	6a 01                	push   $0x1
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