4023e3:	8b c6                	mov    %esi,%eax
4023e5:	5e                   	pop    %esi
4023e6:	c2 04 00             	ret    $0x4
4023e9:	cc                   	int3
4023ea:	cc                   	int3
4023eb:	cc                   	int3
4023ec:	cc                   	int3
4023ed:	cc                   	int3
4023ee:	cc                   	int3
4023ef:	cc                   	int3
4023f0:	56                   	push   %esi
4023f1:	33 c0                	xor    %eax,%eax
4023f3:	8b f1                	mov    %ecx,%esi
4023f5:	6a ff                	push   $0xffffffff
4023f7:	89 46 14             	mov    %eax,0x14(%esi)
4023fa:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
402401:	50                   	push   %eax
402402:	88 46 04             	mov    %al,0x4(%esi)
402405:	8b 44 24 10          	mov    0x10(%esp),%eax
402409:	50                   	push   %eax
40240a:	e8 21 0d 00 00       	call   0x403130
40240f:	8b c6                	mov    %esi,%eax
402411:	5e                   	pop    %esi
402412:	c2 04 00             	ret    $0x4
402415:	cc                   	int3
402416:	cc                   	int3
402417:	cc                   	int3
402418:	cc                   	int3
402419:	cc                   	int3
40241a:	cc                   	int3
40241b:	cc                   	int3
40241c:	cc                   	int3
40241d:	cc                   	int3
40241e:	cc                   	int3
40241f:	cc                   	int3
402420:	56                   	push   %esi
402421:	8b f1                	mov    %ecx,%esi
402423:	83 7e 18 10          	cmpl   $0x10,0x18(%esi)
402427:	72 0c                	jb     0x402435
402429:	8b 46 04             	mov    0x4(%esi),%eax
40242c:	50                   	push   %eax
40242d:	e8 04 2f 00 00       	call   0x405336
402432:	83 c4 04             	add    $0x4,%esp
402435:	33 c0                	xor    %eax,%eax
402437:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
40243e:	89 46 14             	mov    %eax,0x14(%esi)
402441:	88 46 04             	mov    %al,0x4(%esi)
402444:	5e                   	pop    %esi
402445:	c3                   	ret
402446:	cc                   	int3
402447:	cc                   	int3
402448:	cc                   	int3
402449:	cc                   	int3
40244a:	cc                   	int3
40244b:	cc                   	int3
40244c:	cc                   	int3
40244d:	cc                   	int3
40244e:	cc                   	int3
40244f:	cc                   	int3
402450:	51                   	push   %ecx
402451:	c7 01 3c 8a 42 00    	movl   $0x428a3c,(%ecx)
402457:	e8 b7 1e 00 00       	call   0x404313
40245c:	59                   	pop    %ecx
40245d:	c3                   	ret
40245e:	cc                   	int3
40245f:	cc                   	int3
402460:	8b 41 f8             	mov    -0x8(%ecx),%eax
402463:	8b 50 04             	mov    0x4(%eax),%edx
402466:	c7 44 0a f8 88 8a 42 	movl   $0x428a88,-0x8(%edx,%ecx,1)
40246d:	00
40246e:	c3                   	ret
40246f:	cc                   	int3
402470:	51                   	push   %ecx
402471:	53                   	push   %ebx
402472:	55                   	push   %ebp
402473:	8b e9                	mov    %ecx,%ebp
402475:	8b 5d 38             	mov    0x38(%ebp),%ebx
402478:	c7 45 00 4c 8a 42 00 	movl   $0x428a4c,0x0(%ebp)
40247f:	85 db                	test   %ebx,%ebx
402481:	74 50                	je     0x4024d3
402483:	57                   	push   %edi
402484:	8b 3b                	mov    (%ebx),%edi
402486:	85 ff                	test   %edi,%edi
402488:	74 3f                	je     0x4024c9
40248a:	6a 00                	push   $0x0
40248c:	8d 4c 24 10          	lea    0x10(%esp),%ecx
402490:	e8 79 22 00 00       	call   0x40470e
402495:	8b 47 04             	mov    0x4(%edi),%eax
402498:	85 c0                	test   %eax,%eax
40249a:	76 09                	jbe    0x4024a5
40249c:	83 f8 ff             	cmp    $0xffffffff,%eax
40249f:	73 04                	jae    0x4024a5
4024a1:	48                   	dec    %eax
4024a2:	89 47 04             	mov    %eax,0x4(%edi)
4024a5:	56                   	push   %esi
4024a6:	8b 77 04             	mov    0x4(%edi),%esi
4024a9:	f7 de                	neg    %esi
4024ab:	1b f6                	sbb    %esi,%esi
4024ad:	f7 d6                	not    %esi
4024af:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4024b3:	23 f7                	and    %edi,%esi
4024b5:	e8 7c 22 00 00       	call   0x404736
4024ba:	85 f6                	test   %esi,%esi
4024bc:	74 0a                	je     0x4024c8
4024be:	8b 06                	mov    (%esi),%eax
4024c0:	8b 10                	mov    (%eax),%edx
4024c2:	6a 01                	push   $0x1
4024c4:	8b ce                	mov    %esi,%ecx
4024c6:	ff d2                	call   *%edx
4024c8:	5e                   	pop    %esi
4024c9:	53                   	push   %ebx
4024ca:	e8 67 2e 00 00       	call   0x405336
4024cf:	83 c4 04             	add    $0x4,%esp
4024d2:	5f                   	pop    %edi
4024d3:	8d 4d 04             	lea    0x4(%ebp),%ecx
4024d6:	5d                   	pop    %ebp
4024d7:	5b                   	pop    %ebx
4024d8:	83 c4 04             	add    $0x4,%esp
4024db:	e9 63 23 00 00       	jmp    0x404843
4024e0:	b8 ff ff 00 00       	mov    $0xffff,%eax
4024e5:	c2 04 00             	ret    $0x4
4024e8:	cc                   	int3
4024e9:	cc                   	int3
4024ea:	cc                   	int3
4024eb:	cc                   	int3
4024ec:	cc                   	int3
4024ed:	cc                   	int3
4024ee:	cc                   	int3
4024ef:	cc                   	int3
4024f0:	b8 ff ff 00 00       	mov    $0xffff,%eax
4024f5:	c3                   	ret
4024f6:	cc                   	int3
4024f7:	cc                   	int3
4024f8:	cc                   	int3
4024f9:	cc                   	int3
4024fa:	cc                   	int3
4024fb:	cc                   	int3
4024fc:	cc                   	int3
4024fd:	cc                   	int3
4024fe:	cc                   	int3
4024ff:	cc                   	int3
402500:	56                   	push   %esi
402501:	8b f1                	mov    %ecx,%esi
402503:	8b 06                	mov    (%esi),%eax
402505:	8b 50 10             	mov    0x10(%eax),%edx
402508:	ff d2                	call   *%edx
40250a:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40250f:	66 3b c8             	cmp    %ax,%cx
402512:	75 04                	jne    0x402518
402514:	8b c1                	mov    %ecx,%eax
402516:	5e                   	pop    %esi
402517:	c3                   	ret
402518:	8b 46 30             	mov    0x30(%esi),%eax
40251b:	ff 08                	decl   (%eax)
40251d:	8b 76 20             	mov    0x20(%esi),%esi
402520:	8b 06                	mov    (%esi),%eax
402522:	8d 50 02             	lea    0x2(%eax),%edx
402525:	89 16                	mov    %edx,(%esi)
402527:	0f b7 00             	movzwl (%eax),%eax
40252a:	5e                   	pop    %esi
40252b:	c3                   	ret
40252c:	cc                   	int3
40252d:	cc                   	int3
40252e:	cc                   	int3
40252f:	cc                   	int3
402530:	8b 54 24 08          	mov    0x8(%esp),%edx
402534:	8b 01                	mov    (%ecx),%eax
402536:	8b 40 1c             	mov    0x1c(%eax),%eax
402539:	52                   	push   %edx
40253a:	8b 54 24 08          	mov    0x8(%esp),%edx
40253e:	6a ff                	push   $0xffffffff
402540:	52                   	push   %edx
402541:	ff d0                	call   *%eax
402543:	c2 08 00             	ret    $0x8
402546:	cc                   	int3
402547:	cc                   	int3
402548:	cc                   	int3
402549:	cc                   	int3
40254a:	cc                   	int3
40254b:	cc                   	int3
40254c:	cc                   	int3
40254d:	cc                   	int3
40254e:	cc                   	int3
40254f:	cc                   	int3
402550:	51                   	push   %ecx
402551:	53                   	push   %ebx
402552:	56                   	push   %esi
402553:	57                   	push   %edi
402554:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
402558:	33 f6                	xor    %esi,%esi
40255a:	8b d9                	mov    %ecx,%ebx
40255c:	89 74 24 0c          	mov    %esi,0xc(%esp)
402560:	85 ff                	test   %edi,%edi
402562:	0f 8e 89 00 00 00    	jle    0x4025f1
402568:	55                   	push   %ebp
402569:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40256d:	8d 49 00             	lea    0x0(%ecx),%ecx
402570:	8b c3                	mov    %ebx,%eax
402572:	e8 19 0d 00 00       	call   0x403290
402577:	85 c0                	test   %eax,%eax
402579:	7e 41                	jle    0x4025bc
40257b:	3b f8                	cmp    %eax,%edi
40257d:	8b f0                	mov    %eax,%esi
40257f:	7d 02                	jge    0x402583
402581:	8b f7                	mov    %edi,%esi
402583:	8b 43 20             	mov    0x20(%ebx),%eax
402586:	8b 08                	mov    (%eax),%ecx
402588:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40258c:	8d 3c 36             	lea    (%esi,%esi,1),%edi
40258f:	57                   	push   %edi
402590:	51                   	push   %ecx
402591:	8d 04 12             	lea    (%edx,%edx,1),%eax
402594:	50                   	push   %eax
402595:	55                   	push   %ebp
402596:	e8 fb 2e 00 00       	call   0x405496
40259b:	8b 43 30             	mov    0x30(%ebx),%eax
40259e:	29 30                	sub    %esi,(%eax)
4025a0:	29 74 24 30          	sub    %esi,0x30(%esp)
4025a4:	01 74 24 20          	add    %esi,0x20(%esp)
4025a8:	8b 43 20             	mov    0x20(%ebx),%eax
4025ab:	8b 74 24 20          	mov    0x20(%esp),%esi
4025af:	03 ef                	add    %edi,%ebp
4025b1:	83 c4 10             	add    $0x10,%esp
4025b4:	01 38                	add    %edi,(%eax)
4025b6:	8b 7c 24 20          	mov    0x20(%esp),%edi
4025ba:	eb 27                	jmp    0x4025e3
4025bc:	8b 13                	mov    (%ebx),%edx
4025be:	8b 42 14             	mov    0x14(%edx),%eax
4025c1:	8b cb                	mov    %ebx,%ecx
4025c3:	ff d0                	call   *%eax
4025c5:	0f b7 c0             	movzwl %ax,%eax
4025c8:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4025cd:	66 3b c8             	cmp    %ax,%cx
4025d0:	74 15                	je     0x4025e7
4025d2:	66 89 45 00          	mov    %ax,0x0(%ebp)
4025d6:	46                   	inc    %esi
4025d7:	83 c5 02             	add    $0x2,%ebp
4025da:	4f                   	dec    %edi
4025db:	89 74 24 10          	mov    %esi,0x10(%esp)
4025df:	89 7c 24 20          	mov    %edi,0x20(%esp)
4025e3:	85 ff                	test   %edi,%edi
4025e5:	7f 89                	jg     0x402570
4025e7:	5d                   	pop    %ebp
4025e8:	5f                   	pop    %edi
4025e9:	8b c6                	mov    %esi,%eax
4025eb:	5e                   	pop    %esi
4025ec:	5b                   	pop    %ebx
4025ed:	59                   	pop    %ecx
4025ee:	c2 0c 00             	ret    $0xc
4025f1:	5f                   	pop    %edi
4025f2:	8b c6                	mov    %esi,%eax
4025f4:	5e                   	pop    %esi
4025f5:	5b                   	pop    %ebx
4025f6:	59                   	pop    %ecx
4025f7:	c2 0c 00             	ret    $0xc
4025fa:	cc                   	int3
4025fb:	cc                   	int3
4025fc:	cc                   	int3
4025fd:	cc                   	int3
4025fe:	cc                   	int3
4025ff:	cc                   	int3
402600:	51                   	push   %ecx
402601:	53                   	push   %ebx
402602:	56                   	push   %esi
402603:	57                   	push   %edi
402604:	8b 7c 24 18          	mov    0x18(%esp),%edi
402608:	33 f6                	xor    %esi,%esi
40260a:	8b d9                	mov    %ecx,%ebx
40260c:	89 74 24 0c          	mov    %esi,0xc(%esp)
402610:	85 ff                	test   %edi,%edi
402612:	0f 8e 82 00 00 00    	jle    0x40269a
402618:	55                   	push   %ebp
402619:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40261d:	8d 49 00             	lea    0x0(%ecx),%ecx
402620:	8b c3                	mov    %ebx,%eax
402622:	e8 89 0c 00 00       	call   0x4032b0
402627:	85 c0                	test   %eax,%eax
402629:	7e 3c                	jle    0x402667
40262b:	3b f8                	cmp    %eax,%edi
40262d:	8b f0                	mov    %eax,%esi
40262f:	7d 02                	jge    0x402633
402631:	8b f7                	mov    %edi,%esi
402633:	8b 4b 24             	mov    0x24(%ebx),%ecx
402636:	8b 11                	mov    (%ecx),%edx
402638:	8d 3c 36             	lea    (%esi,%esi,1),%edi
40263b:	57                   	push   %edi
40263c:	55                   	push   %ebp
40263d:	03 c0                	add    %eax,%eax
40263f:	50                   	push   %eax
402640:	52                   	push   %edx
402641:	e8 50 2e 00 00       	call   0x405496
402646:	8b 43 34             	mov    0x34(%ebx),%eax
402649:	29 30                	sub    %esi,(%eax)
40264b:	29 74 24 2c          	sub    %esi,0x2c(%esp)
40264f:	01 74 24 20          	add    %esi,0x20(%esp)
402653:	8b 43 24             	mov    0x24(%ebx),%eax
402656:	8b 74 24 20          	mov    0x20(%esp),%esi
40265a:	03 ef                	add    %edi,%ebp
40265c:	83 c4 10             	add    $0x10,%esp
40265f:	01 38                	add    %edi,(%eax)
402661:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
402665:	eb 25                	jmp    0x40268c
402667:	0f b7 45 00          	movzwl 0x0(%ebp),%eax
40266b:	8b 13                	mov    (%ebx),%edx
40266d:	50                   	push   %eax
40266e:	8b 42 04             	mov    0x4(%edx),%eax
402671:	8b cb                	mov    %ebx,%ecx
402673:	ff d0                	call   *%eax
402675:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40267a:	66 3b c8             	cmp    %ax,%cx
40267d:	74 11                	je     0x402690
40267f:	46                   	inc    %esi
402680:	83 c5 02             	add    $0x2,%ebp
402683:	4f                   	dec    %edi
402684:	89 74 24 10          	mov    %esi,0x10(%esp)
402688:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40268c:	85 ff                	test   %edi,%edi
40268e:	7f 90                	jg     0x402620
402690:	5d                   	pop    %ebp
402691:	5f                   	pop    %edi
402692:	8b c6                	mov    %esi,%eax
402694:	5e                   	pop    %esi
402695:	5b                   	pop    %ebx
402696:	59                   	pop    %ecx
402697:	c2 08 00             	ret    $0x8
40269a:	5f                   	pop    %edi
40269b:	8b c6                	mov    %esi,%eax
40269d:	5e                   	pop    %esi
40269e:	5b                   	pop    %ebx
40269f:	59                   	pop    %ecx
4026a0:	c2 08 00             	ret    $0x8
4026a3:	cc                   	int3
4026a4:	cc                   	int3
4026a5:	cc                   	int3
4026a6:	cc                   	int3
4026a7:	cc                   	int3
4026a8:	cc                   	int3
4026a9:	cc                   	int3
4026aa:	cc                   	int3
4026ab:	cc                   	int3
4026ac:	cc                   	int3
4026ad:	cc                   	int3
4026ae:	cc                   	int3
4026af:	cc                   	int3
4026b0:	8b 44 24 04          	mov    0x4(%esp),%eax
4026b4:	8b 0d 00 a2 41 00    	mov    0x41a200,%ecx
4026ba:	89 08                	mov    %ecx,(%eax)
4026bc:	33 c9                	xor    %ecx,%ecx
4026be:	89 48 08             	mov    %ecx,0x8(%eax)
4026c1:	89 48 0c             	mov    %ecx,0xc(%eax)