40ac88:	6b c9 03             	imul   $0x3,%ecx,%ecx
40ac8b:	8b 54 15 bc          	mov    -0x44(%ebp,%edx,1),%edx
40ac8f:	33 54 0d bc          	xor    -0x44(%ebp,%ecx,1),%edx
40ac93:	c1 ea 10             	shr    $0x10,%edx
40ac96:	0b c2                	or     %edx,%eax
40ac98:	b9 04 00 00 00       	mov    $0x4,%ecx
40ac9d:	6b d1 0e             	imul   $0xe,%ecx,%edx
40aca0:	89 44 15 bc          	mov    %eax,-0x44(%ebp,%edx,1)
40aca4:	b8 04 00 00 00       	mov    $0x4,%eax
40aca9:	6b c8 09             	imul   $0x9,%eax,%ecx
40acac:	ba 04 00 00 00       	mov    $0x4,%edx
40acb1:	6b c2 0e             	imul   $0xe,%edx,%eax
40acb4:	8b 4c 0d bc          	mov    -0x44(%ebp,%ecx,1),%ecx
40acb8:	03 4c 05 bc          	add    -0x44(%ebp,%eax,1),%ecx
40acbc:	ba 04 00 00 00       	mov    $0x4,%edx
40acc1:	6b c2 09             	imul   $0x9,%edx,%eax
40acc4:	89 4c 05 bc          	mov    %ecx,-0x44(%ebp,%eax,1)
40acc8:	b9 04 00 00 00       	mov    $0x4,%ecx
40accd:	c1 e1 02             	shl    $0x2,%ecx
40acd0:	ba 04 00 00 00       	mov    $0x4,%edx
40acd5:	6b c2 09             	imul   $0x9,%edx,%eax
40acd8:	8b 4c 0d bc          	mov    -0x44(%ebp,%ecx,1),%ecx
40acdc:	33 4c 05 bc          	xor    -0x44(%ebp,%eax,1),%ecx
40ace0:	c1 e1 0c             	shl    $0xc,%ecx
40ace3:	ba 04 00 00 00       	mov    $0x4,%edx
40ace8:	c1 e2 02             	shl    $0x2,%edx
40aceb:	b8 04 00 00 00       	mov    $0x4,%eax
40acf0:	6b c0 09             	imul   $0x9,%eax,%eax
40acf3:	8b 54 15 bc          	mov    -0x44(%ebp,%edx,1),%edx
40acf7:	33 54 05 bc          	xor    -0x44(%ebp,%eax,1),%edx
40acfb:	c1 ea 14             	shr    $0x14,%edx
40acfe:	0b ca                	or     %edx,%ecx
40ad00:	b8 04 00 00 00       	mov    $0x4,%eax
40ad05:	c1 e0 02             	shl    $0x2,%eax
40ad08:	89 4c 05 bc          	mov    %ecx,-0x44(%ebp,%eax,1)
40ad0c:	b9 04 00 00 00       	mov    $0x4,%ecx
40ad11:	6b d1 03             	imul   $0x3,%ecx,%edx
40ad14:	b8 04 00 00 00       	mov    $0x4,%eax
40ad19:	c1 e0 02             	shl    $0x2,%eax
40ad1c:	8b 4c 15 bc          	mov    -0x44(%ebp,%edx,1),%ecx
40ad20:	03 4c 05 bc          	add    -0x44(%ebp,%eax,1),%ecx
40ad24:	ba 04 00 00 00       	mov    $0x4,%edx
40ad29:	6b c2 03             	imul   $0x3,%edx,%eax
40ad2c:	89 4c 05 bc          	mov    %ecx,-0x44(%ebp,%eax,1)
40ad30:	b9 04 00 00 00       	mov    $0x4,%ecx
40ad35:	6b d1 0e             	imul   $0xe,%ecx,%edx
40ad38:	b8 04 00 00 00       	mov    $0x4,%eax
40ad3d:	6b c8 03             	imul   $0x3,%eax,%ecx
40ad40:	8b 54 15 bc          	mov    -0x44(%ebp,%edx,1),%edx
40ad44:	33 54 0d bc          	xor    -0x44(%ebp,%ecx,1),%edx
40ad48:	c1 e2 08             	shl    $0x8,%edx
40ad4b:	b8 04 00 00 00       	mov    $0x4,%eax
40ad50:	6b c8 0e             	imul   $0xe,%eax,%ecx
40ad53:	b8 04 00 00 00       	mov    $0x4,%eax
40ad58:	6b c0 03             	imul   $0x3,%eax,%eax
40ad5b:	8b 4c 0d bc          	mov    -0x44(%ebp,%ecx,1),%ecx
40ad5f:	33 4c 05 bc          	xor    -0x44(%ebp,%eax,1),%ecx
40ad63:	c1 e9 18             	shr    $0x18,%ecx
40ad66:	0b d1                	or     %ecx,%edx
40ad68:	b8 04 00 00 00       	mov    $0x4,%eax
40ad6d:	6b c8 0e             	imul   $0xe,%eax,%ecx
40ad70:	89 54 0d bc          	mov    %edx,-0x44(%ebp,%ecx,1)
40ad74:	ba 04 00 00 00       	mov    $0x4,%edx
40ad79:	6b c2 09             	imul   $0x9,%edx,%eax
40ad7c:	b9 04 00 00 00       	mov    $0x4,%ecx
40ad81:	6b d1 0e             	imul   $0xe,%ecx,%edx
40ad84:	8b 44 05 bc          	mov    -0x44(%ebp,%eax,1),%eax
40ad88:	03 44 15 bc          	add    -0x44(%ebp,%edx,1),%eax
40ad8c:	b9 04 00 00 00       	mov    $0x4,%ecx
40ad91:	6b d1 09             	imul   $0x9,%ecx,%edx
40ad94:	89 44 15 bc          	mov    %eax,-0x44(%ebp,%edx,1)
40ad98:	b8 04 00 00 00       	mov    $0x4,%eax
40ad9d:	c1 e0 02             	shl    $0x2,%eax
40ada0:	b9 04 00 00 00       	mov    $0x4,%ecx
40ada5:	6b d1 09             	imul   $0x9,%ecx,%edx
40ada8:	8b 44 05 bc          	mov    -0x44(%ebp,%eax,1),%eax
40adac:	33 44 15 bc          	xor    -0x44(%ebp,%edx,1),%eax
40adb0:	c1 e0 07             	shl    $0x7,%eax
40adb3:	b9 04 00 00 00       	mov    $0x4,%ecx
40adb8:	c1 e1 02             	shl    $0x2,%ecx
40adbb:	ba 04 00 00 00       	mov    $0x4,%edx
40adc0:	6b d2 09             	imul   $0x9,%edx,%edx
40adc3:	8b 4c 0d bc          	mov    -0x44(%ebp,%ecx,1),%ecx
40adc7:	33 4c 15 bc          	xor    -0x44(%ebp,%edx,1),%ecx
40adcb:	c1 e9 19             	shr    $0x19,%ecx
40adce:	0b c1                	or     %ecx,%eax
40add0:	ba 04 00 00 00       	mov    $0x4,%edx
40add5:	c1 e2 02             	shl    $0x2,%edx
40add8:	89 44 15 bc          	mov    %eax,-0x44(%ebp,%edx,1)
40addc:	e9 f8 f2 ff ff       	jmp    0x40a0d9
40ade1:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40ade8:	eb 09                	jmp    0x40adf3
40adea:	8b 45 fc             	mov    -0x4(%ebp),%eax
40aded:	83 c0 01             	add    $0x1,%eax
40adf0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40adf3:	83 7d fc 10          	cmpl   $0x10,-0x4(%ebp)
40adf7:	7d 19                	jge    0x40ae12
40adf9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40adfc:	8b 54 8d bc          	mov    -0x44(%ebp,%ecx,4),%edx
40ae00:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ae03:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ae06:	03 14 81             	add    (%ecx,%eax,4),%edx
40ae09:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ae0c:	89 54 85 bc          	mov    %edx,-0x44(%ebp,%eax,4)
40ae10:	eb d8                	jmp    0x40adea
40ae12:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40ae19:	eb 09                	jmp    0x40ae24
40ae1b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ae1e:	83 c1 01             	add    $0x1,%ecx
40ae21:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40ae24:	83 7d fc 10          	cmpl   $0x10,-0x4(%ebp)
40ae28:	0f 8d a1 00 00 00    	jge    0x40aecf
40ae2e:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ae31:	0f b6 44 95 bc       	movzbl -0x44(%ebp,%edx,4),%eax
40ae36:	25 ff 00 00 00       	and    $0xff,%eax
40ae3b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ae3e:	8b 55 08             	mov    0x8(%ebp),%edx
40ae41:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
40ae44:	ba 01 00 00 00       	mov    $0x1,%edx
40ae49:	6b d2 00             	imul   $0x0,%edx,%edx
40ae4c:	88 04 11             	mov    %al,(%ecx,%edx,1)
40ae4f:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ae52:	8b 4c 85 bc          	mov    -0x44(%ebp,%eax,4),%ecx
40ae56:	c1 e9 08             	shr    $0x8,%ecx
40ae59:	0f b6 d1             	movzbl %cl,%edx
40ae5c:	81 e2 ff 00 00 00    	and    $0xff,%edx
40ae62:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ae65:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ae68:	8d 04 81             	lea    (%ecx,%eax,4),%eax
40ae6b:	b9 01 00 00 00       	mov    $0x1,%ecx
40ae70:	c1 e1 00             	shl    $0x0,%ecx
40ae73:	88 14 08             	mov    %dl,(%eax,%ecx,1)
40ae76:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ae79:	8b 44 95 bc          	mov    -0x44(%ebp,%edx,4),%eax
40ae7d:	c1 e8 10             	shr    $0x10,%eax
40ae80:	0f b6 c8             	movzbl %al,%ecx
40ae83:	81 e1 ff 00 00 00    	and    $0xff,%ecx
40ae89:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ae8c:	8b 45 08             	mov    0x8(%ebp),%eax
40ae8f:	8d 14 90             	lea    (%eax,%edx,4),%edx
40ae92:	b8 01 00 00 00       	mov    $0x1,%eax
40ae97:	d1 e0                	shl    $1,%eax
40ae99:	88 0c 02             	mov    %cl,(%edx,%eax,1)
40ae9c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ae9f:	8b 54 8d bc          	mov    -0x44(%ebp,%ecx,4),%edx
40aea3:	c1 ea 18             	shr    $0x18,%edx
40aea6:	0f b6 c2             	movzbl %dl,%eax
40aea9:	25 ff 00 00 00       	and    $0xff,%eax
40aeae:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40aeb1:	8b 55 08             	mov    0x8(%ebp),%edx
40aeb4:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
40aeb7:	ba 01 00 00 00       	mov    $0x1,%edx
40aebc:	6b d2 03             	imul   $0x3,%edx,%edx
40aebf:	88 04 11             	mov    %al,(%ecx,%edx,1)
40aec2:	33 c0                	xor    %eax,%eax
40aec4:	0f 85 64 ff ff ff    	jne    0x40ae2e
40aeca:	e9 4c ff ff ff       	jmp    0x40ae1b
40aecf:	8b e5                	mov    %ebp,%esp
40aed1:	5d                   	pop    %ebp
40aed2:	c3                   	ret
40aed3:	cc                   	int3
40aed4:	cc                   	int3
40aed5:	cc                   	int3
40aed6:	cc                   	int3
40aed7:	cc                   	int3
40aed8:	cc                   	int3
40aed9:	cc                   	int3
40aeda:	cc                   	int3
40aedb:	cc                   	int3
40aedc:	cc                   	int3
40aedd:	cc                   	int3
40aede:	cc                   	int3
40aedf:	cc                   	int3
40aee0:	57                   	push   %edi
40aee1:	56                   	push   %esi
40aee2:	53                   	push   %ebx
40aee3:	33 ff                	xor    %edi,%edi
40aee5:	8b 44 24 14          	mov    0x14(%esp),%eax
40aee9:	0b c0                	or     %eax,%eax
40aeeb:	7d 14                	jge    0x40af01
40aeed:	47                   	inc    %edi
40aeee:	8b 54 24 10          	mov    0x10(%esp),%edx
40aef2:	f7 d8                	neg    %eax
40aef4:	f7 da                	neg    %edx
40aef6:	83 d8 00             	sbb    $0x0,%eax
40aef9:	89 44 24 14          	mov    %eax,0x14(%esp)
40aefd:	89 54 24 10          	mov    %edx,0x10(%esp)
40af01:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40af05:	0b c0                	or     %eax,%eax
40af07:	7d 14                	jge    0x40af1d
40af09:	47                   	inc    %edi
40af0a:	8b 54 24 18          	mov    0x18(%esp),%edx
40af0e:	f7 d8                	neg    %eax
40af10:	f7 da                	neg    %edx
40af12:	83 d8 00             	sbb    $0x0,%eax
40af15:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40af19:	89 54 24 18          	mov    %edx,0x18(%esp)
40af1d:	0b c0                	or     %eax,%eax
40af1f:	75 18                	jne    0x40af39
40af21:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40af25:	8b 44 24 14          	mov    0x14(%esp),%eax
40af29:	33 d2                	xor    %edx,%edx
40af2b:	f7 f1                	div    %ecx
40af2d:	8b d8                	mov    %eax,%ebx
40af2f:	8b 44 24 10          	mov    0x10(%esp),%eax
40af33:	f7 f1                	div    %ecx
40af35:	8b d3                	mov    %ebx,%edx
40af37:	eb 41                	jmp    0x40af7a
40af39:	8b d8                	mov    %eax,%ebx
40af3b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40af3f:	8b 54 24 14          	mov    0x14(%esp),%edx
40af43:	8b 44 24 10          	mov    0x10(%esp),%eax
40af47:	d1 eb                	shr    $1,%ebx
40af49:	d1 d9                	rcr    $1,%ecx
40af4b:	d1 ea                	shr    $1,%edx
40af4d:	d1 d8                	rcr    $1,%eax
40af4f:	0b db                	or     %ebx,%ebx
40af51:	75 f4                	jne    0x40af47
40af53:	f7 f1                	div    %ecx
40af55:	8b f0                	mov    %eax,%esi
40af57:	f7 64 24 1c          	mull   0x1c(%esp)
40af5b:	8b c8                	mov    %eax,%ecx
40af5d:	8b 44 24 18          	mov    0x18(%esp),%eax
40af61:	f7 e6                	mul    %esi
40af63:	03 d1                	add    %ecx,%edx
40af65:	72 0e                	jb     0x40af75
40af67:	3b 54 24 14          	cmp    0x14(%esp),%edx
40af6b:	77 08                	ja     0x40af75
40af6d:	72 07                	jb     0x40af76
40af6f:	3b 44 24 10          	cmp    0x10(%esp),%eax
40af73:	76 01                	jbe    0x40af76
40af75:	4e                   	dec    %esi
40af76:	33 d2                	xor    %edx,%edx
40af78:	8b c6                	mov    %esi,%eax
40af7a:	4f                   	dec    %edi
40af7b:	75 07                	jne    0x40af84
40af7d:	f7 da                	neg    %edx
40af7f:	f7 d8                	neg    %eax
40af81:	83 da 00             	sbb    $0x0,%edx
40af84:	5b                   	pop    %ebx
40af85:	5e                   	pop    %esi
40af86:	5f                   	pop    %edi
40af87:	c2 10 00             	ret    $0x10
40af8a:	cc                   	int3
40af8b:	cc                   	int3
40af8c:	cc                   	int3
40af8d:	cc                   	int3
40af8e:	cc                   	int3
40af8f:	cc                   	int3
40af90:	57                   	push   %edi
40af91:	56                   	push   %esi
40af92:	55                   	push   %ebp
40af93:	33 ff                	xor    %edi,%edi
40af95:	33 ed                	xor    %ebp,%ebp
40af97:	8b 44 24 14          	mov    0x14(%esp),%eax
40af9b:	0b c0                	or     %eax,%eax
40af9d:	7d 15                	jge    0x40afb4
40af9f:	47                   	inc    %edi
40afa0:	45                   	inc    %ebp
40afa1:	8b 54 24 10          	mov    0x10(%esp),%edx
40afa5:	f7 d8                	neg    %eax
40afa7:	f7 da                	neg    %edx
40afa9:	83 d8 00             	sbb    $0x0,%eax
40afac:	89 44 24 14          	mov    %eax,0x14(%esp)
40afb0:	89 54 24 10          	mov    %edx,0x10(%esp)
40afb4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40afb8:	0b c0                	or     %eax,%eax
40afba:	7d 14                	jge    0x40afd0
40afbc:	47                   	inc    %edi
40afbd:	8b 54 24 18          	mov    0x18(%esp),%edx
40afc1:	f7 d8                	neg    %eax
40afc3:	f7 da                	neg    %edx
40afc5:	83 d8 00             	sbb    $0x0,%eax
40afc8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40afcc:	89 54 24 18          	mov    %edx,0x18(%esp)
40afd0:	0b c0                	or     %eax,%eax
40afd2:	75 28                	jne    0x40affc
40afd4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40afd8:	8b 44 24 14          	mov    0x14(%esp),%eax
40afdc:	33 d2                	xor    %edx,%edx
40afde:	f7 f1                	div    %ecx
40afe0:	8b d8                	mov    %eax,%ebx
40afe2:	8b 44 24 10          	mov    0x10(%esp),%eax
40afe6:	f7 f1                	div    %ecx
40afe8:	8b f0                	mov    %eax,%esi
40afea:	8b c3                	mov    %ebx,%eax
40afec:	f7 64 24 18          	mull   0x18(%esp)
40aff0:	8b c8                	mov    %eax,%ecx
40aff2:	8b c6                	mov    %esi,%eax
40aff4:	f7 64 24 18          	mull   0x18(%esp)
40aff8:	03 d1                	add    %ecx,%edx
40affa:	eb 47                	jmp    0x40b043
40affc:	8b d8                	mov    %eax,%ebx
40affe:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40b002:	8b 54 24 14          	mov    0x14(%esp),%edx
40b006:	8b 44 24 10          	mov    0x10(%esp),%eax
40b00a:	d1 eb                	shr    $1,%ebx
40b00c:	d1 d9                	rcr    $1,%ecx
40b00e:	d1 ea                	shr    $1,%edx
40b010:	d1 d8                	rcr    $1,%eax
40b012:	0b db                	or     %ebx,%ebx
40b014:	75 f4                	jne    0x40b00a
40b016:	f7 f1                	div    %ecx
40b018:	8b f0                	mov    %eax,%esi
40b01a:	f7 64 24 1c          	mull   0x1c(%esp)
40b01e:	8b c8                	mov    %eax,%ecx
40b020:	8b 44 24 18          	mov    0x18(%esp),%eax
40b024:	f7 e6                	mul    %esi
40b026:	03 d1                	add    %ecx,%edx
40b028:	72 0e                	jb     0x40b038
40b02a:	3b 54 24 14          	cmp    0x14(%esp),%edx
40b02e:	77 08                	ja     0x40b038
40b030:	72 0f                	jb     0x40b041
40b032:	3b 44 24 10          	cmp    0x10(%esp),%eax
40b036:	76 09                	jbe    0x40b041
40b038:	4e                   	dec    %esi
40b039:	2b 44 24 18          	sub    0x18(%esp),%eax
40b03d:	1b 54 24 1c          	sbb    0x1c(%esp),%edx
40b041:	33 db                	xor    %ebx,%ebx
40b043:	2b 44 24 10          	sub    0x10(%esp),%eax
40b047:	1b 54 24 14          	sbb    0x14(%esp),%edx
40b04b:	4d                   	dec    %ebp
40b04c:	79 07                	jns    0x40b055
40b04e:	f7 da                	neg    %edx
40b050:	f7 d8                	neg    %eax
40b052:	83 da 00             	sbb    $0x0,%edx
40b055:	8b ca                	mov    %edx,%ecx
40b057:	8b d3                	mov    %ebx,%edx
40b059:	8b d9                	mov    %ecx,%ebx
40b05b:	8b c8                	mov    %eax,%ecx
40b05d:	8b c6                	mov    %esi,%eax
40b05f:	4f                   	dec    %edi
40b060:	75 07                	jne    0x40b069
40b062:	f7 da                	neg    %edx
40b064:	f7 d8                	neg    %eax
40b066:	83 da 00             	sbb    $0x0,%edx
40b069:	5d                   	pop    %ebp
40b06a:	5e                   	pop    %esi
40b06b:	5f                   	pop    %edi
40b06c:	c2 10 00             	ret    $0x10
40b06f:	cc                   	int3
40b070:	53                   	push   %ebx
40b071:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b075:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b079:	f7 e1                	mul    %ecx
40b07b:	8b d8                	mov    %eax,%ebx
40b07d:	8b 44 24 08          	mov    0x8(%esp),%eax
40b081:	f7 64 24 14          	mull   0x14(%esp)
40b085:	03 d8                	add    %eax,%ebx
40b087:	8b 44 24 08          	mov    0x8(%esp),%eax