409619:	50                   	push   %eax
40961a:	e8 ac ff ff ff       	call   0x4095cb
40961f:	8d 46 68             	lea    0x68(%esi),%eax
409622:	6a 0c                	push   $0xc
409624:	50                   	push   %eax
409625:	e8 a1 ff ff ff       	call   0x4095cb
40962a:	8d 86 98 00 00 00    	lea    0x98(%esi),%eax
409630:	6a 02                	push   $0x2
409632:	50                   	push   %eax
409633:	e8 93 ff ff ff       	call   0x4095cb
409638:	ff b6 a0 00 00 00    	push   0xa0(%esi)
40963e:	e8 36 e2 ff ff       	call   0x407879
409643:	ff b6 a4 00 00 00    	push   0xa4(%esi)
409649:	e8 2b e2 ff ff       	call   0x407879
40964e:	ff b6 a8 00 00 00    	push   0xa8(%esi)
409654:	e8 20 e2 ff ff       	call   0x407879
409659:	8d 86 b4 00 00 00    	lea    0xb4(%esi),%eax
40965f:	6a 07                	push   $0x7
409661:	50                   	push   %eax
409662:	e8 64 ff ff ff       	call   0x4095cb
409667:	8d 86 d0 00 00 00    	lea    0xd0(%esi),%eax
40966d:	6a 07                	push   $0x7
40966f:	50                   	push   %eax
409670:	e8 56 ff ff ff       	call   0x4095cb
409675:	83 c4 44             	add    $0x44,%esp
409678:	8d 86 ec 00 00 00    	lea    0xec(%esi),%eax
40967e:	6a 0c                	push   $0xc
409680:	50                   	push   %eax
409681:	e8 45 ff ff ff       	call   0x4095cb
409686:	8d 86 1c 01 00 00    	lea    0x11c(%esi),%eax
40968c:	6a 0c                	push   $0xc
40968e:	50                   	push   %eax
40968f:	e8 37 ff ff ff       	call   0x4095cb
409694:	8d 86 4c 01 00 00    	lea    0x14c(%esi),%eax
40969a:	6a 02                	push   $0x2
40969c:	50                   	push   %eax
40969d:	e8 29 ff ff ff       	call   0x4095cb
4096a2:	ff b6 54 01 00 00    	push   0x154(%esi)
4096a8:	e8 cc e1 ff ff       	call   0x407879
4096ad:	ff b6 58 01 00 00    	push   0x158(%esi)
4096b3:	e8 c1 e1 ff ff       	call   0x407879
4096b8:	ff b6 5c 01 00 00    	push   0x15c(%esi)
4096be:	e8 b6 e1 ff ff       	call   0x407879
4096c3:	ff b6 60 01 00 00    	push   0x160(%esi)
4096c9:	e8 ab e1 ff ff       	call   0x407879
4096ce:	83 c4 28             	add    $0x28,%esp
4096d1:	5e                   	pop    %esi
4096d2:	5d                   	pop    %ebp
4096d3:	c3                   	ret
4096d4:	8b ff                	mov    %edi,%edi
4096d6:	55                   	push   %ebp
4096d7:	8b ec                	mov    %esp,%ebp
4096d9:	83 ec 1c             	sub    $0x1c,%esp
4096dc:	a1 14 60 41 00       	mov    0x416014,%eax
4096e1:	33 c5                	xor    %ebp,%eax
4096e3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4096e6:	53                   	push   %ebx
4096e7:	56                   	push   %esi
4096e8:	57                   	push   %edi
4096e9:	ff 75 08             	push   0x8(%ebp)
4096ec:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4096ef:	e8 2c e9 ff ff       	call   0x408020
4096f4:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4096f7:	85 db                	test   %ebx,%ebx
4096f9:	75 06                	jne    0x409701
4096fb:	8b 45 e8             	mov    -0x18(%ebp),%eax
4096fe:	8b 58 08             	mov    0x8(%eax),%ebx
409701:	33 c0                	xor    %eax,%eax
409703:	33 ff                	xor    %edi,%edi
409705:	39 45 20             	cmp    %eax,0x20(%ebp)
409708:	57                   	push   %edi
409709:	57                   	push   %edi
40970a:	ff 75 14             	push   0x14(%ebp)
40970d:	0f 95 c0             	setne  %al
409710:	ff 75 10             	push   0x10(%ebp)
409713:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
40971a:	50                   	push   %eax
40971b:	53                   	push   %ebx
40971c:	e8 63 f6 ff ff       	call   0x408d84
409721:	83 c4 18             	add    $0x18,%esp
409724:	89 45 f4             	mov    %eax,-0xc(%ebp)
409727:	85 c0                	test   %eax,%eax
409729:	0f 84 82 00 00 00    	je     0x4097b1
40972f:	03 c0                	add    %eax,%eax
409731:	89 45 f8             	mov    %eax,-0x8(%ebp)
409734:	8d 48 08             	lea    0x8(%eax),%ecx
409737:	3b c1                	cmp    %ecx,%eax
409739:	1b c0                	sbb    %eax,%eax
40973b:	23 c1                	and    %ecx,%eax
40973d:	74 69                	je     0x4097a8
40973f:	3d 00 04 00 00       	cmp    $0x400,%eax
409744:	77 13                	ja     0x409759
409746:	e8 05 56 00 00       	call   0x40ed50
40974b:	8b f4                	mov    %esp,%esi
40974d:	85 f6                	test   %esi,%esi
40974f:	74 59                	je     0x4097aa
409751:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
409757:	eb 13                	jmp    0x40976c
409759:	50                   	push   %eax
40975a:	e8 cc e0 ff ff       	call   0x40782b
40975f:	8b f0                	mov    %eax,%esi
409761:	59                   	pop    %ecx
409762:	85 f6                	test   %esi,%esi
409764:	74 44                	je     0x4097aa
409766:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
40976c:	83 c6 08             	add    $0x8,%esi
40976f:	85 f6                	test   %esi,%esi
409771:	74 37                	je     0x4097aa
409773:	ff 75 f8             	push   -0x8(%ebp)
409776:	57                   	push   %edi
409777:	56                   	push   %esi
409778:	e8 63 a8 ff ff       	call   0x403fe0
40977d:	ff 75 f4             	push   -0xc(%ebp)
409780:	56                   	push   %esi
409781:	ff 75 14             	push   0x14(%ebp)
409784:	ff 75 10             	push   0x10(%ebp)
409787:	6a 01                	push   $0x1
409789:	53                   	push   %ebx
40978a:	e8 f5 f5 ff ff       	call   0x408d84
40978f:	83 c4 24             	add    $0x24,%esp
409792:	85 c0                	test   %eax,%eax
409794:	74 14                	je     0x4097aa
409796:	ff 75 18             	push   0x18(%ebp)
409799:	50                   	push   %eax
40979a:	56                   	push   %esi
40979b:	ff 75 0c             	push   0xc(%ebp)
40979e:	ff 15 e0 f0 40 00    	call   *0x40f0e0
4097a4:	8b f8                	mov    %eax,%edi
4097a6:	eb 02                	jmp    0x4097aa
4097a8:	8b f7                	mov    %edi,%esi
4097aa:	56                   	push   %esi
4097ab:	e8 25 00 00 00       	call   0x4097d5
4097b0:	59                   	pop    %ecx
4097b1:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
4097b5:	74 0a                	je     0x4097c1
4097b7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4097ba:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
4097c1:	8b c7                	mov    %edi,%eax
4097c3:	8d 65 d8             	lea    -0x28(%ebp),%esp
4097c6:	5f                   	pop    %edi
4097c7:	5e                   	pop    %esi
4097c8:	5b                   	pop    %ebx
4097c9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4097cc:	33 cd                	xor    %ebp,%ecx
4097ce:	e8 62 9e ff ff       	call   0x403635
4097d3:	c9                   	leave
4097d4:	c3                   	ret
4097d5:	8b ff                	mov    %edi,%edi
4097d7:	55                   	push   %ebp
4097d8:	8b ec                	mov    %esp,%ebp
4097da:	8b 45 08             	mov    0x8(%ebp),%eax
4097dd:	85 c0                	test   %eax,%eax
4097df:	74 12                	je     0x4097f3
4097e1:	83 e8 08             	sub    $0x8,%eax
4097e4:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
4097ea:	75 07                	jne    0x4097f3
4097ec:	50                   	push   %eax
4097ed:	e8 87 e0 ff ff       	call   0x407879
4097f2:	59                   	pop    %ecx
4097f3:	5d                   	pop    %ebp
4097f4:	c3                   	ret
4097f5:	8b ff                	mov    %edi,%edi
4097f7:	55                   	push   %ebp
4097f8:	8b ec                	mov    %esp,%ebp
4097fa:	8b 45 08             	mov    0x8(%ebp),%eax
4097fd:	f0 ff 40 0c          	lock incl 0xc(%eax)
409801:	8b 48 7c             	mov    0x7c(%eax),%ecx
409804:	85 c9                	test   %ecx,%ecx
409806:	74 03                	je     0x40980b
409808:	f0 ff 01             	lock incl (%ecx)
40980b:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
409811:	85 c9                	test   %ecx,%ecx
409813:	74 03                	je     0x409818
409815:	f0 ff 01             	lock incl (%ecx)
409818:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
40981e:	85 c9                	test   %ecx,%ecx
409820:	74 03                	je     0x409825
409822:	f0 ff 01             	lock incl (%ecx)
409825:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
40982b:	85 c9                	test   %ecx,%ecx
40982d:	74 03                	je     0x409832
40982f:	f0 ff 01             	lock incl (%ecx)
409832:	56                   	push   %esi
409833:	6a 06                	push   $0x6
409835:	8d 48 28             	lea    0x28(%eax),%ecx
409838:	5e                   	pop    %esi
409839:	81 79 f8 18 61 41 00 	cmpl   $0x416118,-0x8(%ecx)
409840:	74 09                	je     0x40984b
409842:	8b 11                	mov    (%ecx),%edx
409844:	85 d2                	test   %edx,%edx
409846:	74 03                	je     0x40984b
409848:	f0 ff 02             	lock incl (%edx)
40984b:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
40984f:	74 0a                	je     0x40985b
409851:	8b 51 fc             	mov    -0x4(%ecx),%edx
409854:	85 d2                	test   %edx,%edx
409856:	74 03                	je     0x40985b
409858:	f0 ff 02             	lock incl (%edx)
40985b:	83 c1 10             	add    $0x10,%ecx
40985e:	83 ee 01             	sub    $0x1,%esi
409861:	75 d6                	jne    0x409839
409863:	ff b0 9c 00 00 00    	push   0x9c(%eax)
409869:	e8 4c 01 00 00       	call   0x4099ba
40986e:	59                   	pop    %ecx
40986f:	5e                   	pop    %esi
409870:	5d                   	pop    %ebp
409871:	c3                   	ret
409872:	8b ff                	mov    %edi,%edi
409874:	55                   	push   %ebp
409875:	8b ec                	mov    %esp,%ebp
409877:	51                   	push   %ecx
409878:	53                   	push   %ebx
409879:	56                   	push   %esi
40987a:	8b 75 08             	mov    0x8(%ebp),%esi
40987d:	57                   	push   %edi
40987e:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
409884:	85 c0                	test   %eax,%eax
409886:	74 6c                	je     0x4098f4
409888:	3d 48 66 41 00       	cmp    $0x416648,%eax
40988d:	74 65                	je     0x4098f4
40988f:	8b 46 7c             	mov    0x7c(%esi),%eax
409892:	85 c0                	test   %eax,%eax
409894:	74 5e                	je     0x4098f4
409896:	83 38 00             	cmpl   $0x0,(%eax)
409899:	75 59                	jne    0x4098f4
40989b:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
4098a1:	85 c0                	test   %eax,%eax
4098a3:	74 18                	je     0x4098bd
4098a5:	83 38 00             	cmpl   $0x0,(%eax)
4098a8:	75 13                	jne    0x4098bd
4098aa:	50                   	push   %eax
4098ab:	e8 c9 df ff ff       	call   0x407879
4098b0:	ff b6 88 00 00 00    	push   0x88(%esi)
4098b6:	e8 a9 fb ff ff       	call   0x409464
4098bb:	59                   	pop    %ecx
4098bc:	59                   	pop    %ecx
4098bd:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
4098c3:	85 c0                	test   %eax,%eax
4098c5:	74 18                	je     0x4098df
4098c7:	83 38 00             	cmpl   $0x0,(%eax)
4098ca:	75 13                	jne    0x4098df
4098cc:	50                   	push   %eax
4098cd:	e8 a7 df ff ff       	call   0x407879
4098d2:	ff b6 88 00 00 00    	push   0x88(%esi)
4098d8:	e8 85 fc ff ff       	call   0x409562
4098dd:	59                   	pop    %ecx
4098de:	59                   	pop    %ecx
4098df:	ff 76 7c             	push   0x7c(%esi)
4098e2:	e8 92 df ff ff       	call   0x407879
4098e7:	ff b6 88 00 00 00    	push   0x88(%esi)
4098ed:	e8 87 df ff ff       	call   0x407879
4098f2:	59                   	pop    %ecx
4098f3:	59                   	pop    %ecx
4098f4:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
4098fa:	85 c0                	test   %eax,%eax
4098fc:	74 45                	je     0x409943
4098fe:	83 38 00             	cmpl   $0x0,(%eax)
409901:	75 40                	jne    0x409943
409903:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
409909:	2d fe 00 00 00       	sub    $0xfe,%eax
40990e:	50                   	push   %eax
40990f:	e8 65 df ff ff       	call   0x407879
409914:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
40991a:	bf 80 00 00 00       	mov    $0x80,%edi
40991f:	2b c7                	sub    %edi,%eax
409921:	50                   	push   %eax
409922:	e8 52 df ff ff       	call   0x407879
409927:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
40992d:	2b c7                	sub    %edi,%eax
40992f:	50                   	push   %eax
409930:	e8 44 df ff ff       	call   0x407879
409935:	ff b6 8c 00 00 00    	push   0x8c(%esi)
40993b:	e8 39 df ff ff       	call   0x407879
409940:	83 c4 10             	add    $0x10,%esp
409943:	ff b6 9c 00 00 00    	push   0x9c(%esi)
409949:	e8 95 00 00 00       	call   0x4099e3
40994e:	59                   	pop    %ecx
40994f:	6a 06                	push   $0x6
409951:	58                   	pop    %eax
409952:	8d 9e a0 00 00 00    	lea    0xa0(%esi),%ebx
409958:	89 45 fc             	mov    %eax,-0x4(%ebp)
40995b:	8d 7e 28             	lea    0x28(%esi),%edi
40995e:	81 7f f8 18 61 41 00 	cmpl   $0x416118,-0x8(%edi)
409965:	74 1d                	je     0x409984
409967:	8b 07                	mov    (%edi),%eax
409969:	85 c0                	test   %eax,%eax
40996b:	74 14                	je     0x409981
40996d:	83 38 00             	cmpl   $0x0,(%eax)
409970:	75 0f                	jne    0x409981
409972:	50                   	push   %eax
409973:	e8 01 df ff ff       	call   0x407879
409978:	ff 33                	push   (%ebx)
40997a:	e8 fa de ff ff       	call   0x407879
40997f:	59                   	pop    %ecx
409980:	59                   	pop    %ecx
409981:	8b 45 fc             	mov    -0x4(%ebp),%eax
409984:	83 7f f4 00          	cmpl   $0x0,-0xc(%edi)
409988:	74 16                	je     0x4099a0
40998a:	8b 47 fc             	mov    -0x4(%edi),%eax
40998d:	85 c0                	test   %eax,%eax
40998f:	74 0c                	je     0x40999d
409991:	83 38 00             	cmpl   $0x0,(%eax)
409994:	75 07                	jne    0x40999d
409996:	50                   	push   %eax
409997:	e8 dd de ff ff       	call   0x407879
40999c:	59                   	pop    %ecx
40999d:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099a0:	83 c3 04             	add    $0x4,%ebx
4099a3:	83 c7 10             	add    $0x10,%edi
4099a6:	83 e8 01             	sub    $0x1,%eax
4099a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4099ac:	75 b0                	jne    0x40995e
4099ae:	56                   	push   %esi
4099af:	e8 c5 de ff ff       	call   0x407879
4099b4:	59                   	pop    %ecx
4099b5:	5f                   	pop    %edi
4099b6:	5e                   	pop    %esi
4099b7:	5b                   	pop    %ebx
4099b8:	c9                   	leave
4099b9:	c3                   	ret
4099ba:	8b ff                	mov    %edi,%edi
4099bc:	55                   	push   %ebp
4099bd:	8b ec                	mov    %esp,%ebp
4099bf:	8b 4d 08             	mov    0x8(%ebp),%ecx
4099c2:	85 c9                	test   %ecx,%ecx
4099c4:	74 16                	je     0x4099dc
4099c6:	81 f9 10 fe 40 00    	cmp    $0x40fe10,%ecx
4099cc:	74 0e                	je     0x4099dc
4099ce:	33 c0                	xor    %eax,%eax
4099d0:	40                   	inc    %eax
4099d1:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
4099d8:	00
4099d9:	40                   	inc    %eax
4099da:	5d                   	pop    %ebp
4099db:	c3                   	ret
4099dc:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4099e1:	5d                   	pop    %ebp
4099e2:	c3                   	ret
4099e3:	8b ff                	mov    %edi,%edi
4099e5:	55                   	push   %ebp
4099e6:	8b ec                	mov    %esp,%ebp
4099e8:	56                   	push   %esi
4099e9:	8b 75 08             	mov    0x8(%ebp),%esi
4099ec:	85 f6                	test   %esi,%esi
4099ee:	74 21                	je     0x409a11
4099f0:	81 fe 10 fe 40 00    	cmp    $0x40fe10,%esi
4099f6:	74 19                	je     0x409a11
4099f8:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
4099fe:	90                   	nop
4099ff:	85 c0                	test   %eax,%eax