4046c8:	52                   	push   %edx
4046c9:	50                   	push   %eax
4046ca:	e8 0d cc ff ff       	call   0x4012dc
4046cf:	85 c0                	test   %eax,%eax
4046d1:	0f 84 71 ff ff ff    	je     0x404648
4046d7:	c3                   	ret
4046d8:	53                   	push   %ebx
4046d9:	56                   	push   %esi
4046da:	57                   	push   %edi
4046db:	55                   	push   %ebp
4046dc:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
4046e2:	50                   	push   %eax
4046e3:	83 c4 fc             	add    $0xfffffffc,%esp
4046e6:	8b f1                	mov    %ecx,%esi
4046e8:	89 14 24             	mov    %edx,(%esp)
4046eb:	8b f8                	mov    %eax,%edi
4046ed:	85 f6                	test   %esi,%esi
4046ef:	7f 09                	jg     0x4046fa
4046f1:	8b c7                	mov    %edi,%eax
4046f3:	e8 80 ff ff ff       	call   0x404678
4046f8:	eb 5d                	jmp    0x404757
4046fa:	8d 6e 01             	lea    0x1(%esi),%ebp
4046fd:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
404703:	7d 28                	jge    0x40472d
404705:	56                   	push   %esi
404706:	8d 44 24 08          	lea    0x8(%esp),%eax
40470a:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40470e:	ba ff 07 00 00       	mov    $0x7ff,%edx
404713:	e8 c0 f9 ff ff       	call   0x4040d8
404718:	8b d8                	mov    %eax,%ebx
40471a:	85 db                	test   %ebx,%ebx
40471c:	7e 0f                	jle    0x40472d
40471e:	8d 54 24 04          	lea    0x4(%esp),%edx
404722:	8b c7                	mov    %edi,%eax
404724:	8b cb                	mov    %ebx,%ecx
404726:	e8 39 00 00 00       	call   0x404764
40472b:	eb 2a                	jmp    0x404757
40472d:	8b dd                	mov    %ebp,%ebx
40472f:	8b c7                	mov    %edi,%eax
404731:	8b d3                	mov    %ebx,%edx
404733:	e8 88 01 00 00       	call   0x4048c0
404738:	56                   	push   %esi
404739:	8b 07                	mov    (%edi),%eax
40473b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40473f:	8b d3                	mov    %ebx,%edx
404741:	e8 92 f9 ff ff       	call   0x4040d8
404746:	8b d8                	mov    %eax,%ebx
404748:	85 db                	test   %ebx,%ebx
40474a:	7d 02                	jge    0x40474e
40474c:	33 db                	xor    %ebx,%ebx
40474e:	8b c7                	mov    %edi,%eax
404750:	8b d3                	mov    %ebx,%edx
404752:	e8 69 01 00 00       	call   0x4048c0
404757:	81 c4 04 10 00 00    	add    $0x1004,%esp
40475d:	5d                   	pop    %ebp
40475e:	5f                   	pop    %edi
40475f:	5e                   	pop    %esi
404760:	5b                   	pop    %ebx
404761:	c3                   	ret
404762:	8b c0                	mov    %eax,%eax
404764:	85 c9                	test   %ecx,%ecx
404766:	0f 84 0c ff ff ff    	je     0x404678
40476c:	50                   	push   %eax
40476d:	51                   	push   %ecx
40476e:	52                   	push   %edx
40476f:	e8 60 cb ff ff       	call   0x4012d4
404774:	85 c0                	test   %eax,%eax
404776:	0f 84 cc fe ff ff    	je     0x404648
40477c:	5a                   	pop    %edx
40477d:	ff 32                	push   (%edx)
40477f:	89 02                	mov    %eax,(%edx)
404781:	e8 5e cb ff ff       	call   0x4012e4
404786:	c3                   	ret
404787:	90                   	nop
404788:	31 c9                	xor    %ecx,%ecx
40478a:	85 d2                	test   %edx,%edx
40478c:	74 2d                	je     0x4047bb
40478e:	52                   	push   %edx
40478f:	66 3b 0a             	cmp    (%edx),%cx
404792:	74 20                	je     0x4047b4
404794:	66 3b 4a 02          	cmp    0x2(%edx),%cx
404798:	74 17                	je     0x4047b1
40479a:	66 3b 4a 04          	cmp    0x4(%edx),%cx
40479e:	74 0e                	je     0x4047ae
4047a0:	66 3b 4a 06          	cmp    0x6(%edx),%cx
4047a4:	74 05                	je     0x4047ab
4047a6:	83 c2 08             	add    $0x8,%edx
4047a9:	eb e4                	jmp    0x40478f
4047ab:	83 c2 02             	add    $0x2,%edx
4047ae:	83 c2 02             	add    $0x2,%edx
4047b1:	83 c2 02             	add    $0x2,%edx
4047b4:	89 d1                	mov    %edx,%ecx
4047b6:	5a                   	pop    %edx
4047b7:	29 d1                	sub    %edx,%ecx
4047b9:	d1 e9                	shr    $1,%ecx
4047bb:	e9 a4 ff ff ff       	jmp    0x404764
4047c0:	c3                   	ret
4047c1:	8d 40 00             	lea    0x0(%eax),%eax
4047c4:	31 c9                	xor    %ecx,%ecx
4047c6:	85 d2                	test   %edx,%edx
4047c8:	74 03                	je     0x4047cd
4047ca:	8b 4a fc             	mov    -0x4(%edx),%ecx
4047cd:	e9 06 ff ff ff       	jmp    0x4046d8
4047d2:	c3                   	ret
4047d3:	90                   	nop
4047d4:	85 c0                	test   %eax,%eax
4047d6:	74 04                	je     0x4047dc
4047d8:	c3                   	ret
4047d9:	90                   	nop
4047da:	00 00                	add    %al,(%eax)
4047dc:	b8 da 47 40 00       	mov    $0x4047da,%eax
4047e1:	c3                   	ret
4047e2:	8b c0                	mov    %eax,%eax
4047e4:	85 c0                	test   %eax,%eax
4047e6:	74 05                	je     0x4047ed
4047e8:	8b 40 fc             	mov    -0x4(%eax),%eax
4047eb:	d1 e8                	shr    $1,%eax
4047ed:	c3                   	ret
4047ee:	8b c0                	mov    %eax,%eax
4047f0:	53                   	push   %ebx
4047f1:	56                   	push   %esi
4047f2:	57                   	push   %edi
4047f3:	89 c6                	mov    %eax,%esi
4047f5:	89 d7                	mov    %edx,%edi
4047f7:	39 d0                	cmp    %edx,%eax
4047f9:	74 72                	je     0x40486d
4047fb:	85 f6                	test   %esi,%esi
4047fd:	74 51                	je     0x404850
4047ff:	85 ff                	test   %edi,%edi
404801:	74 54                	je     0x404857
404803:	8b 46 fc             	mov    -0x4(%esi),%eax
404806:	8b 57 fc             	mov    -0x4(%edi),%edx
404809:	29 d0                	sub    %edx,%eax
40480b:	77 02                	ja     0x40480f
40480d:	01 c2                	add    %eax,%edx
40480f:	52                   	push   %edx
404810:	c1 ea 02             	shr    $0x2,%edx
404813:	74 26                	je     0x40483b
404815:	8b 0e                	mov    (%esi),%ecx
404817:	8b 1f                	mov    (%edi),%ebx
404819:	39 d9                	cmp    %ebx,%ecx
40481b:	75 41                	jne    0x40485e
40481d:	4a                   	dec    %edx
40481e:	74 15                	je     0x404835
404820:	8b 4e 04             	mov    0x4(%esi),%ecx
404823:	8b 5f 04             	mov    0x4(%edi),%ebx
404826:	39 d9                	cmp    %ebx,%ecx
404828:	75 34                	jne    0x40485e
40482a:	83 c6 08             	add    $0x8,%esi
40482d:	83 c7 08             	add    $0x8,%edi
404830:	4a                   	dec    %edx
404831:	75 e2                	jne    0x404815
404833:	eb 06                	jmp    0x40483b
404835:	83 c6 04             	add    $0x4,%esi
404838:	83 c7 04             	add    $0x4,%edi
40483b:	5a                   	pop    %edx
40483c:	83 e2 02             	and    $0x2,%edx
40483f:	74 0b                	je     0x40484c
404841:	66 8b 0e             	mov    (%esi),%cx
404844:	66 8b 1f             	mov    (%edi),%bx
404847:	66 39 d9             	cmp    %bx,%cx
40484a:	75 21                	jne    0x40486d
40484c:	01 c0                	add    %eax,%eax
40484e:	eb 1d                	jmp    0x40486d
404850:	8b 57 fc             	mov    -0x4(%edi),%edx
404853:	29 d0                	sub    %edx,%eax
404855:	eb 16                	jmp    0x40486d
404857:	8b 46 fc             	mov    -0x4(%esi),%eax
40485a:	29 d0                	sub    %edx,%eax
40485c:	eb 0f                	jmp    0x40486d
40485e:	5a                   	pop    %edx
40485f:	66 39 d9             	cmp    %bx,%cx
404862:	75 09                	jne    0x40486d
404864:	c1 e9 10             	shr    $0x10,%ecx
404867:	c1 eb 10             	shr    $0x10,%ebx
40486a:	66 39 d9             	cmp    %bx,%cx
40486d:	5f                   	pop    %edi
40486e:	5e                   	pop    %esi
40486f:	5b                   	pop    %ebx
404870:	c3                   	ret
404871:	8d 40 00             	lea    0x0(%eax),%eax
404874:	55                   	push   %ebp
404875:	8b ec                	mov    %esp,%ebp
404877:	53                   	push   %ebx
404878:	56                   	push   %esi
404879:	57                   	push   %edi
40487a:	8b f9                	mov    %ecx,%edi
40487c:	8b da                	mov    %edx,%ebx
40487e:	8b f0                	mov    %eax,%esi
404880:	8b c6                	mov    %esi,%eax
404882:	e8 5d ff ff ff       	call   0x4047e4
404887:	83 fb 01             	cmp    $0x1,%ebx
40488a:	7d 04                	jge    0x404890
40488c:	33 db                	xor    %ebx,%ebx
40488e:	eb 07                	jmp    0x404897
404890:	4b                   	dec    %ebx
404891:	3b c3                	cmp    %ebx,%eax
404893:	7d 02                	jge    0x404897
404895:	8b d8                	mov    %eax,%ebx
404897:	85 ff                	test   %edi,%edi
404899:	7d 04                	jge    0x40489f
40489b:	33 c0                	xor    %eax,%eax
40489d:	eb 08                	jmp    0x4048a7
40489f:	2b c3                	sub    %ebx,%eax
4048a1:	3b f8                	cmp    %eax,%edi
4048a3:	7d 02                	jge    0x4048a7
4048a5:	8b c7                	mov    %edi,%eax
4048a7:	8b d3                	mov    %ebx,%edx
4048a9:	03 d2                	add    %edx,%edx
4048ab:	03 d6                	add    %esi,%edx
4048ad:	8b 4d 08             	mov    0x8(%ebp),%ecx
4048b0:	91                   	xchg   %eax,%ecx
4048b1:	e8 ae fe ff ff       	call   0x404764
4048b6:	5f                   	pop    %edi
4048b7:	5e                   	pop    %esi
4048b8:	5b                   	pop    %ebx
4048b9:	5d                   	pop    %ebp
4048ba:	c2 04 00             	ret    $0x4
4048bd:	8d 40 00             	lea    0x0(%eax),%eax
4048c0:	53                   	push   %ebx
4048c1:	56                   	push   %esi
4048c2:	57                   	push   %edi
4048c3:	8b f2                	mov    %edx,%esi
4048c5:	8b f8                	mov    %eax,%edi
4048c7:	33 db                	xor    %ebx,%ebx
4048c9:	85 f6                	test   %esi,%esi
4048cb:	7e 27                	jle    0x4048f4
4048cd:	8b c6                	mov    %esi,%eax
4048cf:	e8 7c fd ff ff       	call   0x404650
4048d4:	8b d8                	mov    %eax,%ebx
4048d6:	8b 07                	mov    (%edi),%eax
4048d8:	e8 07 ff ff ff       	call   0x4047e4
4048dd:	85 c0                	test   %eax,%eax
4048df:	7e 13                	jle    0x4048f4
4048e1:	3b f0                	cmp    %eax,%esi
4048e3:	7d 02                	jge    0x4048e7
4048e5:	8b c6                	mov    %esi,%eax
4048e7:	8b c8                	mov    %eax,%ecx
4048e9:	03 c9                	add    %ecx,%ecx
4048eb:	8b d3                	mov    %ebx,%edx
4048ed:	8b 07                	mov    (%edi),%eax
4048ef:	e8 c4 df ff ff       	call   0x4028b8
4048f4:	8b c7                	mov    %edi,%eax
4048f6:	8b d3                	mov    %ebx,%edx
4048f8:	e8 6b fd ff ff       	call   0x404668
4048fd:	5f                   	pop    %edi
4048fe:	5e                   	pop    %esi
4048ff:	5b                   	pop    %ebx
404900:	c3                   	ret
404901:	8d 40 00             	lea    0x0(%eax),%eax
404904:	31 c9                	xor    %ecx,%ecx
404906:	53                   	push   %ebx
404907:	8a 4a 01             	mov    0x1(%edx),%cl
40490a:	56                   	push   %esi
40490b:	57                   	push   %edi
40490c:	89 c3                	mov    %eax,%ebx
40490e:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
404912:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
404916:	8b 16                	mov    (%esi),%edx
404918:	8b 46 04             	mov    0x4(%esi),%eax
40491b:	01 d8                	add    %ebx,%eax
40491d:	8b 12                	mov    (%edx),%edx
40491f:	b9 01 00 00 00       	mov    $0x1,%ecx
404924:	e8 0b 00 00 00       	call   0x404934
404929:	83 c6 08             	add    $0x8,%esi
40492c:	4f                   	dec    %edi
40492d:	7f e7                	jg     0x404916
40492f:	5f                   	pop    %edi
404930:	5e                   	pop    %esi
404931:	5b                   	pop    %ebx
404932:	c3                   	ret
404933:	90                   	nop
404934:	85 c9                	test   %ecx,%ecx
404936:	0f 84 8a 00 00 00    	je     0x4049c6
40493c:	53                   	push   %ebx
40493d:	56                   	push   %esi
40493e:	57                   	push   %edi
40493f:	89 c3                	mov    %eax,%ebx
404941:	89 d6                	mov    %edx,%esi
404943:	89 cf                	mov    %ecx,%edi
404945:	31 d2                	xor    %edx,%edx
404947:	8a 06                	mov    (%esi),%al
404949:	8a 56 01             	mov    0x1(%esi),%dl
40494c:	31 c9                	xor    %ecx,%ecx
40494e:	3c 0a                	cmp    $0xa,%al
404950:	74 22                	je     0x404974
404952:	3c 0b                	cmp    $0xb,%al
404954:	74 1e                	je     0x404974
404956:	3c 0c                	cmp    $0xc,%al
404958:	74 24                	je     0x40497e
40495a:	3c 0d                	cmp    $0xd,%al
40495c:	74 33                	je     0x404991
40495e:	3c 0e                	cmp    $0xe,%al
404960:	74 4d                	je     0x4049af
404962:	3c 0f                	cmp    $0xf,%al
404964:	74 0e                	je     0x404974
404966:	3c 11                	cmp    $0x11,%al
404968:	74 0a                	je     0x404974
40496a:	b0 02                	mov    $0x2,%al
40496c:	5f                   	pop    %edi
40496d:	5e                   	pop    %esi
40496e:	5b                   	pop    %ebx
40496f:	e9 a4 de ff ff       	jmp    0x402818
404974:	89 0b                	mov    %ecx,(%ebx)
404976:	83 c3 04             	add    $0x4,%ebx
404979:	4f                   	dec    %edi
40497a:	7f f8                	jg     0x404974
40497c:	eb 45                	jmp    0x4049c3
40497e:	89 0b                	mov    %ecx,(%ebx)
404980:	89 4b 04             	mov    %ecx,0x4(%ebx)
404983:	89 4b 08             	mov    %ecx,0x8(%ebx)
404986:	89 4b 0c             	mov    %ecx,0xc(%ebx)
404989:	83 c3 10             	add    $0x10,%ebx
40498c:	4f                   	dec    %edi
40498d:	7f ef                	jg     0x40497e
40498f:	eb 32                	jmp    0x4049c3
404991:	55                   	push   %ebp
404992:	89 d5                	mov    %edx,%ebp
404994:	8b 54 2e 0a          	mov    0xa(%esi,%ebp,1),%edx
404998:	89 d8                	mov    %ebx,%eax
40499a:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
40499e:	8b 4c 2e 06          	mov    0x6(%esi,%ebp,1),%ecx
4049a2:	8b 12                	mov    (%edx),%edx
4049a4:	e8 8b ff ff ff       	call   0x404934
4049a9:	4f                   	dec    %edi
4049aa:	7f e8                	jg     0x404994
4049ac:	5d                   	pop    %ebp
4049ad:	eb 14                	jmp    0x4049c3
4049af:	55                   	push   %ebp
4049b0:	89 d5                	mov    %edx,%ebp
4049b2:	89 d8                	mov    %ebx,%eax
4049b4:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
4049b8:	89 f2                	mov    %esi,%edx
4049ba:	e8 45 ff ff ff       	call   0x404904
4049bf:	4f                   	dec    %edi
4049c0:	7f f0                	jg     0x4049b2
4049c2:	5d                   	pop    %ebp
4049c3:	5f                   	pop    %edi
4049c4:	5e                   	pop    %esi
4049c5:	5b                   	pop    %ebx
4049c6:	c3                   	ret
4049c7:	90                   	nop
4049c8:	b9 01 00 00 00       	mov    $0x1,%ecx
4049cd:	e9 62 ff ff ff       	jmp    0x404934
4049d2:	c3                   	ret
4049d3:	90                   	nop
4049d4:	31 c9                	xor    %ecx,%ecx
4049d6:	53                   	push   %ebx
4049d7:	8a 4a 01             	mov    0x1(%edx),%cl
4049da:	56                   	push   %esi