407167:	f7 d8                	neg    %eax
407169:	1b c0                	sbb    %eax,%eax
40716b:	f7 d8                	neg    %eax
40716d:	c3                   	ret
40716e:	cc                   	int3
40716f:	cc                   	int3
407170:	8b 44 24 04          	mov    0x4(%esp),%eax
407174:	8d 4c 00 02          	lea    0x2(%eax,%eax,1),%ecx
407178:	51                   	push   %ecx
407179:	e8 98 98 02 00       	call   0x430a16
40717e:	33 d2                	xor    %edx,%edx
407180:	83 c4 04             	add    $0x4,%esp
407183:	66 89 10             	mov    %dx,(%eax)
407186:	c3                   	ret
407187:	cc                   	int3
407188:	cc                   	int3
407189:	cc                   	int3
40718a:	cc                   	int3
40718b:	cc                   	int3
40718c:	cc                   	int3
40718d:	cc                   	int3
40718e:	cc                   	int3
40718f:	cc                   	int3
407190:	e9 08 98 02 00       	jmp    0x43099d
407195:	cc                   	int3
407196:	cc                   	int3
407197:	cc                   	int3
407198:	cc                   	int3
407199:	cc                   	int3
40719a:	cc                   	int3
40719b:	cc                   	int3
40719c:	cc                   	int3
40719d:	cc                   	int3
40719e:	cc                   	int3
40719f:	cc                   	int3
4071a0:	8b 44 24 08          	mov    0x8(%esp),%eax
4071a4:	53                   	push   %ebx
4071a5:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4071a9:	55                   	push   %ebp
4071aa:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
4071ae:	56                   	push   %esi
4071af:	53                   	push   %ebx
4071b0:	50                   	push   %eax
4071b1:	55                   	push   %ebp
4071b2:	e8 99 fe ff ff       	call   0x407050
4071b7:	8b f0                	mov    %eax,%esi
4071b9:	83 c4 0c             	add    $0xc,%esp
4071bc:	85 f6                	test   %esi,%esi
4071be:	74 5c                	je     0x40721c
4071c0:	57                   	push   %edi
4071c1:	53                   	push   %ebx
4071c2:	56                   	push   %esi
4071c3:	e8 f3 9c 02 00       	call   0x430ebb
4071c8:	83 c4 08             	add    $0x8,%esp
4071cb:	85 c0                	test   %eax,%eax
4071cd:	75 13                	jne    0x4071e2
4071cf:	3b f5                	cmp    %ebp,%esi
4071d1:	75 07                	jne    0x4071da
4071d3:	33 c9                	xor    %ecx,%ecx
4071d5:	66 89 0e             	mov    %cx,(%esi)
4071d8:	eb 2c                	jmp    0x407206
4071da:	33 d2                	xor    %edx,%edx
4071dc:	66 89 56 fe          	mov    %dx,-0x2(%esi)
4071e0:	eb 24                	jmp    0x407206
4071e2:	8b c8                	mov    %eax,%ecx
4071e4:	8d 79 02             	lea    0x2(%ecx),%edi
4071e7:	66 8b 11             	mov    (%ecx),%dx
4071ea:	83 c1 02             	add    $0x2,%ecx
4071ed:	66 85 d2             	test   %dx,%dx
4071f0:	75 f5                	jne    0x4071e7
4071f2:	2b cf                	sub    %edi,%ecx
4071f4:	d1 f9                	sar    $1,%ecx
4071f6:	03 c9                	add    %ecx,%ecx
4071f8:	51                   	push   %ecx
4071f9:	83 c0 02             	add    $0x2,%eax
4071fc:	50                   	push   %eax
4071fd:	56                   	push   %esi
4071fe:	e8 5d b6 02 00       	call   0x432860
407203:	83 c4 0c             	add    $0xc,%esp
407206:	8b 54 24 18          	mov    0x18(%esp),%edx
40720a:	53                   	push   %ebx
40720b:	52                   	push   %edx
40720c:	55                   	push   %ebp
40720d:	e8 3e fe ff ff       	call   0x407050
407212:	8b f0                	mov    %eax,%esi
407214:	83 c4 0c             	add    $0xc,%esp
407217:	85 f6                	test   %esi,%esi
407219:	75 a6                	jne    0x4071c1
40721b:	5f                   	pop    %edi
40721c:	5e                   	pop    %esi
40721d:	5d                   	pop    %ebp
40721e:	5b                   	pop    %ebx
40721f:	c3                   	ret
407220:	83 ec 08             	sub    $0x8,%esp
407223:	55                   	push   %ebp
407224:	8b 6c 24 10          	mov    0x10(%esp),%ebp
407228:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
40722f:	00
407230:	85 ed                	test   %ebp,%ebp
407232:	0f 84 c1 00 00 00    	je     0x4072f9
407238:	8b c5                	mov    %ebp,%eax
40723a:	8d 50 02             	lea    0x2(%eax),%edx
40723d:	8d 49 00             	lea    0x0(%ecx),%ecx
407240:	66 8b 08             	mov    (%eax),%cx
407243:	83 c0 02             	add    $0x2,%eax
407246:	66 85 c9             	test   %cx,%cx
407249:	75 f5                	jne    0x407240
40724b:	2b c2                	sub    %edx,%eax
40724d:	d1 f8                	sar    $1,%eax
40724f:	0f 84 a4 00 00 00    	je     0x4072f9
407255:	53                   	push   %ebx
407256:	56                   	push   %esi
407257:	57                   	push   %edi
407258:	55                   	push   %ebp
407259:	e8 3a 10 04 00       	call   0x448298
40725e:	8b 5c 24 30          	mov    0x30(%esp),%ebx
407262:	8b f8                	mov    %eax,%edi
407264:	89 44 24 18          	mov    %eax,0x18(%esp)
407268:	8b f0                	mov    %eax,%esi
40726a:	33 c0                	xor    %eax,%eax
40726c:	83 c4 04             	add    $0x4,%esp
40726f:	39 44 24 24          	cmp    %eax,0x24(%esp)
407273:	0f 94 c0             	sete   %al
407276:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40727a:	85 ff                	test   %edi,%edi
40727c:	74 15                	je     0x407293
40727e:	53                   	push   %ebx
40727f:	56                   	push   %esi
407280:	e8 36 9c 02 00       	call   0x430ebb
407285:	8b f8                	mov    %eax,%edi
407287:	83 c4 08             	add    $0x8,%esp
40728a:	85 ff                	test   %edi,%edi
40728c:	74 05                	je     0x407293
40728e:	33 c9                	xor    %ecx,%ecx
407290:	66 89 0f             	mov    %cx,(%edi)
407293:	56                   	push   %esi
407294:	e8 27 b4 ff ff       	call   0x4026c0
407299:	8b 54 24 24          	mov    0x24(%esp),%edx
40729d:	8b f0                	mov    %eax,%esi
40729f:	53                   	push   %ebx
4072a0:	56                   	push   %esi
4072a1:	52                   	push   %edx
4072a2:	e8 a9 fd ff ff       	call   0x407050
4072a7:	83 c4 10             	add    $0x10,%esp
4072aa:	f7 d8                	neg    %eax
4072ac:	1b c0                	sbb    %eax,%eax
4072ae:	f7 d8                	neg    %eax
4072b0:	33 44 24 1c          	xor    0x1c(%esp),%eax
4072b4:	75 19                	jne    0x4072cf
4072b6:	39 44 24 28          	cmp    %eax,0x28(%esp)
4072ba:	75 33                	jne    0x4072ef
4072bc:	53                   	push   %ebx
4072bd:	56                   	push   %esi
4072be:	55                   	push   %ebp
4072bf:	e8 dc fe ff ff       	call   0x4071a0
4072c4:	83 c4 0c             	add    $0xc,%esp
4072c7:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
4072ce:	00
4072cf:	8d 77 02             	lea    0x2(%edi),%esi
4072d2:	85 ff                	test   %edi,%edi
4072d4:	75 a8                	jne    0x40727e
4072d6:	8b 44 24 14          	mov    0x14(%esp),%eax
4072da:	50                   	push   %eax
4072db:	e8 bd 96 02 00       	call   0x43099d
4072e0:	8b 44 24 14          	mov    0x14(%esp),%eax
4072e4:	83 c4 04             	add    $0x4,%esp
4072e7:	5f                   	pop    %edi
4072e8:	5e                   	pop    %esi
4072e9:	5b                   	pop    %ebx
4072ea:	5d                   	pop    %ebp
4072eb:	83 c4 08             	add    $0x8,%esp
4072ee:	c3                   	ret
4072ef:	5f                   	pop    %edi
4072f0:	5e                   	pop    %esi
4072f1:	5b                   	pop    %ebx
4072f2:	33 c0                	xor    %eax,%eax
4072f4:	5d                   	pop    %ebp
4072f5:	83 c4 08             	add    $0x8,%esp
4072f8:	c3                   	ret
4072f9:	b8 01 00 00 00       	mov    $0x1,%eax
4072fe:	5d                   	pop    %ebp
4072ff:	83 c4 08             	add    $0x8,%esp
407302:	c3                   	ret
407303:	cc                   	int3
407304:	cc                   	int3
407305:	cc                   	int3
407306:	cc                   	int3
407307:	cc                   	int3
407308:	cc                   	int3
407309:	cc                   	int3
40730a:	cc                   	int3
40730b:	cc                   	int3
40730c:	cc                   	int3
40730d:	cc                   	int3
40730e:	cc                   	int3
40730f:	cc                   	int3
407310:	8b 44 24 10          	mov    0x10(%esp),%eax
407314:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
407318:	8b 54 24 08          	mov    0x8(%esp),%edx
40731c:	50                   	push   %eax
40731d:	8b 44 24 08          	mov    0x8(%esp),%eax
407321:	51                   	push   %ecx
407322:	6a 00                	push   $0x0
407324:	52                   	push   %edx
407325:	50                   	push   %eax
407326:	e8 f5 fe ff ff       	call   0x407220
40732b:	83 c4 14             	add    $0x14,%esp
40732e:	c3                   	ret
40732f:	cc                   	int3
407330:	8b 44 24 10          	mov    0x10(%esp),%eax
407334:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
407338:	8b 54 24 08          	mov    0x8(%esp),%edx
40733c:	50                   	push   %eax
40733d:	8b 44 24 08          	mov    0x8(%esp),%eax
407341:	51                   	push   %ecx
407342:	6a 01                	push   $0x1
407344:	52                   	push   %edx
407345:	50                   	push   %eax
407346:	e8 d5 fe ff ff       	call   0x407220
40734b:	83 c4 14             	add    $0x14,%esp
40734e:	c3                   	ret
40734f:	cc                   	int3
407350:	51                   	push   %ecx
407351:	8d 04 24             	lea    (%esp),%eax
407354:	50                   	push   %eax
407355:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
40735c:	00
40735d:	e8 ae b7 ff ff       	call   0x402b10
407362:	81 7c 24 04 8c 00 00 	cmpl   $0x8c,0x4(%esp)
407369:	00
40736a:	1b c0                	sbb    %eax,%eax
40736c:	40                   	inc    %eax
40736d:	83 c4 08             	add    $0x8,%esp
407370:	c3                   	ret
407371:	cc                   	int3
407372:	cc                   	int3
407373:	cc                   	int3
407374:	cc                   	int3
407375:	cc                   	int3
407376:	cc                   	int3
407377:	cc                   	int3
407378:	cc                   	int3
407379:	cc                   	int3
40737a:	cc                   	int3
40737b:	cc                   	int3
40737c:	cc                   	int3
40737d:	cc                   	int3
40737e:	cc                   	int3
40737f:	cc                   	int3
407380:	51                   	push   %ecx
407381:	8d 04 24             	lea    (%esp),%eax
407384:	50                   	push   %eax
407385:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
40738c:	00
40738d:	e8 7e b7 ff ff       	call   0x402b10
407392:	81 7c 24 04 96 00 00 	cmpl   $0x96,0x4(%esp)
407399:	00
40739a:	1b c0                	sbb    %eax,%eax
40739c:	40                   	inc    %eax
40739d:	83 c4 08             	add    $0x8,%esp
4073a0:	c3                   	ret
4073a1:	cc                   	int3
4073a2:	cc                   	int3
4073a3:	cc                   	int3
4073a4:	cc                   	int3
4073a5:	cc                   	int3
4073a6:	cc                   	int3
4073a7:	cc                   	int3
4073a8:	cc                   	int3
4073a9:	cc                   	int3
4073aa:	cc                   	int3
4073ab:	cc                   	int3
4073ac:	cc                   	int3
4073ad:	cc                   	int3
4073ae:	cc                   	int3
4073af:	cc                   	int3
4073b0:	81 ec 10 02 00 00    	sub    $0x210,%esp
4073b6:	8d 04 24             	lea    (%esp),%eax
4073b9:	50                   	push   %eax
4073ba:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
4073c1:	00
4073c2:	e8 49 b7 ff ff       	call   0x402b10
4073c7:	83 c4 04             	add    $0x4,%esp
4073ca:	81 3c 24 8c 00 00 00 	cmpl   $0x8c,(%esp)
4073d1:	73 0c                	jae    0x4073df
4073d3:	b8 fb ff ff ff       	mov    $0xfffffffb,%eax
4073d8:	81 c4 10 02 00 00    	add    $0x210,%esp
4073de:	c3                   	ret
4073df:	68 04 01 00 00       	push   $0x104
4073e4:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4073e8:	68 38 ca 45 00       	push   $0x45ca38
4073ed:	51                   	push   %ecx
4073ee:	e8 b7 96 02 00       	call   0x430aaa
4073f3:	8d 54 24 14          	lea    0x14(%esp),%edx
4073f7:	52                   	push   %edx
4073f8:	e8 93 ea ff ff       	call   0x405e90
4073fd:	83 c4 10             	add    $0x10,%esp
407400:	6a 00                	push   $0x0
407402:	8d 44 24 08          	lea    0x8(%esp),%eax
407406:	50                   	push   %eax
407407:	6a 00                	push   $0x0
407409:	e8 02 bb ff ff       	call   0x402f10
40740e:	0d 06 00 02 00       	or     $0x20006,%eax
407413:	50                   	push   %eax
407414:	6a 00                	push   $0x0
407416:	6a 00                	push   $0x0
407418:	6a 00                	push   $0x0
40741a:	8d 4c 24 24          	lea    0x24(%esp),%ecx
40741e:	51                   	push   %ecx
40741f:	68 02 00 00 80       	push   $0x80000002
407424:	ff 15 6c 33 47 00    	call   *0x47336c
40742a:	85 c0                	test   %eax,%eax
40742c:	75 62                	jne    0x407490
40742e:	56                   	push   %esi
40742f:	57                   	push   %edi
407430:	8b 3d b8 33 47 00    	mov    0x4733b8,%edi
407436:	6a 04                	push   $0x4
407438:	8d 94 24 20 02 00 00 	lea    0x220(%esp),%edx
40743f:	52                   	push   %edx
407440:	6a 04                	push   $0x4
407442:	50                   	push   %eax
407443:	8b 44 24 1c          	mov    0x1c(%esp),%eax
407447:	68 10 ca 45 00       	push   $0x45ca10
40744c:	50                   	push   %eax
40744d:	ff d7                	call   *%edi
40744f:	8b f0                	mov    %eax,%esi
407451:	85 f6                	test   %esi,%esi
407453:	75 39                	jne    0x40748e
407455:	8d 4c 24 08          	lea    0x8(%esp),%ecx
407459:	51                   	push   %ecx
40745a:	89 44 24 0c          	mov    %eax,0xc(%esp)
40745e:	e8 ad b6 ff ff       	call   0x402b10
407463:	83 c4 04             	add    $0x4,%esp
407466:	81 7c 24 08 96 00 00 	cmpl   $0x96,0x8(%esp)
40746d:	00
40746e:	72 1c                	jb     0x40748c
407470:	8b 44 24 0c          	mov    0xc(%esp),%eax
407474:	6a 04                	push   $0x4
407476:	8d 54 24 0c          	lea    0xc(%esp),%edx
40747a:	52                   	push   %edx
40747b:	6a 04                	push   $0x4
40747d:	56                   	push   %esi
40747e:	68 dc c9 45 00       	push   $0x45c9dc
407483:	50                   	push   %eax
407484:	89 74 24 20          	mov    %esi,0x20(%esp)
407488:	ff d7                	call   *%edi
40748a:	8b f0                	mov    %eax,%esi
40748c:	8b c6                	mov    %esi,%eax
40748e:	5f                   	pop    %edi
40748f:	5e                   	pop    %esi