414757:	0f af cf             	imul   %edi,%ecx
41475a:	03 ce                	add    %esi,%ecx
41475c:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
414762:	8b c1                	mov    %ecx,%eax
414764:	33 d2                	xor    %edx,%edx
414766:	2b c6                	sub    %esi,%eax
414768:	f7 f7                	div    %edi
41476a:	40                   	inc    %eax
41476b:	83 f8 08             	cmp    $0x8,%eax
41476e:	0f 87 b6 00 00 00    	ja     0x41482a
414774:	3b ce                	cmp    %esi,%ecx
414776:	0f 86 27 04 00 00    	jbe    0x414ba3
41477c:	8d 14 37             	lea    (%edi,%esi,1),%edx
41477f:	89 95 f0 fe ff ff    	mov    %edx,-0x110(%ebp)
414785:	8b c6                	mov    %esi,%eax
414787:	8b f2                	mov    %edx,%esi
414789:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
41478f:	3b f1                	cmp    %ecx,%esi
414791:	77 2f                	ja     0x4147c2
414793:	50                   	push   %eax
414794:	56                   	push   %esi
414795:	8b cb                	mov    %ebx,%ecx
414797:	ff 15 54 91 41 00    	call   *0x419154
41479d:	ff d3                	call   *%ebx
41479f:	83 c4 08             	add    $0x8,%esp
4147a2:	85 c0                	test   %eax,%eax
4147a4:	7e 0a                	jle    0x4147b0
4147a6:	8b c6                	mov    %esi,%eax
4147a8:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4147ae:	eb 06                	jmp    0x4147b6
4147b0:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
4147b6:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
4147bc:	03 f7                	add    %edi,%esi
4147be:	3b f1                	cmp    %ecx,%esi
4147c0:	76 d1                	jbe    0x414793
4147c2:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
4147c8:	8b d1                	mov    %ecx,%edx
4147ca:	3b c1                	cmp    %ecx,%eax
4147cc:	74 3b                	je     0x414809
4147ce:	2b c1                	sub    %ecx,%eax
4147d0:	8b df                	mov    %edi,%ebx
4147d2:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4147d8:	eb 06                	jmp    0x4147e0
4147da:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4147e0:	8a 0c 10             	mov    (%eax,%edx,1),%cl
4147e3:	8d 52 01             	lea    0x1(%edx),%edx
4147e6:	8b b5 04 ff ff ff    	mov    -0xfc(%ebp),%esi
4147ec:	8a 42 ff             	mov    -0x1(%edx),%al
4147ef:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
4147f3:	8b c6                	mov    %esi,%eax
4147f5:	88 4a ff             	mov    %cl,-0x1(%edx)
4147f8:	83 eb 01             	sub    $0x1,%ebx
4147fb:	75 e3                	jne    0x4147e0
4147fd:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
414803:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
414809:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
41480f:	2b cf                	sub    %edi,%ecx
414811:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
414817:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
41481d:	3b ce                	cmp    %esi,%ecx
41481f:	0f 87 60 ff ff ff    	ja     0x414785
414825:	e9 79 03 00 00       	jmp    0x414ba3
41482a:	d1 e8                	shr    $1,%eax
41482c:	8b cb                	mov    %ebx,%ecx
41482e:	0f af c7             	imul   %edi,%eax
414831:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
414837:	8d 3c 30             	lea    (%eax,%esi,1),%edi
41483a:	57                   	push   %edi
41483b:	56                   	push   %esi
41483c:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
414842:	ff 15 54 91 41 00    	call   *0x419154
414848:	ff d3                	call   *%ebx
41484a:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
414850:	83 c4 08             	add    $0x8,%esp
414853:	85 c0                	test   %eax,%eax
414855:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41485b:	7e 4d                	jle    0x4148aa
41485d:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
414863:	89 bd f0 fe ff ff    	mov    %edi,-0x110(%ebp)
414869:	3b c7                	cmp    %edi,%eax
41486b:	74 3d                	je     0x4148aa
41486d:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
414873:	8b f7                	mov    %edi,%esi
414875:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
41487b:	eb 03                	jmp    0x414880
41487d:	8d 49 00             	lea    0x0(%ecx),%ecx
414880:	8a 06                	mov    (%esi),%al
414882:	8b d6                	mov    %esi,%edx
414884:	2b d7                	sub    %edi,%edx
414886:	8a 0a                	mov    (%edx),%cl
414888:	88 02                	mov    %al,(%edx)
41488a:	88 0e                	mov    %cl,(%esi)
41488c:	46                   	inc    %esi
41488d:	83 eb 01             	sub    $0x1,%ebx
414890:	75 ee                	jne    0x414880
414892:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
414898:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
41489e:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
4148a4:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4148aa:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
4148b0:	8b cb                	mov    %ebx,%ecx
4148b2:	50                   	push   %eax
4148b3:	ff 15 54 91 41 00    	call   *0x419154
4148b9:	ff d3                	call   *%ebx
4148bb:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4148c1:	83 c4 08             	add    $0x8,%esp
4148c4:	85 c0                	test   %eax,%eax
4148c6:	7e 49                	jle    0x414911
4148c8:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4148ce:	89 b5 ec fe ff ff    	mov    %esi,-0x114(%ebp)
4148d4:	8b f2                	mov    %edx,%esi
4148d6:	3b c2                	cmp    %edx,%eax
4148d8:	74 37                	je     0x414911
4148da:	8b 9d ec fe ff ff    	mov    -0x114(%ebp),%ebx
4148e0:	2b c2                	sub    %edx,%eax
4148e2:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
4148e8:	8b d0                	mov    %eax,%edx
4148ea:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4148f0:	8a 06                	mov    (%esi),%al
4148f2:	8d 76 01             	lea    0x1(%esi),%esi
4148f5:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
4148f9:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
4148fd:	88 4e ff             	mov    %cl,-0x1(%esi)
414900:	83 eb 01             	sub    $0x1,%ebx
414903:	75 eb                	jne    0x4148f0
414905:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
41490b:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
414911:	52                   	push   %edx
414912:	57                   	push   %edi
414913:	8b cb                	mov    %ebx,%ecx
414915:	ff 15 54 91 41 00    	call   *0x419154
41491b:	ff d3                	call   *%ebx
41491d:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
414923:	83 c4 08             	add    $0x8,%esp
414926:	85 c0                	test   %eax,%eax
414928:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
41492e:	7e 35                	jle    0x414965
414930:	8b d8                	mov    %eax,%ebx
414932:	8b f2                	mov    %edx,%esi
414934:	3b fa                	cmp    %edx,%edi
414936:	74 2d                	je     0x414965
414938:	8b c7                	mov    %edi,%eax
41493a:	2b c2                	sub    %edx,%eax
41493c:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
414942:	8b d0                	mov    %eax,%edx
414944:	8a 06                	mov    (%esi),%al
414946:	8d 76 01             	lea    0x1(%esi),%esi
414949:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
41494d:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
414951:	88 4e ff             	mov    %cl,-0x1(%esi)
414954:	83 eb 01             	sub    $0x1,%ebx
414957:	75 eb                	jne    0x414944
414959:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
41495f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
414965:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
41496b:	8b da                	mov    %edx,%ebx
41496d:	89 95 04 ff ff ff    	mov    %edx,-0xfc(%ebp)
414973:	3b fe                	cmp    %esi,%edi
414975:	76 3e                	jbe    0x4149b5
414977:	eb 07                	jmp    0x414980
414979:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
414980:	03 f0                	add    %eax,%esi
414982:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
414988:	3b f7                	cmp    %edi,%esi
41498a:	73 23                	jae    0x4149af
41498c:	8b 8d f8 fe ff ff    	mov    -0x108(%ebp),%ecx
414992:	57                   	push   %edi
414993:	56                   	push   %esi
414994:	ff 15 54 91 41 00    	call   *0x419154
41499a:	ff 95 f8 fe ff ff    	call   *-0x108(%ebp)
4149a0:	83 c4 08             	add    $0x8,%esp
4149a3:	85 c0                	test   %eax,%eax
4149a5:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4149ab:	7e d3                	jle    0x414980
4149ad:	eb 42                	jmp    0x4149f1
4149af:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4149b5:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4149bb:	eb 03                	jmp    0x4149c0
4149bd:	8d 49 00             	lea    0x0(%ecx),%ecx
4149c0:	03 f0                	add    %eax,%esi
4149c2:	3b f2                	cmp    %edx,%esi
4149c4:	77 1f                	ja     0x4149e5
4149c6:	57                   	push   %edi
4149c7:	56                   	push   %esi
4149c8:	8b cb                	mov    %ebx,%ecx
4149ca:	ff 15 54 91 41 00    	call   *0x419154
4149d0:	ff d3                	call   *%ebx
4149d2:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4149d8:	83 c4 08             	add    $0x8,%esp
4149db:	85 c0                	test   %eax,%eax
4149dd:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4149e3:	7e db                	jle    0x4149c0
4149e5:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
4149eb:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
4149f1:	8b b5 f8 fe ff ff    	mov    -0x108(%ebp),%esi
4149f7:	eb 07                	jmp    0x414a00
4149f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
414a00:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
414a06:	8b cb                	mov    %ebx,%ecx
414a08:	2b d8                	sub    %eax,%ebx
414a0a:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
414a10:	3b df                	cmp    %edi,%ebx
414a12:	76 1f                	jbe    0x414a33
414a14:	57                   	push   %edi
414a15:	53                   	push   %ebx
414a16:	8b ce                	mov    %esi,%ecx
414a18:	ff 15 54 91 41 00    	call   *0x419154
414a1e:	ff d6                	call   *%esi
414a20:	83 c4 08             	add    $0x8,%esp
414a23:	85 c0                	test   %eax,%eax
414a25:	7f d9                	jg     0x414a00
414a27:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
414a2d:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
414a33:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
414a39:	89 9d 04 ff ff ff    	mov    %ebx,-0xfc(%ebp)
414a3f:	3b de                	cmp    %esi,%ebx
414a41:	72 4a                	jb     0x414a8d
414a43:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
414a49:	8b d3                	mov    %ebx,%edx
414a4b:	74 2b                	je     0x414a78
414a4d:	2b f3                	sub    %ebx,%esi
414a4f:	8b d8                	mov    %eax,%ebx
414a51:	8a 02                	mov    (%edx),%al
414a53:	8d 52 01             	lea    0x1(%edx),%edx
414a56:	8a 4c 16 ff          	mov    -0x1(%esi,%edx,1),%cl
414a5a:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
414a5e:	88 4a ff             	mov    %cl,-0x1(%edx)
414a61:	83 eb 01             	sub    $0x1,%ebx
414a64:	75 eb                	jne    0x414a51
414a66:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
414a6c:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
414a72:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
414a78:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
414a7e:	3b fb                	cmp    %ebx,%edi
414a80:	0f 85 ed fe ff ff    	jne    0x414973
414a86:	8b fe                	mov    %esi,%edi
414a88:	e9 e6 fe ff ff       	jmp    0x414973
414a8d:	3b f9                	cmp    %ecx,%edi
414a8f:	73 3c                	jae    0x414acd
414a91:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
414a97:	eb 07                	jmp    0x414aa0
414a99:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
414aa0:	2b c8                	sub    %eax,%ecx
414aa2:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
414aa8:	3b cf                	cmp    %edi,%ecx
414aaa:	76 21                	jbe    0x414acd
414aac:	57                   	push   %edi
414aad:	51                   	push   %ecx
414aae:	8b cb                	mov    %ebx,%ecx
414ab0:	ff 15 54 91 41 00    	call   *0x419154
414ab6:	ff d3                	call   *%ebx
414ab8:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
414abe:	83 c4 08             	add    $0x8,%esp
414ac1:	85 c0                	test   %eax,%eax
414ac3:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
414ac9:	74 d5                	je     0x414aa0
414acb:	eb 44                	jmp    0x414b11
414acd:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
414ad3:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
414ad9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
414ae0:	2b c8                	sub    %eax,%ecx
414ae2:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
414ae8:	3b ce                	cmp    %esi,%ecx
414aea:	76 1f                	jbe    0x414b0b
414aec:	57                   	push   %edi
414aed:	51                   	push   %ecx
414aee:	8b cb                	mov    %ebx,%ecx
414af0:	ff 15 54 91 41 00    	call   *0x419154
414af6:	ff d3                	call   *%ebx
414af8:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
414afe:	83 c4 08             	add    $0x8,%esp
414b01:	85 c0                	test   %eax,%eax
414b03:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
414b09:	74 d5                	je     0x414ae0
414b0b:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
414b11:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
414b17:	8b ca                	mov    %edx,%ecx
414b19:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
414b1f:	2b ce                	sub    %esi,%ecx
414b21:	8b c7                	mov    %edi,%eax
414b23:	2b 85 fc fe ff ff    	sub    -0x104(%ebp),%eax
414b29:	3b c1                	cmp    %ecx,%eax
414b2b:	7c 3d                	jl     0x414b6a
414b2d:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
414b33:	3b c7                	cmp    %edi,%eax
414b35:	73 18                	jae    0x414b4f
414b37:	8b 8d e8 fe ff ff    	mov    -0x118(%ebp),%ecx
414b3d:	89 44 8d 84          	mov    %eax,-0x7c(%ebp,%ecx,4)
414b41:	89 bc 8d 0c ff ff ff 	mov    %edi,-0xf4(%ebp,%ecx,4)
414b48:	41                   	inc    %ecx
414b49:	89 8d e8 fe ff ff    	mov    %ecx,-0x118(%ebp)
414b4f:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
414b55:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
414b5b:	3b f1                	cmp    %ecx,%esi
414b5d:	73 44                	jae    0x414ba3
414b5f:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
414b65:	e9 f8 fb ff ff       	jmp    0x414762
414b6a:	3b f2                	cmp    %edx,%esi
414b6c:	73 18                	jae    0x414b86
414b6e:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
414b74:	89 74 85 84          	mov    %esi,-0x7c(%ebp,%eax,4)
414b78:	89 94 85 0c ff ff ff 	mov    %edx,-0xf4(%ebp,%eax,4)
414b7f:	40                   	inc    %eax
414b80:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
414b86:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
414b8c:	3b f7                	cmp    %edi,%esi
414b8e:	73 0d                	jae    0x414b9d
414b90:	8b cf                	mov    %edi,%ecx
414b92:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
414b98:	e9 bf fb ff ff       	jmp    0x41475c
414b9d:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
414ba3:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
414ba9:	83 e8 01             	sub    $0x1,%eax
414bac:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
414bb2:	0f 88 76 fb ff ff    	js     0x41472e
414bb8:	8b 74 85 84          	mov    -0x7c(%ebp,%eax,4),%esi
414bbc:	8b 8c 85 0c ff ff ff 	mov    -0xf4(%ebp,%eax,4),%ecx
414bc3:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
414bc9:	e9 8e fb ff ff       	jmp    0x41475c
414bce:	cc                   	int3
414bcf:	cc                   	int3
414bd0:	55                   	push   %ebp
414bd1:	8b ec                	mov    %esp,%ebp
414bd3:	56                   	push   %esi
414bd4:	33 c0                	xor    %eax,%eax
414bd6:	50                   	push   %eax
414bd7:	50                   	push   %eax
414bd8:	50                   	push   %eax
414bd9:	50                   	push   %eax
414bda:	50                   	push   %eax
414bdb:	50                   	push   %eax
414bdc:	50                   	push   %eax
414bdd:	50                   	push   %eax
414bde:	8b 55 0c             	mov    0xc(%ebp),%edx
414be1:	8d 49 00             	lea    0x0(%ecx),%ecx
414be4:	8a 02                	mov    (%edx),%al
414be6:	0a c0                	or     %al,%al
414be8:	74 09                	je     0x414bf3
414bea:	83 c2 01             	add    $0x1,%edx
414bed:	0f ab 04 24          	bts    %eax,(%esp)
414bf1:	eb f1                	jmp    0x414be4
414bf3:	8b 75 08             	mov    0x8(%ebp),%esi
414bf6:	8b ff                	mov    %edi,%edi
414bf8:	8a 06                	mov    (%esi),%al
414bfa:	0a c0                	or     %al,%al
414bfc:	74 0c                	je     0x414c0a
414bfe:	83 c6 01             	add    $0x1,%esi
414c01:	0f a3 04 24          	bt     %eax,(%esp)
414c05:	73 f1                	jae    0x414bf8
414c07:	8d 46 ff             	lea    -0x1(%esi),%eax