40ae08:	8b 4b 04             	mov    0x4(%ebx),%ecx
40ae0b:	89 59 08             	mov    %ebx,0x8(%ecx)
40ae0e:	8b 4b 04             	mov    0x4(%ebx),%ecx
40ae11:	3b 4b 08             	cmp    0x8(%ebx),%ecx
40ae14:	75 5c                	jne    0x40ae72
40ae16:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
40ae1a:	83 fe 20             	cmp    $0x20,%esi
40ae1d:	88 4d 0f             	mov    %cl,0xf(%ebp)
40ae20:	fe c1                	inc    %cl
40ae22:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
40ae26:	73 21                	jae    0x40ae49
40ae28:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
40ae2c:	75 0e                	jne    0x40ae3c
40ae2e:	bf 00 00 00 80       	mov    $0x80000000,%edi
40ae33:	8b ce                	mov    %esi,%ecx
40ae35:	d3 ef                	shr    %cl,%edi
40ae37:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ae3a:	09 39                	or     %edi,(%ecx)
40ae3c:	8d 44 90 44          	lea    0x44(%eax,%edx,4),%eax
40ae40:	ba 00 00 00 80       	mov    $0x80000000,%edx
40ae45:	8b ce                	mov    %esi,%ecx
40ae47:	eb 25                	jmp    0x40ae6e
40ae49:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
40ae4d:	75 10                	jne    0x40ae5f
40ae4f:	8d 4e e0             	lea    -0x20(%esi),%ecx
40ae52:	bf 00 00 00 80       	mov    $0x80000000,%edi
40ae57:	d3 ef                	shr    %cl,%edi
40ae59:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ae5c:	09 79 04             	or     %edi,0x4(%ecx)
40ae5f:	8d 84 90 c4 00 00 00 	lea    0xc4(%eax,%edx,4),%eax
40ae66:	8d 4e e0             	lea    -0x20(%esi),%ecx
40ae69:	ba 00 00 00 80       	mov    $0x80000000,%edx
40ae6e:	d3 ea                	shr    %cl,%edx
40ae70:	09 10                	or     %edx,(%eax)
40ae72:	8b 45 10             	mov    0x10(%ebp),%eax
40ae75:	89 03                	mov    %eax,(%ebx)
40ae77:	89 44 18 fc          	mov    %eax,-0x4(%eax,%ebx,1)
40ae7b:	6a 01                	push   $0x1
40ae7d:	58                   	pop    %eax
40ae7e:	5f                   	pop    %edi
40ae7f:	5e                   	pop    %esi
40ae80:	5b                   	pop    %ebx
40ae81:	c9                   	leave
40ae82:	c3                   	ret
40ae83:	cc                   	int3
40ae84:	cc                   	int3
40ae85:	cc                   	int3
40ae86:	cc                   	int3
40ae87:	cc                   	int3
40ae88:	cc                   	int3
40ae89:	cc                   	int3
40ae8a:	cc                   	int3
40ae8b:	cc                   	int3
40ae8c:	cc                   	int3
40ae8d:	cc                   	int3
40ae8e:	cc                   	int3
40ae8f:	cc                   	int3
40ae90:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40ae94:	57                   	push   %edi
40ae95:	85 c9                	test   %ecx,%ecx
40ae97:	74 7a                	je     0x40af13
40ae99:	56                   	push   %esi
40ae9a:	53                   	push   %ebx
40ae9b:	8b d9                	mov    %ecx,%ebx
40ae9d:	8b 74 24 14          	mov    0x14(%esp),%esi
40aea1:	f7 c6 03 00 00 00    	test   $0x3,%esi
40aea7:	8b 7c 24 10          	mov    0x10(%esp),%edi
40aeab:	75 07                	jne    0x40aeb4
40aead:	c1 e9 02             	shr    $0x2,%ecx
40aeb0:	75 6f                	jne    0x40af21
40aeb2:	eb 21                	jmp    0x40aed5
40aeb4:	8a 06                	mov    (%esi),%al
40aeb6:	46                   	inc    %esi
40aeb7:	88 07                	mov    %al,(%edi)
40aeb9:	47                   	inc    %edi
40aeba:	49                   	dec    %ecx
40aebb:	74 25                	je     0x40aee2
40aebd:	84 c0                	test   %al,%al
40aebf:	74 29                	je     0x40aeea
40aec1:	f7 c6 03 00 00 00    	test   $0x3,%esi
40aec7:	75 eb                	jne    0x40aeb4
40aec9:	8b d9                	mov    %ecx,%ebx
40aecb:	c1 e9 02             	shr    $0x2,%ecx
40aece:	75 51                	jne    0x40af21
40aed0:	83 e3 03             	and    $0x3,%ebx
40aed3:	74 0d                	je     0x40aee2
40aed5:	8a 06                	mov    (%esi),%al
40aed7:	46                   	inc    %esi
40aed8:	88 07                	mov    %al,(%edi)
40aeda:	47                   	inc    %edi
40aedb:	84 c0                	test   %al,%al
40aedd:	74 2f                	je     0x40af0e
40aedf:	4b                   	dec    %ebx
40aee0:	75 f3                	jne    0x40aed5
40aee2:	8b 44 24 10          	mov    0x10(%esp),%eax
40aee6:	5b                   	pop    %ebx
40aee7:	5e                   	pop    %esi
40aee8:	5f                   	pop    %edi
40aee9:	c3                   	ret
40aeea:	f7 c7 03 00 00 00    	test   $0x3,%edi
40aef0:	74 12                	je     0x40af04
40aef2:	88 07                	mov    %al,(%edi)
40aef4:	47                   	inc    %edi
40aef5:	49                   	dec    %ecx
40aef6:	0f 84 8a 00 00 00    	je     0x40af86
40aefc:	f7 c7 03 00 00 00    	test   $0x3,%edi
40af02:	75 ee                	jne    0x40aef2
40af04:	8b d9                	mov    %ecx,%ebx
40af06:	c1 e9 02             	shr    $0x2,%ecx
40af09:	75 6c                	jne    0x40af77
40af0b:	88 07                	mov    %al,(%edi)
40af0d:	47                   	inc    %edi
40af0e:	4b                   	dec    %ebx
40af0f:	75 fa                	jne    0x40af0b
40af11:	5b                   	pop    %ebx
40af12:	5e                   	pop    %esi
40af13:	8b 44 24 08          	mov    0x8(%esp),%eax
40af17:	5f                   	pop    %edi
40af18:	c3                   	ret
40af19:	89 17                	mov    %edx,(%edi)
40af1b:	83 c7 04             	add    $0x4,%edi
40af1e:	49                   	dec    %ecx
40af1f:	74 af                	je     0x40aed0
40af21:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
40af26:	8b 06                	mov    (%esi),%eax
40af28:	03 d0                	add    %eax,%edx
40af2a:	83 f0 ff             	xor    $0xffffffff,%eax
40af2d:	33 c2                	xor    %edx,%eax
40af2f:	8b 16                	mov    (%esi),%edx
40af31:	83 c6 04             	add    $0x4,%esi
40af34:	a9 00 01 01 81       	test   $0x81010100,%eax
40af39:	74 de                	je     0x40af19
40af3b:	84 d2                	test   %dl,%dl
40af3d:	74 2c                	je     0x40af6b
40af3f:	84 f6                	test   %dh,%dh
40af41:	74 1e                	je     0x40af61
40af43:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
40af49:	74 0c                	je     0x40af57
40af4b:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
40af51:	75 c6                	jne    0x40af19
40af53:	89 17                	mov    %edx,(%edi)
40af55:	eb 18                	jmp    0x40af6f
40af57:	81 e2 ff ff 00 00    	and    $0xffff,%edx
40af5d:	89 17                	mov    %edx,(%edi)
40af5f:	eb 0e                	jmp    0x40af6f
40af61:	81 e2 ff 00 00 00    	and    $0xff,%edx
40af67:	89 17                	mov    %edx,(%edi)
40af69:	eb 04                	jmp    0x40af6f
40af6b:	33 d2                	xor    %edx,%edx
40af6d:	89 17                	mov    %edx,(%edi)
40af6f:	83 c7 04             	add    $0x4,%edi
40af72:	33 c0                	xor    %eax,%eax
40af74:	49                   	dec    %ecx
40af75:	74 0a                	je     0x40af81
40af77:	33 c0                	xor    %eax,%eax
40af79:	89 07                	mov    %eax,(%edi)
40af7b:	83 c7 04             	add    $0x4,%edi
40af7e:	49                   	dec    %ecx
40af7f:	75 f8                	jne    0x40af79
40af81:	83 e3 03             	and    $0x3,%ebx
40af84:	75 85                	jne    0x40af0b
40af86:	8b 44 24 10          	mov    0x10(%esp),%eax
40af8a:	5b                   	pop    %ebx
40af8b:	5e                   	pop    %esi
40af8c:	5f                   	pop    %edi
40af8d:	c3                   	ret
40af8e:	cc                   	int3
40af8f:	cc                   	int3
40af90:	55                   	push   %ebp
40af91:	8b ec                	mov    %esp,%ebp
40af93:	56                   	push   %esi
40af94:	33 c0                	xor    %eax,%eax
40af96:	50                   	push   %eax
40af97:	50                   	push   %eax
40af98:	50                   	push   %eax
40af99:	50                   	push   %eax
40af9a:	50                   	push   %eax
40af9b:	50                   	push   %eax
40af9c:	50                   	push   %eax
40af9d:	50                   	push   %eax
40af9e:	8b 55 0c             	mov    0xc(%ebp),%edx
40afa1:	8d 49 00             	lea    0x0(%ecx),%ecx
40afa4:	8a 02                	mov    (%edx),%al
40afa6:	0a c0                	or     %al,%al
40afa8:	74 07                	je     0x40afb1
40afaa:	42                   	inc    %edx
40afab:	0f ab 04 24          	bts    %eax,(%esp)
40afaf:	eb f3                	jmp    0x40afa4
40afb1:	8b 75 08             	mov    0x8(%ebp),%esi
40afb4:	83 c9 ff             	or     $0xffffffff,%ecx
40afb7:	90                   	nop
40afb8:	41                   	inc    %ecx
40afb9:	8a 06                	mov    (%esi),%al
40afbb:	0a c0                	or     %al,%al
40afbd:	74 07                	je     0x40afc6
40afbf:	46                   	inc    %esi
40afc0:	0f a3 04 24          	bt     %eax,(%esp)
40afc4:	73 f2                	jae    0x40afb8
40afc6:	8b c1                	mov    %ecx,%eax
40afc8:	83 c4 20             	add    $0x20,%esp
40afcb:	5e                   	pop    %esi
40afcc:	c9                   	leave
40afcd:	c3                   	ret
40afce:	cc                   	int3
40afcf:	cc                   	int3
40afd0:	55                   	push   %ebp
40afd1:	8b ec                	mov    %esp,%ebp
40afd3:	57                   	push   %edi
40afd4:	56                   	push   %esi
40afd5:	53                   	push   %ebx
40afd6:	8b 4d 10             	mov    0x10(%ebp),%ecx
40afd9:	e3 26                	jecxz  0x40b001
40afdb:	8b d9                	mov    %ecx,%ebx
40afdd:	8b 7d 08             	mov    0x8(%ebp),%edi
40afe0:	8b f7                	mov    %edi,%esi
40afe2:	33 c0                	xor    %eax,%eax
40afe4:	f2 ae                	repnz scas %es:(%edi),%al
40afe6:	f7 d9                	neg    %ecx
40afe8:	03 cb                	add    %ebx,%ecx
40afea:	8b fe                	mov    %esi,%edi
40afec:	8b 75 0c             	mov    0xc(%ebp),%esi
40afef:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
40aff1:	8a 46 ff             	mov    -0x1(%esi),%al
40aff4:	33 c9                	xor    %ecx,%ecx
40aff6:	3a 47 ff             	cmp    -0x1(%edi),%al
40aff9:	77 04                	ja     0x40afff
40affb:	74 04                	je     0x40b001
40affd:	49                   	dec    %ecx
40affe:	49                   	dec    %ecx
40afff:	f7 d1                	not    %ecx
40b001:	8b c1                	mov    %ecx,%eax
40b003:	5b                   	pop    %ebx
40b004:	5e                   	pop    %esi
40b005:	5f                   	pop    %edi
40b006:	c9                   	leave
40b007:	c3                   	ret
40b008:	cc                   	int3
40b009:	cc                   	int3
40b00a:	cc                   	int3
40b00b:	cc                   	int3
40b00c:	cc                   	int3
40b00d:	cc                   	int3
40b00e:	cc                   	int3
40b00f:	cc                   	int3
40b010:	55                   	push   %ebp
40b011:	8b ec                	mov    %esp,%ebp
40b013:	56                   	push   %esi
40b014:	33 c0                	xor    %eax,%eax
40b016:	50                   	push   %eax
40b017:	50                   	push   %eax
40b018:	50                   	push   %eax
40b019:	50                   	push   %eax
40b01a:	50                   	push   %eax
40b01b:	50                   	push   %eax
40b01c:	50                   	push   %eax
40b01d:	50                   	push   %eax
40b01e:	8b 55 0c             	mov    0xc(%ebp),%edx
40b021:	8d 49 00             	lea    0x0(%ecx),%ecx
40b024:	8a 02                	mov    (%edx),%al
40b026:	0a c0                	or     %al,%al
40b028:	74 07                	je     0x40b031
40b02a:	42                   	inc    %edx
40b02b:	0f ab 04 24          	bts    %eax,(%esp)
40b02f:	eb f3                	jmp    0x40b024
40b031:	8b 75 08             	mov    0x8(%ebp),%esi
40b034:	8a 06                	mov    (%esi),%al
40b036:	0a c0                	or     %al,%al
40b038:	74 0a                	je     0x40b044
40b03a:	46                   	inc    %esi
40b03b:	0f a3 04 24          	bt     %eax,(%esp)
40b03f:	73 f3                	jae    0x40b034
40b041:	8d 46 ff             	lea    -0x1(%esi),%eax
40b044:	83 c4 20             	add    $0x20,%esp
40b047:	5e                   	pop    %esi
40b048:	c9                   	leave
40b049:	c3                   	ret
40b04a:	a1 44 1a 41 00       	mov    0x411a44,%eax
40b04f:	85 c0                	test   %eax,%eax
40b051:	74 0f                	je     0x40b062
40b053:	ff 74 24 04          	push   0x4(%esp)
40b057:	ff d0                	call   *%eax
40b059:	85 c0                	test   %eax,%eax
40b05b:	59                   	pop    %ecx
40b05c:	74 04                	je     0x40b062
40b05e:	6a 01                	push   $0x1
40b060:	58                   	pop    %eax
40b061:	c3                   	ret
40b062:	33 c0                	xor    %eax,%eax
40b064:	c3                   	ret
40b065:	8b 44 24 04          	mov    0x4(%esp),%eax
40b069:	3b 05 c0 1e 41 00    	cmp    0x411ec0,%eax
40b06f:	72 03                	jb     0x40b074
40b071:	33 c0                	xor    %eax,%eax
40b073:	c3                   	ret
40b074:	8b c8                	mov    %eax,%ecx
40b076:	83 e0 1f             	and    $0x1f,%eax
40b079:	c1 f9 05             	sar    $0x5,%ecx
40b07c:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b07f:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b086:	8a 44 81 04          	mov    0x4(%ecx,%eax,4),%al
40b08a:	83 e0 40             	and    $0x40,%eax
40b08d:	c3                   	ret
40b08e:	cc                   	int3
40b08f:	cc                   	int3
40b090:	53                   	push   %ebx
40b091:	56                   	push   %esi
40b092:	8b 44 24 18          	mov    0x18(%esp),%eax
40b096:	0b c0                	or     %eax,%eax
40b098:	75 18                	jne    0x40b0b2
40b09a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b09e:	8b 44 24 10          	mov    0x10(%esp),%eax
40b0a2:	33 d2                	xor    %edx,%edx
40b0a4:	f7 f1                	div    %ecx
40b0a6:	8b d8                	mov    %eax,%ebx
40b0a8:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b0ac:	f7 f1                	div    %ecx
40b0ae:	8b d3                	mov    %ebx,%edx
40b0b0:	eb 41                	jmp    0x40b0f3
40b0b2:	8b c8                	mov    %eax,%ecx
40b0b4:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40b0b8:	8b 54 24 10          	mov    0x10(%esp),%edx
40b0bc:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b0c0:	d1 e9                	shr    $1,%ecx
40b0c2:	d1 db                	rcr    $1,%ebx
40b0c4:	d1 ea                	shr    $1,%edx
40b0c6:	d1 d8                	rcr    $1,%eax
40b0c8:	0b c9                	or     %ecx,%ecx
40b0ca:	75 f4                	jne    0x40b0c0
40b0cc:	f7 f3                	div    %ebx
40b0ce:	8b f0                	mov    %eax,%esi
40b0d0:	f7 64 24 18          	mull   0x18(%esp)
40b0d4:	8b c8                	mov    %eax,%ecx
40b0d6:	8b 44 24 14          	mov    0x14(%esp),%eax
40b0da:	f7 e6                	mul    %esi
40b0dc:	03 d1                	add    %ecx,%edx
40b0de:	72 0e                	jb     0x40b0ee
40b0e0:	3b 54 24 10          	cmp    0x10(%esp),%edx
40b0e4:	77 08                	ja     0x40b0ee
40b0e6:	72 07                	jb     0x40b0ef
40b0e8:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40b0ec:	76 01                	jbe    0x40b0ef
40b0ee:	4e                   	dec    %esi
40b0ef:	33 d2                	xor    %edx,%edx
40b0f1:	8b c6                	mov    %esi,%eax
40b0f3:	5e                   	pop    %esi
40b0f4:	5b                   	pop    %ebx
40b0f5:	c2 10 00             	ret    $0x10
40b0f8:	cc                   	int3
40b0f9:	cc                   	int3
40b0fa:	cc                   	int3