402514:	8b 44 24 38          	mov    0x38(%esp),%eax
402518:	8b f8                	mov    %eax,%edi
40251a:	25 ff ff 00 00       	and    $0xffff,%eax
40251f:	c1 ef 10             	shr    $0x10,%edi
402522:	2b fb                	sub    %ebx,%edi
402524:	03 f9                	add    %ecx,%edi
402526:	8b 0d 70 13 41 00    	mov    0x411370,%ecx
40252c:	2b c1                	sub    %ecx,%eax
40252e:	57                   	push   %edi
40252f:	03 c2                	add    %edx,%eax
402531:	50                   	push   %eax
402532:	56                   	push   %esi
402533:	ff 15 78 d1 40 00    	call   *0x40d178
402539:	5f                   	pop    %edi
40253a:	5b                   	pop    %ebx
40253b:	33 c0                	xor    %eax,%eax
40253d:	5e                   	pop    %esi
40253e:	83 c4 10             	add    $0x10,%esp
402541:	c2 10 00             	ret    $0x10
402544:	90                   	nop
402545:	90                   	nop
402546:	90                   	nop
402547:	90                   	nop
402548:	90                   	nop
402549:	90                   	nop
40254a:	90                   	nop
40254b:	90                   	nop
40254c:	90                   	nop
40254d:	90                   	nop
40254e:	90                   	nop
40254f:	90                   	nop
402550:	83 ec 14             	sub    $0x14,%esp
402553:	8d 44 24 00          	lea    0x0(%esp),%eax
402557:	50                   	push   %eax
402558:	6a 28                	push   $0x28
40255a:	ff 15 b0 d0 40 00    	call   *0x40d0b0
402560:	50                   	push   %eax
402561:	ff 15 08 d0 40 00    	call   *0x40d008
402567:	85 c0                	test   %eax,%eax
402569:	75 04                	jne    0x40256f
40256b:	83 c4 14             	add    $0x14,%esp
40256e:	c3                   	ret
40256f:	8d 4c 24 08          	lea    0x8(%esp),%ecx
402573:	51                   	push   %ecx
402574:	68 2c 01 41 00       	push   $0x41012c
402579:	6a 00                	push   $0x0
40257b:	ff 15 00 d0 40 00    	call   *0x40d000
402581:	8b 44 24 00          	mov    0x0(%esp),%eax
402585:	6a 00                	push   $0x0
402587:	6a 00                	push   $0x0
402589:	8d 54 24 0c          	lea    0xc(%esp),%edx
40258d:	6a 00                	push   $0x0
40258f:	52                   	push   %edx
402590:	6a 00                	push   $0x0
402592:	50                   	push   %eax
402593:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
40259a:	00
40259b:	c7 44 24 28 02 00 00 	movl   $0x2,0x28(%esp)
4025a2:	00
4025a3:	ff 15 04 d0 40 00    	call   *0x40d004
4025a9:	ff 15 9c d0 40 00    	call   *0x40d09c
4025af:	85 c0                	test   %eax,%eax
4025b1:	74 06                	je     0x4025b9
4025b3:	33 c0                	xor    %eax,%eax
4025b5:	83 c4 14             	add    $0x14,%esp
4025b8:	c3                   	ret
4025b9:	a1 58 13 41 00       	mov    0x411358,%eax
4025be:	6a 00                	push   $0x0
4025c0:	83 f8 01             	cmp    $0x1,%eax
4025c3:	75 11                	jne    0x4025d6
4025c5:	6a 01                	push   $0x1
4025c7:	ff 15 54 d1 40 00    	call   *0x40d154
4025cd:	b8 01 00 00 00       	mov    $0x1,%eax
4025d2:	83 c4 14             	add    $0x14,%esp
4025d5:	c3                   	ret
4025d6:	6a 02                	push   $0x2
4025d8:	ff 15 54 d1 40 00    	call   *0x40d154
4025de:	b8 01 00 00 00       	mov    $0x1,%eax
4025e3:	83 c4 14             	add    $0x14,%esp
4025e6:	c3                   	ret
4025e7:	90                   	nop
4025e8:	90                   	nop
4025e9:	90                   	nop
4025ea:	90                   	nop
4025eb:	90                   	nop
4025ec:	90                   	nop
4025ed:	90                   	nop
4025ee:	90                   	nop
4025ef:	90                   	nop
4025f0:	a1 58 13 41 00       	mov    0x411358,%eax
4025f5:	83 e8 00             	sub    $0x0,%eax
4025f8:	74 1c                	je     0x402616
4025fa:	48                   	dec    %eax
4025fb:	74 0e                	je     0x40260b
4025fd:	6a 01                	push   $0x1
4025ff:	68 40 01 41 00       	push   $0x410140
402604:	ff 15 98 d0 40 00    	call   *0x40d098
40260a:	c3                   	ret
40260b:	6a 00                	push   $0x0
40260d:	6a 02                	push   $0x2
40260f:	ff 15 54 d1 40 00    	call   *0x40d154
402615:	c3                   	ret
402616:	6a 00                	push   $0x0
402618:	6a 01                	push   $0x1
40261a:	ff 15 54 d1 40 00    	call   *0x40d154
402620:	c3                   	ret
402621:	90                   	nop
402622:	90                   	nop
402623:	90                   	nop
402624:	90                   	nop
402625:	90                   	nop
402626:	90                   	nop
402627:	90                   	nop
402628:	90                   	nop
402629:	90                   	nop
40262a:	90                   	nop
40262b:	90                   	nop
40262c:	90                   	nop
40262d:	90                   	nop
40262e:	90                   	nop
40262f:	90                   	nop
402630:	a1 68 13 41 00       	mov    0x411368,%eax
402635:	85 c0                	test   %eax,%eax
402637:	77 4f                	ja     0x402688
402639:	a1 4c 12 41 00       	mov    0x41124c,%eax
40263e:	68 fe ca 00 00       	push   $0xcafe
402643:	50                   	push   %eax
402644:	ff 15 50 d1 40 00    	call   *0x40d150
40264a:	e8 21 02 00 00       	call   0x402870
40264f:	85 c0                	test   %eax,%eax
402651:	74 07                	je     0x40265a
402653:	e8 f8 fe ff ff       	call   0x402550
402658:	eb 05                	jmp    0x40265f
40265a:	e8 91 ff ff ff       	call   0x4025f0
40265f:	8b 0d 48 12 41 00    	mov    0x411248,%ecx
402665:	56                   	push   %esi
402666:	8b 35 80 d1 40 00    	mov    0x40d180,%esi
40266c:	6a 00                	push   $0x0
40266e:	6a 00                	push   $0x0
402670:	6a 10                	push   $0x10
402672:	51                   	push   %ecx
402673:	ff d6                	call   *%esi
402675:	8b 15 4c 12 41 00    	mov    0x41124c,%edx
40267b:	6a 00                	push   $0x0
40267d:	6a 00                	push   $0x0
40267f:	6a 10                	push   $0x10
402681:	52                   	push   %edx
402682:	ff d6                	call   *%esi
402684:	5e                   	pop    %esi
402685:	c2 10 00             	ret    $0x10
402688:	8b 0d 68 13 41 00    	mov    0x411368,%ecx
40268e:	a1 48 12 41 00       	mov    0x411248,%eax
402693:	6a 00                	push   $0x0
402695:	6a 00                	push   $0x0
402697:	49                   	dec    %ecx
402698:	68 13 01 00 00       	push   $0x113
40269d:	50                   	push   %eax
40269e:	89 0d 68 13 41 00    	mov    %ecx,0x411368
4026a4:	ff 15 80 d1 40 00    	call   *0x40d180
4026aa:	c2 10 00             	ret    $0x10
4026ad:	90                   	nop
4026ae:	90                   	nop
4026af:	90                   	nop
4026b0:	a1 64 13 41 00       	mov    0x411364,%eax
4026b5:	81 ec c0 00 00 00    	sub    $0xc0,%esp
4026bb:	85 c0                	test   %eax,%eax
4026bd:	75 45                	jne    0x402704
4026bf:	e8 ac 01 00 00       	call   0x402870
4026c4:	85 c0                	test   %eax,%eax
4026c6:	74 1e                	je     0x4026e6
4026c8:	e8 83 fe ff ff       	call   0x402550
4026cd:	a1 4c 12 41 00       	mov    0x41124c,%eax
4026d2:	6a 00                	push   $0x0
4026d4:	6a 00                	push   $0x0
4026d6:	6a 10                	push   $0x10
4026d8:	50                   	push   %eax
4026d9:	ff 15 80 d1 40 00    	call   *0x40d180
4026df:	81 c4 c0 00 00 00    	add    $0xc0,%esp
4026e5:	c3                   	ret
4026e6:	e8 05 ff ff ff       	call   0x4025f0
4026eb:	a1 4c 12 41 00       	mov    0x41124c,%eax
4026f0:	6a 00                	push   $0x0
4026f2:	6a 00                	push   $0x0
4026f4:	6a 10                	push   $0x10
4026f6:	50                   	push   %eax
4026f7:	ff 15 80 d1 40 00    	call   *0x40d180
4026fd:	81 c4 c0 00 00 00    	add    $0xc0,%esp
402703:	c3                   	ret
402704:	8b 0d b4 01 41 00    	mov    0x4101b4,%ecx
40270a:	8b 15 b8 01 41 00    	mov    0x4101b8,%edx
402710:	89 4c 24 00          	mov    %ecx,0x0(%esp)
402714:	8a 0d bc 01 41 00    	mov    0x4101bc,%cl
40271a:	88 4c 24 08          	mov    %cl,0x8(%esp)
40271e:	8b 0d ac 01 41 00    	mov    0x4101ac,%ecx
402724:	89 54 24 04          	mov    %edx,0x4(%esp)
402728:	33 d2                	xor    %edx,%edx
40272a:	89 4c 24 1e          	mov    %ecx,0x1e(%esp)
40272e:	33 c9                	xor    %ecx,%ecx
402730:	89 54 24 09          	mov    %edx,0x9(%esp)
402734:	89 4c 24 26          	mov    %ecx,0x26(%esp)
402738:	89 54 24 0d          	mov    %edx,0xd(%esp)
40273c:	89 4c 24 2a          	mov    %ecx,0x2a(%esp)
402740:	89 54 24 11          	mov    %edx,0x11(%esp)
402744:	89 4c 24 2e          	mov    %ecx,0x2e(%esp)
402748:	89 54 24 15          	mov    %edx,0x15(%esp)
40274c:	89 4c 24 32          	mov    %ecx,0x32(%esp)
402750:	89 54 24 19          	mov    %edx,0x19(%esp)
402754:	89 4c 24 36          	mov    %ecx,0x36(%esp)
402758:	56                   	push   %esi
402759:	88 54 24 21          	mov    %dl,0x21(%esp)
40275d:	8b 15 b0 01 41 00    	mov    0x4101b0,%edx
402763:	57                   	push   %edi
402764:	66 89 4c 24 42       	mov    %cx,0x42(%esp)
402769:	b9 05 00 00 00       	mov    $0x5,%ecx
40276e:	be 94 01 41 00       	mov    $0x410194,%esi
402773:	8d 7c 24 44          	lea    0x44(%esp),%edi
402777:	89 54 24 2a          	mov    %edx,0x2a(%esp)
40277b:	8d 04 40             	lea    (%eax,%eax,2),%eax
40277e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402780:	8b 0d 4c 12 41 00    	mov    0x41124c,%ecx
402786:	33 d2                	xor    %edx,%edx
402788:	8d 04 80             	lea    (%eax,%eax,4),%eax
40278b:	68 30 26 40 00       	push   $0x402630
402790:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
402792:	68 e8 03 00 00       	push   $0x3e8
402797:	89 54 24 62          	mov    %edx,0x62(%esp)
40279b:	c1 e0 02             	shl    $0x2,%eax
40279e:	68 fe ca 00 00       	push   $0xcafe
4027a3:	51                   	push   %ecx
4027a4:	89 54 24 6e          	mov    %edx,0x6e(%esp)
4027a8:	a3 68 13 41 00       	mov    %eax,0x411368
4027ad:	ff 15 44 d1 40 00    	call   *0x40d144
4027b3:	8b 15 4c 12 41 00    	mov    0x41124c,%edx
4027b9:	6a 00                	push   $0x0
4027bb:	52                   	push   %edx
4027bc:	ff 15 98 d1 40 00    	call   *0x40d198
4027c2:	8b 0d 64 13 41 00    	mov    0x411364,%ecx
4027c8:	be 3c 00 00 00       	mov    $0x3c,%esi
4027cd:	8b c1                	mov    %ecx,%eax
4027cf:	99                   	cltd
4027d0:	f7 fe                	idiv   %esi
4027d2:	b8 89 88 88 88       	mov    $0x88888889,%eax
4027d7:	52                   	push   %edx
4027d8:	f7 e9                	imul   %ecx
4027da:	03 d1                	add    %ecx,%edx
4027dc:	c1 fa 05             	sar    $0x5,%edx
4027df:	8b c2                	mov    %edx,%eax
4027e1:	c1 e8 1f             	shr    $0x1f,%eax
4027e4:	03 d0                	add    %eax,%edx
4027e6:	a1 58 13 41 00       	mov    0x411358,%eax
4027eb:	52                   	push   %edx
4027ec:	8d 04 40             	lea    (%eax,%eax,2),%eax
4027ef:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
4027f2:	8d 44 24 6c          	lea    0x6c(%esp),%eax
4027f6:	8d 54 4c 10          	lea    0x10(%esp,%ecx,2),%edx
4027fa:	52                   	push   %edx
4027fb:	68 58 01 41 00       	push   $0x410158
402800:	50                   	push   %eax
402801:	e8 1c 2e 00 00       	call   0x405622
402806:	8b 15 4c 12 41 00    	mov    0x41124c,%edx
40280c:	83 c4 14             	add    $0x14,%esp
40280f:	8d 4c 24 64          	lea    0x64(%esp),%ecx
402813:	6a 30                	push   $0x30
402815:	68 50 01 41 00       	push   $0x410150
40281a:	51                   	push   %ecx
40281b:	52                   	push   %edx
40281c:	ff 15 48 d1 40 00    	call   *0x40d148
402822:	6a 00                	push   $0x0
402824:	68 b0 23 40 00       	push   $0x4023b0
402829:	a1 4c 12 41 00       	mov    0x41124c,%eax
40282e:	8b 0d 50 13 41 00    	mov    0x411350,%ecx
402834:	50                   	push   %eax
402835:	68 88 00 00 00       	push   $0x88
40283a:	51                   	push   %ecx
40283b:	ff 15 4c d1 40 00    	call   *0x40d14c
402841:	5f                   	pop    %edi
402842:	83 f8 02             	cmp    $0x2,%eax
402845:	5e                   	pop    %esi
402846:	75 13                	jne    0x40285b
402848:	8b 15 4c 12 41 00    	mov    0x41124c,%edx
40284e:	6a 00                	push   $0x0
402850:	6a 00                	push   $0x0
402852:	6a 10                	push   $0x10
402854:	52                   	push   %edx
402855:	ff 15 80 d1 40 00    	call   *0x40d180
40285b:	81 c4 c0 00 00 00    	add    $0xc0,%esp
402861:	c3                   	ret
402862:	90                   	nop
402863:	90                   	nop
402864:	90                   	nop
402865:	90                   	nop
402866:	90                   	nop
402867:	90                   	nop
402868:	90                   	nop
402869:	90                   	nop
40286a:	90                   	nop
40286b:	90                   	nop
40286c:	90                   	nop
40286d:	90                   	nop
40286e:	90                   	nop
40286f:	90                   	nop
402870:	81 ec 94 00 00 00    	sub    $0x94,%esp
402876:	8d 44 24 00          	lea    0x0(%esp),%eax
40287a:	c7 44 24 00 94 00 00 	movl   $0x94,0x0(%esp)
402881:	00
402882:	50                   	push   %eax
402883:	ff 15 94 d0 40 00    	call   *0x40d094
402889:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40288d:	33 c0                	xor    %eax,%eax
40288f:	83 f9 02             	cmp    $0x2,%ecx
402892:	0f 94 c0             	sete   %al
402895:	81 c4 94 00 00 00    	add    $0x94,%esp
40289b:	c3                   	ret
40289c:	90                   	nop
40289d:	90                   	nop
40289e:	90                   	nop
40289f:	90                   	nop
4028a0:	8a 0d 50 1b 41 00    	mov    0x411b50,%cl
4028a6:	b0 01                	mov    $0x1,%al
4028a8:	84 c8                	test   %cl,%al
4028aa:	75 08                	jne    0x4028b4
4028ac:	0a c8                	or     %al,%cl
4028ae:	88 0d 50 1b 41 00    	mov    %cl,0x411b50
4028b4:	e9 07 00 00 00       	jmp    0x4028c0
4028b9:	90                   	nop
4028ba:	90                   	nop
4028bb:	90                   	nop
4028bc:	90                   	nop
4028bd:	90                   	nop
4028be:	90                   	nop
4028bf:	90                   	nop
4028c0:	68 d0 28 40 00       	push   $0x4028d0
4028c5:	e8 40 2c 00 00       	call   0x40550a
4028ca:	59                   	pop    %ecx
4028cb:	c3                   	ret
4028cc:	90                   	nop
4028cd:	90                   	nop
4028ce:	90                   	nop
4028cf:	90                   	nop
4028d0:	c3                   	ret
4028d1:	90                   	nop
4028d2:	90                   	nop
4028d3:	90                   	nop
4028d4:	90                   	nop
4028d5:	90                   	nop
4028d6:	90                   	nop
4028d7:	90                   	nop
4028d8:	90                   	nop
4028d9:	90                   	nop
4028da:	90                   	nop