4046cc:	83 c3 04             	add    $0x4,%ebx
4046cf:	4e                   	dec    %esi
4046d0:	75 e8                	jne    0x4046ba
4046d2:	5e                   	pop    %esi
4046d3:	5b                   	pop    %ebx
4046d4:	c3                   	ret
4046d5:	8d 40 00             	lea    0x0(%eax),%eax
4046d8:	85 d2                	test   %edx,%edx
4046da:	0f 84 bc ff ff ff    	je     0x40469c
4046e0:	8b 4a fc             	mov    -0x4(%edx),%ecx
4046e3:	d1 e9                	shr    $1,%ecx
4046e5:	0f 84 b1 ff ff ff    	je     0x40469c
4046eb:	51                   	push   %ecx
4046ec:	52                   	push   %edx
4046ed:	50                   	push   %eax
4046ee:	e8 e9 cb ff ff       	call   0x4012dc
4046f3:	85 c0                	test   %eax,%eax
4046f5:	0f 84 71 ff ff ff    	je     0x40466c
4046fb:	c3                   	ret
4046fc:	53                   	push   %ebx
4046fd:	56                   	push   %esi
4046fe:	57                   	push   %edi
4046ff:	55                   	push   %ebp
404700:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
404706:	50                   	push   %eax
404707:	83 c4 fc             	add    $0xfffffffc,%esp
40470a:	8b f1                	mov    %ecx,%esi
40470c:	89 14 24             	mov    %edx,(%esp)
40470f:	8b f8                	mov    %eax,%edi
404711:	85 f6                	test   %esi,%esi
404713:	7f 09                	jg     0x40471e
404715:	8b c7                	mov    %edi,%eax
404717:	e8 80 ff ff ff       	call   0x40469c
40471c:	eb 5d                	jmp    0x40477b
40471e:	8d 6e 01             	lea    0x1(%esi),%ebp
404721:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
404727:	7d 28                	jge    0x404751
404729:	56                   	push   %esi
40472a:	8d 44 24 08          	lea    0x8(%esp),%eax
40472e:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404732:	ba ff 07 00 00       	mov    $0x7ff,%edx
404737:	e8 c0 f9 ff ff       	call   0x4040fc
40473c:	8b d8                	mov    %eax,%ebx
40473e:	85 db                	test   %ebx,%ebx
404740:	7e 0f                	jle    0x404751
404742:	8d 54 24 04          	lea    0x4(%esp),%edx
404746:	8b c7                	mov    %edi,%eax
404748:	8b cb                	mov    %ebx,%ecx
40474a:	e8 39 00 00 00       	call   0x404788
40474f:	eb 2a                	jmp    0x40477b
404751:	8b dd                	mov    %ebp,%ebx
404753:	8b c7                	mov    %edi,%eax
404755:	8b d3                	mov    %ebx,%edx
404757:	e8 88 01 00 00       	call   0x4048e4
40475c:	56                   	push   %esi
40475d:	8b 07                	mov    (%edi),%eax
40475f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404763:	8b d3                	mov    %ebx,%edx
404765:	e8 92 f9 ff ff       	call   0x4040fc
40476a:	8b d8                	mov    %eax,%ebx
40476c:	85 db                	test   %ebx,%ebx
40476e:	7d 02                	jge    0x404772
404770:	33 db                	xor    %ebx,%ebx
404772:	8b c7                	mov    %edi,%eax
404774:	8b d3                	mov    %ebx,%edx
404776:	e8 69 01 00 00       	call   0x4048e4
40477b:	81 c4 04 10 00 00    	add    $0x1004,%esp
404781:	5d                   	pop    %ebp
404782:	5f                   	pop    %edi
404783:	5e                   	pop    %esi
404784:	5b                   	pop    %ebx
404785:	c3                   	ret
404786:	8b c0                	mov    %eax,%eax
404788:	85 c9                	test   %ecx,%ecx
40478a:	0f 84 0c ff ff ff    	je     0x40469c
404790:	50                   	push   %eax
404791:	51                   	push   %ecx
404792:	52                   	push   %edx
404793:	e8 3c cb ff ff       	call   0x4012d4
404798:	85 c0                	test   %eax,%eax
40479a:	0f 84 cc fe ff ff    	je     0x40466c
4047a0:	5a                   	pop    %edx
4047a1:	ff 32                	push   (%edx)
4047a3:	89 02                	mov    %eax,(%edx)
4047a5:	e8 3a cb ff ff       	call   0x4012e4
4047aa:	c3                   	ret
4047ab:	90                   	nop
4047ac:	31 c9                	xor    %ecx,%ecx
4047ae:	85 d2                	test   %edx,%edx
4047b0:	74 2d                	je     0x4047df
4047b2:	52                   	push   %edx
4047b3:	66 3b 0a             	cmp    (%edx),%cx
4047b6:	74 20                	je     0x4047d8
4047b8:	66 3b 4a 02          	cmp    0x2(%edx),%cx
4047bc:	74 17                	je     0x4047d5
4047be:	66 3b 4a 04          	cmp    0x4(%edx),%cx
4047c2:	74 0e                	je     0x4047d2
4047c4:	66 3b 4a 06          	cmp    0x6(%edx),%cx
4047c8:	74 05                	je     0x4047cf
4047ca:	83 c2 08             	add    $0x8,%edx
4047cd:	eb e4                	jmp    0x4047b3
4047cf:	83 c2 02             	add    $0x2,%edx
4047d2:	83 c2 02             	add    $0x2,%edx
4047d5:	83 c2 02             	add    $0x2,%edx
4047d8:	89 d1                	mov    %edx,%ecx
4047da:	5a                   	pop    %edx
4047db:	29 d1                	sub    %edx,%ecx
4047dd:	d1 e9                	shr    $1,%ecx
4047df:	e9 a4 ff ff ff       	jmp    0x404788
4047e4:	c3                   	ret
4047e5:	8d 40 00             	lea    0x0(%eax),%eax
4047e8:	31 c9                	xor    %ecx,%ecx
4047ea:	85 d2                	test   %edx,%edx
4047ec:	74 03                	je     0x4047f1
4047ee:	8b 4a fc             	mov    -0x4(%edx),%ecx
4047f1:	e9 06 ff ff ff       	jmp    0x4046fc
4047f6:	c3                   	ret
4047f7:	90                   	nop
4047f8:	85 c0                	test   %eax,%eax
4047fa:	74 04                	je     0x404800
4047fc:	c3                   	ret
4047fd:	90                   	nop
4047fe:	00 00                	add    %al,(%eax)
404800:	b8 fe 47 40 00       	mov    $0x4047fe,%eax
404805:	c3                   	ret
404806:	8b c0                	mov    %eax,%eax
404808:	85 c0                	test   %eax,%eax
40480a:	74 05                	je     0x404811
40480c:	8b 40 fc             	mov    -0x4(%eax),%eax
40480f:	d1 e8                	shr    $1,%eax
404811:	c3                   	ret
404812:	8b c0                	mov    %eax,%eax
404814:	53                   	push   %ebx
404815:	56                   	push   %esi
404816:	57                   	push   %edi
404817:	89 c6                	mov    %eax,%esi
404819:	89 d7                	mov    %edx,%edi
40481b:	39 d0                	cmp    %edx,%eax
40481d:	74 72                	je     0x404891
40481f:	85 f6                	test   %esi,%esi
404821:	74 51                	je     0x404874
404823:	85 ff                	test   %edi,%edi
404825:	74 54                	je     0x40487b
404827:	8b 46 fc             	mov    -0x4(%esi),%eax
40482a:	8b 57 fc             	mov    -0x4(%edi),%edx
40482d:	29 d0                	sub    %edx,%eax
40482f:	77 02                	ja     0x404833
404831:	01 c2                	add    %eax,%edx
404833:	52                   	push   %edx
404834:	c1 ea 02             	shr    $0x2,%edx
404837:	74 26                	je     0x40485f
404839:	8b 0e                	mov    (%esi),%ecx
40483b:	8b 1f                	mov    (%edi),%ebx
40483d:	39 d9                	cmp    %ebx,%ecx
40483f:	75 41                	jne    0x404882
404841:	4a                   	dec    %edx
404842:	74 15                	je     0x404859
404844:	8b 4e 04             	mov    0x4(%esi),%ecx
404847:	8b 5f 04             	mov    0x4(%edi),%ebx
40484a:	39 d9                	cmp    %ebx,%ecx
40484c:	75 34                	jne    0x404882
40484e:	83 c6 08             	add    $0x8,%esi
404851:	83 c7 08             	add    $0x8,%edi
404854:	4a                   	dec    %edx
404855:	75 e2                	jne    0x404839
404857:	eb 06                	jmp    0x40485f
404859:	83 c6 04             	add    $0x4,%esi
40485c:	83 c7 04             	add    $0x4,%edi
40485f:	5a                   	pop    %edx
404860:	83 e2 02             	and    $0x2,%edx
404863:	74 0b                	je     0x404870
404865:	66 8b 0e             	mov    (%esi),%cx
404868:	66 8b 1f             	mov    (%edi),%bx
40486b:	66 39 d9             	cmp    %bx,%cx
40486e:	75 21                	jne    0x404891
404870:	01 c0                	add    %eax,%eax
404872:	eb 1d                	jmp    0x404891
404874:	8b 57 fc             	mov    -0x4(%edi),%edx
404877:	29 d0                	sub    %edx,%eax
404879:	eb 16                	jmp    0x404891
40487b:	8b 46 fc             	mov    -0x4(%esi),%eax
40487e:	29 d0                	sub    %edx,%eax
404880:	eb 0f                	jmp    0x404891
404882:	5a                   	pop    %edx
404883:	66 39 d9             	cmp    %bx,%cx
404886:	75 09                	jne    0x404891
404888:	c1 e9 10             	shr    $0x10,%ecx
40488b:	c1 eb 10             	shr    $0x10,%ebx
40488e:	66 39 d9             	cmp    %bx,%cx
404891:	5f                   	pop    %edi
404892:	5e                   	pop    %esi
404893:	5b                   	pop    %ebx
404894:	c3                   	ret
404895:	8d 40 00             	lea    0x0(%eax),%eax
404898:	55                   	push   %ebp
404899:	8b ec                	mov    %esp,%ebp
40489b:	53                   	push   %ebx
40489c:	56                   	push   %esi
40489d:	57                   	push   %edi
40489e:	8b f9                	mov    %ecx,%edi
4048a0:	8b da                	mov    %edx,%ebx
4048a2:	8b f0                	mov    %eax,%esi
4048a4:	8b c6                	mov    %esi,%eax
4048a6:	e8 5d ff ff ff       	call   0x404808
4048ab:	83 fb 01             	cmp    $0x1,%ebx
4048ae:	7d 04                	jge    0x4048b4
4048b0:	33 db                	xor    %ebx,%ebx
4048b2:	eb 07                	jmp    0x4048bb
4048b4:	4b                   	dec    %ebx
4048b5:	3b c3                	cmp    %ebx,%eax
4048b7:	7d 02                	jge    0x4048bb
4048b9:	8b d8                	mov    %eax,%ebx
4048bb:	85 ff                	test   %edi,%edi
4048bd:	7d 04                	jge    0x4048c3
4048bf:	33 c0                	xor    %eax,%eax
4048c1:	eb 08                	jmp    0x4048cb
4048c3:	2b c3                	sub    %ebx,%eax
4048c5:	3b f8                	cmp    %eax,%edi
4048c7:	7d 02                	jge    0x4048cb
4048c9:	8b c7                	mov    %edi,%eax
4048cb:	8b d3                	mov    %ebx,%edx
4048cd:	03 d2                	add    %edx,%edx
4048cf:	03 d6                	add    %esi,%edx
4048d1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4048d4:	91                   	xchg   %eax,%ecx
4048d5:	e8 ae fe ff ff       	call   0x404788
4048da:	5f                   	pop    %edi
4048db:	5e                   	pop    %esi
4048dc:	5b                   	pop    %ebx
4048dd:	5d                   	pop    %ebp
4048de:	c2 04 00             	ret    $0x4
4048e1:	8d 40 00             	lea    0x0(%eax),%eax
4048e4:	53                   	push   %ebx
4048e5:	56                   	push   %esi
4048e6:	57                   	push   %edi
4048e7:	8b f2                	mov    %edx,%esi
4048e9:	8b f8                	mov    %eax,%edi
4048eb:	33 db                	xor    %ebx,%ebx
4048ed:	85 f6                	test   %esi,%esi
4048ef:	7e 27                	jle    0x404918
4048f1:	8b c6                	mov    %esi,%eax
4048f3:	e8 7c fd ff ff       	call   0x404674
4048f8:	8b d8                	mov    %eax,%ebx
4048fa:	8b 07                	mov    (%edi),%eax
4048fc:	e8 07 ff ff ff       	call   0x404808
404901:	85 c0                	test   %eax,%eax
404903:	7e 13                	jle    0x404918
404905:	3b f0                	cmp    %eax,%esi
404907:	7d 02                	jge    0x40490b
404909:	8b c6                	mov    %esi,%eax
40490b:	8b c8                	mov    %eax,%ecx
40490d:	03 c9                	add    %ecx,%ecx
40490f:	8b d3                	mov    %ebx,%edx
404911:	8b 07                	mov    (%edi),%eax
404913:	e8 a0 df ff ff       	call   0x4028b8
404918:	8b c7                	mov    %edi,%eax
40491a:	8b d3                	mov    %ebx,%edx
40491c:	e8 6b fd ff ff       	call   0x40468c
404921:	5f                   	pop    %edi
404922:	5e                   	pop    %esi
404923:	5b                   	pop    %ebx
404924:	c3                   	ret
404925:	8d 40 00             	lea    0x0(%eax),%eax
404928:	31 c9                	xor    %ecx,%ecx
40492a:	53                   	push   %ebx
40492b:	8a 4a 01             	mov    0x1(%edx),%cl
40492e:	56                   	push   %esi
40492f:	57                   	push   %edi
404930:	89 c3                	mov    %eax,%ebx
404932:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
404936:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
40493a:	8b 16                	mov    (%esi),%edx
40493c:	8b 46 04             	mov    0x4(%esi),%eax
40493f:	01 d8                	add    %ebx,%eax
404941:	8b 12                	mov    (%edx),%edx
404943:	b9 01 00 00 00       	mov    $0x1,%ecx
404948:	e8 0b 00 00 00       	call   0x404958
40494d:	83 c6 08             	add    $0x8,%esi
404950:	4f                   	dec    %edi
404951:	7f e7                	jg     0x40493a
404953:	5f                   	pop    %edi
404954:	5e                   	pop    %esi
404955:	5b                   	pop    %ebx
404956:	c3                   	ret
404957:	90                   	nop
404958:	85 c9                	test   %ecx,%ecx
40495a:	0f 84 8a 00 00 00    	je     0x4049ea
404960:	53                   	push   %ebx
404961:	56                   	push   %esi
404962:	57                   	push   %edi
404963:	89 c3                	mov    %eax,%ebx
404965:	89 d6                	mov    %edx,%esi
404967:	89 cf                	mov    %ecx,%edi
404969:	31 d2                	xor    %edx,%edx
40496b:	8a 06                	mov    (%esi),%al
40496d:	8a 56 01             	mov    0x1(%esi),%dl
404970:	31 c9                	xor    %ecx,%ecx
404972:	3c 0a                	cmp    $0xa,%al
404974:	74 22                	je     0x404998
404976:	3c 0b                	cmp    $0xb,%al
404978:	74 1e                	je     0x404998
40497a:	3c 0c                	cmp    $0xc,%al
40497c:	74 24                	je     0x4049a2
40497e:	3c 0d                	cmp    $0xd,%al
404980:	74 33                	je     0x4049b5
404982:	3c 0e                	cmp    $0xe,%al
404984:	74 4d                	je     0x4049d3
404986:	3c 0f                	cmp    $0xf,%al
404988:	74 0e                	je     0x404998
40498a:	3c 11                	cmp    $0x11,%al
40498c:	74 0a                	je     0x404998
40498e:	b0 02                	mov    $0x2,%al
404990:	5f                   	pop    %edi
404991:	5e                   	pop    %esi
404992:	5b                   	pop    %ebx
404993:	e9 80 de ff ff       	jmp    0x402818
404998:	89 0b                	mov    %ecx,(%ebx)
40499a:	83 c3 04             	add    $0x4,%ebx
40499d:	4f                   	dec    %edi
40499e:	7f f8                	jg     0x404998
4049a0:	eb 45                	jmp    0x4049e7
4049a2:	89 0b                	mov    %ecx,(%ebx)
4049a4:	89 4b 04             	mov    %ecx,0x4(%ebx)
4049a7:	89 4b 08             	mov    %ecx,0x8(%ebx)
4049aa:	89 4b 0c             	mov    %ecx,0xc(%ebx)
4049ad:	83 c3 10             	add    $0x10,%ebx
4049b0:	4f                   	dec    %edi
4049b1:	7f ef                	jg     0x4049a2
4049b3:	eb 32                	jmp    0x4049e7
4049b5:	55                   	push   %ebp
4049b6:	89 d5                	mov    %edx,%ebp
4049b8:	8b 54 2e 0a          	mov    0xa(%esi,%ebp,1),%edx
4049bc:	89 d8                	mov    %ebx,%eax
4049be:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
4049c2:	8b 4c 2e 06          	mov    0x6(%esi,%ebp,1),%ecx
4049c6:	8b 12                	mov    (%edx),%edx
4049c8:	e8 8b ff ff ff       	call   0x404958
4049cd:	4f                   	dec    %edi
4049ce:	7f e8                	jg     0x4049b8
4049d0:	5d                   	pop    %ebp
4049d1:	eb 14                	jmp    0x4049e7
4049d3:	55                   	push   %ebp
4049d4:	89 d5                	mov    %edx,%ebp
4049d6:	89 d8                	mov    %ebx,%eax
4049d8:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
4049dc:	89 f2                	mov    %esi,%edx
4049de:	e8 45 ff ff ff       	call   0x404928
4049e3:	4f                   	dec    %edi
4049e4:	7f f0                	jg     0x4049d6
4049e6:	5d                   	pop    %ebp