40964a:	c3                   	ret
40964b:	8b c6                	mov    %esi,%eax
40964d:	87 03                	xchg   %eax,(%ebx)
40964f:	85 c0                	test   %eax,%eax
409651:	74 07                	je     0x40965a
409653:	56                   	push   %esi
409654:	ff 15 20 c1 41 00    	call   *0x41c120
40965a:	8b c6                	mov    %esi,%eax
40965c:	eb e8                	jmp    0x409646
40965e:	55                   	push   %ebp
40965f:	8b ec                	mov    %esp,%ebp
409661:	8b 45 08             	mov    0x8(%ebp),%eax
409664:	56                   	push   %esi
409665:	57                   	push   %edi
409666:	8d 3c 85 1c 6d 42 00 	lea    0x426d1c(,%eax,4),%edi
40966d:	8b 07                	mov    (%edi),%eax
40966f:	90                   	nop
409670:	83 ce ff             	or     $0xffffffff,%esi
409673:	3b c6                	cmp    %esi,%eax
409675:	74 2b                	je     0x4096a2
409677:	85 c0                	test   %eax,%eax
409679:	75 29                	jne    0x4096a4
40967b:	ff 75 14             	push   0x14(%ebp)
40967e:	ff 75 10             	push   0x10(%ebp)
409681:	e8 3d ff ff ff       	call   0x4095c3
409686:	59                   	pop    %ecx
409687:	59                   	pop    %ecx
409688:	85 c0                	test   %eax,%eax
40968a:	74 14                	je     0x4096a0
40968c:	ff 75 0c             	push   0xc(%ebp)
40968f:	50                   	push   %eax
409690:	ff 15 1c c1 41 00    	call   *0x41c11c
409696:	85 c0                	test   %eax,%eax
409698:	74 06                	je     0x4096a0
40969a:	8b c8                	mov    %eax,%ecx
40969c:	87 0f                	xchg   %ecx,(%edi)
40969e:	eb 04                	jmp    0x4096a4
4096a0:	87 37                	xchg   %esi,(%edi)
4096a2:	33 c0                	xor    %eax,%eax
4096a4:	5f                   	pop    %edi
4096a5:	5e                   	pop    %esi
4096a6:	5d                   	pop    %ebp
4096a7:	c3                   	ret
4096a8:	55                   	push   %ebp
4096a9:	8b ec                	mov    %esp,%ebp
4096ab:	56                   	push   %esi
4096ac:	68 44 cf 41 00       	push   $0x41cf44
4096b1:	68 3c cf 41 00       	push   $0x41cf3c
4096b6:	68 44 cf 41 00       	push   $0x41cf44
4096bb:	6a 00                	push   $0x0
4096bd:	e8 9c ff ff ff       	call   0x40965e
4096c2:	8b f0                	mov    %eax,%esi
4096c4:	83 c4 10             	add    $0x10,%esp
4096c7:	85 f6                	test   %esi,%esi
4096c9:	74 10                	je     0x4096db
4096cb:	ff 75 08             	push   0x8(%ebp)
4096ce:	8b ce                	mov    %esi,%ecx
4096d0:	ff 15 50 c2 41 00    	call   *0x41c250
4096d6:	ff d6                	call   *%esi
4096d8:	5e                   	pop    %esi
4096d9:	5d                   	pop    %ebp
4096da:	c3                   	ret
4096db:	5e                   	pop    %esi
4096dc:	5d                   	pop    %ebp
4096dd:	ff 25 30 c1 41 00    	jmp    *0x41c130
4096e3:	55                   	push   %ebp
4096e4:	8b ec                	mov    %esp,%ebp
4096e6:	56                   	push   %esi
4096e7:	68 58 cf 41 00       	push   $0x41cf58
4096ec:	68 50 cf 41 00       	push   $0x41cf50
4096f1:	68 58 cf 41 00       	push   $0x41cf58
4096f6:	6a 01                	push   $0x1
4096f8:	e8 61 ff ff ff       	call   0x40965e
4096fd:	83 c4 10             	add    $0x10,%esp
409700:	8b f0                	mov    %eax,%esi
409702:	ff 75 08             	push   0x8(%ebp)
409705:	85 f6                	test   %esi,%esi
409707:	74 0c                	je     0x409715
409709:	8b ce                	mov    %esi,%ecx
40970b:	ff 15 50 c2 41 00    	call   *0x41c250
409711:	ff d6                	call   *%esi
409713:	eb 06                	jmp    0x40971b
409715:	ff 15 24 c1 41 00    	call   *0x41c124
40971b:	5e                   	pop    %esi
40971c:	5d                   	pop    %ebp
40971d:	c3                   	ret
40971e:	55                   	push   %ebp
40971f:	8b ec                	mov    %esp,%ebp
409721:	56                   	push   %esi
409722:	68 68 cf 41 00       	push   $0x41cf68
409727:	68 60 cf 41 00       	push   $0x41cf60
40972c:	68 68 cf 41 00       	push   $0x41cf68
409731:	6a 02                	push   $0x2
409733:	e8 26 ff ff ff       	call   0x40965e
409738:	83 c4 10             	add    $0x10,%esp
40973b:	8b f0                	mov    %eax,%esi
40973d:	ff 75 08             	push   0x8(%ebp)
409740:	85 f6                	test   %esi,%esi
409742:	74 0c                	je     0x409750
409744:	8b ce                	mov    %esi,%ecx
409746:	ff 15 50 c2 41 00    	call   *0x41c250
40974c:	ff d6                	call   *%esi
40974e:	eb 06                	jmp    0x409756
409750:	ff 15 2c c1 41 00    	call   *0x41c12c
409756:	5e                   	pop    %esi
409757:	5d                   	pop    %ebp
409758:	c3                   	ret
409759:	55                   	push   %ebp
40975a:	8b ec                	mov    %esp,%ebp
40975c:	56                   	push   %esi
40975d:	68 7c cf 41 00       	push   $0x41cf7c
409762:	68 74 cf 41 00       	push   $0x41cf74
409767:	68 7c cf 41 00       	push   $0x41cf7c
40976c:	6a 03                	push   $0x3
40976e:	e8 eb fe ff ff       	call   0x40965e
409773:	83 c4 10             	add    $0x10,%esp
409776:	8b f0                	mov    %eax,%esi
409778:	ff 75 0c             	push   0xc(%ebp)
40977b:	ff 75 08             	push   0x8(%ebp)
40977e:	85 f6                	test   %esi,%esi
409780:	74 0c                	je     0x40978e
409782:	8b ce                	mov    %esi,%ecx
409784:	ff 15 50 c2 41 00    	call   *0x41c250
40978a:	ff d6                	call   *%esi
40978c:	eb 06                	jmp    0x409794
40978e:	ff 15 28 c1 41 00    	call   *0x41c128
409794:	5e                   	pop    %esi
409795:	5d                   	pop    %ebp
409796:	c3                   	ret
409797:	55                   	push   %ebp
409798:	8b ec                	mov    %esp,%ebp
40979a:	56                   	push   %esi
40979b:	68 90 cf 41 00       	push   $0x41cf90
4097a0:	68 88 cf 41 00       	push   $0x41cf88
4097a5:	68 90 cf 41 00       	push   $0x41cf90
4097aa:	6a 04                	push   $0x4
4097ac:	e8 ad fe ff ff       	call   0x40965e
4097b1:	8b f0                	mov    %eax,%esi
4097b3:	83 c4 10             	add    $0x10,%esp
4097b6:	85 f6                	test   %esi,%esi
4097b8:	74 15                	je     0x4097cf
4097ba:	ff 75 10             	push   0x10(%ebp)
4097bd:	8b ce                	mov    %esi,%ecx
4097bf:	ff 75 0c             	push   0xc(%ebp)
4097c2:	ff 75 08             	push   0x8(%ebp)
4097c5:	ff 15 50 c2 41 00    	call   *0x41c250
4097cb:	ff d6                	call   *%esi
4097cd:	eb 0c                	jmp    0x4097db
4097cf:	ff 75 0c             	push   0xc(%ebp)
4097d2:	ff 75 08             	push   0x8(%ebp)
4097d5:	ff 15 34 c1 41 00    	call   *0x41c134
4097db:	5e                   	pop    %esi
4097dc:	5d                   	pop    %ebp
4097dd:	c3                   	ret
4097de:	a1 30 6d 42 00       	mov    0x426d30,%eax
4097e3:	90                   	nop
4097e4:	c3                   	ret
4097e5:	cc                   	int3
4097e6:	cc                   	int3
4097e7:	cc                   	int3
4097e8:	cc                   	int3
4097e9:	cc                   	int3
4097ea:	cc                   	int3
4097eb:	cc                   	int3
4097ec:	cc                   	int3
4097ed:	cc                   	int3
4097ee:	cc                   	int3
4097ef:	cc                   	int3
4097f0:	56                   	push   %esi
4097f1:	e8 e8 ff ff ff       	call   0x4097de
4097f6:	8b f0                	mov    %eax,%esi
4097f8:	85 f6                	test   %esi,%esi
4097fa:	74 0a                	je     0x409806
4097fc:	8b ce                	mov    %esi,%ecx
4097fe:	ff 15 50 c2 41 00    	call   *0x41c250
409804:	ff d6                	call   *%esi
409806:	e8 f0 2a 00 00       	call   0x40c2fb
40980b:	cc                   	int3
40980c:	55                   	push   %ebp
40980d:	8b ec                	mov    %esp,%ebp
40980f:	51                   	push   %ecx
409810:	8b 45 18             	mov    0x18(%ebp),%eax
409813:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
409816:	53                   	push   %ebx
409817:	56                   	push   %esi
409818:	8b 58 10             	mov    0x10(%eax),%ebx
40981b:	57                   	push   %edi
40981c:	8b 78 0c             	mov    0xc(%eax),%edi
40981f:	8b d7                	mov    %edi,%edx
409821:	89 55 fc             	mov    %edx,-0x4(%ebp)
409824:	8b f2                	mov    %edx,%esi
409826:	85 c9                	test   %ecx,%ecx
409828:	78 2d                	js     0x409857
40982a:	6b c2 14             	imul   $0x14,%edx,%eax
40982d:	83 c3 08             	add    $0x8,%ebx
409830:	03 c3                	add    %ebx,%eax
409832:	8b 5d 10             	mov    0x10(%ebp),%ebx
409835:	83 fa ff             	cmp    $0xffffffff,%edx
409838:	74 3c                	je     0x409876
40983a:	83 e8 14             	sub    $0x14,%eax
40983d:	4a                   	dec    %edx
40983e:	39 58 fc             	cmp    %ebx,-0x4(%eax)
409841:	7d 04                	jge    0x409847
409843:	3b 18                	cmp    (%eax),%ebx
409845:	7e 05                	jle    0x40984c
409847:	83 fa ff             	cmp    $0xffffffff,%edx
40984a:	75 07                	jne    0x409853
40984c:	8b 75 fc             	mov    -0x4(%ebp),%esi
40984f:	49                   	dec    %ecx
409850:	89 55 fc             	mov    %edx,-0x4(%ebp)
409853:	85 c9                	test   %ecx,%ecx
409855:	79 de                	jns    0x409835
409857:	42                   	inc    %edx
409858:	3b f7                	cmp    %edi,%esi
40985a:	77 1a                	ja     0x409876
40985c:	3b d6                	cmp    %esi,%edx
40985e:	77 16                	ja     0x409876
409860:	8b 45 08             	mov    0x8(%ebp),%eax
409863:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409866:	5f                   	pop    %edi
409867:	89 70 0c             	mov    %esi,0xc(%eax)
40986a:	5e                   	pop    %esi
40986b:	89 08                	mov    %ecx,(%eax)
40986d:	89 50 04             	mov    %edx,0x4(%eax)
409870:	89 48 08             	mov    %ecx,0x8(%eax)
409873:	5b                   	pop    %ebx
409874:	c9                   	leave
409875:	c3                   	ret
409876:	e8 80 2a 00 00       	call   0x40c2fb
40987b:	cc                   	int3
40987c:	55                   	push   %ebp
40987d:	8b ec                	mov    %esp,%ebp
40987f:	83 ec 18             	sub    $0x18,%esp
409882:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
409886:	8d 45 e8             	lea    -0x18(%ebp),%eax
409889:	33 05 18 60 42 00    	xor    0x426018,%eax
40988f:	8b 4d 08             	mov    0x8(%ebp),%ecx
409892:	89 45 f0             	mov    %eax,-0x10(%ebp)
409895:	8b 45 0c             	mov    0xc(%ebp),%eax
409898:	89 45 f4             	mov    %eax,-0xc(%ebp)
40989b:	8b 45 14             	mov    0x14(%ebp),%eax
40989e:	40                   	inc    %eax
40989f:	c7 45 ec 52 9a 40 00 	movl   $0x409a52,-0x14(%ebp)
4098a6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4098a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4098ac:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4098b2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4098b5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4098b8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4098be:	ff 75 18             	push   0x18(%ebp)
4098c1:	51                   	push   %ecx
4098c2:	ff 75 10             	push   0x10(%ebp)
4098c5:	e8 66 16 00 00       	call   0x40af30
4098ca:	8b c8                	mov    %eax,%ecx
4098cc:	8b 45 e8             	mov    -0x18(%ebp),%eax
4098cf:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4098d5:	8b c1                	mov    %ecx,%eax
4098d7:	c9                   	leave
4098d8:	c3                   	ret
4098d9:	55                   	push   %ebp
4098da:	8b ec                	mov    %esp,%ebp
4098dc:	83 ec 40             	sub    $0x40,%esp
4098df:	53                   	push   %ebx
4098e0:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
4098e7:	75 12                	jne    0x4098fb
4098e9:	b8 a3 99 40 00       	mov    $0x4099a3,%eax
4098ee:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4098f1:	89 01                	mov    %eax,(%ecx)
4098f3:	33 c0                	xor    %eax,%eax
4098f5:	40                   	inc    %eax
4098f6:	e9 d1 00 00 00       	jmp    0x4099cc
4098fb:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
4098ff:	c7 45 c4 ef 9a 40 00 	movl   $0x409aef,-0x3c(%ebp)
409906:	a1 18 60 42 00       	mov    0x426018,%eax
40990b:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40990e:	33 c1                	xor    %ecx,%eax
409910:	89 45 c8             	mov    %eax,-0x38(%ebp)
409913:	8b 45 18             	mov    0x18(%ebp),%eax
409916:	89 45 cc             	mov    %eax,-0x34(%ebp)
409919:	8b 45 0c             	mov    0xc(%ebp),%eax
40991c:	89 45 d0             	mov    %eax,-0x30(%ebp)
40991f:	8b 45 1c             	mov    0x1c(%ebp),%eax
409922:	89 45 d4             	mov    %eax,-0x2c(%ebp)
409925:	8b 45 20             	mov    0x20(%ebp),%eax
409928:	89 45 d8             	mov    %eax,-0x28(%ebp)
40992b:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
40992f:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
409933:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
409937:	89 65 dc             	mov    %esp,-0x24(%ebp)
40993a:	89 6d e0             	mov    %ebp,-0x20(%ebp)
40993d:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409943:	89 45 c0             	mov    %eax,-0x40(%ebp)
409946:	8d 45 c0             	lea    -0x40(%ebp),%eax
409949:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40994f:	8b 45 08             	mov    0x8(%ebp),%eax
409952:	ff 30                	push   (%eax)
409954:	e8 87 24 01 00       	call   0x41bde0
409959:	59                   	pop    %ecx
40995a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40995d:	89 01                	mov    %eax,(%ecx)
40995f:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
409966:	8b 45 08             	mov    0x8(%ebp),%eax
409969:	89 45 e8             	mov    %eax,-0x18(%ebp)
40996c:	8b 45 10             	mov    0x10(%ebp),%eax
40996f:	89 45 ec             	mov    %eax,-0x14(%ebp)
409972:	e8 b5 fa ff ff       	call   0x40942c
409977:	8b 40 08             	mov    0x8(%eax),%eax
40997a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40997d:	a1 50 c2 41 00       	mov    0x41c250,%eax
409982:	89 45 f4             	mov    %eax,-0xc(%ebp)
409985:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409988:	ff 55 f4             	call   *-0xc(%ebp)
40998b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40998e:	89 45 f0             	mov    %eax,-0x10(%ebp)
409991:	8d 45 e8             	lea    -0x18(%ebp),%eax
409994:	50                   	push   %eax
409995:	8b 45 08             	mov    0x8(%ebp),%eax
409998:	ff 30                	push   (%eax)
40999a:	ff 55 f0             	call   *-0x10(%ebp)
40999d:	59                   	pop    %ecx
40999e:	59                   	pop    %ecx
40999f:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4099a3:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4099a7:	74 17                	je     0x4099c0
4099a9:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
4099b0:	8b 03                	mov    (%ebx),%eax
4099b2:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4099b5:	89 03                	mov    %eax,(%ebx)
4099b7:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4099be:	eb 09                	jmp    0x4099c9
4099c0:	8b 45 c0             	mov    -0x40(%ebp),%eax
4099c3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4099c9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4099cc:	5b                   	pop    %ebx
4099cd:	c9                   	leave
4099ce:	c3                   	ret
4099cf:	55                   	push   %ebp
4099d0:	8b ec                	mov    %esp,%ebp
4099d2:	51                   	push   %ecx
4099d3:	53                   	push   %ebx
4099d4:	8b 45 0c             	mov    0xc(%ebp),%eax
4099d7:	83 c0 0c             	add    $0xc,%eax
4099da:	89 45 fc             	mov    %eax,-0x4(%ebp)
4099dd:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
4099e4:	8b 03                	mov    (%ebx),%eax
4099e6:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4099ec:	8b 45 08             	mov    0x8(%ebp),%eax
4099ef:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4099f2:	8b 6d fc             	mov    -0x4(%ebp),%ebp
4099f5:	8b 63 fc             	mov    -0x4(%ebx),%esp