408658:	eb 0e                	jmp    0x408668
40865a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40865e:	8b 44 24 10          	mov    0x10(%esp),%eax
408662:	99                   	cltd
408663:	89 01                	mov    %eax,(%ecx)
408665:	89 51 04             	mov    %edx,0x4(%ecx)
408668:	85 f6                	test   %esi,%esi
40866a:	74 06                	je     0x408672
40866c:	56                   	push   %esi
40866d:	e8 1f fd ff ff       	call   0x408391
408672:	8b 8c 24 24 02 00 00 	mov    0x224(%esp),%ecx
408679:	8b c7                	mov    %edi,%eax
40867b:	5f                   	pop    %edi
40867c:	5e                   	pop    %esi
40867d:	5b                   	pop    %ebx
40867e:	33 cc                	xor    %esp,%ecx
408680:	e8 ab 7d 00 00       	call   0x410430
408685:	8b e5                	mov    %ebp,%esp
408687:	5d                   	pop    %ebp
408688:	c2 08 00             	ret    $0x8
40868b:	8b ff                	mov    %edi,%edi
40868d:	55                   	push   %ebp
40868e:	8b ec                	mov    %esp,%ebp
408690:	83 ec 0c             	sub    $0xc,%esp
408693:	8b 45 0c             	mov    0xc(%ebp),%eax
408696:	53                   	push   %ebx
408697:	8b 5d 08             	mov    0x8(%ebp),%ebx
40869a:	56                   	push   %esi
40869b:	8b f1                	mov    %ecx,%esi
40869d:	33 c9                	xor    %ecx,%ecx
40869f:	57                   	push   %edi
4086a0:	89 46 04             	mov    %eax,0x4(%esi)
4086a3:	8b 43 04             	mov    0x4(%ebx),%eax
4086a6:	89 46 08             	mov    %eax,0x8(%esi)
4086a9:	8d 46 0c             	lea    0xc(%esi),%eax
4086ac:	89 08                	mov    %ecx,(%eax)
4086ae:	89 45 fc             	mov    %eax,-0x4(%ebp)
4086b1:	66 8b 43 20          	mov    0x20(%ebx),%ax
4086b5:	66 89 46 10          	mov    %ax,0x10(%esi)
4086b9:	8a 03                	mov    (%ebx),%al
4086bb:	88 46 12             	mov    %al,0x12(%esi)
4086be:	8d 46 14             	lea    0x14(%esi),%eax
4086c1:	89 08                	mov    %ecx,(%eax)
4086c3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4086c6:	8b 43 48             	mov    0x48(%ebx),%eax
4086c9:	89 46 18             	mov    %eax,0x18(%esi)
4086cc:	8b 43 4c             	mov    0x4c(%ebx),%eax
4086cf:	89 46 1c             	mov    %eax,0x1c(%esi)
4086d2:	8d 46 20             	lea    0x20(%esi),%eax
4086d5:	89 08                	mov    %ecx,(%eax)
4086d7:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4086da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4086dd:	e8 d4 f5 ff ff       	call   0x407cb6
4086e2:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4086e5:	8b f8                	mov    %eax,%edi
4086e7:	e8 b2 f5 ff ff       	call   0x407c9e
4086ec:	8b 4b 44             	mov    0x44(%ebx),%ecx
4086ef:	03 f8                	add    %eax,%edi
4086f1:	e8 a8 f5 ff ff       	call   0x407c9e
4086f6:	03 f8                	add    %eax,%edi
4086f8:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4086fc:	74 05                	je     0x408703
4086fe:	39 7e 28             	cmp    %edi,0x28(%esi)
408701:	73 2b                	jae    0x40872e
408703:	6a 08                	push   $0x8
408705:	8b d7                	mov    %edi,%edx
408707:	59                   	pop    %ecx
408708:	e8 6a f4 ff ff       	call   0x407b77
40870d:	8b d8                	mov    %eax,%ebx
40870f:	85 db                	test   %ebx,%ebx
408711:	74 18                	je     0x40872b
408713:	ff 76 24             	push   0x24(%esi)
408716:	6a 00                	push   $0x0
408718:	ff 15 44 31 43 00    	call   *0x433144
40871e:	50                   	push   %eax
40871f:	ff 15 48 31 43 00    	call   *0x433148
408725:	89 5e 24             	mov    %ebx,0x24(%esi)
408728:	89 7e 28             	mov    %edi,0x28(%esi)
40872b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40872e:	8b 4e 24             	mov    0x24(%esi),%ecx
408731:	85 c9                	test   %ecx,%ecx
408733:	74 3e                	je     0x408773
408735:	8b 76 28             	mov    0x28(%esi),%esi
408738:	ff 75 fc             	push   -0x4(%ebp)
40873b:	03 f1                	add    %ecx,%esi
40873d:	ff 73 1c             	push   0x1c(%ebx)
408740:	8b d6                	mov    %esi,%edx
408742:	e8 f8 70 00 00       	call   0x40f83f
408747:	ff 75 f8             	push   -0x8(%ebp)
40874a:	8b d6                	mov    %esi,%edx
40874c:	8b c8                	mov    %eax,%ecx
40874e:	ff 73 44             	push   0x44(%ebx)
408751:	e8 e9 70 00 00       	call   0x40f83f
408756:	ff 75 f4             	push   -0xc(%ebp)
408759:	8b d6                	mov    %esi,%edx
40875b:	8b c8                	mov    %eax,%ecx
40875d:	ff 73 0c             	push   0xc(%ebx)
408760:	e8 70 70 00 00       	call   0x40f7d5
408765:	2b f0                	sub    %eax,%esi
408767:	56                   	push   %esi
408768:	6a 00                	push   $0x0
40876a:	50                   	push   %eax
40876b:	e8 97 83 00 00       	call   0x410b07
408770:	83 c4 0c             	add    $0xc,%esp
408773:	5f                   	pop    %edi
408774:	5e                   	pop    %esi
408775:	5b                   	pop    %ebx
408776:	c9                   	leave
408777:	c2 08 00             	ret    $0x8
40877a:	8b ff                	mov    %edi,%edi
40877c:	53                   	push   %ebx
40877d:	57                   	push   %edi
40877e:	8b f9                	mov    %ecx,%edi
408780:	0f b7 47 14          	movzwl 0x14(%edi),%eax
408784:	8b 4f 10             	mov    0x10(%edi),%ecx
408787:	6b d8 2c             	imul   $0x2c,%eax,%ebx
40878a:	03 d9                	add    %ecx,%ebx
40878c:	3b cb                	cmp    %ebx,%ecx
40878e:	74 2a                	je     0x4087ba
408790:	56                   	push   %esi
408791:	8d 71 24             	lea    0x24(%ecx),%esi
408794:	ff 36                	push   (%esi)
408796:	6a 00                	push   $0x0
408798:	ff 15 44 31 43 00    	call   *0x433144
40879e:	50                   	push   %eax
40879f:	ff 15 48 31 43 00    	call   *0x433148
4087a5:	83 26 00             	andl   $0x0,(%esi)
4087a8:	8d 76 2c             	lea    0x2c(%esi),%esi
4087ab:	83 66 d8 00          	andl   $0x0,-0x28(%esi)
4087af:	8d 46 dc             	lea    -0x24(%esi),%eax
4087b2:	3b c3                	cmp    %ebx,%eax
4087b4:	75 de                	jne    0x408794
4087b6:	8b 4f 10             	mov    0x10(%edi),%ecx
4087b9:	5e                   	pop    %esi
4087ba:	51                   	push   %ecx
4087bb:	6a 00                	push   $0x0
4087bd:	ff 15 44 31 43 00    	call   *0x433144
4087c3:	50                   	push   %eax
4087c4:	ff 15 48 31 43 00    	call   *0x433148
4087ca:	33 c0                	xor    %eax,%eax
4087cc:	21 47 10             	and    %eax,0x10(%edi)
4087cf:	89 47 14             	mov    %eax,0x14(%edi)
4087d2:	5f                   	pop    %edi
4087d3:	5b                   	pop    %ebx
4087d4:	c3                   	ret
4087d5:	8b ff                	mov    %edi,%edi
4087d7:	55                   	push   %ebp
4087d8:	8b ec                	mov    %esp,%ebp
4087da:	53                   	push   %ebx
4087db:	56                   	push   %esi
4087dc:	8b f1                	mov    %ecx,%esi
4087de:	57                   	push   %edi
4087df:	6a 2c                	push   $0x2c
4087e1:	5b                   	pop    %ebx
4087e2:	8b 56 10             	mov    0x10(%esi),%edx
4087e5:	8b 7e 0c             	mov    0xc(%esi),%edi
4087e8:	85 d2                	test   %edx,%edx
4087ea:	75 49                	jne    0x408835
4087ec:	85 ff                	test   %edi,%edi
4087ee:	0f 84 9e 00 00 00    	je     0x408892
4087f4:	6a 08                	push   $0x8
4087f6:	ba dc 00 00 00       	mov    $0xdc,%edx
4087fb:	59                   	pop    %ecx
4087fc:	e8 76 f3 ff ff       	call   0x407b77
408801:	8b d0                	mov    %eax,%edx
408803:	89 56 10             	mov    %edx,0x10(%esi)
408806:	85 d2                	test   %edx,%edx
408808:	0f 84 84 00 00 00    	je     0x408892
40880e:	6a 05                	push   $0x5
408810:	58                   	pop    %eax
408811:	66 89 46 14          	mov    %ax,0x14(%esi)
408815:	33 c0                	xor    %eax,%eax
408817:	66 89 46 16          	mov    %ax,0x16(%esi)
40881b:	8d 82 dc 00 00 00    	lea    0xdc(%edx),%eax
408821:	3b d0                	cmp    %eax,%edx
408823:	74 0c                	je     0x408831
408825:	66 89 1a             	mov    %bx,(%edx)
408828:	03 d3                	add    %ebx,%edx
40882a:	3b d0                	cmp    %eax,%edx
40882c:	75 f7                	jne    0x408825
40882e:	8b 56 10             	mov    0x10(%esi),%edx
408831:	85 d2                	test   %edx,%edx
408833:	74 5d                	je     0x408892
408835:	85 ff                	test   %edi,%edi
408837:	8b 7d 08             	mov    0x8(%ebp),%edi
40883a:	74 29                	je     0x408865
40883c:	0f b7 46 14          	movzwl 0x14(%esi),%eax
408840:	6b c8 2c             	imul   $0x2c,%eax,%ecx
408843:	03 ca                	add    %edx,%ecx
408845:	3b d1                	cmp    %ecx,%edx
408847:	74 1c                	je     0x408865
408849:	8b 5e 0c             	mov    0xc(%esi),%ebx
40884c:	83 c2 08             	add    $0x8,%edx
40884f:	39 5a fc             	cmp    %ebx,-0x4(%edx)
408852:	76 07                	jbe    0x40885b
408854:	8b 02                	mov    (%edx),%eax
408856:	3b 47 04             	cmp    0x4(%edi),%eax
408859:	74 37                	je     0x408892
40885b:	83 c2 2c             	add    $0x2c,%edx
40885e:	8d 42 f8             	lea    -0x8(%edx),%eax
408861:	3b c1                	cmp    %ecx,%eax
408863:	75 ea                	jne    0x40884f
408865:	0f b7 46 16          	movzwl 0x16(%esi),%eax
408869:	33 d2                	xor    %edx,%edx
40886b:	0f b7 4e 14          	movzwl 0x14(%esi),%ecx
40886f:	40                   	inc    %eax
408870:	f7 f1                	div    %ecx
408872:	8b 46 08             	mov    0x8(%esi),%eax
408875:	33 c9                	xor    %ecx,%ecx
408877:	66 89 56 16          	mov    %dx,0x16(%esi)
40887b:	41                   	inc    %ecx
40887c:	f0 0f c1 08          	lock xadd %ecx,(%eax)
408880:	41                   	inc    %ecx
408881:	0f b7 46 16          	movzwl 0x16(%esi),%eax
408885:	51                   	push   %ecx
408886:	6b c8 2c             	imul   $0x2c,%eax,%ecx
408889:	57                   	push   %edi
40888a:	03 4e 10             	add    0x10(%esi),%ecx
40888d:	e8 f9 fd ff ff       	call   0x40868b
408892:	5f                   	pop    %edi
408893:	5e                   	pop    %esi
408894:	5b                   	pop    %ebx
408895:	5d                   	pop    %ebp
408896:	c2 04 00             	ret    $0x4
408899:	8b ff                	mov    %edi,%edi
40889b:	55                   	push   %ebp
40889c:	8b ec                	mov    %esp,%ebp
40889e:	51                   	push   %ecx
40889f:	53                   	push   %ebx
4088a0:	56                   	push   %esi
4088a1:	57                   	push   %edi
4088a2:	8b 3d 94 26 43 00    	mov    0x432694,%edi
4088a8:	33 db                	xor    %ebx,%ebx
4088aa:	8b f3                	mov    %ebx,%esi
4088ac:	85 ff                	test   %edi,%edi
4088ae:	74 60                	je     0x408910
4088b0:	39 5f 04             	cmp    %ebx,0x4(%edi)
4088b3:	75 1c                	jne    0x4088d1
4088b5:	8b 0f                	mov    (%edi),%ecx
4088b7:	8d 55 fc             	lea    -0x4(%ebp),%edx
4088ba:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4088bd:	e8 f4 6a 00 00       	call   0x40f3b6
4088c2:	85 c0                	test   %eax,%eax
4088c4:	78 0b                	js     0x4088d1
4088c6:	39 5f 04             	cmp    %ebx,0x4(%edi)
4088c9:	75 06                	jne    0x4088d1
4088cb:	8b 45 fc             	mov    -0x4(%ebp),%eax
4088ce:	89 47 04             	mov    %eax,0x4(%edi)
4088d1:	8b 7f 04             	mov    0x4(%edi),%edi
4088d4:	8d 47 10             	lea    0x10(%edi),%eax
4088d7:	f7 df                	neg    %edi
4088d9:	1b ff                	sbb    %edi,%edi
4088db:	23 f8                	and    %eax,%edi
4088dd:	74 31                	je     0x408910
4088df:	ff 15 50 31 43 00    	call   *0x433150
4088e5:	6a 0a                	push   $0xa
4088e7:	5e                   	pop    %esi
4088e8:	33 d2                	xor    %edx,%edx
4088ea:	8b c8                	mov    %eax,%ecx
4088ec:	f7 f6                	div    %esi
4088ee:	8b 74 97 08          	mov    0x8(%edi,%edx,4),%esi
4088f2:	eb 07                	jmp    0x4088fb
4088f4:	39 0e                	cmp    %ecx,(%esi)
4088f6:	74 1f                	je     0x408917
4088f8:	8b 76 04             	mov    0x4(%esi),%esi
4088fb:	85 f6                	test   %esi,%esi
4088fd:	75 f5                	jne    0x4088f4
4088ff:	8b f3                	mov    %ebx,%esi
408901:	85 f6                	test   %esi,%esi
408903:	74 0b                	je     0x408910
408905:	39 5e 08             	cmp    %ebx,0x8(%esi)
408908:	75 06                	jne    0x408910
40890a:	8d 4f 04             	lea    0x4(%edi),%ecx
40890d:	89 4e 08             	mov    %ecx,0x8(%esi)
408910:	5f                   	pop    %edi
408911:	8b c6                	mov    %esi,%eax
408913:	5e                   	pop    %esi
408914:	5b                   	pop    %ebx
408915:	c9                   	leave
408916:	c3                   	ret
408917:	83 c6 08             	add    $0x8,%esi
40891a:	eb e5                	jmp    0x408901
40891c:	8b ff                	mov    %edi,%edi
40891e:	55                   	push   %ebp
40891f:	8b ec                	mov    %esp,%ebp
408921:	83 e4 f8             	and    $0xfffffff8,%esp
408924:	83 ec 54             	sub    $0x54,%esp
408927:	33 d2                	xor    %edx,%edx
408929:	56                   	push   %esi
40892a:	8b f1                	mov    %ecx,%esi
40892c:	39 56 0c             	cmp    %edx,0xc(%esi)
40892f:	75 2c                	jne    0x40895d
408931:	39 15 88 26 43 00    	cmp    %edx,0x432688
408937:	74 09                	je     0x408942
408939:	6a 01                	push   $0x1
40893b:	e8 da 68 00 00       	call   0x40f21a
408940:	8b d0                	mov    %eax,%edx
408942:	89 16                	mov    %edx,(%esi)
408944:	85 d2                	test   %edx,%edx
408946:	74 10                	je     0x408958
408948:	8b 02                	mov    (%edx),%eax
40894a:	89 46 08             	mov    %eax,0x8(%esi)
40894d:	89 32                	mov    %esi,(%edx)
40894f:	ff 15 50 31 43 00    	call   *0x433150
408955:	89 46 0c             	mov    %eax,0xc(%esi)
408958:	5e                   	pop    %esi
408959:	8b e5                	mov    %ebp,%esp
40895b:	5d                   	pop    %ebp
40895c:	c3                   	ret
40895d:	6a 50                	push   $0x50
40895f:	52                   	push   %edx
408960:	8d 44 24 10          	lea    0x10(%esp),%eax
408964:	50                   	push   %eax
408965:	e8 9d 81 00 00       	call   0x410b07
40896a:	83 c4 0c             	add    $0xc,%esp
40896d:	8d 4c 24 08          	lea    0x8(%esp),%ecx
408971:	e8 4f f7 ff ff       	call   0x4080c5
408976:	cc                   	int3
408977:	8b ff                	mov    %edi,%edi
408979:	55                   	push   %ebp
40897a:	8b ec                	mov    %esp,%ebp
40897c:	51                   	push   %ecx
40897d:	56                   	push   %esi
40897e:	8b f1                	mov    %ecx,%esi
408980:	ff 15 50 31 43 00    	call   *0x433150
408986:	39 46 0c             	cmp    %eax,0xc(%esi)
408989:	74 0e                	je     0x408999
40898b:	68 9c 02 07 80       	push   $0x8007029c
408990:	51                   	push   %ecx
408991:	8b 4d 04             	mov    0x4(%ebp),%ecx
408994:	e8 6c f9 ff ff       	call   0x408305
408999:	83 66 0c 00          	andl   $0x0,0xc(%esi)
40899d:	8b 0e                	mov    (%esi),%ecx
40899f:	eb 09                	jmp    0x4089aa
4089a1:	3b c6                	cmp    %esi,%eax
4089a3:	74 0d                	je     0x4089b2
4089a5:	8d 48 08             	lea    0x8(%eax),%ecx
4089a8:	89 0e                	mov    %ecx,(%esi)
4089aa:	8b 01                	mov    (%ecx),%eax
4089ac:	85 c0                	test   %eax,%eax
4089ae:	75 f1                	jne    0x4089a1
4089b0:	eb 05                	jmp    0x4089b7
4089b2:	8b 46 08             	mov    0x8(%esi),%eax
4089b5:	89 01                	mov    %eax,(%ecx)
4089b7:	83 26 00             	andl   $0x0,(%esi)
4089ba:	5e                   	pop    %esi
4089bb:	59                   	pop    %ecx
4089bc:	5d                   	pop    %ebp
4089bd:	c3                   	ret
4089be:	8b ff                	mov    %edi,%edi