41cde7:	33 c0                	xor    %eax,%eax
41cde9:	89 07                	mov    %eax,(%edi)
41cdeb:	83 c7 04             	add    $0x4,%edi
41cdee:	83 e9 01             	sub    $0x1,%ecx
41cdf1:	75 f6                	jne    0x41cde9
41cdf3:	83 e3 03             	and    $0x3,%ebx
41cdf6:	0f 85 77 ff ff ff    	jne    0x41cd73
41cdfc:	8b 44 24 10          	mov    0x10(%esp),%eax
41ce00:	5b                   	pop    %ebx
41ce01:	5e                   	pop    %esi
41ce02:	5f                   	pop    %edi
41ce03:	c3                   	ret
41ce04:	cc                   	int3
41ce05:	cc                   	int3
41ce06:	cc                   	int3
41ce07:	cc                   	int3
41ce08:	cc                   	int3
41ce09:	cc                   	int3
41ce0a:	cc                   	int3
41ce0b:	cc                   	int3
41ce0c:	cc                   	int3
41ce0d:	cc                   	int3
41ce0e:	cc                   	int3
41ce0f:	cc                   	int3
41ce10:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
41ce14:	57                   	push   %edi
41ce15:	85 c9                	test   %ecx,%ecx
41ce17:	0f 84 b7 00 00 00    	je     0x41ced4
41ce1d:	8b 7c 24 08          	mov    0x8(%esp),%edi
41ce21:	56                   	push   %esi
41ce22:	f7 c7 03 00 00 00    	test   $0x3,%edi
41ce28:	53                   	push   %ebx
41ce29:	74 11                	je     0x41ce3c
41ce2b:	8a 07                	mov    (%edi),%al
41ce2d:	83 c7 01             	add    $0x1,%edi
41ce30:	84 c0                	test   %al,%al
41ce32:	74 39                	je     0x41ce6d
41ce34:	f7 c7 03 00 00 00    	test   $0x3,%edi
41ce3a:	75 ef                	jne    0x41ce2b
41ce3c:	8b 07                	mov    (%edi),%eax
41ce3e:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
41ce43:	03 d0                	add    %eax,%edx
41ce45:	83 f0 ff             	xor    $0xffffffff,%eax
41ce48:	33 c2                	xor    %edx,%eax
41ce4a:	83 c7 04             	add    $0x4,%edi
41ce4d:	a9 00 01 01 81       	test   $0x81010100,%eax
41ce52:	74 e8                	je     0x41ce3c
41ce54:	8b 47 fc             	mov    -0x4(%edi),%eax
41ce57:	84 c0                	test   %al,%al
41ce59:	74 21                	je     0x41ce7c
41ce5b:	84 e4                	test   %ah,%ah
41ce5d:	74 18                	je     0x41ce77
41ce5f:	a9 00 00 ff 00       	test   $0xff0000,%eax
41ce64:	74 0c                	je     0x41ce72
41ce66:	a9 00 00 00 ff       	test   $0xff000000,%eax
41ce6b:	75 cf                	jne    0x41ce3c
41ce6d:	83 ef 01             	sub    $0x1,%edi
41ce70:	eb 0d                	jmp    0x41ce7f
41ce72:	83 ef 02             	sub    $0x2,%edi
41ce75:	eb 08                	jmp    0x41ce7f
41ce77:	83 ef 03             	sub    $0x3,%edi
41ce7a:	eb 03                	jmp    0x41ce7f
41ce7c:	83 ef 04             	sub    $0x4,%edi
41ce7f:	8b 74 24 14          	mov    0x14(%esp),%esi
41ce83:	f7 c6 03 00 00 00    	test   $0x3,%esi
41ce89:	75 09                	jne    0x41ce94
41ce8b:	8b d9                	mov    %ecx,%ebx
41ce8d:	c1 e9 02             	shr    $0x2,%ecx
41ce90:	75 5c                	jne    0x41ceee
41ce92:	eb 22                	jmp    0x41ceb6
41ce94:	8a 16                	mov    (%esi),%dl
41ce96:	83 c6 01             	add    $0x1,%esi
41ce99:	84 d2                	test   %dl,%dl
41ce9b:	74 3d                	je     0x41ceda
41ce9d:	88 17                	mov    %dl,(%edi)
41ce9f:	83 c7 01             	add    $0x1,%edi
41cea2:	83 e9 01             	sub    $0x1,%ecx
41cea5:	74 29                	je     0x41ced0
41cea7:	f7 c6 03 00 00 00    	test   $0x3,%esi
41cead:	75 e5                	jne    0x41ce94
41ceaf:	8b d9                	mov    %ecx,%ebx
41ceb1:	c1 e9 02             	shr    $0x2,%ecx
41ceb4:	75 38                	jne    0x41ceee
41ceb6:	8b cb                	mov    %ebx,%ecx
41ceb8:	83 e1 03             	and    $0x3,%ecx
41cebb:	74 13                	je     0x41ced0
41cebd:	8a 16                	mov    (%esi),%dl
41cebf:	83 c6 01             	add    $0x1,%esi
41cec2:	88 17                	mov    %dl,(%edi)
41cec4:	83 c7 01             	add    $0x1,%edi
41cec7:	84 d2                	test   %dl,%dl
41cec9:	74 07                	je     0x41ced2
41cecb:	83 e9 01             	sub    $0x1,%ecx
41cece:	75 ed                	jne    0x41cebd
41ced0:	88 0f                	mov    %cl,(%edi)
41ced2:	5b                   	pop    %ebx
41ced3:	5e                   	pop    %esi
41ced4:	8b 44 24 08          	mov    0x8(%esp),%eax
41ced8:	5f                   	pop    %edi
41ced9:	c3                   	ret
41ceda:	88 17                	mov    %dl,(%edi)
41cedc:	8b 44 24 10          	mov    0x10(%esp),%eax
41cee0:	5b                   	pop    %ebx
41cee1:	5e                   	pop    %esi
41cee2:	5f                   	pop    %edi
41cee3:	c3                   	ret
41cee4:	89 17                	mov    %edx,(%edi)
41cee6:	83 c7 04             	add    $0x4,%edi
41cee9:	83 e9 01             	sub    $0x1,%ecx
41ceec:	74 c8                	je     0x41ceb6
41ceee:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
41cef3:	8b 06                	mov    (%esi),%eax
41cef5:	03 d0                	add    %eax,%edx
41cef7:	83 f0 ff             	xor    $0xffffffff,%eax
41cefa:	33 c2                	xor    %edx,%eax
41cefc:	8b 16                	mov    (%esi),%edx
41cefe:	83 c6 04             	add    $0x4,%esi
41cf01:	a9 00 01 01 81       	test   $0x81010100,%eax
41cf06:	74 dc                	je     0x41cee4
41cf08:	84 d2                	test   %dl,%dl
41cf0a:	74 ce                	je     0x41ceda
41cf0c:	84 f6                	test   %dh,%dh
41cf0e:	74 2a                	je     0x41cf3a
41cf10:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
41cf16:	74 12                	je     0x41cf2a
41cf18:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
41cf1e:	75 c4                	jne    0x41cee4
41cf20:	89 17                	mov    %edx,(%edi)
41cf22:	8b 44 24 10          	mov    0x10(%esp),%eax
41cf26:	5b                   	pop    %ebx
41cf27:	5e                   	pop    %esi
41cf28:	5f                   	pop    %edi
41cf29:	c3                   	ret
41cf2a:	66 89 17             	mov    %dx,(%edi)
41cf2d:	33 d2                	xor    %edx,%edx
41cf2f:	8b 44 24 10          	mov    0x10(%esp),%eax
41cf33:	88 57 02             	mov    %dl,0x2(%edi)
41cf36:	5b                   	pop    %ebx
41cf37:	5e                   	pop    %esi
41cf38:	5f                   	pop    %edi
41cf39:	c3                   	ret
41cf3a:	66 89 17             	mov    %dx,(%edi)
41cf3d:	8b 44 24 10          	mov    0x10(%esp),%eax
41cf41:	5b                   	pop    %ebx
41cf42:	5e                   	pop    %esi
41cf43:	5f                   	pop    %edi
41cf44:	c3                   	ret
41cf45:	8b ff                	mov    %edi,%edi
41cf47:	55                   	push   %ebp
41cf48:	8b ec                	mov    %esp,%ebp
41cf4a:	8b 55 08             	mov    0x8(%ebp),%edx
41cf4d:	8b c2                	mov    %edx,%eax
41cf4f:	66 8b 0a             	mov    (%edx),%cx
41cf52:	42                   	inc    %edx
41cf53:	42                   	inc    %edx
41cf54:	66 85 c9             	test   %cx,%cx
41cf57:	75 f6                	jne    0x41cf4f
41cf59:	4a                   	dec    %edx
41cf5a:	4a                   	dec    %edx
41cf5b:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
41cf5f:	56                   	push   %esi
41cf60:	74 1b                	je     0x41cf7d
41cf62:	8b 75 0c             	mov    0xc(%ebp),%esi
41cf65:	0f b7 0e             	movzwl (%esi),%ecx
41cf68:	ff 4d 10             	decl   0x10(%ebp)
41cf6b:	66 89 0a             	mov    %cx,(%edx)
41cf6e:	42                   	inc    %edx
41cf6f:	42                   	inc    %edx
41cf70:	46                   	inc    %esi
41cf71:	46                   	inc    %esi
41cf72:	66 85 c9             	test   %cx,%cx
41cf75:	74 0b                	je     0x41cf82
41cf77:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
41cf7b:	75 e8                	jne    0x41cf65
41cf7d:	33 c9                	xor    %ecx,%ecx
41cf7f:	66 89 0a             	mov    %cx,(%edx)
41cf82:	5e                   	pop    %esi
41cf83:	5d                   	pop    %ebp
41cf84:	c3                   	ret
41cf85:	cc                   	int3
41cf86:	cc                   	int3
41cf87:	cc                   	int3
41cf88:	cc                   	int3
41cf89:	cc                   	int3
41cf8a:	cc                   	int3
41cf8b:	cc                   	int3
41cf8c:	cc                   	int3
41cf8d:	cc                   	int3
41cf8e:	cc                   	int3
41cf8f:	cc                   	int3
41cf90:	57                   	push   %edi
41cf91:	56                   	push   %esi
41cf92:	55                   	push   %ebp
41cf93:	33 ff                	xor    %edi,%edi
41cf95:	33 ed                	xor    %ebp,%ebp
41cf97:	8b 44 24 14          	mov    0x14(%esp),%eax
41cf9b:	0b c0                	or     %eax,%eax
41cf9d:	7d 15                	jge    0x41cfb4
41cf9f:	47                   	inc    %edi
41cfa0:	45                   	inc    %ebp
41cfa1:	8b 54 24 10          	mov    0x10(%esp),%edx
41cfa5:	f7 d8                	neg    %eax
41cfa7:	f7 da                	neg    %edx
41cfa9:	83 d8 00             	sbb    $0x0,%eax
41cfac:	89 44 24 14          	mov    %eax,0x14(%esp)
41cfb0:	89 54 24 10          	mov    %edx,0x10(%esp)
41cfb4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
41cfb8:	0b c0                	or     %eax,%eax
41cfba:	7d 14                	jge    0x41cfd0
41cfbc:	47                   	inc    %edi
41cfbd:	8b 54 24 18          	mov    0x18(%esp),%edx
41cfc1:	f7 d8                	neg    %eax
41cfc3:	f7 da                	neg    %edx
41cfc5:	83 d8 00             	sbb    $0x0,%eax
41cfc8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
41cfcc:	89 54 24 18          	mov    %edx,0x18(%esp)
41cfd0:	0b c0                	or     %eax,%eax
41cfd2:	75 28                	jne    0x41cffc
41cfd4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
41cfd8:	8b 44 24 14          	mov    0x14(%esp),%eax
41cfdc:	33 d2                	xor    %edx,%edx
41cfde:	f7 f1                	div    %ecx
41cfe0:	8b d8                	mov    %eax,%ebx
41cfe2:	8b 44 24 10          	mov    0x10(%esp),%eax
41cfe6:	f7 f1                	div    %ecx
41cfe8:	8b f0                	mov    %eax,%esi
41cfea:	8b c3                	mov    %ebx,%eax
41cfec:	f7 64 24 18          	mull   0x18(%esp)
41cff0:	8b c8                	mov    %eax,%ecx
41cff2:	8b c6                	mov    %esi,%eax
41cff4:	f7 64 24 18          	mull   0x18(%esp)
41cff8:	03 d1                	add    %ecx,%edx
41cffa:	eb 47                	jmp    0x41d043
41cffc:	8b d8                	mov    %eax,%ebx
41cffe:	8b 4c 24 18          	mov    0x18(%esp),%ecx
41d002:	8b 54 24 14          	mov    0x14(%esp),%edx
41d006:	8b 44 24 10          	mov    0x10(%esp),%eax
41d00a:	d1 eb                	shr    $1,%ebx
41d00c:	d1 d9                	rcr    $1,%ecx
41d00e:	d1 ea                	shr    $1,%edx
41d010:	d1 d8                	rcr    $1,%eax
41d012:	0b db                	or     %ebx,%ebx
41d014:	75 f4                	jne    0x41d00a
41d016:	f7 f1                	div    %ecx
41d018:	8b f0                	mov    %eax,%esi
41d01a:	f7 64 24 1c          	mull   0x1c(%esp)
41d01e:	8b c8                	mov    %eax,%ecx
41d020:	8b 44 24 18          	mov    0x18(%esp),%eax
41d024:	f7 e6                	mul    %esi
41d026:	03 d1                	add    %ecx,%edx
41d028:	72 0e                	jb     0x41d038
41d02a:	3b 54 24 14          	cmp    0x14(%esp),%edx
41d02e:	77 08                	ja     0x41d038
41d030:	72 0f                	jb     0x41d041
41d032:	3b 44 24 10          	cmp    0x10(%esp),%eax
41d036:	76 09                	jbe    0x41d041
41d038:	4e                   	dec    %esi
41d039:	2b 44 24 18          	sub    0x18(%esp),%eax
41d03d:	1b 54 24 1c          	sbb    0x1c(%esp),%edx
41d041:	33 db                	xor    %ebx,%ebx
41d043:	2b 44 24 10          	sub    0x10(%esp),%eax
41d047:	1b 54 24 14          	sbb    0x14(%esp),%edx
41d04b:	4d                   	dec    %ebp
41d04c:	79 07                	jns    0x41d055
41d04e:	f7 da                	neg    %edx
41d050:	f7 d8                	neg    %eax
41d052:	83 da 00             	sbb    $0x0,%edx
41d055:	8b ca                	mov    %edx,%ecx
41d057:	8b d3                	mov    %ebx,%edx
41d059:	8b d9                	mov    %ecx,%ebx
41d05b:	8b c8                	mov    %eax,%ecx
41d05d:	8b c6                	mov    %esi,%eax
41d05f:	4f                   	dec    %edi
41d060:	75 07                	jne    0x41d069
41d062:	f7 da                	neg    %edx
41d064:	f7 d8                	neg    %eax
41d066:	83 da 00             	sbb    $0x0,%edx
41d069:	5d                   	pop    %ebp
41d06a:	5e                   	pop    %esi
41d06b:	5f                   	pop    %edi
41d06c:	c2 10 00             	ret    $0x10
41d06f:	cc                   	int3
41d070:	53                   	push   %ebx
41d071:	56                   	push   %esi
41d072:	8b 44 24 18          	mov    0x18(%esp),%eax
41d076:	0b c0                	or     %eax,%eax
41d078:	75 18                	jne    0x41d092
41d07a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
41d07e:	8b 44 24 10          	mov    0x10(%esp),%eax
41d082:	33 d2                	xor    %edx,%edx
41d084:	f7 f1                	div    %ecx
41d086:	8b d8                	mov    %eax,%ebx
41d088:	8b 44 24 0c          	mov    0xc(%esp),%eax
41d08c:	f7 f1                	div    %ecx
41d08e:	8b d3                	mov    %ebx,%edx
41d090:	eb 41                	jmp    0x41d0d3
41d092:	8b c8                	mov    %eax,%ecx
41d094:	8b 5c 24 14          	mov    0x14(%esp),%ebx
41d098:	8b 54 24 10          	mov    0x10(%esp),%edx
41d09c:	8b 44 24 0c          	mov    0xc(%esp),%eax
41d0a0:	d1 e9                	shr    $1,%ecx
41d0a2:	d1 db                	rcr    $1,%ebx
41d0a4:	d1 ea                	shr    $1,%edx
41d0a6:	d1 d8                	rcr    $1,%eax
41d0a8:	0b c9                	or     %ecx,%ecx
41d0aa:	75 f4                	jne    0x41d0a0
41d0ac:	f7 f3                	div    %ebx
41d0ae:	8b f0                	mov    %eax,%esi
41d0b0:	f7 64 24 18          	mull   0x18(%esp)
41d0b4:	8b c8                	mov    %eax,%ecx
41d0b6:	8b 44 24 14          	mov    0x14(%esp),%eax
41d0ba:	f7 e6                	mul    %esi
41d0bc:	03 d1                	add    %ecx,%edx
41d0be:	72 0e                	jb     0x41d0ce
41d0c0:	3b 54 24 10          	cmp    0x10(%esp),%edx
41d0c4:	77 08                	ja     0x41d0ce
41d0c6:	72 07                	jb     0x41d0cf
41d0c8:	3b 44 24 0c          	cmp    0xc(%esp),%eax
41d0cc:	76 01                	jbe    0x41d0cf
41d0ce:	4e                   	dec    %esi
41d0cf:	33 d2                	xor    %edx,%edx
41d0d1:	8b c6                	mov    %esi,%eax
41d0d3:	5e                   	pop    %esi
41d0d4:	5b                   	pop    %ebx
41d0d5:	c2 10 00             	ret    $0x10
41d0d8:	8b ff                	mov    %edi,%edi
41d0da:	55                   	push   %ebp
41d0db:	8b ec                	mov    %esp,%ebp
41d0dd:	b8 ff ff 00 00       	mov    $0xffff,%eax
41d0e2:	8b c8                	mov    %eax,%ecx
41d0e4:	83 ec 14             	sub    $0x14,%esp
41d0e7:	66 39 4d 08          	cmp    %cx,0x8(%ebp)
41d0eb:	0f 84 9a 00 00 00    	je     0x41d18b
41d0f1:	53                   	push   %ebx
41d0f2:	ff 75 0c             	push   0xc(%ebp)
41d0f5:	8d 4d ec             	lea    -0x14(%ebp),%ecx
41d0f8:	e8 eb f9 ff ff       	call   0x41cae8
41d0fd:	8b 45 ec             	mov    -0x14(%ebp),%eax
41d100:	8b 48 14             	mov    0x14(%eax),%ecx
41d103:	33 db                	xor    %ebx,%ebx
41d105:	3b cb                	cmp    %ebx,%ecx
41d107:	75 14                	jne    0x41d11d
41d109:	8b 45 08             	mov    0x8(%ebp),%eax
41d10c:	8d 48 9f             	lea    -0x61(%eax),%ecx
41d10f:	66 83 f9 19          	cmp    $0x19,%cx
41d113:	77 03                	ja     0x41d118
41d115:	83 c0 e0             	add    $0xffffffe0,%eax
41d118:	0f b7 c0             	movzwl %ax,%eax
41d11b:	eb 61                	jmp    0x41d17e
41d11d:	ba 00 01 00 00       	mov    $0x100,%edx