4035fd:	c2 04 00             	ret    $0x4
403600:	f6 44 24 04 01       	testb  $0x1,0x4(%esp)
403605:	56                   	push   %esi
403606:	8b f1                	mov    %ecx,%esi
403608:	c7 06 e4 74 41 00    	movl   $0x4174e4,(%esi)
40360e:	74 07                	je     0x403617
403610:	56                   	push   %esi
403611:	e8 19 24 00 00       	call   0x405a2f
403616:	59                   	pop    %ecx
403617:	8b c6                	mov    %esi,%eax
403619:	5e                   	pop    %esi
40361a:	c2 04 00             	ret    $0x4
40361d:	55                   	push   %ebp
40361e:	8b ec                	mov    %esp,%ebp
403620:	83 ec 10             	sub    $0x10,%esp
403623:	53                   	push   %ebx
403624:	56                   	push   %esi
403625:	57                   	push   %edi
403626:	8d 45 f0             	lea    -0x10(%ebp),%eax
403629:	8b d9                	mov    %ecx,%ebx
40362b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40362e:	50                   	push   %eax
40362f:	e8 92 fe ff ff       	call   0x4034c6
403634:	8b f0                	mov    %eax,%esi
403636:	8d 7b 08             	lea    0x8(%ebx),%edi
403639:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40363a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40363b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40363c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40363d:	e8 c8 18 00 00       	call   0x404f0a
403642:	5f                   	pop    %edi
403643:	5e                   	pop    %esi
403644:	89 43 18             	mov    %eax,0x18(%ebx)
403647:	89 53 1c             	mov    %edx,0x1c(%ebx)
40364a:	5b                   	pop    %ebx
40364b:	c9                   	leave
40364c:	c2 04 00             	ret    $0x4
40364f:	55                   	push   %ebp
403650:	8b ec                	mov    %esp,%ebp
403652:	51                   	push   %ecx
403653:	ff 71 24             	push   0x24(%ecx)
403656:	8b 4d 08             	mov    0x8(%ebp),%ecx
403659:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40365d:	e8 39 ff ff ff       	call   0x40359b
403662:	8b 45 08             	mov    0x8(%ebp),%eax
403665:	c9                   	leave
403666:	c2 04 00             	ret    $0x4
403669:	56                   	push   %esi
40366a:	8b f1                	mov    %ecx,%esi
40366c:	56                   	push   %esi
40366d:	c7 06 ec 74 41 00    	movl   $0x4174ec,(%esi)
403673:	e8 f4 1c 00 00       	call   0x40536c
403678:	f6 44 24 0c 01       	testb  $0x1,0xc(%esp)
40367d:	59                   	pop    %ecx
40367e:	74 07                	je     0x403687
403680:	56                   	push   %esi
403681:	e8 a9 23 00 00       	call   0x405a2f
403686:	59                   	pop    %ecx
403687:	8b c6                	mov    %esi,%eax
403689:	5e                   	pop    %esi
40368a:	c2 04 00             	ret    $0x4
40368d:	51                   	push   %ecx
40368e:	c7 01 ec 74 41 00    	movl   $0x4174ec,(%ecx)
403694:	e8 d3 1c 00 00       	call   0x40536c
403699:	59                   	pop    %ecx
40369a:	c3                   	ret
40369b:	56                   	push   %esi
40369c:	8b f1                	mov    %ecx,%esi
40369e:	8b 06                	mov    (%esi),%eax
4036a0:	83 f8 fe             	cmp    $0xfffffffe,%eax
4036a3:	74 28                	je     0x4036cd
4036a5:	85 c0                	test   %eax,%eax
4036a7:	75 05                	jne    0x4036ae
4036a9:	e8 c6 3f 00 00       	call   0x407674
4036ae:	8b 06                	mov    (%esi),%eax
4036b0:	83 78 18 10          	cmpl   $0x10,0x18(%eax)
4036b4:	72 05                	jb     0x4036bb
4036b6:	8b 48 04             	mov    0x4(%eax),%ecx
4036b9:	eb 03                	jmp    0x4036be
4036bb:	8d 48 04             	lea    0x4(%eax),%ecx
4036be:	8b 40 14             	mov    0x14(%eax),%eax
4036c1:	03 c1                	add    %ecx,%eax
4036c3:	39 46 04             	cmp    %eax,0x4(%esi)
4036c6:	72 05                	jb     0x4036cd
4036c8:	e8 a7 3f 00 00       	call   0x407674
4036cd:	8b 46 04             	mov    0x4(%esi),%eax
4036d0:	5e                   	pop    %esi
4036d1:	c3                   	ret
4036d2:	8d 41 04             	lea    0x4(%ecx),%eax
4036d5:	8b 48 fc             	mov    -0x4(%eax),%ecx
4036d8:	8b 49 04             	mov    0x4(%ecx),%ecx
4036db:	c7 44 01 fc f4 74 41 	movl   $0x4174f4,-0x4(%ecx,%eax,1)
4036e2:	00
4036e3:	50                   	push   %eax
4036e4:	c7 00 ec 74 41 00    	movl   $0x4174ec,(%eax)
4036ea:	e8 7d 1c 00 00       	call   0x40536c
4036ef:	59                   	pop    %ecx
4036f0:	c3                   	ret
4036f1:	8b 15 a0 d8 41 00    	mov    0x41d8a0,%edx
4036f7:	85 d2                	test   %edx,%edx
4036f9:	56                   	push   %esi
4036fa:	be 30 d7 41 00       	mov    $0x41d730,%esi
4036ff:	8b c1                	mov    %ecx,%eax
403701:	89 35 a4 d8 41 00    	mov    %esi,0x41d8a4
403707:	74 09                	je     0x403712
403709:	8b 0a                	mov    (%edx),%ecx
40370b:	8b 49 04             	mov    0x4(%ecx),%ecx
40370e:	89 74 11 2c          	mov    %esi,0x2c(%ecx,%edx,1)
403712:	8b 15 a8 d8 41 00    	mov    0x41d8a8,%edx
403718:	85 d2                	test   %edx,%edx
40371a:	74 0f                	je     0x40372b
40371c:	8b 0a                	mov    (%edx),%ecx
40371e:	8b 49 04             	mov    0x4(%ecx),%ecx
403721:	8b 35 a4 d8 41 00    	mov    0x41d8a4,%esi
403727:	89 74 11 2c          	mov    %esi,0x2c(%ecx,%edx,1)
40372b:	8b 15 ac d8 41 00    	mov    0x41d8ac,%edx
403731:	85 d2                	test   %edx,%edx
403733:	74 0f                	je     0x403744
403735:	8b 0a                	mov    (%edx),%ecx
403737:	8b 49 04             	mov    0x4(%ecx),%ecx
40373a:	8b 35 a4 d8 41 00    	mov    0x41d8a4,%esi
403740:	89 74 11 2c          	mov    %esi,0x2c(%ecx,%edx,1)
403744:	5e                   	pop    %esi
403745:	c3                   	ret
403746:	56                   	push   %esi
403747:	8b f1                	mov    %ecx,%esi
403749:	57                   	push   %edi
40374a:	8b 7e 38             	mov    0x38(%esi),%edi
40374d:	85 ff                	test   %edi,%edi
40374f:	c7 06 04 75 41 00    	movl   $0x417504,(%esi)
403755:	74 0e                	je     0x403765
403757:	8b cf                	mov    %edi,%ecx
403759:	e8 53 fe ff ff       	call   0x4035b1
40375e:	57                   	push   %edi
40375f:	e8 cb 22 00 00       	call   0x405a2f
403764:	59                   	pop    %ecx
403765:	5f                   	pop    %edi
403766:	8d 4e 04             	lea    0x4(%esi),%ecx
403769:	5e                   	pop    %esi
40376a:	e9 51 fb ff ff       	jmp    0x4032c0
40376f:	8b 44 24 10          	mov    0x10(%esp),%eax
403773:	03 c0                	add    %eax,%eax
403775:	50                   	push   %eax
403776:	ff 74 24 10          	push   0x10(%esp)
40377a:	8b 44 24 10          	mov    0x10(%esp),%eax
40377e:	03 c0                	add    %eax,%eax
403780:	50                   	push   %eax
403781:	ff 74 24 10          	push   0x10(%esp)
403785:	e8 aa 22 00 00       	call   0x405a34
40378a:	83 c4 10             	add    $0x10,%esp
40378d:	c3                   	ret
40378e:	55                   	push   %ebp
40378f:	8b ec                	mov    %esp,%ebp
403791:	ff 75 14             	push   0x14(%ebp)
403794:	ff 75 10             	push   0x10(%ebp)
403797:	ff 75 0c             	push   0xc(%ebp)
40379a:	ff 75 08             	push   0x8(%ebp)
40379d:	e8 cd ff ff ff       	call   0x40376f
4037a2:	8b 45 08             	mov    0x8(%ebp),%eax
4037a5:	83 c4 10             	add    $0x10,%esp
4037a8:	5d                   	pop    %ebp
4037a9:	c3                   	ret
4037aa:	66 0d ff ff          	or     $0xffff,%ax
4037ae:	c2 04 00             	ret    $0x4
4037b1:	66 0d ff ff          	or     $0xffff,%ax
4037b5:	c3                   	ret
4037b6:	ff 74 24 08          	push   0x8(%esp)
4037ba:	8b 01                	mov    (%ecx),%eax
4037bc:	6a ff                	push   $0xffffffff
4037be:	ff 74 24 0c          	push   0xc(%esp)
4037c2:	ff 50 1c             	call   *0x1c(%eax)
4037c5:	c2 08 00             	ret    $0x8
4037c8:	8b c1                	mov    %ecx,%eax
4037ca:	c2 08 00             	ret    $0x8
4037cd:	c2 04 00             	ret    $0x4
4037d0:	56                   	push   %esi
4037d1:	8b f1                	mov    %ecx,%esi
4037d3:	8b 06                	mov    (%esi),%eax
4037d5:	ff 50 10             	call   *0x10(%eax)
4037d8:	66 3d ff ff          	cmp    $0xffff,%ax
4037dc:	75 07                	jne    0x4037e5
4037de:	b8 ff ff 00 00       	mov    $0xffff,%eax
4037e3:	5e                   	pop    %esi
4037e4:	c3                   	ret
4037e5:	8b 46 30             	mov    0x30(%esi),%eax
4037e8:	ff 08                	decl   (%eax)
4037ea:	8b 46 20             	mov    0x20(%esi),%eax
4037ed:	8b 08                	mov    (%eax),%ecx
4037ef:	8d 51 02             	lea    0x2(%ecx),%edx
4037f2:	89 10                	mov    %edx,(%eax)
4037f4:	0f b7 01             	movzwl (%ecx),%eax
4037f7:	5e                   	pop    %esi
4037f8:	c3                   	ret
4037f9:	8b 44 24 04          	mov    0x4(%esp),%eax
4037fd:	8b 0d 10 76 41 00    	mov    0x417610,%ecx
403803:	89 08                	mov    %ecx,(%eax)
403805:	33 c9                	xor    %ecx,%ecx
403807:	89 48 08             	mov    %ecx,0x8(%eax)
40380a:	89 48 0c             	mov    %ecx,0xc(%eax)
40380d:	89 48 10             	mov    %ecx,0x10(%eax)
403810:	c2 10 00             	ret    $0x10
403813:	8b 44 24 04          	mov    0x4(%esp),%eax
403817:	8b 0d 10 76 41 00    	mov    0x417610,%ecx
40381d:	89 08                	mov    %ecx,(%eax)
40381f:	33 c9                	xor    %ecx,%ecx
403821:	89 48 08             	mov    %ecx,0x8(%eax)
403824:	89 48 0c             	mov    %ecx,0xc(%eax)
403827:	89 48 10             	mov    %ecx,0x10(%eax)
40382a:	c2 20 00             	ret    $0x20
40382d:	56                   	push   %esi
40382e:	8d 71 fc             	lea    -0x4(%ecx),%esi
403831:	8b ce                	mov    %esi,%ecx
403833:	e8 9a fe ff ff       	call   0x4036d2
403838:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40383d:	74 07                	je     0x403846
40383f:	56                   	push   %esi
403840:	e8 ea 21 00 00       	call   0x405a2f
403845:	59                   	pop    %ecx
403846:	8b c6                	mov    %esi,%eax
403848:	5e                   	pop    %esi
403849:	c2 04 00             	ret    $0x4
40384c:	56                   	push   %esi
40384d:	8b f1                	mov    %ecx,%esi
40384f:	e8 f2 fe ff ff       	call   0x403746
403854:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
403859:	74 07                	je     0x403862
40385b:	56                   	push   %esi
40385c:	e8 ce 21 00 00       	call   0x405a2f
403861:	59                   	pop    %ecx
403862:	8b c6                	mov    %esi,%eax
403864:	5e                   	pop    %esi
403865:	c2 04 00             	ret    $0x4
403868:	55                   	push   %ebp
403869:	8b ec                	mov    %esp,%ebp
40386b:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
40386f:	75 19                	jne    0x40388a
403871:	83 79 18 10          	cmpl   $0x10,0x18(%ecx)
403875:	72 05                	jb     0x40387c
403877:	8b 49 04             	mov    0x4(%ecx),%ecx
40387a:	eb 03                	jmp    0x40387f
40387c:	83 c1 04             	add    $0x4,%ecx
40387f:	8b 45 08             	mov    0x8(%ebp),%eax
403882:	8a 55 10             	mov    0x10(%ebp),%dl
403885:	88 14 01             	mov    %dl,(%ecx,%eax,1)
403888:	eb 22                	jmp    0x4038ac
40388a:	83 79 18 10          	cmpl   $0x10,0x18(%ecx)
40388e:	72 05                	jb     0x403895
403890:	8b 49 04             	mov    0x4(%ecx),%ecx
403893:	eb 03                	jmp    0x403898
403895:	83 c1 04             	add    $0x4,%ecx
403898:	ff 75 10             	push   0x10(%ebp)
40389b:	8b 45 08             	mov    0x8(%ebp),%eax
40389e:	ff 75 0c             	push   0xc(%ebp)
4038a1:	03 c8                	add    %eax,%ecx
4038a3:	51                   	push   %ecx
4038a4:	e8 06 fc ff ff       	call   0x4034af
4038a9:	83 c4 0c             	add    $0xc,%esp
4038ac:	5d                   	pop    %ebp
4038ad:	c2 0c 00             	ret    $0xc
4038b0:	8d 51 18             	lea    0x18(%ecx),%edx
4038b3:	89 51 20             	mov    %edx,0x20(%ecx)
4038b6:	8d 51 1c             	lea    0x1c(%ecx),%edx
4038b9:	89 51 24             	mov    %edx,0x24(%ecx)
4038bc:	8d 51 28             	lea    0x28(%ecx),%edx
4038bf:	89 51 30             	mov    %edx,0x30(%ecx)
4038c2:	8d 41 08             	lea    0x8(%ecx),%eax
4038c5:	89 41 10             	mov    %eax,0x10(%ecx)
4038c8:	8d 51 2c             	lea    0x2c(%ecx),%edx
4038cb:	89 51 34             	mov    %edx,0x34(%ecx)
4038ce:	33 d2                	xor    %edx,%edx
4038d0:	8d 41 0c             	lea    0xc(%ecx),%eax
4038d3:	89 41 14             	mov    %eax,0x14(%ecx)
4038d6:	89 10                	mov    %edx,(%eax)
4038d8:	8b 41 24             	mov    0x24(%ecx),%eax
4038db:	89 10                	mov    %edx,(%eax)
4038dd:	8b 41 34             	mov    0x34(%ecx),%eax
4038e0:	89 10                	mov    %edx,(%eax)
4038e2:	8b 41 10             	mov    0x10(%ecx),%eax
4038e5:	89 10                	mov    %edx,(%eax)
4038e7:	8b 41 20             	mov    0x20(%ecx),%eax
4038ea:	89 10                	mov    %edx,(%eax)
4038ec:	8b 41 30             	mov    0x30(%ecx),%eax
4038ef:	89 10                	mov    %edx,(%eax)
4038f1:	c3                   	ret
4038f2:	53                   	push   %ebx
4038f3:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4038f7:	56                   	push   %esi
4038f8:	8b 74 24 10          	mov    0x10(%esp),%esi
4038fc:	57                   	push   %edi
4038fd:	8b f9                	mov    %ecx,%edi
4038ff:	83 27 00             	andl   $0x0,(%edi)
403902:	85 f6                	test   %esi,%esi
403904:	74 29                	je     0x40392f
403906:	85 db                	test   %ebx,%ebx
403908:	74 25                	je     0x40392f
40390a:	8b 56 18             	mov    0x18(%esi),%edx
40390d:	83 fa 10             	cmp    $0x10,%edx
403910:	8d 46 04             	lea    0x4(%esi),%eax
403913:	72 04                	jb     0x403919
403915:	8b 08                	mov    (%eax),%ecx
403917:	eb 02                	jmp    0x40391b
403919:	8b c8                	mov    %eax,%ecx
40391b:	3b cb                	cmp    %ebx,%ecx
40391d:	77 10                	ja     0x40392f
40391f:	83 fa 10             	cmp    $0x10,%edx
403922:	72 02                	jb     0x403926
403924:	8b 00                	mov    (%eax),%eax
403926:	8b 4e 14             	mov    0x14(%esi),%ecx
403929:	03 c8                	add    %eax,%ecx
40392b:	3b d9                	cmp    %ecx,%ebx
40392d:	76 05                	jbe    0x403934
40392f:	e8 40 3d 00 00       	call   0x407674
403934:	89 37                	mov    %esi,(%edi)
403936:	89 5f 04             	mov    %ebx,0x4(%edi)
403939:	8b c7                	mov    %edi,%eax
40393b:	5f                   	pop    %edi
40393c:	5e                   	pop    %esi
40393d:	5b                   	pop    %ebx
40393e:	c2 08 00             	ret    $0x8
403941:	55                   	push   %ebp
403942:	8b ec                	mov    %esp,%ebp
403944:	51                   	push   %ecx
403945:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403949:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40394d:	57                   	push   %edi
40394e:	8b f9                	mov    %ecx,%edi
403950:	7e 6b                	jle    0x4039bd
403952:	53                   	push   %ebx
403953:	8b 5d 08             	mov    0x8(%ebp),%ebx
403956:	56                   	push   %esi
403957:	8b 47 20             	mov    0x20(%edi),%eax
40395a:	83 38 00             	cmpl   $0x0,(%eax)
40395d:	74 07                	je     0x403966
40395f:	8b 4f 30             	mov    0x30(%edi),%ecx
403962:	8b 31                	mov    (%ecx),%esi
403964:	eb 02                	jmp    0x403968
403966:	33 f6                	xor    %esi,%esi
403968:	85 f6                	test   %esi,%esi
40396a:	7e 2e                	jle    0x40399a
40396c:	39 75 10             	cmp    %esi,0x10(%ebp)
40396f:	7d 03                	jge    0x403974
403971:	8b 75 10             	mov    0x10(%ebp),%esi
403974:	56                   	push   %esi
403975:	ff 30                	push   (%eax)
403977:	ff 75 0c             	push   0xc(%ebp)
40397a:	53                   	push   %ebx
40397b:	e8 0e fe ff ff       	call   0x40378e
403980:	8b 47 30             	mov    0x30(%edi),%eax
403983:	29 30                	sub    %esi,(%eax)
403985:	8b 47 20             	mov    0x20(%edi),%eax