41e4f2:	89 75 98             	mov    %esi,-0x68(%ebp)
41e4f5:	89 75 88             	mov    %esi,-0x78(%ebp)
41e4f8:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
41e4fe:	89 b5 68 ff ff ff    	mov    %esi,-0x98(%ebp)
41e504:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
41e50a:	89 b5 50 ff ff ff    	mov    %esi,-0xb0(%ebp)
41e510:	c7 45 c0 04 00 02 80 	movl   $0x80020004,-0x40(%ebp)
41e517:	c7 45 b8 0a 00 00 00 	movl   $0xa,-0x48(%ebp)
41e51e:	89 7d d0             	mov    %edi,-0x30(%ebp)
41e521:	c7 45 c8 02 00 00 00 	movl   $0x2,-0x38(%ebp)
41e528:	ff 15 34 10 40 00    	call   *0x401034
41e52e:	8d 45 a8             	lea    -0x58(%ebp),%eax
41e531:	8d 8d 68 ff ff ff    	lea    -0x98(%ebp),%ecx
41e537:	50                   	push   %eax
41e538:	51                   	push   %ecx
41e539:	89 bd 70 ff ff ff    	mov    %edi,-0x90(%ebp)
41e53f:	c7 85 68 ff ff ff 02 	movl   $0x8002,-0x98(%ebp)
41e546:	80 00 00
41e549:	ff 15 cc 10 40 00    	call   *0x4010cc
41e54f:	8b 1d 20 10 40 00    	mov    0x401020,%ebx
41e555:	66 8b f8             	mov    %ax,%di
41e558:	8d 55 a8             	lea    -0x58(%ebp),%edx
41e55b:	8d 45 b8             	lea    -0x48(%ebp),%eax
41e55e:	52                   	push   %edx
41e55f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41e562:	50                   	push   %eax
41e563:	51                   	push   %ecx
41e564:	6a 03                	push   $0x3
41e566:	ff d3                	call   *%ebx
41e568:	83 c4 10             	add    $0x10,%esp
41e56b:	66 3b fe             	cmp    %si,%di
41e56e:	0f 84 85 00 00 00    	je     0x41e5f9
41e574:	ff 15 c4 10 40 00    	call   *0x4010c4
41e57a:	8d 55 d8             	lea    -0x28(%ebp),%edx
41e57d:	50                   	push   %eax
41e57e:	52                   	push   %edx
41e57f:	ff 15 48 10 40 00    	call   *0x401048
41e585:	b9 0a 00 00 00       	mov    $0xa,%ecx
41e58a:	8d 55 a8             	lea    -0x58(%ebp),%edx
41e58d:	89 4d 98             	mov    %ecx,-0x68(%ebp)
41e590:	89 4d a8             	mov    %ecx,-0x58(%ebp)
41e593:	89 4d b8             	mov    %ecx,-0x48(%ebp)
41e596:	89 4d c8             	mov    %ecx,-0x38(%ebp)
41e599:	8d 4d 98             	lea    -0x68(%ebp),%ecx
41e59c:	8b f8                	mov    %eax,%edi
41e59e:	51                   	push   %ecx
41e59f:	52                   	push   %edx
41e5a0:	8d 4d b8             	lea    -0x48(%ebp),%ecx
41e5a3:	b8 04 00 02 80       	mov    $0x80020004,%eax
41e5a8:	8d 55 c8             	lea    -0x38(%ebp),%edx
41e5ab:	51                   	push   %ecx
41e5ac:	89 45 a0             	mov    %eax,-0x60(%ebp)
41e5af:	89 45 b0             	mov    %eax,-0x50(%ebp)
41e5b2:	89 45 c0             	mov    %eax,-0x40(%ebp)
41e5b5:	89 45 d0             	mov    %eax,-0x30(%ebp)
41e5b8:	8b 07                	mov    (%edi),%eax
41e5ba:	52                   	push   %edx
41e5bb:	68 0f 01 00 00       	push   $0x10f
41e5c0:	57                   	push   %edi
41e5c1:	ff 50 44             	call   *0x44(%eax)
41e5c4:	3b c6                	cmp    %esi,%eax
41e5c6:	db e2                	fnclex
41e5c8:	7d 0f                	jge    0x41e5d9
41e5ca:	6a 44                	push   $0x44
41e5cc:	68 78 1d 40 00       	push   $0x401d78
41e5d1:	57                   	push   %edi
41e5d2:	50                   	push   %eax
41e5d3:	ff 15 38 10 40 00    	call   *0x401038
41e5d9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41e5dc:	ff 15 00 11 40 00    	call   *0x401100
41e5e2:	8d 45 98             	lea    -0x68(%ebp),%eax
41e5e5:	8d 4d a8             	lea    -0x58(%ebp),%ecx
41e5e8:	50                   	push   %eax
41e5e9:	8d 55 b8             	lea    -0x48(%ebp),%edx
41e5ec:	51                   	push   %ecx
41e5ed:	8d 45 c8             	lea    -0x38(%ebp),%eax
41e5f0:	52                   	push   %edx
41e5f1:	50                   	push   %eax
41e5f2:	6a 04                	push   $0x4
41e5f4:	ff d3                	call   *%ebx
41e5f6:	83 c4 14             	add    $0x14,%esp
41e5f9:	39 35 90 05 42 00    	cmp    %esi,0x420590
41e5ff:	75 10                	jne    0x41e611
41e601:	68 90 05 42 00       	push   $0x420590
41e606:	68 a8 1d 40 00       	push   $0x401da8
41e60b:	ff 15 a8 10 40 00    	call   *0x4010a8
41e611:	8b 3d 90 05 42 00    	mov    0x420590,%edi
41e617:	8d 55 d8             	lea    -0x28(%ebp),%edx
41e61a:	52                   	push   %edx
41e61b:	57                   	push   %edi
41e61c:	8b 0f                	mov    (%edi),%ecx
41e61e:	ff 51 14             	call   *0x14(%ecx)
41e621:	3b c6                	cmp    %esi,%eax
41e623:	db e2                	fnclex
41e625:	7d 0f                	jge    0x41e636
41e627:	6a 14                	push   $0x14
41e629:	68 98 1d 40 00       	push   $0x401d98
41e62e:	57                   	push   %edi
41e62f:	50                   	push   %eax
41e630:	ff 15 38 10 40 00    	call   *0x401038
41e636:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e639:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
41e63f:	52                   	push   %edx
41e640:	50                   	push   %eax
41e641:	8b 08                	mov    (%eax),%ecx
41e643:	8b f8                	mov    %eax,%edi
41e645:	ff 91 b8 00 00 00    	call   *0xb8(%ecx)
41e64b:	3b c6                	cmp    %esi,%eax
41e64d:	db e2                	fnclex
41e64f:	7d 12                	jge    0x41e663
41e651:	68 b8 00 00 00       	push   $0xb8
41e656:	68 b8 1d 40 00       	push   $0x401db8
41e65b:	57                   	push   %edi
41e65c:	50                   	push   %eax
41e65d:	ff 15 38 10 40 00    	call   *0x401038
41e663:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41e666:	ff 15 00 11 40 00    	call   *0x401100
41e66c:	8d 45 c8             	lea    -0x38(%ebp),%eax
41e66f:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
41e676:	50                   	push   %eax
41e677:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
41e67e:	ff 15 44 10 40 00    	call   *0x401044
41e684:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41e687:	ff 15 10 10 40 00    	call   *0x401010
41e68d:	8d 55 88             	lea    -0x78(%ebp),%edx
41e690:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41e693:	c7 45 90 68 1f 40 00 	movl   $0x401f68,-0x70(%ebp)
41e69a:	c7 45 88 08 00 00 00 	movl   $0x8,-0x78(%ebp)
41e6a1:	ff 15 d4 10 40 00    	call   *0x4010d4
41e6a7:	8d 4d b8             	lea    -0x48(%ebp),%ecx
41e6aa:	8d 55 c8             	lea    -0x38(%ebp),%edx
41e6ad:	51                   	push   %ecx
41e6ae:	52                   	push   %edx
41e6af:	ff 15 70 10 40 00    	call   *0x401070
41e6b5:	3b c6                	cmp    %esi,%eax
41e6b7:	7d 07                	jge    0x41e6c0
41e6b9:	50                   	push   %eax
41e6ba:	ff 15 0c 10 40 00    	call   *0x40100c
41e6c0:	8d 45 b8             	lea    -0x48(%ebp),%eax
41e6c3:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
41e6c9:	50                   	push   %eax
41e6ca:	51                   	push   %ecx
41e6cb:	c7 45 80 02 00 00 00 	movl   $0x2,-0x80(%ebp)
41e6d2:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
41e6d9:	80 00 00
41e6dc:	ff 15 cc 10 40 00    	call   *0x4010cc
41e6e2:	66 8b f8             	mov    %ax,%di
41e6e5:	8d 55 b8             	lea    -0x48(%ebp),%edx
41e6e8:	8d 45 c8             	lea    -0x38(%ebp),%eax
41e6eb:	52                   	push   %edx
41e6ec:	50                   	push   %eax
41e6ed:	6a 02                	push   $0x2
41e6ef:	ff d3                	call   *%ebx
41e6f1:	83 c4 0c             	add    $0xc,%esp
41e6f4:	66 3b fe             	cmp    %si,%di
41e6f7:	74 06                	je     0x41e6ff
41e6f9:	ff 15 1c 10 40 00    	call   *0x40101c
41e6ff:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41e702:	8d 55 b8             	lea    -0x48(%ebp),%edx
41e705:	51                   	push   %ecx
41e706:	52                   	push   %edx
41e707:	c7 45 d0 09 00 00 00 	movl   $0x9,-0x30(%ebp)
41e70e:	c7 45 c8 02 00 00 00 	movl   $0x2,-0x38(%ebp)
41e715:	ff 15 b8 10 40 00    	call   *0x4010b8
41e71b:	8d 45 b8             	lea    -0x48(%ebp),%eax
41e71e:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
41e724:	50                   	push   %eax
41e725:	51                   	push   %ecx
41e726:	c7 45 80 0b 00 00 00 	movl   $0xb,-0x80(%ebp)
41e72d:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
41e734:	80 00 00
41e737:	ff 15 cc 10 40 00    	call   *0x4010cc
41e73d:	66 8b f8             	mov    %ax,%di
41e740:	8d 55 b8             	lea    -0x48(%ebp),%edx
41e743:	8d 45 c8             	lea    -0x38(%ebp),%eax
41e746:	52                   	push   %edx
41e747:	50                   	push   %eax
41e748:	6a 02                	push   $0x2
41e74a:	ff d3                	call   *%ebx
41e74c:	83 c4 0c             	add    $0xc,%esp
41e74f:	66 3b fe             	cmp    %si,%di
41e752:	74 6d                	je     0x41e7c1
41e754:	39 35 90 05 42 00    	cmp    %esi,0x420590
41e75a:	75 10                	jne    0x41e76c
41e75c:	68 90 05 42 00       	push   $0x420590
41e761:	68 a8 1d 40 00       	push   $0x401da8
41e766:	ff 15 a8 10 40 00    	call   *0x4010a8
41e76c:	a1 10 00 42 00       	mov    0x420010,%eax
41e771:	8b 3d 90 05 42 00    	mov    0x420590,%edi
41e777:	3b c6                	cmp    %esi,%eax
41e779:	75 10                	jne    0x41e78b
41e77b:	68 10 00 42 00       	push   $0x420010
41e780:	68 2c 20 40 00       	push   $0x40202c
41e785:	ff 15 a8 10 40 00    	call   *0x4010a8
41e78b:	8b 0d 10 00 42 00    	mov    0x420010,%ecx
41e791:	8b 1f                	mov    (%edi),%ebx
41e793:	8d 55 d8             	lea    -0x28(%ebp),%edx
41e796:	51                   	push   %ecx
41e797:	52                   	push   %edx
41e798:	ff 15 50 10 40 00    	call   *0x401050
41e79e:	50                   	push   %eax
41e79f:	57                   	push   %edi
41e7a0:	ff 53 10             	call   *0x10(%ebx)
41e7a3:	3b c6                	cmp    %esi,%eax
41e7a5:	db e2                	fnclex
41e7a7:	7d 0f                	jge    0x41e7b8
41e7a9:	6a 10                	push   $0x10
41e7ab:	68 98 1d 40 00       	push   $0x401d98
41e7b0:	57                   	push   %edi
41e7b1:	50                   	push   %eax
41e7b2:	ff 15 38 10 40 00    	call   *0x401038
41e7b8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41e7bb:	ff 15 00 11 40 00    	call   *0x401100
41e7c1:	e8 2a f9 ff ff       	call   0x41e0f0
41e7c6:	66 3d ff ff          	cmp    $0xffff,%ax
41e7ca:	75 05                	jne    0x41e7d1
41e7cc:	e8 cf fc ff ff       	call   0x41e4a0
41e7d1:	39 35 90 05 42 00    	cmp    %esi,0x420590
41e7d7:	75 10                	jne    0x41e7e9
41e7d9:	68 90 05 42 00       	push   $0x420590
41e7de:	68 a8 1d 40 00       	push   $0x401da8
41e7e3:	ff 15 a8 10 40 00    	call   *0x4010a8
41e7e9:	8b 3d 90 05 42 00    	mov    0x420590,%edi
41e7ef:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41e7f2:	51                   	push   %ecx
41e7f3:	57                   	push   %edi
41e7f4:	8b 07                	mov    (%edi),%eax
41e7f6:	ff 50 14             	call   *0x14(%eax)
41e7f9:	3b c6                	cmp    %esi,%eax
41e7fb:	db e2                	fnclex
41e7fd:	7d 0f                	jge    0x41e80e
41e7ff:	6a 14                	push   $0x14
41e801:	68 98 1d 40 00       	push   $0x401d98
41e806:	57                   	push   %edi
41e807:	50                   	push   %eax
41e808:	ff 15 38 10 40 00    	call   *0x401038
41e80e:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e811:	8d 8d 50 ff ff ff    	lea    -0xb0(%ebp),%ecx
41e817:	51                   	push   %ecx
41e818:	50                   	push   %eax
41e819:	8b 10                	mov    (%eax),%edx
41e81b:	8b f8                	mov    %eax,%edi
41e81d:	ff 92 28 01 00 00    	call   *0x128(%edx)
41e823:	3b c6                	cmp    %esi,%eax
41e825:	db e2                	fnclex
41e827:	7d 12                	jge    0x41e83b
41e829:	68 28 01 00 00       	push   $0x128
41e82e:	68 b8 1d 40 00       	push   $0x401db8
41e833:	57                   	push   %edi
41e834:	50                   	push   %eax
41e835:	ff 15 38 10 40 00    	call   *0x401038
41e83b:	8b bd 50 ff ff ff    	mov    -0xb0(%ebp),%edi
41e841:	33 d2                	xor    %edx,%edx
41e843:	3b fe                	cmp    %esi,%edi
41e845:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41e848:	0f 94 c2             	sete   %dl
41e84b:	f7 da                	neg    %edx
41e84d:	8b fa                	mov    %edx,%edi
41e84f:	ff 15 00 11 40 00    	call   *0x401100
41e855:	66 3b fe             	cmp    %si,%di
41e858:	0f 85 6f 02 00 00    	jne    0x41eacd
41e85e:	39 35 10 00 42 00    	cmp    %esi,0x420010
41e864:	75 10                	jne    0x41e876
41e866:	68 10 00 42 00       	push   $0x420010
41e86b:	68 2c 20 40 00       	push   $0x40202c
41e870:	ff 15 a8 10 40 00    	call   *0x4010a8
41e876:	83 ec 10             	sub    $0x10,%esp
41e879:	b9 0a 00 00 00       	mov    $0xa,%ecx
41e87e:	8b dc                	mov    %esp,%ebx
41e880:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
41e886:	89 4d 88             	mov    %ecx,-0x78(%ebp)
41e889:	b8 04 00 02 80       	mov    $0x80020004,%eax
41e88e:	89 0b                	mov    %ecx,(%ebx)
41e890:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
41e896:	89 45 80             	mov    %eax,-0x80(%ebp)
41e899:	8b d0                	mov    %eax,%edx
41e89b:	89 4b 04             	mov    %ecx,0x4(%ebx)
41e89e:	83 ec 10             	sub    $0x10,%esp
41e8a1:	8b 35 10 00 42 00    	mov    0x420010,%esi
41e8a7:	8b cc                	mov    %esp,%ecx
41e8a9:	89 43 08             	mov    %eax,0x8(%ebx)
41e8ac:	8b 45 84             	mov    -0x7c(%ebp),%eax
41e8af:	89 55 90             	mov    %edx,-0x70(%ebp)
41e8b2:	8b 3e                	mov    (%esi),%edi
41e8b4:	89 43 0c             	mov    %eax,0xc(%ebx)
41e8b7:	8b 45 88             	mov    -0x78(%ebp),%eax
41e8ba:	89 01                	mov    %eax,(%ecx)
41e8bc:	8b 45 8c             	mov    -0x74(%ebp),%eax
41e8bf:	56                   	push   %esi
41e8c0:	89 41 04             	mov    %eax,0x4(%ecx)
41e8c3:	89 51 08             	mov    %edx,0x8(%ecx)
41e8c6:	8b 55 94             	mov    -0x6c(%ebp),%edx
41e8c9:	89 51 0c             	mov    %edx,0xc(%ecx)
41e8cc:	ff 97 b0 02 00 00    	call   *0x2b0(%edi)
41e8d2:	85 c0                	test   %eax,%eax
41e8d4:	db e2                	fnclex
41e8d6:	7d 16                	jge    0x41e8ee
41e8d8:	8b 3d 38 10 40 00    	mov    0x401038,%edi
41e8de:	68 b0 02 00 00       	push   $0x2b0
41e8e3:	68 9c 1a 40 00       	push   $0x401a9c
41e8e8:	56                   	push   %esi
41e8e9:	50                   	push   %eax
41e8ea:	ff d7                	call   *%edi
41e8ec:	eb 06                	jmp    0x41e8f4
41e8ee:	8b 3d 38 10 40 00    	mov    0x401038,%edi
41e8f4:	a1 10 00 42 00       	mov    0x420010,%eax
41e8f9:	85 c0                	test   %eax,%eax
41e8fb:	75 14                	jne    0x41e911
41e8fd:	8b 1d a8 10 40 00    	mov    0x4010a8,%ebx
41e903:	68 10 00 42 00       	push   $0x420010
41e908:	68 2c 20 40 00       	push   $0x40202c
41e90d:	ff d3                	call   *%ebx
41e90f:	eb 06                	jmp    0x41e917
41e911:	8b 1d a8 10 40 00    	mov    0x4010a8,%ebx
41e917:	8b 35 10 00 42 00    	mov    0x420010,%esi
41e91d:	56                   	push   %esi
41e91e:	8b 06                	mov    (%esi),%eax
41e920:	ff 90 b4 02 00 00    	call   *0x2b4(%eax)
41e926:	85 c0                	test   %eax,%eax
41e928:	db e2                	fnclex
41e92a:	7d 0e                	jge    0x41e93a
41e92c:	68 b4 02 00 00       	push   $0x2b4
41e931:	68 9c 1a 40 00       	push   $0x401a9c
41e936:	56                   	push   %esi
41e937:	50                   	push   %eax
41e938:	ff d7                	call   *%edi
41e93a:	a1 10 00 42 00       	mov    0x420010,%eax
41e93f:	85 c0                	test   %eax,%eax
41e941:	75 0c                	jne    0x41e94f
41e943:	68 10 00 42 00       	push   $0x420010
41e948:	68 2c 20 40 00       	push   $0x40202c
41e94d:	ff d3                	call   *%ebx
41e94f:	8b 35 10 00 42 00    	mov    0x420010,%esi
41e955:	8d 95 50 ff ff ff    	lea    -0xb0(%ebp),%edx
41e95b:	52                   	push   %edx
41e95c:	56                   	push   %esi
41e95d:	8b 0e                	mov    (%esi),%ecx
41e95f:	ff 91 e0 00 00 00    	call   *0xe0(%ecx)
41e965:	85 c0                	test   %eax,%eax
41e967:	db e2                	fnclex
41e969:	7d 0e                	jge    0x41e979
41e96b:	68 e0 00 00 00       	push   $0xe0
41e970:	68 9c 1a 40 00       	push   $0x401a9c
41e975:	56                   	push   %esi
41e976:	50                   	push   %eax
41e977:	ff d7                	call   *%edi
41e979:	a1 10 00 42 00       	mov    0x420010,%eax
41e97e:	85 c0                	test   %eax,%eax
41e980:	75 0c                	jne    0x41e98e
41e982:	68 10 00 42 00       	push   $0x420010