40157c:	47                   	inc    %edi
40157d:	85 f6                	test   %esi,%esi
40157f:	75 c5                	jne    0x401546
401581:	5f                   	pop    %edi
401582:	5e                   	pop    %esi
401583:	33 c0                	xor    %eax,%eax
401585:	5b                   	pop    %ebx
401586:	8b e5                	mov    %ebp,%esp
401588:	5d                   	pop    %ebp
401589:	c3                   	ret
40158a:	5f                   	pop    %edi
40158b:	8b c6                	mov    %esi,%eax
40158d:	5e                   	pop    %esi
40158e:	5b                   	pop    %ebx
40158f:	8b e5                	mov    %ebp,%esp
401591:	5d                   	pop    %ebp
401592:	c3                   	ret
401593:	cc                   	int3
401594:	cc                   	int3
401595:	cc                   	int3
401596:	cc                   	int3
401597:	cc                   	int3
401598:	cc                   	int3
401599:	cc                   	int3
40159a:	cc                   	int3
40159b:	cc                   	int3
40159c:	cc                   	int3
40159d:	cc                   	int3
40159e:	cc                   	int3
40159f:	cc                   	int3
4015a0:	55                   	push   %ebp
4015a1:	8b ec                	mov    %esp,%ebp
4015a3:	ff 75 08             	push   0x8(%ebp)
4015a6:	6a 00                	push   $0x0
4015a8:	ff 71 04             	push   0x4(%ecx)
4015ab:	ff 15 74 b0 41 00    	call   *0x41b074
4015b1:	5d                   	pop    %ebp
4015b2:	c2 04 00             	ret    $0x4
4015b5:	cc                   	int3
4015b6:	cc                   	int3
4015b7:	cc                   	int3
4015b8:	cc                   	int3
4015b9:	cc                   	int3
4015ba:	cc                   	int3
4015bb:	cc                   	int3
4015bc:	cc                   	int3
4015bd:	cc                   	int3
4015be:	cc                   	int3
4015bf:	cc                   	int3
4015c0:	55                   	push   %ebp
4015c1:	8b ec                	mov    %esp,%ebp
4015c3:	8b 45 08             	mov    0x8(%ebp),%eax
4015c6:	85 c0                	test   %eax,%eax
4015c8:	74 0c                	je     0x4015d6
4015ca:	50                   	push   %eax
4015cb:	6a 00                	push   $0x0
4015cd:	ff 71 04             	push   0x4(%ecx)
4015d0:	ff 15 78 b0 41 00    	call   *0x41b078
4015d6:	5d                   	pop    %ebp
4015d7:	c2 04 00             	ret    $0x4
4015da:	cc                   	int3
4015db:	cc                   	int3
4015dc:	cc                   	int3
4015dd:	cc                   	int3
4015de:	cc                   	int3
4015df:	cc                   	int3
4015e0:	55                   	push   %ebp
4015e1:	8b ec                	mov    %esp,%ebp
4015e3:	8b 55 08             	mov    0x8(%ebp),%edx
4015e6:	85 d2                	test   %edx,%edx
4015e8:	75 0b                	jne    0x4015f5
4015ea:	8b 01                	mov    (%ecx),%eax
4015ec:	ff 75 0c             	push   0xc(%ebp)
4015ef:	ff 10                	call   *(%eax)
4015f1:	5d                   	pop    %ebp
4015f2:	c2 08 00             	ret    $0x8
4015f5:	8b 45 0c             	mov    0xc(%ebp),%eax
4015f8:	85 c0                	test   %eax,%eax
4015fa:	75 0c                	jne    0x401608
4015fc:	8b 01                	mov    (%ecx),%eax
4015fe:	52                   	push   %edx
4015ff:	ff 50 04             	call   *0x4(%eax)
401602:	33 c0                	xor    %eax,%eax
401604:	5d                   	pop    %ebp
401605:	c2 08 00             	ret    $0x8
401608:	50                   	push   %eax
401609:	52                   	push   %edx
40160a:	6a 00                	push   $0x0
40160c:	ff 71 04             	push   0x4(%ecx)
40160f:	ff 15 7c b0 41 00    	call   *0x41b07c
401615:	5d                   	pop    %ebp
401616:	c2 08 00             	ret    $0x8
401619:	cc                   	int3
40161a:	cc                   	int3
40161b:	cc                   	int3
40161c:	cc                   	int3
40161d:	cc                   	int3
40161e:	cc                   	int3
40161f:	cc                   	int3
401620:	55                   	push   %ebp
401621:	8b ec                	mov    %esp,%ebp
401623:	ff 75 08             	push   0x8(%ebp)
401626:	6a 00                	push   $0x0
401628:	ff 71 04             	push   0x4(%ecx)
40162b:	ff 15 80 b0 41 00    	call   *0x41b080
401631:	5d                   	pop    %ebp
401632:	c2 04 00             	ret    $0x4
401635:	cc                   	int3
401636:	cc                   	int3
401637:	cc                   	int3
401638:	cc                   	int3
401639:	cc                   	int3
40163a:	cc                   	int3
40163b:	cc                   	int3
40163c:	cc                   	int3
40163d:	cc                   	int3
40163e:	cc                   	int3
40163f:	cc                   	int3
401640:	55                   	push   %ebp
401641:	8b ec                	mov    %esp,%ebp
401643:	56                   	push   %esi
401644:	8b f1                	mov    %ecx,%esi
401646:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
40164a:	c7 06 9c 0c 42 00    	movl   $0x420c9c,(%esi)
401650:	74 0e                	je     0x401660
401652:	8b 46 04             	mov    0x4(%esi),%eax
401655:	85 c0                	test   %eax,%eax
401657:	74 07                	je     0x401660
401659:	50                   	push   %eax
40165a:	ff 15 70 b0 41 00    	call   *0x41b070
401660:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
401664:	74 0b                	je     0x401671
401666:	6a 0c                	push   $0xc
401668:	56                   	push   %esi
401669:	e8 89 1b 00 00       	call   0x4031f7
40166e:	83 c4 08             	add    $0x8,%esp
401671:	8b c6                	mov    %esi,%eax
401673:	5e                   	pop    %esi
401674:	5d                   	pop    %ebp
401675:	c2 04 00             	ret    $0x4
401678:	cc                   	int3
401679:	cc                   	int3
40167a:	cc                   	int3
40167b:	cc                   	int3
40167c:	cc                   	int3
40167d:	cc                   	int3
40167e:	cc                   	int3
40167f:	cc                   	int3
401680:	55                   	push   %ebp
401681:	8b ec                	mov    %esp,%ebp
401683:	6a ff                	push   $0xffffffff
401685:	68 d8 9f 41 00       	push   $0x419fd8
40168a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401690:	50                   	push   %eax
401691:	56                   	push   %esi
401692:	a1 0c 30 42 00       	mov    0x42300c,%eax
401697:	33 c5                	xor    %ebp,%eax
401699:	50                   	push   %eax
40169a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40169d:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4016a3:	64 a1 2c 00 00 00    	mov    %fs:0x2c,%eax
4016a9:	8b 30                	mov    (%eax),%esi
4016ab:	a1 24 47 42 00       	mov    0x424724,%eax
4016b0:	3b 86 04 00 00 00    	cmp    0x4(%esi),%eax
4016b6:	7e 57                	jle    0x40170f
4016b8:	68 24 47 42 00       	push   $0x424724
4016bd:	e8 94 1c 00 00       	call   0x403356
4016c2:	83 c4 04             	add    $0x4,%esp
4016c5:	83 3d 24 47 42 00 ff 	cmpl   $0xffffffff,0x424724
4016cc:	75 41                	jne    0x40170f
4016ce:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4016d5:	ff 15 84 b0 41 00    	call   *0x41b084
4016db:	68 20 a3 41 00       	push   $0x41a320
4016e0:	c7 05 18 47 42 00 9c 	movl   $0x420c9c,0x424718
4016e7:	0c 42 00
4016ea:	a3 1c 47 42 00       	mov    %eax,0x42471c
4016ef:	c6 05 20 47 42 00 00 	movb   $0x0,0x424720
4016f6:	e8 e7 1a 00 00       	call   0x4031e2
4016fb:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
401702:	68 24 47 42 00       	push   $0x424724
401707:	e8 0b 1c 00 00       	call   0x403317
40170c:	83 c4 08             	add    $0x8,%esp
40170f:	a1 14 47 42 00       	mov    0x424714,%eax
401714:	3b 86 04 00 00 00    	cmp    0x4(%esi),%eax
40171a:	7e 7e                	jle    0x40179a
40171c:	68 14 47 42 00       	push   $0x424714
401721:	e8 30 1c 00 00       	call   0x403356
401726:	83 c4 04             	add    $0x4,%esp
401729:	83 3d 14 47 42 00 ff 	cmpl   $0xffffffff,0x424714
401730:	75 68                	jne    0x40179a
401732:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401739:	33 c0                	xor    %eax,%eax
40173b:	68 10 a3 41 00       	push   $0x41a310
401740:	c7 05 f8 46 42 00 80 	movl   $0x420c80,0x4246f8
401747:	0c 42 00
40174a:	c7 05 fc 46 42 00 18 	movl   $0x424718,0x4246fc
401751:	47 42 00
401754:	c7 05 0c 47 42 00 02 	movl   $0x2,0x42470c
40175b:	00 00 00
40175e:	c7 05 04 47 42 00 00 	movl   $0x0,0x424704
401765:	00 00 00
401768:	c7 05 08 47 42 00 00 	movl   $0x0,0x424708
40176f:	00 00 00
401772:	a3 10 47 42 00       	mov    %eax,0x424710
401777:	c7 05 00 47 42 00 f8 	movl   $0x4246f8,0x424700
40177e:	46 42 00
401781:	e8 5c 1a 00 00       	call   0x4031e2
401786:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40178d:	68 14 47 42 00       	push   $0x424714
401792:	e8 80 1b 00 00       	call   0x403317
401797:	83 c4 08             	add    $0x8,%esp
40179a:	b8 f8 46 42 00       	mov    $0x4246f8,%eax
40179f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4017a2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4017a9:	59                   	pop    %ecx
4017aa:	5e                   	pop    %esi
4017ab:	8b e5                	mov    %ebp,%esp
4017ad:	5d                   	pop    %ebp
4017ae:	c3                   	ret
4017af:	cc                   	int3
4017b0:	55                   	push   %ebp
4017b1:	8b ec                	mov    %esp,%ebp
4017b3:	8b 55 08             	mov    0x8(%ebp),%edx
4017b6:	57                   	push   %edi
4017b7:	8b f9                	mov    %ecx,%edi
4017b9:	85 d2                	test   %edx,%edx
4017bb:	79 07                	jns    0x4017c4
4017bd:	33 c0                	xor    %eax,%eax
4017bf:	5f                   	pop    %edi
4017c0:	5d                   	pop    %ebp
4017c1:	c2 08 00             	ret    $0x8
4017c4:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4017c9:	2b c2                	sub    %edx,%eax
4017cb:	83 f8 01             	cmp    $0x1,%eax
4017ce:	7c ed                	jl     0x4017bd
4017d0:	42                   	inc    %edx
4017d1:	56                   	push   %esi
4017d2:	8d 72 07             	lea    0x7(%edx),%esi
4017d5:	83 e6 f8             	and    $0xfffffff8,%esi
4017d8:	3b d6                	cmp    %esi,%edx
4017da:	7f 44                	jg     0x401820
4017dc:	8b c6                	mov    %esi,%eax
4017de:	f7 65 0c             	mull   0xc(%ebp)
4017e1:	85 d2                	test   %edx,%edx
4017e3:	77 3b                	ja     0x401820
4017e5:	72 05                	jb     0x4017ec
4017e7:	83 f8 ff             	cmp    $0xffffffff,%eax
4017ea:	77 34                	ja     0x401820
4017ec:	83 f8 ef             	cmp    $0xffffffef,%eax
4017ef:	77 2f                	ja     0x401820
4017f1:	8b 4f 04             	mov    0x4(%edi),%ecx
4017f4:	8d 50 10             	lea    0x10(%eax),%edx
4017f7:	52                   	push   %edx
4017f8:	8b 01                	mov    (%ecx),%eax
4017fa:	ff 10                	call   *(%eax)
4017fc:	8b c8                	mov    %eax,%ecx
4017fe:	85 c9                	test   %ecx,%ecx
401800:	74 1e                	je     0x401820
401802:	8d 46 ff             	lea    -0x1(%esi),%eax
401805:	89 39                	mov    %edi,(%ecx)
401807:	5e                   	pop    %esi
401808:	89 41 08             	mov    %eax,0x8(%ecx)
40180b:	8b c1                	mov    %ecx,%eax
40180d:	c7 41 0c 01 00 00 00 	movl   $0x1,0xc(%ecx)
401814:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
40181b:	5f                   	pop    %edi
40181c:	5d                   	pop    %ebp
40181d:	c2 08 00             	ret    $0x8
401820:	5e                   	pop    %esi
401821:	33 c0                	xor    %eax,%eax
401823:	5f                   	pop    %edi
401824:	5d                   	pop    %ebp
401825:	c2 08 00             	ret    $0x8
401828:	cc                   	int3
401829:	cc                   	int3
40182a:	cc                   	int3
40182b:	cc                   	int3
40182c:	cc                   	int3
40182d:	cc                   	int3
40182e:	cc                   	int3
40182f:	cc                   	int3
401830:	55                   	push   %ebp
401831:	8b ec                	mov    %esp,%ebp
401833:	8b 49 04             	mov    0x4(%ecx),%ecx
401836:	8b 01                	mov    (%ecx),%eax
401838:	5d                   	pop    %ebp
401839:	ff 60 04             	jmp    *0x4(%eax)
40183c:	cc                   	int3
40183d:	cc                   	int3
40183e:	cc                   	int3
40183f:	cc                   	int3
401840:	55                   	push   %ebp
401841:	8b ec                	mov    %esp,%ebp
401843:	8b 55 0c             	mov    0xc(%ebp),%edx
401846:	85 d2                	test   %edx,%edx
401848:	79 06                	jns    0x401850
40184a:	33 c0                	xor    %eax,%eax
40184c:	5d                   	pop    %ebp
40184d:	c2 0c 00             	ret    $0xc
401850:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
401855:	2b c2                	sub    %edx,%eax
401857:	83 f8 01             	cmp    $0x1,%eax
40185a:	7c ee                	jl     0x40184a
40185c:	42                   	inc    %edx
40185d:	56                   	push   %esi
40185e:	8d 72 07             	lea    0x7(%edx),%esi
401861:	83 e6 f8             	and    $0xfffffff8,%esi
401864:	3b d6                	cmp    %esi,%edx
401866:	7f 37                	jg     0x40189f
401868:	8b c6                	mov    %esi,%eax
40186a:	f7 65 10             	mull   0x10(%ebp)
40186d:	85 d2                	test   %edx,%edx
40186f:	77 2e                	ja     0x40189f
401871:	72 05                	jb     0x401878
401873:	83 f8 ff             	cmp    $0xffffffff,%eax
401876:	77 27                	ja     0x40189f
401878:	83 f8 ef             	cmp    $0xffffffef,%eax
40187b:	77 22                	ja     0x40189f
40187d:	8b 49 04             	mov    0x4(%ecx),%ecx
401880:	83 c0 10             	add    $0x10,%eax
401883:	50                   	push   %eax
401884:	ff 75 08             	push   0x8(%ebp)
401887:	8b 11                	mov    (%ecx),%edx
401889:	ff 52 08             	call   *0x8(%edx)
40188c:	8b c8                	mov    %eax,%ecx
40188e:	85 c9                	test   %ecx,%ecx
401890:	74 0d                	je     0x40189f
401892:	8d 46 ff             	lea    -0x1(%esi),%eax
401895:	89 41 08             	mov    %eax,0x8(%ecx)
401898:	8b c1                	mov    %ecx,%eax
40189a:	5e                   	pop    %esi
40189b:	5d                   	pop    %ebp
40189c:	c2 0c 00             	ret    $0xc
40189f:	33 c0                	xor    %eax,%eax
4018a1:	5e                   	pop    %esi
4018a2:	5d                   	pop    %ebp
4018a3:	c2 0c 00             	ret    $0xc
4018a6:	cc                   	int3
4018a7:	cc                   	int3
4018a8:	cc                   	int3
4018a9:	cc                   	int3
4018aa:	cc                   	int3
4018ab:	cc                   	int3
4018ac:	cc                   	int3
4018ad:	cc                   	int3
4018ae:	cc                   	int3
4018af:	cc                   	int3
4018b0:	f0 ff 41 14          	lock incl 0x14(%ecx)
4018b4:	8d 41 08             	lea    0x8(%ecx),%eax
4018b7:	c3                   	ret