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
40b08b:	f7 e1                	mul    %ecx
40b08d:	03 d3                	add    %ebx,%edx
40b08f:	5b                   	pop    %ebx
40b090:	c2 10 00             	ret    $0x10
40b093:	cc                   	int3
40b094:	cc                   	int3
40b095:	cc                   	int3
40b096:	cc                   	int3
40b097:	cc                   	int3
40b098:	cc                   	int3
40b099:	cc                   	int3
40b09a:	cc                   	int3
40b09b:	cc                   	int3
40b09c:	cc                   	int3
40b09d:	cc                   	int3
40b09e:	cc                   	int3
40b09f:	cc                   	int3
40b0a0:	53                   	push   %ebx
40b0a1:	57                   	push   %edi
40b0a2:	33 ff                	xor    %edi,%edi
40b0a4:	8b 44 24 10          	mov    0x10(%esp),%eax
40b0a8:	0b c0                	or     %eax,%eax
40b0aa:	7d 14                	jge    0x40b0c0
40b0ac:	47                   	inc    %edi
40b0ad:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b0b1:	f7 d8                	neg    %eax
40b0b3:	f7 da                	neg    %edx
40b0b5:	83 d8 00             	sbb    $0x0,%eax
40b0b8:	89 44 24 10          	mov    %eax,0x10(%esp)
40b0bc:	89 54 24 0c          	mov    %edx,0xc(%esp)
40b0c0:	8b 44 24 18          	mov    0x18(%esp),%eax
40b0c4:	0b c0                	or     %eax,%eax
40b0c6:	7d 13                	jge    0x40b0db
40b0c8:	8b 54 24 14          	mov    0x14(%esp),%edx
40b0cc:	f7 d8                	neg    %eax
40b0ce:	f7 da                	neg    %edx
40b0d0:	83 d8 00             	sbb    $0x0,%eax
40b0d3:	89 44 24 18          	mov    %eax,0x18(%esp)
40b0d7:	89 54 24 14          	mov    %edx,0x14(%esp)
40b0db:	0b c0                	or     %eax,%eax
40b0dd:	75 1b                	jne    0x40b0fa
40b0df:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b0e3:	8b 44 24 10          	mov    0x10(%esp),%eax
40b0e7:	33 d2                	xor    %edx,%edx
40b0e9:	f7 f1                	div    %ecx
40b0eb:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b0ef:	f7 f1                	div    %ecx
40b0f1:	8b c2                	mov    %edx,%eax
40b0f3:	33 d2                	xor    %edx,%edx
40b0f5:	4f                   	dec    %edi
40b0f6:	79 4e                	jns    0x40b146
40b0f8:	eb 53                	jmp    0x40b14d
40b0fa:	8b d8                	mov    %eax,%ebx
40b0fc:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b100:	8b 54 24 10          	mov    0x10(%esp),%edx
40b104:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b108:	d1 eb                	shr    $1,%ebx
40b10a:	d1 d9                	rcr    $1,%ecx
40b10c:	d1 ea                	shr    $1,%edx
40b10e:	d1 d8                	rcr    $1,%eax
40b110:	0b db                	or     %ebx,%ebx
40b112:	75 f4                	jne    0x40b108
40b114:	f7 f1                	div    %ecx
40b116:	8b c8                	mov    %eax,%ecx
40b118:	f7 64 24 18          	mull   0x18(%esp)
40b11c:	91                   	xchg   %eax,%ecx
40b11d:	f7 64 24 14          	mull   0x14(%esp)
40b121:	03 d1                	add    %ecx,%edx
40b123:	72 0e                	jb     0x40b133
40b125:	3b 54 24 10          	cmp    0x10(%esp),%edx
40b129:	77 08                	ja     0x40b133
40b12b:	72 0e                	jb     0x40b13b
40b12d:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40b131:	76 08                	jbe    0x40b13b
40b133:	2b 44 24 14          	sub    0x14(%esp),%eax
40b137:	1b 54 24 18          	sbb    0x18(%esp),%edx
40b13b:	2b 44 24 0c          	sub    0xc(%esp),%eax
40b13f:	1b 54 24 10          	sbb    0x10(%esp),%edx
40b143:	4f                   	dec    %edi
40b144:	79 07                	jns    0x40b14d
40b146:	f7 da                	neg    %edx
40b148:	f7 d8                	neg    %eax
40b14a:	83 da 00             	sbb    $0x0,%edx
40b14d:	5f                   	pop    %edi
40b14e:	5b                   	pop    %ebx
40b14f:	c2 10 00             	ret    $0x10
40b152:	cc                   	int3
40b153:	cc                   	int3
40b154:	cc                   	int3
40b155:	cc                   	int3
40b156:	cc                   	int3
40b157:	cc                   	int3
40b158:	cc                   	int3
40b159:	cc                   	int3
40b15a:	cc                   	int3
40b15b:	cc                   	int3
40b15c:	cc                   	int3
40b15d:	cc                   	int3
40b15e:	cc                   	int3
40b15f:	cc                   	int3
40b160:	80 f9 40             	cmp    $0x40,%cl
40b163:	73 15                	jae    0x40b17a
40b165:	80 f9 20             	cmp    $0x20,%cl
40b168:	73 06                	jae    0x40b170
40b16a:	0f a5 c2             	shld   %cl,%eax,%edx
40b16d:	d3 e0                	shl    %cl,%eax
40b16f:	c3                   	ret
40b170:	8b d0                	mov    %eax,%edx
40b172:	33 c0                	xor    %eax,%eax
40b174:	80 e1 1f             	and    $0x1f,%cl
40b177:	d3 e2                	shl    %cl,%edx
40b179:	c3                   	ret
40b17a:	33 c0                	xor    %eax,%eax
40b17c:	33 d2                	xor    %edx,%edx
40b17e:	c3                   	ret
40b17f:	cc                   	int3
40b180:	80 f9 40             	cmp    $0x40,%cl
40b183:	73 16                	jae    0x40b19b
40b185:	80 f9 20             	cmp    $0x20,%cl
40b188:	73 06                	jae    0x40b190
40b18a:	0f ad d0             	shrd   %cl,%edx,%eax
40b18d:	d3 fa                	sar    %cl,%edx
40b18f:	c3                   	ret
40b190:	8b c2                	mov    %edx,%eax
40b192:	c1 fa 1f             	sar    $0x1f,%edx
40b195:	80 e1 1f             	and    $0x1f,%cl
40b198:	d3 f8                	sar    %cl,%eax
40b19a:	c3                   	ret
40b19b:	c1 fa 1f             	sar    $0x1f,%edx
40b19e:	8b c2                	mov    %edx,%eax
40b1a0:	c3                   	ret
40b1a1:	cc                   	int3
40b1a2:	cc                   	int3
40b1a3:	cc                   	int3
40b1a4:	cc                   	int3
40b1a5:	cc                   	int3
40b1a6:	cc                   	int3
40b1a7:	cc                   	int3
40b1a8:	cc                   	int3
40b1a9:	cc                   	int3
40b1aa:	cc                   	int3
40b1ab:	cc                   	int3
40b1ac:	cc                   	int3
40b1ad:	cc                   	int3
40b1ae:	cc                   	int3
40b1af:	cc                   	int3
40b1b0:	53                   	push   %ebx
40b1b1:	56                   	push   %esi
40b1b2:	8b 44 24 18          	mov    0x18(%esp),%eax
40b1b6:	0b c0                	or     %eax,%eax
40b1b8:	75 18                	jne    0x40b1d2
40b1ba:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b1be:	8b 44 24 10          	mov    0x10(%esp),%eax
40b1c2:	33 d2                	xor    %edx,%edx
40b1c4:	f7 f1                	div    %ecx
40b1c6:	8b d8                	mov    %eax,%ebx
40b1c8:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b1cc:	f7 f1                	div    %ecx
40b1ce:	8b d3                	mov    %ebx,%edx
40b1d0:	eb 41                	jmp    0x40b213
40b1d2:	8b c8                	mov    %eax,%ecx
40b1d4:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40b1d8:	8b 54 24 10          	mov    0x10(%esp),%edx
40b1dc:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b1e0:	d1 e9                	shr    $1,%ecx
40b1e2:	d1 db                	rcr    $1,%ebx
40b1e4:	d1 ea                	shr    $1,%edx
40b1e6:	d1 d8                	rcr    $1,%eax
40b1e8:	0b c9                	or     %ecx,%ecx
40b1ea:	75 f4                	jne    0x40b1e0
40b1ec:	f7 f3                	div    %ebx
40b1ee:	8b f0                	mov    %eax,%esi
40b1f0:	f7 64 24 18          	mull   0x18(%esp)
40b1f4:	8b c8                	mov    %eax,%ecx
40b1f6:	8b 44 24 14          	mov    0x14(%esp),%eax