412220:	33 d2                	xor    %edx,%edx
412222:	8b ce                	mov    %esi,%ecx
412224:	e8 58 fe ff ff       	call   0x412081
412229:	5e                   	pop    %esi
41222a:	c9                   	leave
41222b:	c3                   	ret
41222c:	8b 46 38             	mov    0x38(%esi),%eax
41222f:	66 83 38 3a          	cmpw   $0x3a,(%eax)
412233:	75 cb                	jne    0x412200
412235:	33 c0                	xor    %eax,%eax
412237:	eb f0                	jmp    0x412229
412239:	8b ff                	mov    %edi,%edi
41223b:	55                   	push   %ebp
41223c:	8b ec                	mov    %esp,%ebp
41223e:	51                   	push   %ecx
41223f:	53                   	push   %ebx
412240:	56                   	push   %esi
412241:	8b d9                	mov    %ecx,%ebx
412243:	8b f2                	mov    %edx,%esi
412245:	2b f3                	sub    %ebx,%esi
412247:	d1 fe                	sar    $1,%esi
412249:	57                   	push   %edi
41224a:	8d 46 01             	lea    0x1(%esi),%eax
41224d:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
412250:	e8 7b ba ff ff       	call   0x40dcd0
412255:	8b f8                	mov    %eax,%edi
412257:	85 ff                	test   %edi,%edi
412259:	0f 84 13 d0 00 00    	je     0x41f272
41225f:	56                   	push   %esi
412260:	53                   	push   %ebx
412261:	8d 56 01             	lea    0x1(%esi),%edx
412264:	8b cf                	mov    %edi,%ecx
412266:	e8 2d 00 00 00       	call   0x412298
41226b:	8b cf                	mov    %edi,%ecx
41226d:	e8 1e fb ff ff       	call   0x411d90
412272:	8b cf                	mov    %edi,%ecx
412274:	8b f0                	mov    %eax,%esi
412276:	e8 e5 b9 ff ff       	call   0x40dc60
41227b:	85 f6                	test   %esi,%esi
41227d:	74 15                	je     0x412294
41227f:	6a 00                	push   $0x0
412281:	8d 45 fc             	lea    -0x4(%ebp),%eax
412284:	50                   	push   %eax
412285:	56                   	push   %esi
412286:	ff 15 38 a4 44 00    	call   *0x44a438
41228c:	83 c4 0c             	add    $0xc,%esp
41228f:	5f                   	pop    %edi
412290:	5e                   	pop    %esi
412291:	5b                   	pop    %ebx
412292:	c9                   	leave
412293:	c3                   	ret
412294:	33 c0                	xor    %eax,%eax
412296:	eb f7                	jmp    0x41228f
412298:	8b ff                	mov    %edi,%edi
41229a:	55                   	push   %ebp
41229b:	8b ec                	mov    %esp,%ebp
41229d:	33 c0                	xor    %eax,%eax
41229f:	85 d2                	test   %edx,%edx
4122a1:	74 29                	je     0x4122cc
4122a3:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4122a9:	77 21                	ja     0x4122cc
4122ab:	85 c0                	test   %eax,%eax
4122ad:	78 24                	js     0x4122d3
4122af:	81 7d 0c fe ff ff 7f 	cmpl   $0x7ffffffe,0xc(%ebp)
4122b6:	0f 87 c6 cf 00 00    	ja     0x41f282
4122bc:	ff 75 0c             	push   0xc(%ebp)
4122bf:	ff 75 08             	push   0x8(%ebp)
4122c2:	51                   	push   %ecx
4122c3:	e8 14 00 00 00       	call   0x4122dc
4122c8:	5d                   	pop    %ebp
4122c9:	c2 08 00             	ret    $0x8
4122cc:	b8 57 00 07 80       	mov    $0x80070057,%eax
4122d1:	eb d8                	jmp    0x4122ab
4122d3:	85 d2                	test   %edx,%edx
4122d5:	74 f1                	je     0x4122c8
4122d7:	e9 ab cf 00 00       	jmp    0x41f287
4122dc:	8b ff                	mov    %edi,%edi
4122de:	55                   	push   %ebp
4122df:	8b ec                	mov    %esp,%ebp
4122e1:	85 d2                	test   %edx,%edx
4122e3:	74 42                	je     0x412327
4122e5:	8b 45 0c             	mov    0xc(%ebp),%eax
4122e8:	56                   	push   %esi
4122e9:	8b 75 10             	mov    0x10(%ebp),%esi
4122ec:	2b c1                	sub    %ecx,%eax
4122ee:	57                   	push   %edi
4122ef:	85 f6                	test   %esi,%esi
4122f1:	74 15                	je     0x412308
4122f3:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
4122f7:	66 85 ff             	test   %di,%di
4122fa:	74 0c                	je     0x412308
4122fc:	66 89 39             	mov    %di,(%ecx)
4122ff:	83 c1 02             	add    $0x2,%ecx
412302:	4e                   	dec    %esi
412303:	83 ea 01             	sub    $0x1,%edx
412306:	75 e7                	jne    0x4122ef
412308:	5f                   	pop    %edi
412309:	5e                   	pop    %esi
41230a:	85 d2                	test   %edx,%edx
41230c:	74 19                	je     0x412327
41230e:	f7 da                	neg    %edx
412310:	1b d2                	sbb    %edx,%edx
412312:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
412318:	33 c0                	xor    %eax,%eax
41231a:	66 89 01             	mov    %ax,(%ecx)
41231d:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
412323:	5d                   	pop    %ebp
412324:	c2 0c 00             	ret    $0xc
412327:	83 e9 02             	sub    $0x2,%ecx
41232a:	eb e2                	jmp    0x41230e
41232c:	8b ff                	mov    %edi,%edi
41232e:	55                   	push   %ebp
41232f:	8b ec                	mov    %esp,%ebp
412331:	51                   	push   %ecx
412332:	56                   	push   %esi
412333:	33 c0                	xor    %eax,%eax
412335:	8b f1                	mov    %ecx,%esi
412337:	57                   	push   %edi
412338:	38 86 0c 02 00 00    	cmp    %al,0x20c(%esi)
41233e:	0f 95 c0             	setne  %al
412341:	48                   	dec    %eax
412342:	25 1d 81 ff ff       	and    $0xffff811d,%eax
412347:	05 e7 7f 00 00       	add    $0x7fe7,%eax
41234c:	50                   	push   %eax
41234d:	e8 9e c0 ff ff       	call   0x40e3f0
412352:	8b f8                	mov    %eax,%edi
412354:	85 ff                	test   %edi,%edi
412356:	0f 88 35 cf 00 00    	js     0x41f291
41235c:	8b 8e 08 02 00 00    	mov    0x208(%esi),%ecx
412362:	85 c9                	test   %ecx,%ecx
412364:	74 21                	je     0x412387
412366:	ff 75 08             	push   0x8(%ebp)
412369:	8b 96 10 02 00 00    	mov    0x210(%esi),%edx
41236f:	e8 cc d8 ff ff       	call   0x40fc40
412374:	8b f0                	mov    %eax,%esi
412376:	85 f6                	test   %esi,%esi
412378:	0f 88 2d cf 00 00    	js     0x41f2ab
41237e:	8b c6                	mov    %esi,%eax
412380:	5f                   	pop    %edi
412381:	5e                   	pop    %esi
412382:	59                   	pop    %ecx
412383:	5d                   	pop    %ebp
412384:	c2 04 00             	ret    $0x4
412387:	8b ce                	mov    %esi,%ecx
412389:	eb db                	jmp    0x412366
41238b:	8b ff                	mov    %edi,%edi
41238d:	55                   	push   %ebp
41238e:	8b ec                	mov    %esp,%ebp
412390:	33 c0                	xor    %eax,%eax
412392:	38 05 fc 8d 44 00    	cmp    %al,0x448dfc
412398:	56                   	push   %esi
412399:	0f 95 c0             	setne  %al
41239c:	48                   	dec    %eax
41239d:	57                   	push   %edi
41239e:	25 1d 81 ff ff       	and    $0xffff811d,%eax
4123a3:	bf f0 8b 44 00       	mov    $0x448bf0,%edi
4123a8:	05 e7 7f 00 00       	add    $0x7fe7,%eax
4123ad:	8b cf                	mov    %edi,%ecx
4123af:	50                   	push   %eax
4123b0:	e8 3b c0 ff ff       	call   0x40e3f0
4123b5:	8b f0                	mov    %eax,%esi
4123b7:	85 f6                	test   %esi,%esi
4123b9:	0f 88 04 cf 00 00    	js     0x41f2c3
4123bf:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
4123c5:	85 c9                	test   %ecx,%ecx
4123c7:	74 23                	je     0x4123ec
4123c9:	ff 75 0c             	push   0xc(%ebp)
4123cc:	8b 15 00 8e 44 00    	mov    0x448e00,%edx
4123d2:	ff 75 08             	push   0x8(%ebp)
4123d5:	e8 be fe ff ff       	call   0x412298
4123da:	8b f0                	mov    %eax,%esi
4123dc:	85 f6                	test   %esi,%esi
4123de:	0f 88 e9 ce 00 00    	js     0x41f2cd
4123e4:	5f                   	pop    %edi
4123e5:	8b c6                	mov    %esi,%eax
4123e7:	5e                   	pop    %esi
4123e8:	5d                   	pop    %ebp
4123e9:	c2 08 00             	ret    $0x8
4123ec:	8b cf                	mov    %edi,%ecx
4123ee:	eb d9                	jmp    0x4123c9
4123f0:	8b ff                	mov    %edi,%edi
4123f2:	55                   	push   %ebp
4123f3:	8b ec                	mov    %esp,%ebp
4123f5:	81 ec 54 06 00 00    	sub    $0x654,%esp
4123fb:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
412400:	33 c5                	xor    %ebp,%eax
412402:	89 45 fc             	mov    %eax,-0x4(%ebp)
412405:	83 a5 d0 fd ff ff 00 	andl   $0x0,-0x230(%ebp)
41240c:	b8 04 01 00 00       	mov    $0x104,%eax
412411:	53                   	push   %ebx
412412:	56                   	push   %esi
412413:	57                   	push   %edi
412414:	50                   	push   %eax
412415:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
41241b:	33 db                	xor    %ebx,%ebx
41241d:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
412423:	43                   	inc    %ebx
412424:	6a 00                	push   $0x0
412426:	50                   	push   %eax
412427:	8b f2                	mov    %edx,%esi
412429:	88 9d d4 fd ff ff    	mov    %bl,-0x22c(%ebp)
41242f:	8b f9                	mov    %ecx,%edi
412431:	e8 87 5b 00 00       	call   0x417fbd
412436:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
41243a:	83 c4 0c             	add    $0xc,%esp
41243d:	b8 04 01 00 00       	mov    $0x104,%eax
412442:	88 5d ec             	mov    %bl,-0x14(%ebp)
412445:	89 45 f0             	mov    %eax,-0x10(%ebp)
412448:	50                   	push   %eax
412449:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
41244f:	6a 00                	push   $0x0
412451:	50                   	push   %eax
412452:	e8 66 5b 00 00       	call   0x417fbd
412457:	83 a5 b8 fb ff ff 00 	andl   $0x0,-0x448(%ebp)
41245e:	83 c4 0c             	add    $0xc,%esp
412461:	b8 04 01 00 00       	mov    $0x104,%eax
412466:	88 9d bc fb ff ff    	mov    %bl,-0x444(%ebp)
41246c:	89 85 c0 fb ff ff    	mov    %eax,-0x440(%ebp)
412472:	50                   	push   %eax
412473:	8d 85 b0 f9 ff ff    	lea    -0x650(%ebp),%eax
412479:	6a 00                	push   $0x0
41247b:	50                   	push   %eax
41247c:	e8 3c 5b 00 00       	call   0x417fbd
412481:	33 c0                	xor    %eax,%eax
412483:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
412489:	83 c4 0c             	add    $0xc,%esp
41248c:	38 85 d4 fd ff ff    	cmp    %al,-0x22c(%ebp)
412492:	0f 94 c0             	sete   %al
412495:	48                   	dec    %eax
412496:	25 e3 7e 00 00       	and    $0x7ee3,%eax
41249b:	05 04 01 00 00       	add    $0x104,%eax
4124a0:	50                   	push   %eax
4124a1:	e8 4a bf ff ff       	call   0x40e3f0
4124a6:	85 c0                	test   %eax,%eax
4124a8:	0f 88 68 ce 00 00    	js     0x41f316
4124ae:	33 c0                	xor    %eax,%eax
4124b0:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4124b6:	38 45 ec             	cmp    %al,-0x14(%ebp)
4124b9:	0f 94 c0             	sete   %al
4124bc:	48                   	dec    %eax
4124bd:	25 e3 7e 00 00       	and    $0x7ee3,%eax
4124c2:	05 04 01 00 00       	add    $0x104,%eax
4124c7:	50                   	push   %eax
4124c8:	e8 23 bf ff ff       	call   0x40e3f0
4124cd:	85 c0                	test   %eax,%eax
4124cf:	0f 88 41 ce 00 00    	js     0x41f316
4124d5:	33 c0                	xor    %eax,%eax
4124d7:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4124dd:	38 45 ec             	cmp    %al,-0x14(%ebp)
4124e0:	0f 94 c0             	sete   %al
4124e3:	48                   	dec    %eax
4124e4:	25 e3 7e 00 00       	and    $0x7ee3,%eax
4124e9:	05 04 01 00 00       	add    $0x104,%eax
4124ee:	50                   	push   %eax
4124ef:	e8 fc be ff ff       	call   0x40e3f0
4124f4:	85 c0                	test   %eax,%eax
4124f6:	0f 88 1a ce 00 00    	js     0x41f316
4124fc:	83 25 a8 67 43 00 00 	andl   $0x0,0x4367a8
412503:	8b 85 b8 fb ff ff    	mov    -0x448(%ebp),%eax
412509:	85 c0                	test   %eax,%eax
41250b:	75 06                	jne    0x412513
41250d:	8d 85 b0 f9 ff ff    	lea    -0x650(%ebp),%eax
412513:	ff b5 c0 fb ff ff    	push   -0x440(%ebp)
412519:	8b d6                	mov    %esi,%edx
41251b:	8b cf                	mov    %edi,%ecx
41251d:	50                   	push   %eax
41251e:	e8 42 58 ff ff       	call   0x407d65
412523:	84 c0                	test   %al,%al
412525:	0f 84 84 00 00 00    	je     0x4125af
41252b:	8b 85 b8 fb ff ff    	mov    -0x448(%ebp),%eax
412531:	85 c0                	test   %eax,%eax
412533:	75 06                	jne    0x41253b
412535:	8d 85 b0 f9 ff ff    	lea    -0x650(%ebp),%eax
41253b:	50                   	push   %eax
41253c:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
412542:	e8 fa 80 ff ff       	call   0x40a641
412547:	68 0c 25 40 00       	push   $0x40250c
41254c:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
412552:	e8 d5 fd ff ff       	call   0x41232c
412557:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
41255d:	85 c9                	test   %ecx,%ecx
41255f:	0f 84 7e cd 00 00    	je     0x41f2e3
412565:	8b 45 e8             	mov    -0x18(%ebp),%eax
412568:	85 c0                	test   %eax,%eax
41256a:	0f 84 7e cd 00 00    	je     0x41f2ee
412570:	ff b5 d8 fd ff ff    	push   -0x228(%ebp)
412576:	33 d2                	xor    %edx,%edx
412578:	51                   	push   %ecx
412579:	52                   	push   %edx
41257a:	8d 8d ac f9 ff ff    	lea    -0x654(%ebp),%ecx
412580:	51                   	push   %ecx
412581:	52                   	push   %edx
412582:	52                   	push   %edx
412583:	52                   	push   %edx
412584:	50                   	push   %eax
412585:	ff 15 dc a0 44 00    	call   *0x44a0dc
41258b:	85 c0                	test   %eax,%eax
41258d:	0f 84 66 cd 00 00    	je     0x41f2f9
412593:	8b 85 d0 fd ff ff    	mov    -0x230(%ebp),%eax
412599:	85 c0                	test   %eax,%eax
41259b:	74 5e                	je     0x4125fb
41259d:	68 c8 25 40 00       	push   $0x4025c8
4125a2:	50                   	push   %eax
4125a3:	ff 15 40 a4 44 00    	call   *0x44a440
4125a9:	59                   	pop    %ecx
4125aa:	59                   	pop    %ecx
4125ab:	85 c0                	test   %eax,%eax
4125ad:	74 54                	je     0x412603
4125af:	32 db                	xor    %bl,%bl
4125b1:	83 bd b8 fb ff ff 00 	cmpl   $0x0,-0x448(%ebp)
4125b8:	0f 85 67 cd 00 00    	jne    0x41f325
4125be:	8b 45 e8             	mov    -0x18(%ebp),%eax
4125c1:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4125c5:	85 c0                	test   %eax,%eax
4125c7:	74 08                	je     0x4125d1
4125c9:	50                   	push   %eax
4125ca:	ff 15 e0 a3 44 00    	call   *0x44a3e0
4125d0:	59                   	pop    %ecx
4125d1:	8b 85 d0 fd ff ff    	mov    -0x230(%ebp),%eax
4125d7:	83 a5 d0 fd ff ff 00 	andl   $0x0,-0x230(%ebp)
4125de:	85 c0                	test   %eax,%eax
4125e0:	74 08                	je     0x4125ea
4125e2:	50                   	push   %eax
4125e3:	ff 15 e0 a3 44 00    	call   *0x44a3e0
4125e9:	59                   	pop    %ecx
4125ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4125ed:	8a c3                	mov    %bl,%al
4125ef:	5f                   	pop    %edi
4125f0:	5e                   	pop    %esi
4125f1:	33 cd                	xor    %ebp,%ecx
4125f3:	5b                   	pop    %ebx
4125f4:	e8 37 45 00 00       	call   0x416b30
4125f9:	c9                   	leave
4125fa:	c3                   	ret
4125fb:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
412601:	eb 9a                	jmp    0x41259d
412603:	83 bd ac f9 ff ff 0c 	cmpl   $0xc,-0x654(%ebp)
41260a:	74 a5                	je     0x4125b1
41260c:	eb a1                	jmp    0x4125af
41260e:	8b ff                	mov    %edi,%edi
412610:	55                   	push   %ebp
412611:	8b ec                	mov    %esp,%ebp
412613:	83 ec 1c             	sub    $0x1c,%esp
412616:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
41261b:	33 c5                	xor    %ebp,%eax
41261d:	89 45 fc             	mov    %eax,-0x4(%ebp)
412620:	53                   	push   %ebx
412621:	56                   	push   %esi
412622:	57                   	push   %edi
412623:	6a 2c                	push   $0x2c