4165b5:	33 c0                	xor    %eax,%eax
4165b7:	c3                   	ret
4165b8:	8b 40 04             	mov    0x4(%eax),%eax
4165bb:	e8 b8 1d ff ff       	call   0x408378
4165c0:	83 f8 ff             	cmp    $0xffffffff,%eax
4165c3:	75 02                	jne    0x4165c7
4165c5:	33 c0                	xor    %eax,%eax
4165c7:	c3                   	ret
4165c8:	55                   	push   %ebp
4165c9:	8b ec                	mov    %esp,%ebp
4165cb:	83 c4 f8             	add    $0xfffffff8,%esp
4165ce:	ff 75 0c             	push   0xc(%ebp)
4165d1:	ff 75 08             	push   0x8(%ebp)
4165d4:	83 e2 7f             	and    $0x7f,%edx
4165d7:	8b 40 04             	mov    0x4(%eax),%eax
4165da:	e8 c5 1d ff ff       	call   0x4083a4
4165df:	89 45 f8             	mov    %eax,-0x8(%ebp)
4165e2:	89 55 fc             	mov    %edx,-0x4(%ebp)
4165e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4165e8:	8b 55 fc             	mov    -0x4(%ebp),%edx
4165eb:	59                   	pop    %ecx
4165ec:	59                   	pop    %ecx
4165ed:	5d                   	pop    %ebp
4165ee:	c2 08 00             	ret    $0x8
4165f1:	8d 40 00             	lea    0x0(%eax),%eax
4165f4:	53                   	push   %ebx
4165f5:	8b da                	mov    %edx,%ebx
4165f7:	8b c8                	mov    %eax,%ecx
4165f9:	8b c3                	mov    %ebx,%eax
4165fb:	99                   	cltd
4165fc:	52                   	push   %edx
4165fd:	50                   	push   %eax
4165fe:	8b c1                	mov    %ecx,%eax
416600:	8b 10                	mov    (%eax),%edx
416602:	ff 52 08             	call   *0x8(%edx)
416605:	5b                   	pop    %ebx
416606:	c3                   	ret
416607:	90                   	nop
416608:	55                   	push   %ebp
416609:	8b ec                	mov    %esp,%ebp
41660b:	53                   	push   %ebx
41660c:	8b d8                	mov    %eax,%ebx
41660e:	ff 75 0c             	push   0xc(%ebp)
416611:	ff 75 08             	push   0x8(%ebp)
416614:	33 d2                	xor    %edx,%edx
416616:	8b c3                	mov    %ebx,%eax
416618:	8b 08                	mov    (%eax),%ecx
41661a:	ff 51 18             	call   *0x18(%ecx)
41661d:	8b 43 04             	mov    0x4(%ebx),%eax
416620:	50                   	push   %eax
416621:	e8 36 fb fe ff       	call   0x40615c
416626:	e8 61 64 ff ff       	call   0x40ca8c
41662b:	5b                   	pop    %ebx
41662c:	5d                   	pop    %ebp
41662d:	c2 08 00             	ret    $0x8
416630:	55                   	push   %ebp
416631:	8b ec                	mov    %esp,%ebp
416633:	53                   	push   %ebx
416634:	56                   	push   %esi
416635:	84 d2                	test   %dl,%dl
416637:	74 08                	je     0x416641
416639:	83 c4 f0             	add    $0xfffffff0,%esp
41663c:	e8 2b cf fe ff       	call   0x40356c
416641:	8b da                	mov    %edx,%ebx
416643:	8b f0                	mov    %eax,%esi
416645:	66 8b 45 08          	mov    0x8(%ebp),%ax
416649:	50                   	push   %eax
41664a:	6a 00                	push   $0x0
41664c:	33 d2                	xor    %edx,%edx
41664e:	8b c6                	mov    %esi,%eax
416650:	e8 1f 00 00 00       	call   0x416674
416655:	8b c6                	mov    %esi,%eax
416657:	84 db                	test   %bl,%bl
416659:	74 0f                	je     0x41666a
41665b:	e8 64 cf fe ff       	call   0x4035c4
416660:	64 8f 05 00 00 00 00 	pop    %fs:0x0
416667:	83 c4 0c             	add    $0xc,%esp
41666a:	8b c6                	mov    %esi,%eax
41666c:	5e                   	pop    %esi
41666d:	5b                   	pop    %ebx
41666e:	5d                   	pop    %ebp
41666f:	c2 04 00             	ret    $0x4
416672:	8b c0                	mov    %eax,%eax
416674:	55                   	push   %ebp
416675:	8b ec                	mov    %esp,%ebp
416677:	83 c4 dc             	add    $0xffffffdc,%esp
41667a:	53                   	push   %ebx
41667b:	56                   	push   %esi
41667c:	57                   	push   %edi
41667d:	33 db                	xor    %ebx,%ebx
41667f:	89 5d e0             	mov    %ebx,-0x20(%ebp)
416682:	89 5d dc             	mov    %ebx,-0x24(%ebp)
416685:	89 5d e8             	mov    %ebx,-0x18(%ebp)
416688:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41668b:	84 d2                	test   %dl,%dl
41668d:	74 08                	je     0x416697
41668f:	83 c4 f0             	add    $0xfffffff0,%esp
416692:	e8 d5 ce fe ff       	call   0x40356c
416697:	8b f1                	mov    %ecx,%esi
416699:	88 55 ff             	mov    %dl,-0x1(%ebp)
41669c:	8b d8                	mov    %eax,%ebx
41669e:	8b 7d 0c             	mov    0xc(%ebp),%edi
4166a1:	33 c0                	xor    %eax,%eax
4166a3:	55                   	push   %ebp
4166a4:	68 9d 67 41 00       	push   $0x41679d
4166a9:	64 ff 30             	push   %fs:(%eax)
4166ac:	64 89 20             	mov    %esp,%fs:(%eax)
4166af:	66 81 ff ff ff       	cmp    $0xffff,%di
4166b4:	75 69                	jne    0x41671f
4166b6:	8b 55 08             	mov    0x8(%ebp),%edx
4166b9:	8b c6                	mov    %esi,%eax
4166bb:	e8 84 1c ff ff       	call   0x408344
4166c0:	8b c8                	mov    %eax,%ecx
4166c2:	33 d2                	xor    %edx,%edx
4166c4:	8b c3                	mov    %ebx,%eax
4166c6:	e8 a1 fe ff ff       	call   0x41656c
4166cb:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
4166cf:	0f 8d ad 00 00 00    	jge    0x416782
4166d5:	8d 55 e8             	lea    -0x18(%ebp),%edx
4166d8:	8b c6                	mov    %esi,%eax
4166da:	e8 7d 1e ff ff       	call   0x40855c
4166df:	8b 45 e8             	mov    -0x18(%ebp),%eax
4166e2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4166e5:	c6 45 f0 0b          	movb   $0xb,-0x10(%ebp)
4166e9:	e8 6e f9 fe ff       	call   0x40605c
4166ee:	8d 55 e4             	lea    -0x1c(%ebp),%edx
4166f1:	e8 6a 46 ff ff       	call   0x40ad60
4166f6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4166f9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4166fc:	c6 45 f8 0b          	movb   $0xb,-0x8(%ebp)
416700:	8d 45 ec             	lea    -0x14(%ebp),%eax
416703:	50                   	push   %eax
416704:	6a 01                	push   $0x1
416706:	8b 0d 14 de 46 00    	mov    0x46de14,%ecx
41670c:	b2 01                	mov    $0x1,%dl
41670e:	a1 ec 13 41 00       	mov    0x4113ec,%eax
416713:	e8 48 4f ff ff       	call   0x40b660
416718:	e8 b7 d2 fe ff       	call   0x4039d4
41671d:	eb 63                	jmp    0x416782
41671f:	0f b7 d7             	movzwl %di,%edx
416722:	8b c6                	mov    %esi,%eax
416724:	e8 9f 1b ff ff       	call   0x4082c8
416729:	8b c8                	mov    %eax,%ecx
41672b:	33 d2                	xor    %edx,%edx
41672d:	8b c3                	mov    %ebx,%eax
41672f:	e8 38 fe ff ff       	call   0x41656c
416734:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
416738:	7d 48                	jge    0x416782
41673a:	8d 55 e0             	lea    -0x20(%ebp),%edx
41673d:	8b c6                	mov    %esi,%eax
41673f:	e8 18 1e ff ff       	call   0x40855c
416744:	8b 45 e0             	mov    -0x20(%ebp),%eax
416747:	89 45 ec             	mov    %eax,-0x14(%ebp)
41674a:	c6 45 f0 0b          	movb   $0xb,-0x10(%ebp)
41674e:	e8 09 f9 fe ff       	call   0x40605c
416753:	8d 55 dc             	lea    -0x24(%ebp),%edx
416756:	e8 05 46 ff ff       	call   0x40ad60
41675b:	8b 45 dc             	mov    -0x24(%ebp),%eax
41675e:	89 45 f4             	mov    %eax,-0xc(%ebp)
416761:	c6 45 f8 0b          	movb   $0xb,-0x8(%ebp)
416765:	8d 45 ec             	lea    -0x14(%ebp),%eax
416768:	50                   	push   %eax
416769:	6a 01                	push   $0x1
41676b:	8b 0d ec d9 46 00    	mov    0x46d9ec,%ecx
416771:	b2 01                	mov    $0x1,%dl
416773:	a1 48 14 41 00       	mov    0x411448,%eax
416778:	e8 e3 4e ff ff       	call   0x40b660
41677d:	e8 52 d2 fe ff       	call   0x4039d4
416782:	33 c0                	xor    %eax,%eax
416784:	5a                   	pop    %edx
416785:	59                   	pop    %ecx
416786:	59                   	pop    %ecx
416787:	64 89 10             	mov    %edx,%fs:(%eax)
41678a:	68 a4 67 41 00       	push   $0x4167a4
41678f:	8d 45 dc             	lea    -0x24(%ebp),%eax
416792:	ba 04 00 00 00       	mov    $0x4,%edx
416797:	e8 20 d8 fe ff       	call   0x403fbc
41679c:	c3                   	ret
41679d:	e9 fa d1 fe ff       	jmp    0x40399c
4167a2:	eb eb                	jmp    0x41678f
4167a4:	8b c3                	mov    %ebx,%eax
4167a6:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4167aa:	74 0f                	je     0x4167bb
4167ac:	e8 13 ce fe ff       	call   0x4035c4
4167b1:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4167b8:	83 c4 0c             	add    $0xc,%esp
4167bb:	8b c3                	mov    %ebx,%eax
4167bd:	5f                   	pop    %edi
4167be:	5e                   	pop    %esi
4167bf:	5b                   	pop    %ebx
4167c0:	8b e5                	mov    %ebp,%esp
4167c2:	5d                   	pop    %ebp
4167c3:	c2 08 00             	ret    $0x8
4167c6:	8b c0                	mov    %eax,%eax
4167c8:	53                   	push   %ebx
4167c9:	56                   	push   %esi
4167ca:	e8 05 ce fe ff       	call   0x4035d4
4167cf:	8b da                	mov    %edx,%ebx
4167d1:	8b f0                	mov    %eax,%esi
4167d3:	8b 46 04             	mov    0x4(%esi),%eax
4167d6:	85 c0                	test   %eax,%eax
4167d8:	7c 05                	jl     0x4167df
4167da:	e8 fd 1b ff ff       	call   0x4083dc
4167df:	8b d3                	mov    %ebx,%edx
4167e1:	80 e2 fc             	and    $0xfc,%dl
4167e4:	8b c6                	mov    %esi,%eax
4167e6:	e8 4d ca fe ff       	call   0x403238
4167eb:	84 db                	test   %bl,%bl
4167ed:	7e 07                	jle    0x4167f6
4167ef:	8b c6                	mov    %esi,%eax
4167f1:	e8 c6 cd fe ff       	call   0x4035bc
4167f6:	5e                   	pop    %esi
4167f7:	5b                   	pop    %ebx
4167f8:	c3                   	ret
4167f9:	8d 40 00             	lea    0x0(%eax),%eax
4167fc:	89 50 04             	mov    %edx,0x4(%eax)
4167ff:	89 48 08             	mov    %ecx,0x8(%eax)
416802:	c3                   	ret
416803:	90                   	nop
416804:	53                   	push   %ebx
416805:	56                   	push   %esi
416806:	57                   	push   %edi
416807:	8b d8                	mov    %eax,%ebx
416809:	8b 7b 0c             	mov    0xc(%ebx),%edi
41680c:	85 ff                	test   %edi,%edi
41680e:	7c 24                	jl     0x416834
416810:	85 c9                	test   %ecx,%ecx
416812:	7c 20                	jl     0x416834
416814:	8b 73 08             	mov    0x8(%ebx),%esi
416817:	2b f7                	sub    %edi,%esi
416819:	85 f6                	test   %esi,%esi
41681b:	7e 17                	jle    0x416834
41681d:	3b ce                	cmp    %esi,%ecx
41681f:	7d 02                	jge    0x416823
416821:	8b f1                	mov    %ecx,%esi
416823:	8b 43 04             	mov    0x4(%ebx),%eax
416826:	03 c7                	add    %edi,%eax
416828:	8b ce                	mov    %esi,%ecx
41682a:	e8 89 c0 fe ff       	call   0x4028b8
41682f:	01 73 0c             	add    %esi,0xc(%ebx)
416832:	eb 02                	jmp    0x416836
416834:	33 f6                	xor    %esi,%esi
416836:	8b c6                	mov    %esi,%eax
416838:	5f                   	pop    %edi
416839:	5e                   	pop    %esi
41683a:	5b                   	pop    %ebx
41683b:	c3                   	ret
41683c:	66 83 e9 01          	sub    $0x1,%cx
416840:	72 09                	jb     0x41684b
416842:	74 0c                	je     0x416850
416844:	66 ff c9             	dec    %cx
416847:	74 0c                	je     0x416855
416849:	eb 10                	jmp    0x41685b
41684b:	89 50 0c             	mov    %edx,0xc(%eax)
41684e:	eb 0b                	jmp    0x41685b
416850:	01 50 0c             	add    %edx,0xc(%eax)
416853:	eb 06                	jmp    0x41685b
416855:	03 50 08             	add    0x8(%eax),%edx
416858:	89 50 0c             	mov    %edx,0xc(%eax)
41685b:	8b 40 0c             	mov    0xc(%eax),%eax
41685e:	c3                   	ret
41685f:	90                   	nop
416860:	53                   	push   %ebx
416861:	56                   	push   %esi
416862:	e8 6d cd fe ff       	call   0x4035d4
416867:	8b da                	mov    %edx,%ebx
416869:	8b f0                	mov    %eax,%esi
41686b:	8b c6                	mov    %esi,%eax
41686d:	e8 1a 00 00 00       	call   0x41688c
416872:	8b d3                	mov    %ebx,%edx
416874:	80 e2 fc             	and    $0xfc,%dl
416877:	8b c6                	mov    %esi,%eax
416879:	e8 ba c9 fe ff       	call   0x403238
41687e:	84 db                	test   %bl,%bl
416880:	7e 07                	jle    0x416889
416882:	8b c6                	mov    %esi,%eax
416884:	e8 33 cd fe ff       	call   0x4035bc
416889:	5e                   	pop    %esi
41688a:	5b                   	pop    %ebx
41688b:	c3                   	ret
41688c:	53                   	push   %ebx
41688d:	8b d8                	mov    %eax,%ebx
41688f:	33 d2                	xor    %edx,%edx
416891:	8b c3                	mov    %ebx,%eax
416893:	e8 44 00 00 00       	call   0x4168dc
416898:	33 c0                	xor    %eax,%eax
41689a:	89 43 08             	mov    %eax,0x8(%ebx)
41689d:	33 c0                	xor    %eax,%eax
41689f:	89 43 0c             	mov    %eax,0xc(%ebx)
4168a2:	5b                   	pop    %ebx
4168a3:	c3                   	ret
4168a4:	53                   	push   %ebx
4168a5:	56                   	push   %esi
4168a6:	57                   	push   %edi
4168a7:	8b fa                	mov    %edx,%edi
4168a9:	8b f0                	mov    %eax,%esi
4168ab:	6a 00                	push   $0x0
4168ad:	6a 00                	push   $0x0
4168af:	8b c7                	mov    %edi,%eax
4168b1:	e8 e6 f8 ff ff       	call   0x41619c
4168b6:	8b c7                	mov    %edi,%eax
4168b8:	8b 10                	mov    (%eax),%edx
4168ba:	ff 12                	call   *(%edx)
4168bc:	8b d8                	mov    %eax,%ebx
4168be:	8b d3                	mov    %ebx,%edx
4168c0:	8b c6                	mov    %esi,%eax
4168c2:	8b 08                	mov    (%eax),%ecx
4168c4:	ff 51 04             	call   *0x4(%ecx)
4168c7:	85 db                	test   %ebx,%ebx
4168c9:	74 0c                	je     0x4168d7
4168cb:	8b 56 04             	mov    0x4(%esi),%edx
4168ce:	8b cb                	mov    %ebx,%ecx
4168d0:	8b c7                	mov    %edi,%eax
4168d2:	e8 d1 fa ff ff       	call   0x4163a8
4168d7:	5f                   	pop    %edi
4168d8:	5e                   	pop    %esi
4168d9:	5b                   	pop    %ebx
4168da:	c3                   	ret
4168db:	90                   	nop
4168dc:	53                   	push   %ebx
4168dd:	51                   	push   %ecx
4168de:	89 14 24             	mov    %edx,(%esp)
4168e1:	8b d8                	mov    %eax,%ebx
4168e3:	8b d4                	mov    %esp,%edx
4168e5:	8b c3                	mov    %ebx,%eax
4168e7:	8b 08                	mov    (%eax),%ecx
4168e9:	ff 51 1c             	call   *0x1c(%ecx)
4168ec:	8b d0                	mov    %eax,%edx
4168ee:	8b 4b 08             	mov    0x8(%ebx),%ecx
4168f1:	8b c3                	mov    %ebx,%eax
4168f3:	e8 04 ff ff ff       	call   0x4167fc
4168f8:	8b 04 24             	mov    (%esp),%eax
4168fb:	89 43 10             	mov    %eax,0x10(%ebx)
4168fe:	5a                   	pop    %edx
4168ff:	5b                   	pop    %ebx
416900:	c3                   	ret
416901:	8d 40 00             	lea    0x0(%eax),%eax
416904:	53                   	push   %ebx
416905:	56                   	push   %esi
416906:	57                   	push   %edi
416907:	8b f2                	mov    %edx,%esi
416909:	8b d8                	mov    %eax,%ebx
41690b:	8b 7b 0c             	mov    0xc(%ebx),%edi
41690e:	8b d6                	mov    %esi,%edx
416910:	8b c3                	mov    %ebx,%eax
416912:	e8 c5 ff ff ff       	call   0x4168dc
416917:	89 73 08             	mov    %esi,0x8(%ebx)
41691a:	3b f7                	cmp    %edi,%esi
41691c:	7d 0d                	jge    0x41692b
41691e:	66 b9 02 00          	mov    $0x2,%cx