42c5fa:	2b f0                	sub    %eax,%esi
42c5fc:	56                   	push   %esi
42c5fd:	6a 00                	push   $0x0
42c5ff:	50                   	push   %eax
42c600:	e8 5c 1a ff ff       	call   0x41e061
42c605:	83 c4 0c             	add    $0xc,%esp
42c608:	5f                   	pop    %edi
42c609:	5e                   	pop    %esi
42c60a:	5b                   	pop    %ebx
42c60b:	c9                   	leave
42c60c:	c2 04 00             	ret    $0x4
42c60f:	8b ff                	mov    %edi,%edi
42c611:	55                   	push   %ebp
42c612:	8b ec                	mov    %esp,%ebp
42c614:	56                   	push   %esi
42c615:	8b f1                	mov    %ecx,%esi
42c617:	57                   	push   %edi
42c618:	8b 7e 0c             	mov    0xc(%esi),%edi
42c61b:	85 ff                	test   %edi,%edi
42c61d:	0f 95 c0             	setne  %al
42c620:	0f b6 c0             	movzbl %al,%eax
42c623:	50                   	push   %eax
42c624:	e8 2b b5 ff ff       	call   0x427b54
42c629:	84 c0                	test   %al,%al
42c62b:	74 62                	je     0x42c68f
42c62d:	85 ff                	test   %edi,%edi
42c62f:	8b 7d 08             	mov    0x8(%ebp),%edi
42c632:	53                   	push   %ebx
42c633:	74 2c                	je     0x42c661
42c635:	0f b7 46 14          	movzwl 0x14(%esi),%eax
42c639:	8b 4e 10             	mov    0x10(%esi),%ecx
42c63c:	6b d0 2c             	imul   $0x2c,%eax,%edx
42c63f:	03 d1                	add    %ecx,%edx
42c641:	3b ca                	cmp    %edx,%ecx
42c643:	74 1c                	je     0x42c661
42c645:	8b 5e 0c             	mov    0xc(%esi),%ebx
42c648:	83 c1 08             	add    $0x8,%ecx
42c64b:	39 59 fc             	cmp    %ebx,-0x4(%ecx)
42c64e:	76 07                	jbe    0x42c657
42c650:	8b 01                	mov    (%ecx),%eax
42c652:	3b 47 04             	cmp    0x4(%edi),%eax
42c655:	74 37                	je     0x42c68e
42c657:	83 c1 2c             	add    $0x2c,%ecx
42c65a:	8d 41 f8             	lea    -0x8(%ecx),%eax
42c65d:	3b c2                	cmp    %edx,%eax
42c65f:	75 ea                	jne    0x42c64b
42c661:	0f b7 46 16          	movzwl 0x16(%esi),%eax
42c665:	33 d2                	xor    %edx,%edx
42c667:	0f b7 4e 14          	movzwl 0x14(%esi),%ecx
42c66b:	40                   	inc    %eax
42c66c:	f7 f1                	div    %ecx
42c66e:	8b 46 08             	mov    0x8(%esi),%eax
42c671:	33 c9                	xor    %ecx,%ecx
42c673:	66 89 56 16          	mov    %dx,0x16(%esi)
42c677:	41                   	inc    %ecx
42c678:	f0 0f c1 08          	lock xadd %ecx,(%eax)
42c67c:	41                   	inc    %ecx
42c67d:	0f b7 46 16          	movzwl 0x16(%esi),%eax
42c681:	51                   	push   %ecx
42c682:	6b c8 2c             	imul   $0x2c,%eax,%ecx
42c685:	57                   	push   %edi
42c686:	03 4e 10             	add    0x10(%esi),%ecx
42c689:	e8 61 fb ff ff       	call   0x42c1ef
42c68e:	5b                   	pop    %ebx
42c68f:	5f                   	pop    %edi
42c690:	5e                   	pop    %esi
42c691:	5d                   	pop    %ebp
42c692:	c2 04 00             	ret    $0x4
42c695:	8b ff                	mov    %edi,%edi
42c697:	56                   	push   %esi
42c698:	8b f1                	mov    %ecx,%esi
42c69a:	ff 15 f8 a1 43 00    	call   *0x43a1f8
42c6a0:	39 05 58 91 43 00    	cmp    %eax,0x439158
42c6a6:	74 38                	je     0x42c6e0
42c6a8:	33 d2                	xor    %edx,%edx
42c6aa:	42                   	inc    %edx
42c6ab:	f0 0f c1 15 60 91 43 	lock xadd %edx,0x439160
42c6b2:	00
42c6b3:	42                   	inc    %edx
42c6b4:	83 fa 04             	cmp    $0x4,%edx
42c6b7:	7d 20                	jge    0x42c6d9
42c6b9:	a3 58 91 43 00       	mov    %eax,0x439158
42c6be:	e8 86 bf ff ff       	call   0x428649
42c6c3:	85 c0                	test   %eax,%eax
42c6c5:	74 08                	je     0x42c6cf
42c6c7:	56                   	push   %esi
42c6c8:	8b c8                	mov    %eax,%ecx
42c6ca:	e8 40 ff ff ff       	call   0x42c60f
42c6cf:	c7 05 58 91 43 00 00 	movl   $0x0,0x439158
42c6d6:	00 00 00
42c6d9:	f0 ff 0d 60 91 43 00 	lock decl 0x439160
42c6e0:	5e                   	pop    %esi
42c6e1:	c3                   	ret
42c6e2:	8b ff                	mov    %edi,%edi
42c6e4:	55                   	push   %ebp
42c6e5:	8b ec                	mov    %esp,%ebp
42c6e7:	51                   	push   %ecx
42c6e8:	51                   	push   %ecx
42c6e9:	8b 55 0c             	mov    0xc(%ebp),%edx
42c6ec:	53                   	push   %ebx
42c6ed:	8b d9                	mov    %ecx,%ebx
42c6ef:	56                   	push   %esi
42c6f0:	57                   	push   %edi
42c6f1:	85 d2                	test   %edx,%edx
42c6f3:	75 0a                	jne    0x42c6ff
42c6f5:	b9 05 40 00 80       	mov    $0x80004005,%ecx
42c6fa:	e8 9e aa ff ff       	call   0x42719d
42c6ff:	33 c0                	xor    %eax,%eax
42c701:	8b fa                	mov    %edx,%edi
42c703:	89 45 fc             	mov    %eax,-0x4(%ebp)
42c706:	8b f0                	mov    %eax,%esi
42c708:	8b cf                	mov    %edi,%ecx
42c70a:	8d 41 02             	lea    0x2(%ecx),%eax
42c70d:	89 45 f8             	mov    %eax,-0x8(%ebp)
42c710:	66 8b 01             	mov    (%ecx),%ax
42c713:	83 c1 02             	add    $0x2,%ecx
42c716:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
42c71a:	75 f4                	jne    0x42c710
42c71c:	2b 4d f8             	sub    -0x8(%ebp),%ecx
42c71f:	d1 f9                	sar    $1,%ecx
42c721:	41                   	inc    %ecx
42c722:	8d 3c 4f             	lea    (%edi,%ecx,2),%edi
42c725:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
42c728:	83 f9 01             	cmp    $0x1,%ecx
42c72b:	75 db                	jne    0x42c708
42c72d:	56                   	push   %esi
42c72e:	52                   	push   %edx
42c72f:	6a 07                	push   $0x7
42c731:	33 c0                	xor    %eax,%eax
42c733:	50                   	push   %eax
42c734:	ff 75 08             	push   0x8(%ebp)
42c737:	ff 33                	push   (%ebx)
42c739:	ff 15 48 a2 43 00    	call   *0x43a248
42c73f:	5f                   	pop    %edi
42c740:	5e                   	pop    %esi
42c741:	5b                   	pop    %ebx
42c742:	c9                   	leave
42c743:	c2 08 00             	ret    $0x8
42c746:	8b ff                	mov    %edi,%edi
42c748:	55                   	push   %ebp
42c749:	8b ec                	mov    %esp,%ebp
42c74b:	83 e4 f8             	and    $0xfffffff8,%esp
42c74e:	83 ec 54             	sub    $0x54,%esp
42c751:	56                   	push   %esi
42c752:	8b 71 38             	mov    0x38(%ecx),%esi
42c755:	83 fe 01             	cmp    $0x1,%esi
42c758:	7d 1a                	jge    0x42c774
42c75a:	6a 50                	push   $0x50
42c75c:	8d 44 24 0c          	lea    0xc(%esp),%eax
42c760:	6a 00                	push   $0x0
42c762:	50                   	push   %eax
42c763:	e8 f9 18 ff ff       	call   0x41e061
42c768:	83 c4 0c             	add    $0xc,%esp
42c76b:	8d 4c 24 08          	lea    0x8(%esp),%ecx
42c76f:	e8 57 15 00 00       	call   0x42dccb
42c774:	8b 41 3c             	mov    0x3c(%ecx),%eax
42c777:	85 c0                	test   %eax,%eax
42c779:	78 06                	js     0x42c781
42c77b:	8b 45 08             	mov    0x8(%ebp),%eax
42c77e:	89 41 3c             	mov    %eax,0x3c(%ecx)
42c781:	8b 55 0c             	mov    0xc(%ebp),%edx
42c784:	85 d2                	test   %edx,%edx
42c786:	74 02                	je     0x42c78a
42c788:	89 02                	mov    %eax,(%edx)
42c78a:	8d 46 ff             	lea    -0x1(%esi),%eax
42c78d:	85 c0                	test   %eax,%eax
42c78f:	89 41 38             	mov    %eax,0x38(%ecx)
42c792:	5e                   	pop    %esi
42c793:	0f 94 c0             	sete   %al
42c796:	8b e5                	mov    %ebp,%esp
42c798:	5d                   	pop    %ebp
42c799:	c2 08 00             	ret    $0x8
42c79c:	8b ff                	mov    %edi,%edi
42c79e:	55                   	push   %ebp
42c79f:	8b ec                	mov    %esp,%ebp
42c7a1:	8b 55 0c             	mov    0xc(%ebp),%edx
42c7a4:	53                   	push   %ebx
42c7a5:	56                   	push   %esi
42c7a6:	8b f1                	mov    %ecx,%esi
42c7a8:	57                   	push   %edi
42c7a9:	85 d2                	test   %edx,%edx
42c7ab:	75 0a                	jne    0x42c7b7
42c7ad:	b9 05 40 00 80       	mov    $0x80004005,%ecx
42c7b2:	e8 e6 a9 ff ff       	call   0x42719d
42c7b7:	8b ca                	mov    %edx,%ecx
42c7b9:	33 db                	xor    %ebx,%ebx
42c7bb:	8d 79 02             	lea    0x2(%ecx),%edi
42c7be:	66 8b 01             	mov    (%ecx),%ax
42c7c1:	83 c1 02             	add    $0x2,%ecx
42c7c4:	66 3b c3             	cmp    %bx,%ax
42c7c7:	75 f5                	jne    0x42c7be
42c7c9:	2b cf                	sub    %edi,%ecx
42c7cb:	d1 f9                	sar    $1,%ecx
42c7cd:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
42c7d4:	50                   	push   %eax
42c7d5:	52                   	push   %edx
42c7d6:	6a 01                	push   $0x1
42c7d8:	53                   	push   %ebx
42c7d9:	ff 75 08             	push   0x8(%ebp)
42c7dc:	ff 36                	push   (%esi)
42c7de:	ff 15 48 a2 43 00    	call   *0x43a248
42c7e4:	5f                   	pop    %edi
42c7e5:	5e                   	pop    %esi
42c7e6:	5b                   	pop    %ebx
42c7e7:	5d                   	pop    %ebp
42c7e8:	c2 0c 00             	ret    $0xc
42c7eb:	8b ff                	mov    %edi,%edi
42c7ed:	55                   	push   %ebp
42c7ee:	8b ec                	mov    %esp,%ebp
42c7f0:	51                   	push   %ecx
42c7f1:	8b 41 44             	mov    0x44(%ecx),%eax
42c7f4:	89 45 fc             	mov    %eax,-0x4(%ebp)
42c7f7:	85 c0                	test   %eax,%eax
42c7f9:	78 05                	js     0x42c800
42c7fb:	b8 3e 02 07 80       	mov    $0x8007023e,%eax
42c800:	8d 55 fc             	lea    -0x4(%ebp),%edx
42c803:	52                   	push   %edx
42c804:	50                   	push   %eax
42c805:	e8 3c ff ff ff       	call   0x42c746
42c80a:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c80d:	c9                   	leave
42c80e:	c3                   	ret
42c80f:	83 79 04 ff          	cmpl   $0xffffffff,0x4(%ecx)
42c813:	75 1d                	jne    0x42c832
42c815:	83 39 08             	cmpl   $0x8,(%ecx)
42c818:	72 18                	jb     0x42c832
42c81a:	8b 41 08             	mov    0x8(%ecx),%eax
42c81d:	8b 00                	mov    (%eax),%eax
42c81f:	83 e8 01             	sub    $0x1,%eax
42c822:	74 0a                	je     0x42c82e
42c824:	83 e8 06             	sub    $0x6,%eax
42c827:	74 05                	je     0x42c82e
42c829:	83 e8 06             	sub    $0x6,%eax
42c82c:	75 04                	jne    0x42c832
42c82e:	33 c0                	xor    %eax,%eax
42c830:	40                   	inc    %eax
42c831:	c3                   	ret
42c832:	33 c0                	xor    %eax,%eax
42c834:	c3                   	ret
42c835:	8b ff                	mov    %edi,%edi
42c837:	55                   	push   %ebp
42c838:	8b ec                	mov    %esp,%ebp
42c83a:	b8 04 20 00 00       	mov    $0x2004,%eax
42c83f:	e8 ec 17 ff ff       	call   0x41e030
42c844:	a1 08 85 43 00       	mov    0x438508,%eax
42c849:	33 c5                	xor    %ebp,%eax
42c84b:	89 45 fc             	mov    %eax,-0x4(%ebp)
42c84e:	56                   	push   %esi
42c84f:	57                   	push   %edi
42c850:	8b 7d 08             	mov    0x8(%ebp),%edi
42c853:	8b f1                	mov    %ecx,%esi
42c855:	66 83 3f 3d          	cmpw   $0x3d,(%edi)
42c859:	75 2f                	jne    0x42c88a
42c85b:	57                   	push   %edi
42c85c:	e8 39 c8 ff ff       	call   0x42909a
42c861:	85 c0                	test   %eax,%eax
42c863:	78 27                	js     0x42c88c
42c865:	8b ce                	mov    %esi,%ecx
42c867:	e8 bf 00 00 00       	call   0x42c92b
42c86c:	8d 85 fc df ff ff    	lea    -0x2004(%ebp),%eax
42c872:	8b ce                	mov    %esi,%ecx
42c874:	50                   	push   %eax
42c875:	e8 20 c8 ff ff       	call   0x42909a
42c87a:	85 c0                	test   %eax,%eax
42c87c:	78 0e                	js     0x42c88c
42c87e:	57                   	push   %edi
42c87f:	8b ce                	mov    %esi,%ecx
42c881:	e8 14 c8 ff ff       	call   0x42909a
42c886:	85 c0                	test   %eax,%eax
42c888:	78 02                	js     0x42c88c
42c88a:	33 c0                	xor    %eax,%eax
42c88c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42c88f:	5f                   	pop    %edi
42c890:	33 cd                	xor    %ebp,%ecx
42c892:	5e                   	pop    %esi
42c893:	e8 28 df fe ff       	call   0x41a7c0
42c898:	c9                   	leave
42c899:	c2 04 00             	ret    $0x4
42c89c:	8b ff                	mov    %edi,%edi
42c89e:	55                   	push   %ebp
42c89f:	8b ec                	mov    %esp,%ebp
42c8a1:	83 ec 14             	sub    $0x14,%esp
42c8a4:	53                   	push   %ebx
42c8a5:	8b d9                	mov    %ecx,%ebx
42c8a7:	56                   	push   %esi
42c8a8:	57                   	push   %edi
42c8a9:	8b 7d 08             	mov    0x8(%ebp),%edi
42c8ac:	8b 73 0c             	mov    0xc(%ebx),%esi
42c8af:	85 f6                	test   %esi,%esi
42c8b1:	74 29                	je     0x42c8dc
42c8b3:	8b 43 14             	mov    0x14(%ebx),%eax
42c8b6:	33 d2                	xor    %edx,%edx
42c8b8:	2b 43 10             	sub    0x10(%ebx),%eax
42c8bb:	f7 f6                	div    %esi
42c8bd:	8b 4f 04             	mov    0x4(%edi),%ecx
42c8c0:	3b c8                	cmp    %eax,%ecx
42c8c2:	76 0e                	jbe    0x42c8d2
42c8c4:	50                   	push   %eax
42c8c5:	8b cf                	mov    %edi,%ecx
42c8c7:	e8 b5 0c 00 00       	call   0x42d581
42c8cc:	8b 4f 04             	mov    0x4(%edi),%ecx
42c8cf:	8b 73 0c             	mov    0xc(%ebx),%esi
42c8d2:	8b 45 0c             	mov    0xc(%ebp),%eax
42c8d5:	0f af f1             	imul   %ecx,%esi
42c8d8:	03 c6                	add    %esi,%eax
42c8da:	eb 48                	jmp    0x42c924
42c8dc:	66 8b 43 06          	mov    0x6(%ebx),%ax
42c8e0:	33 f6                	xor    %esi,%esi
42c8e2:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
42c8e6:	8a 43 08             	mov    0x8(%ebx),%al
42c8e9:	88 45 ee             	mov    %al,-0x12(%ebp)
42c8ec:	33 c0                	xor    %eax,%eax
42c8ee:	89 75 f0             	mov    %esi,-0x10(%ebp)
42c8f1:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
42c8f5:	89 75 f8             	mov    %esi,-0x8(%ebp)
42c8f8:	89 75 fc             	mov    %esi,-0x4(%ebp)
42c8fb:	39 77 04             	cmp    %esi,0x4(%edi)
42c8fe:	76 19                	jbe    0x42c919
42c900:	ff 73 14             	push   0x14(%ebx)
42c903:	8d 45 0c             	lea    0xc(%ebp),%eax
42c906:	50                   	push   %eax
42c907:	8d 4d ec             	lea    -0x14(%ebp),%ecx
42c90a:	e8 58 d9 ff ff       	call   0x42a267
42c90f:	84 c0                	test   %al,%al
42c911:	74 06                	je     0x42c919
42c913:	46                   	inc    %esi
42c914:	3b 77 04             	cmp    0x4(%edi),%esi
42c917:	72 e7                	jb     0x42c900
42c919:	56                   	push   %esi
42c91a:	8b cf                	mov    %edi,%ecx
42c91c:	e8 60 0c 00 00       	call   0x42d581
42c921:	8b 45 0c             	mov    0xc(%ebp),%eax
42c924:	5f                   	pop    %edi
42c925:	5e                   	pop    %esi
42c926:	5b                   	pop    %ebx
42c927:	c9                   	leave
42c928:	c2 08 00             	ret    $0x8
42c92b:	8b ff                	mov    %edi,%edi
42c92d:	56                   	push   %esi
42c92e:	8b f1                	mov    %ecx,%esi
42c930:	8b 16                	mov    (%esi),%edx
42c932:	0f b7 02             	movzwl (%edx),%eax
42c935:	50                   	push   %eax
42c936:	e8 0e c1 ff ff       	call   0x428a49
42c93b:	85 c0                	test   %eax,%eax
42c93d:	74 0b                	je     0x42c94a
42c93f:	52                   	push   %edx
42c940:	ff 15 70 a2 43 00    	call   *0x43a270
42c946:	89 06                	mov    %eax,(%esi)
42c948:	eb e6                	jmp    0x42c930