40bda3:	8b f1                	mov    %ecx,%esi
40bda5:	57                   	push   %edi
40bda6:	52                   	push   %edx
40bda7:	dd 5d c4             	fstpl  -0x3c(%ebp)
40bdaa:	89 55 e0             	mov    %edx,-0x20(%ebp)
40bdad:	ff 15 74 20 41 00    	call   *0x412074
40bdb3:	8b 45 08             	mov    0x8(%ebp),%eax
40bdb6:	85 c0                	test   %eax,%eax
40bdb8:	74 7a                	je     0x40be34
40bdba:	8b 50 0c             	mov    0xc(%eax),%edx
40bdbd:	8b 40 08             	mov    0x8(%eax),%eax
40bdc0:	89 55 e8             	mov    %edx,-0x18(%ebp)
40bdc3:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bdc6:	85 d2                	test   %edx,%edx
40bdc8:	74 6a                	je     0x40be34
40bdca:	85 c0                	test   %eax,%eax
40bdcc:	74 66                	je     0x40be34
40bdce:	8b 42 14             	mov    0x14(%edx),%eax
40bdd1:	8b 4a 2c             	mov    0x2c(%edx),%ecx
40bdd4:	8b 7a 10             	mov    0x10(%edx),%edi
40bdd7:	89 45 d8             	mov    %eax,-0x28(%ebp)
40bdda:	8b 42 30             	mov    0x30(%edx),%eax
40bddd:	89 45 f0             	mov    %eax,-0x10(%ebp)
40bde0:	8b 42 28             	mov    0x28(%edx),%eax
40bde3:	89 45 d8             	mov    %eax,-0x28(%ebp)
40bde6:	8b 42 08             	mov    0x8(%edx),%eax
40bde9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40bdec:	89 45 ec             	mov    %eax,-0x14(%ebp)
40bdef:	83 f8 0a             	cmp    $0xa,%eax
40bdf2:	74 31                	je     0x40be25
40bdf4:	85 db                	test   %ebx,%ebx
40bdf6:	75 2d                	jne    0x40be25
40bdf8:	8b c7                	mov    %edi,%eax
40bdfa:	83 e0 10             	and    $0x10,%eax
40bdfd:	0b c3                	or     %ebx,%eax
40bdff:	75 21                	jne    0x40be22
40be01:	85 f6                	test   %esi,%esi
40be03:	0f 84 95 04 00 00    	je     0x40c29e
40be09:	56                   	push   %esi
40be0a:	ff 15 d4 20 41 00    	call   *0x4120d4
40be10:	85 c0                	test   %eax,%eax
40be12:	0f 84 86 04 00 00    	je     0x40c29e
40be18:	b9 eb 15 00 00       	mov    $0x15eb,%ecx
40be1d:	e9 66 04 00 00       	jmp    0x40c288
40be22:	8b 45 ec             	mov    -0x14(%ebp),%eax
40be25:	85 f6                	test   %esi,%esi
40be27:	75 2b                	jne    0x40be54
40be29:	8b c7                	mov    %edi,%eax
40be2b:	25 00 00 04 00       	and    $0x40000,%eax
40be30:	0b c6                	or     %esi,%eax
40be32:	75 2d                	jne    0x40be61
40be34:	ff 15 48 20 41 00    	call   *0x412048
40be3a:	85 c0                	test   %eax,%eax
40be3c:	75 08                	jne    0x40be46
40be3e:	6a 57                	push   $0x57
40be40:	ff 15 74 20 41 00    	call   *0x412074
40be46:	e8 a9 d9 ff ff       	call   0x4097f4
40be4b:	33 c0                	xor    %eax,%eax
40be4d:	5f                   	pop    %edi
40be4e:	5e                   	pop    %esi
40be4f:	5b                   	pop    %ebx
40be50:	c9                   	leave
40be51:	c2 04 00             	ret    $0x4
40be54:	83 7a 24 00          	cmpl   $0x0,0x24(%edx)
40be58:	74 0d                	je     0x40be67
40be5a:	83 f8 09             	cmp    $0x9,%eax
40be5d:	74 08                	je     0x40be67
40be5f:	eb 03                	jmp    0x40be64
40be61:	8b 45 ec             	mov    -0x14(%ebp),%eax
40be64:	8b 72 24             	mov    0x24(%edx),%esi
40be67:	48                   	dec    %eax
40be68:	83 f8 09             	cmp    $0x9,%eax
40be6b:	77 c7                	ja     0x40be34
40be6d:	ff 24 85 d6 c2 40 00 	jmp    *0x40c2d6(,%eax,4)
40be74:	85 db                	test   %ebx,%ebx
40be76:	74 43                	je     0x40bebb
40be78:	8b c7                	mov    %edi,%eax
40be7a:	83 e0 42             	and    $0x42,%eax
40be7d:	83 c8 00             	or     $0x0,%eax
40be80:	74 39                	je     0x40bebb
40be82:	6a 00                	push   $0x0
40be84:	6a 00                	push   $0x0
40be86:	6a 0a                	push   $0xa
40be88:	8b d3                	mov    %ebx,%edx
40be8a:	59                   	pop    %ecx
40be8b:	e8 13 d7 ff ff       	call   0x4095a3
40be90:	85 c0                	test   %eax,%eax
40be92:	75 0e                	jne    0x40bea2
40be94:	ff 15 48 20 41 00    	call   *0x412048
40be9a:	85 c0                	test   %eax,%eax
40be9c:	75 a8                	jne    0x40be46
40be9e:	6a 08                	push   $0x8
40bea0:	eb 9e                	jmp    0x40be40
40bea2:	51                   	push   %ecx
40bea3:	ba 60 18 40 00       	mov    $0x401860,%edx
40bea8:	8b c8                	mov    %eax,%ecx
40beaa:	e8 33 e1 ff ff       	call   0x409fe2
40beaf:	8b d8                	mov    %eax,%ebx
40beb1:	ff 15 48 20 41 00    	call   *0x412048
40beb7:	85 c0                	test   %eax,%eax
40beb9:	75 8b                	jne    0x40be46
40bebb:	8b c7                	mov    %edi,%eax
40bebd:	83 e0 02             	and    $0x2,%eax
40bec0:	83 c8 00             	or     $0x0,%eax
40bec3:	74 54                	je     0x40bf19
40bec5:	85 db                	test   %ebx,%ebx
40bec7:	0f 84 5d 02 00 00    	je     0x40c12a
40becd:	8b 55 d8             	mov    -0x28(%ebp),%edx
40bed0:	8b cb                	mov    %ebx,%ecx
40bed2:	6a 01                	push   $0x1
40bed4:	e8 0f df ff ff       	call   0x409de8
40bed9:	85 c0                	test   %eax,%eax
40bedb:	75 3c                	jne    0x40bf19
40bedd:	85 f6                	test   %esi,%esi
40bedf:	74 2a                	je     0x40bf0b
40bee1:	56                   	push   %esi
40bee2:	ff 15 d4 20 41 00    	call   *0x4120d4
40bee8:	85 c0                	test   %eax,%eax
40beea:	74 1f                	je     0x40bf0b
40beec:	ff 75 f4             	push   -0xc(%ebp)
40beef:	b9 e1 15 00 00       	mov    $0x15e1,%ecx
40bef4:	56                   	push   %esi
40bef5:	53                   	push   %ebx
40bef6:	e8 56 db ff ff       	call   0x409a51
40befb:	50                   	push   %eax
40befc:	6a 03                	push   $0x3
40befe:	e8 68 d8 ff ff       	call   0x40976b
40bf03:	83 c4 14             	add    $0x14,%esp
40bf06:	e9 ad 03 00 00       	jmp    0x40c2b8
40bf0b:	ff 75 f4             	push   -0xc(%ebp)
40bf0e:	b9 ec 15 00 00       	mov    $0x15ec,%ecx
40bf13:	53                   	push   %ebx
40bf14:	e9 73 03 00 00       	jmp    0x40c28c
40bf19:	85 db                	test   %ebx,%ebx
40bf1b:	0f 84 09 02 00 00    	je     0x40c12a
40bf21:	8b c7                	mov    %edi,%eax
40bf23:	25 80 00 00 00       	and    $0x80,%eax
40bf28:	83 c8 00             	or     $0x0,%eax
40bf2b:	74 2e                	je     0x40bf5b
40bf2d:	53                   	push   %ebx
40bf2e:	ff 15 d4 20 41 00    	call   *0x4120d4
40bf34:	85 c0                	test   %eax,%eax
40bf36:	75 23                	jne    0x40bf5b
40bf38:	85 f6                	test   %esi,%esi
40bf3a:	74 15                	je     0x40bf51
40bf3c:	56                   	push   %esi
40bf3d:	ff 15 d4 20 41 00    	call   *0x4120d4
40bf43:	85 c0                	test   %eax,%eax
40bf45:	74 0a                	je     0x40bf51
40bf47:	b9 ee 15 00 00       	mov    $0x15ee,%ecx
40bf4c:	e9 37 03 00 00       	jmp    0x40c288
40bf51:	b9 ef 15 00 00       	mov    $0x15ef,%ecx
40bf56:	e9 23 02 00 00       	jmp    0x40c17e
40bf5b:	8b c7                	mov    %edi,%eax
40bf5d:	83 e0 01             	and    $0x1,%eax
40bf60:	83 c8 00             	or     $0x0,%eax
40bf63:	74 45                	je     0x40bfaa
40bf65:	8b 75 e8             	mov    -0x18(%ebp),%esi
40bf68:	8b 46 10             	mov    0x10(%esi),%eax
40bf6b:	8b 75 f8             	mov    -0x8(%ebp),%esi
40bf6e:	25 00 40 00 00       	and    $0x4000,%eax
40bf73:	83 c8 00             	or     $0x0,%eax
40bf76:	74 1a                	je     0x40bf92
40bf78:	8b 0e                	mov    (%esi),%ecx
40bf7a:	ba 00 00 02 00       	mov    $0x20000,%edx
40bf7f:	6a 00                	push   $0x0
40bf81:	6a 01                	push   $0x1
40bf83:	53                   	push   %ebx
40bf84:	e8 98 c9 ff ff       	call   0x408921
40bf89:	83 f8 ff             	cmp    $0xffffffff,%eax
40bf8c:	0f 85 98 01 00 00    	jne    0x40c12a
40bf92:	51                   	push   %ecx
40bf93:	8b 0e                	mov    (%esi),%ecx
40bf95:	8b d3                	mov    %ebx,%edx
40bf97:	e8 63 cb ff ff       	call   0x408aff
40bf9c:	83 f8 ff             	cmp    $0xffffffff,%eax
40bf9f:	0f 85 85 01 00 00    	jne    0x40c12a
40bfa5:	e9 ea fe ff ff       	jmp    0x40be94
40bfaa:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40bfae:	74 3b                	je     0x40bfeb
40bfb0:	53                   	push   %ebx
40bfb1:	ff 15 d4 20 41 00    	call   *0x4120d4
40bfb7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bfba:	3b c1                	cmp    %ecx,%eax
40bfbc:	7c 30                	jl     0x40bfee
40bfbe:	85 f6                	test   %esi,%esi
40bfc0:	74 1a                	je     0x40bfdc
40bfc2:	56                   	push   %esi
40bfc3:	ff 15 d4 20 41 00    	call   *0x4120d4
40bfc9:	85 c0                	test   %eax,%eax
40bfcb:	74 0f                	je     0x40bfdc
40bfcd:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bfd0:	b9 f4 15 00 00       	mov    $0x15f4,%ecx
40bfd5:	48                   	dec    %eax
40bfd6:	50                   	push   %eax
40bfd7:	e9 af 02 00 00       	jmp    0x40c28b
40bfdc:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bfdf:	b9 f2 15 00 00       	mov    $0x15f2,%ecx
40bfe4:	48                   	dec    %eax
40bfe5:	50                   	push   %eax
40bfe6:	e9 96 01 00 00       	jmp    0x40c181
40bfeb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bfee:	81 e7 00 00 01 00    	and    $0x10000,%edi
40bff4:	83 cf 00             	or     $0x0,%edi
40bff7:	74 26                	je     0x40c01f
40bff9:	53                   	push   %ebx
40bffa:	ff 15 d4 20 41 00    	call   *0x4120d4
40c000:	40                   	inc    %eax
40c001:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c004:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40c007:	e8 5e ec ff ff       	call   0x40ac6a
40c00c:	85 c0                	test   %eax,%eax
40c00e:	0f 84 80 fe ff ff    	je     0x40be94
40c014:	8b 75 e8             	mov    -0x18(%ebp),%esi
40c017:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c01a:	89 46 2c             	mov    %eax,0x2c(%esi)
40c01d:	eb 03                	jmp    0x40c022
40c01f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c022:	51                   	push   %ecx
40c023:	8b d3                	mov    %ebx,%edx
40c025:	8b c8                	mov    %eax,%ecx
40c027:	e8 ca e3 ff ff       	call   0x40a3f6
40c02c:	e9 f9 00 00 00       	jmp    0x40c12a
40c031:	85 db                	test   %ebx,%ebx
40c033:	0f 84 f1 00 00 00    	je     0x40c12a
40c039:	8b cb                	mov    %ebx,%ecx
40c03b:	e8 4b e4 ff ff       	call   0x40a48b
40c040:	85 c0                	test   %eax,%eax
40c042:	0f 84 ad 00 00 00    	je     0x40c0f5
40c048:	33 c0                	xor    %eax,%eax
40c04a:	8b cb                	mov    %ebx,%ecx
40c04c:	83 7d ec 02          	cmpl   $0x2,-0x14(%ebp)
40c050:	0f 94 c0             	sete   %al
40c053:	50                   	push   %eax
40c054:	e8 93 dc ff ff       	call   0x409cec
40c059:	85 c0                	test   %eax,%eax
40c05b:	0f 84 94 00 00 00    	je     0x40c0f5
40c061:	8b 75 ec             	mov    -0x14(%ebp),%esi
40c064:	8b cb                	mov    %ebx,%ecx
40c066:	e8 ca db ff ff       	call   0x409c35
40c06b:	83 fe 02             	cmp    $0x2,%esi
40c06e:	75 07                	jne    0x40c077
40c070:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40c073:	8b d8                	mov    %eax,%ebx
40c075:	eb 08                	jmp    0x40c07f
40c077:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40c07a:	8b c8                	mov    %eax,%ecx
40c07c:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40c07f:	83 e7 01             	and    $0x1,%edi
40c082:	33 d2                	xor    %edx,%edx
40c084:	0b fa                	or     %edx,%edi
40c086:	74 5d                	je     0x40c0e5
40c088:	8b 75 e8             	mov    -0x18(%ebp),%esi
40c08b:	8b 46 10             	mov    0x10(%esi),%eax
40c08e:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c091:	25 00 40 00 00       	and    $0x4000,%eax
40c096:	0b c2                	or     %edx,%eax
40c098:	74 2a                	je     0x40c0c4
40c09a:	83 7d ec 02          	cmpl   $0x2,-0x14(%ebp)
40c09e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c0a1:	52                   	push   %edx
40c0a2:	52                   	push   %edx
40c0a3:	50                   	push   %eax
40c0a4:	75 0a                	jne    0x40c0b0
40c0a6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40c0a9:	ba 00 00 03 00       	mov    $0x30000,%edx
40c0ae:	eb 08                	jmp    0x40c0b8
40c0b0:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40c0b3:	ba 00 00 04 00       	mov    $0x40000,%edx
40c0b8:	8b 0e                	mov    (%esi),%ecx
40c0ba:	e8 62 c8 ff ff       	call   0x408921
40c0bf:	83 f8 ff             	cmp    $0xffffffff,%eax
40c0c2:	75 66                	jne    0x40c12a
40c0c4:	83 7d ec 02          	cmpl   $0x2,-0x14(%ebp)
40c0c8:	8b 0e                	mov    (%esi),%ecx
40c0ca:	75 0c                	jne    0x40c0d8
40c0cc:	8b d3                	mov    %ebx,%edx
40c0ce:	e8 92 ca ff ff       	call   0x408b65
40c0d3:	e9 c4 fe ff ff       	jmp    0x40bf9c
40c0d8:	8b 55 e0             	mov    -0x20(%ebp),%edx
40c0db:	e8 ce ca ff ff       	call   0x408bae
40c0e0:	e9 b7 fe ff ff       	jmp    0x40bf9c
40c0e5:	83 fe 02             	cmp    $0x2,%esi
40c0e8:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c0eb:	75 04                	jne    0x40c0f1
40c0ed:	89 1e                	mov    %ebx,(%esi)
40c0ef:	eb 39                	jmp    0x40c12a
40c0f1:	89 0e                	mov    %ecx,(%esi)
40c0f3:	eb 35                	jmp    0x40c12a
40c0f5:	83 e7 10             	and    $0x10,%edi
40c0f8:	83 cf 00             	or     $0x0,%edi
40c0fb:	74 09                	je     0x40c106
40c0fd:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c100:	83 79 04 ff          	cmpl   $0xffffffff,0x4(%ecx)
40c104:	75 50                	jne    0x40c156
40c106:	85 f6                	test   %esi,%esi
40c108:	74 15                	je     0x40c11f
40c10a:	56                   	push   %esi
40c10b:	ff 15 d4 20 41 00    	call   *0x4120d4
40c111:	85 c0                	test   %eax,%eax
40c113:	74 0a                	je     0x40c11f
40c115:	b9 e2 15 00 00       	mov    $0x15e2,%ecx
40c11a:	e9 69 01 00 00       	jmp    0x40c288
40c11f:	b9 f0 15 00 00       	mov    $0x15f0,%ecx
40c124:	eb 58                	jmp    0x40c17e
40c126:	85 db                	test   %ebx,%ebx
40c128:	75 08                	jne    0x40c132
40c12a:	33 c0                	xor    %eax,%eax
40c12c:	40                   	inc    %eax
40c12d:	e9 1b fd ff ff       	jmp    0x40be4d
40c132:	8b cb                	mov    %ebx,%ecx
40c134:	e8 65 da ff ff       	call   0x409b9e
40c139:	dd d8                	fstp   %st(0)
40c13b:	ff 15 48 20 41 00    	call   *0x412048
40c141:	85 c0                	test   %eax,%eax
40c143:	74 51                	je     0x40c196
40c145:	83 e7 10             	and    $0x10,%edi
40c148:	83 cf 00             	or     $0x0,%edi
40c14b:	74 13                	je     0x40c160
40c14d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c150:	83 79 04 ff          	cmpl   $0xffffffff,0x4(%ecx)
40c154:	74 0a                	je     0x40c160
40c156:	33 c0                	xor    %eax,%eax
40c158:	40                   	inc    %eax
40c159:	89 01                	mov    %eax,(%ecx)
40c15b:	e9 ed fc ff ff       	jmp    0x40be4d
40c160:	85 f6                	test   %esi,%esi
40c162:	74 15                	je     0x40c179
40c164:	56                   	push   %esi
40c165:	ff 15 d4 20 41 00    	call   *0x4120d4
40c16b:	85 c0                	test   %eax,%eax
40c16d:	74 0a                	je     0x40c179
40c16f:	b9 e3 15 00 00       	mov    $0x15e3,%ecx
40c174:	e9 0f 01 00 00       	jmp    0x40c288
40c179:	b9 f1 15 00 00       	mov    $0x15f1,%ecx
40c17e:	ff 75 f4             	push   -0xc(%ebp)
40c181:	e8 cb d8 ff ff       	call   0x409a51
40c186:	50                   	push   %eax
40c187:	6a 01                	push   $0x1
40c189:	e8 dd d5 ff ff       	call   0x40976b
40c18e:	83 c4 0c             	add    $0xc,%esp
40c191:	e9 22 01 00 00       	jmp    0x40c2b8
40c196:	8b 75 e8             	mov    -0x18(%ebp),%esi
40c199:	8b cb                	mov    %ebx,%ecx
40c19b:	83 7e 08 07          	cmpl   $0x7,0x8(%esi)
40c19f:	75 0c                	jne    0x40c1ad
40c1a1:	e8 f8 d9 ff ff       	call   0x409b9e
40c1a6:	d9 5d e4             	fstps  -0x1c(%ebp)
40c1a9:	d9 ee                	fldz
40c1ab:	eb 08                	jmp    0x40c1b5