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
40c1ad:	e8 ec d9 ff ff       	call   0x409b9e
40c1b2:	dd 55 c4             	fstl   -0x3c(%ebp)
40c1b5:	83 e7 01             	and    $0x1,%edi
40c1b8:	33 c9                	xor    %ecx,%ecx
40c1ba:	0b f9                	or     %ecx,%edi
40c1bc:	74 7b                	je     0x40c239
40c1be:	d9 45 e4             	flds   -0x1c(%ebp)
40c1c1:	8b de                	mov    %esi,%ebx
40c1c3:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c1c6:	8b 43 10             	mov    0x10(%ebx),%eax
40c1c9:	25 00 40 00 00       	and    $0x4000,%eax
40c1ce:	0b c1                	or     %ecx,%eax
40c1d0:	74 3a                	je     0x40c20c
40c1d2:	83 7b 08 07          	cmpl   $0x7,0x8(%ebx)
40c1d6:	51                   	push   %ecx
40c1d7:	51                   	push   %ecx
40c1d8:	8b 0e                	mov    (%esi),%ecx
40c1da:	75 0f                	jne    0x40c1eb
40c1dc:	dd d9                	fstp   %st(1)
40c1de:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c1e1:	d9 5d d0             	fstps  -0x30(%ebp)
40c1e4:	ba 00 00 06 00       	mov    $0x60000,%edx
40c1e9:	eb 0d                	jmp    0x40c1f8
40c1eb:	dd d8                	fstp   %st(0)
40c1ed:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c1f0:	dd 5d cc             	fstpl  -0x34(%ebp)
40c1f3:	ba 00 00 07 00       	mov    $0x70000,%edx
40c1f8:	50                   	push   %eax
40c1f9:	e8 23 c7 ff ff       	call   0x408921
40c1fe:	83 f8 ff             	cmp    $0xffffffff,%eax
40c201:	0f 85 23 ff ff ff    	jne    0x40c12a
40c207:	d9 45 e4             	flds   -0x1c(%ebp)
40c20a:	eb 02                	jmp    0x40c20e
40c20c:	dd d9                	fstp   %st(1)
40c20e:	83 7b 08 07          	cmpl   $0x7,0x8(%ebx)
40c212:	51                   	push   %ecx
40c213:	75 0f                	jne    0x40c224
40c215:	8b 0e                	mov    (%esi),%ecx
40c217:	d9 1c 24             	fstps  (%esp)
40c21a:	e8 d8 c9 ff ff       	call   0x408bf7
40c21f:	e9 78 fd ff ff       	jmp    0x40bf9c
40c224:	dd d8                	fstp   %st(0)
40c226:	dd 45 c4             	fldl   -0x3c(%ebp)
40c229:	51                   	push   %ecx
40c22a:	8b 0e                	mov    (%esi),%ecx
40c22c:	dd 1c 24             	fstpl  (%esp)
40c22f:	e8 0d ca ff ff       	call   0x408c41
40c234:	e9 63 fd ff ff       	jmp    0x40bf9c
40c239:	83 7e 08 07          	cmpl   $0x7,0x8(%esi)
40c23d:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c240:	75 0c                	jne    0x40c24e
40c242:	dd d8                	fstp   %st(0)
40c244:	d9 45 e4             	flds   -0x1c(%ebp)
40c247:	d9 1e                	fstps  (%esi)
40c249:	e9 dc fe ff ff       	jmp    0x40c12a
40c24e:	dd 1e                	fstpl  (%esi)
40c250:	e9 d5 fe ff ff       	jmp    0x40c12a
40c255:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c258:	51                   	push   %ecx
40c259:	ff 72 38             	push   0x38(%edx)
40c25c:	53                   	push   %ebx
40c25d:	56                   	push   %esi
40c25e:	8b 72 34             	mov    0x34(%edx),%esi
40c261:	8b ce                	mov    %esi,%ecx
40c263:	ff 15 20 23 41 00    	call   *0x412320
40c269:	ff d6                	call   *%esi
40c26b:	e9 dd fb ff ff       	jmp    0x40be4d
40c270:	85 db                	test   %ebx,%ebx
40c272:	74 54                	je     0x40c2c8
40c274:	85 f6                	test   %esi,%esi
40c276:	74 26                	je     0x40c29e
40c278:	56                   	push   %esi
40c279:	ff 15 d4 20 41 00    	call   *0x4120d4
40c27f:	85 c0                	test   %eax,%eax
40c281:	74 1b                	je     0x40c29e
40c283:	b9 f3 15 00 00       	mov    $0x15f3,%ecx
40c288:	ff 75 f4             	push   -0xc(%ebp)
40c28b:	56                   	push   %esi
40c28c:	e8 c0 d7 ff ff       	call   0x409a51
40c291:	50                   	push   %eax
40c292:	6a 02                	push   $0x2
40c294:	e8 d2 d4 ff ff       	call   0x40976b
40c299:	83 c4 10             	add    $0x10,%esp
40c29c:	eb 1a                	jmp    0x40c2b8
40c29e:	ff 15 48 20 41 00    	call   *0x412048
40c2a4:	85 c0                	test   %eax,%eax
40c2a6:	75 0b                	jne    0x40c2b3
40c2a8:	68 2b 04 00 00       	push   $0x42b
40c2ad:	ff 15 74 20 41 00    	call   *0x412074
40c2b3:	e8 3c d5 ff ff       	call   0x4097f4
40c2b8:	68 e4 01 04 80       	push   $0x800401e4
40c2bd:	ff 15 74 20 41 00    	call   *0x412074
40c2c3:	e9 83 fb ff ff       	jmp    0x40be4b
40c2c8:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
40c2ce:	e9 57 fe ff ff       	jmp    0x40c12a
40c2d3:	8d 49 00             	lea    0x0(%ecx),%ecx
40c2d6:	74 be                	je     0x40c296
40c2d8:	40                   	inc    %eax
40c2d9:	00 31                	add    %dh,(%ecx)
40c2db:	c0 40 00 31          	rolb   $0x31,0x0(%eax)
40c2df:	c0 40 00 2a          	rolb   $0x2a,0x0(%eax)
40c2e3:	c1 40 00 2a          	roll   $0x2a,0x0(%eax)
40c2e7:	c1 40 00 2a          	roll   $0x2a,0x0(%eax)
40c2eb:	c1 40 00 26          	roll   $0x26,0x0(%eax)
40c2ef:	c1 40 00 26          	roll   $0x26,0x0(%eax)
40c2f3:	c1 40 00 55          	roll   $0x55,0x0(%eax)
40c2f7:	c2 40 00             	ret    $0x40
40c2fa:	70 c2                	jo     0x40c2be
40c2fc:	40                   	inc    %eax
40c2fd:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
40c303:	51                   	push   %ecx
40c304:	53                   	push   %ebx
40c305:	56                   	push   %esi
40c306:	57                   	push   %edi
40c307:	6a 00                	push   $0x0
40c309:	8b f2                	mov    %edx,%esi
40c30b:	ff 15 74 20 41 00    	call   *0x412074
40c311:	85 f6                	test   %esi,%esi
40c313:	0f 84 96 00 00 00    	je     0x40c3af
40c319:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c31c:	85 db                	test   %ebx,%ebx
40c31e:	0f 84 8b 00 00 00    	je     0x40c3af
40c324:	8b cb                	mov    %ebx,%ecx
40c326:	e8 12 f4 ff ff       	call   0x40b73d
40c32b:	85 c0                	test   %eax,%eax
40c32d:	75 0a                	jne    0x40c339
40c32f:	68 90 04 00 00       	push   $0x490
40c334:	e9 82 00 00 00       	jmp    0x40c3bb
40c339:	33 ff                	xor    %edi,%edi
40c33b:	83 c6 20             	add    $0x20,%esi
40c33e:	8d 46 e0             	lea    -0x20(%esi),%eax
40c341:	85 c0                	test   %eax,%eax
40c343:	74 4c                	je     0x40c391
40c345:	8b 46 f0             	mov    -0x10(%esi),%eax
40c348:	25 00 00 10 00       	and    $0x100000,%eax
40c34d:	83 c8 00             	or     $0x0,%eax
40c350:	74 06                	je     0x40c358
40c352:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c356:	eb 07                	jmp    0x40c35f
40c358:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c35f:	83 3e 00             	cmpl   $0x0,(%esi)
40c362:	74 1e                	je     0x40c382
40c364:	ff 36                	push   (%esi)
40c366:	ff 15 d4 20 41 00    	call   *0x4120d4
40c36c:	85 c0                	test   %eax,%eax
40c36e:	7e 12                	jle    0x40c382
40c370:	ff 75 fc             	push   -0x4(%ebp)
40c373:	8b 16                	mov    (%esi),%edx
40c375:	8d 4b 02             	lea    0x2(%ebx),%ecx
40c378:	e8 6b da ff ff       	call   0x409de8
40c37d:	83 f8 01             	cmp    $0x1,%eax
40c380:	74 0b                	je     0x40c38d
40c382:	47                   	inc    %edi
40c383:	83 c6 50             	add    $0x50,%esi
40c386:	83 ff 0b             	cmp    $0xb,%edi
40c389:	72 b3                	jb     0x40c33e
40c38b:	eb a2                	jmp    0x40c32f
40c38d:	8b c7                	mov    %edi,%eax
40c38f:	eb 33                	jmp    0x40c3c4
40c391:	ff 15 48 20 41 00    	call   *0x412048
40c397:	85 c0                	test   %eax,%eax
40c399:	75 0b                	jne    0x40c3a6
40c39b:	68 2b 04 00 00       	push   $0x42b
40c3a0:	ff 15 74 20 41 00    	call   *0x412074
40c3a6:	e8 49 d4 ff ff       	call   0x4097f4
40c3ab:	33 c0                	xor    %eax,%eax
40c3ad:	eb 15                	jmp    0x40c3c4
40c3af:	ff 15 48 20 41 00    	call   *0x412048
40c3b5:	85 c0                	test   %eax,%eax
40c3b7:	75 08                	jne    0x40c3c1
40c3b9:	6a 57                	push   $0x57
40c3bb:	ff 15 74 20 41 00    	call   *0x412074
40c3c1:	83 c8 ff             	or     $0xffffffff,%eax
40c3c4:	5f                   	pop    %edi
40c3c5:	5e                   	pop    %esi