40ce76:	89 d6                	mov    %edx,%esi
40ce78:	89 d8                	mov    %ebx,%eax
40ce7a:	e8 21 f9 ff ff       	call   0x40c7a0
40ce7f:	89 f0                	mov    %esi,%eax
40ce81:	09 c0                	or     %eax,%eax
40ce83:	74 68                	je     0x40ceed
40ce85:	e8 d6 fc ff ff       	call   0x40cb60
40ce8a:	74 61                	je     0x40ceed
40ce8c:	8b 46 1c             	mov    0x1c(%esi),%eax
40ce8f:	89 43 1c             	mov    %eax,0x1c(%ebx)
40ce92:	8b 46 18             	mov    0x18(%esi),%eax
40ce95:	89 43 18             	mov    %eax,0x18(%ebx)
40ce98:	0f b6 4e 3c          	movzbl 0x3c(%esi),%ecx
40ce9c:	88 4b 3c             	mov    %cl,0x3c(%ebx)
40ce9f:	e3 17                	jecxz  0x40ceb8
40cea1:	49                   	dec    %ecx
40cea2:	51                   	push   %ecx
40cea3:	51                   	push   %ecx
40cea4:	51                   	push   %ecx
40cea5:	51                   	push   %ecx
40cea6:	ff 76 20             	push   0x20(%esi)
40cea9:	e8 2a 7b ff ff       	call   0x4049d8
40ceae:	89 43 20             	mov    %eax,0x20(%ebx)
40ceb1:	85 c0                	test   %eax,%eax
40ceb3:	92                   	xchg   %eax,%edx
40ceb4:	74 c0                	je     0x40ce76
40ceb6:	eb 35                	jmp    0x40ceed
40ceb8:	91                   	xchg   %eax,%ecx
40ceb9:	66 b8 28 04          	mov    $0x428,%ax
40cebd:	50                   	push   %eax
40cebe:	e8 6d 59 ff ff       	call   0x402830
40cec3:	89 43 3d             	mov    %eax,0x3d(%ebx)
40cec6:	92                   	xchg   %eax,%edx
40cec7:	59                   	pop    %ecx
40cec8:	8b 46 3d             	mov    0x3d(%esi),%eax
40cecb:	e8 74 5a ff ff       	call   0x402944
40ced0:	8b 46 45             	mov    0x45(%esi),%eax
40ced3:	89 43 45             	mov    %eax,0x45(%ebx)
40ced6:	50                   	push   %eax
40ced7:	50                   	push   %eax
40ced8:	6a 00                	push   $0x0
40ceda:	e8 41 79 ff ff       	call   0x404820
40cedf:	89 43 41             	mov    %eax,0x41(%ebx)
40cee2:	92                   	xchg   %eax,%edx
40cee3:	59                   	pop    %ecx
40cee4:	8b 46 41             	mov    0x41(%esi),%eax
40cee7:	e8 58 5a ff ff       	call   0x402944
40ceec:	43                   	inc    %ebx
40ceed:	61                   	popa
40ceee:	0f 95 c0             	setne  %al
40cef1:	c3                   	ret
40cef2:	8b c0                	mov    %eax,%eax
40cef4:	50                   	push   %eax
40cef5:	ff 50 34             	call   *0x34(%eax)
40cef8:	5a                   	pop    %edx
40cef9:	31 c0                	xor    %eax,%eax
40cefb:	87 42 24             	xchg   %eax,0x24(%edx)
40cefe:	e8 0d d3 ff ff       	call   0x40a210
40cf03:	c3                   	ret
40cf04:	53                   	push   %ebx
40cf05:	56                   	push   %esi
40cf06:	57                   	push   %edi
40cf07:	96                   	xchg   %eax,%esi
40cf08:	92                   	xchg   %eax,%edx
40cf09:	e8 66 d5 ff ff       	call   0x40a474
40cf0e:	97                   	xchg   %eax,%edi
40cf0f:	89 f0                	mov    %esi,%eax
40cf11:	e8 4e 00 00 00       	call   0x40cf64
40cf16:	91                   	xchg   %eax,%ecx
40cf17:	31 c0                	xor    %eax,%eax
40cf19:	e3 33                	jecxz  0x40cf4e
40cf1b:	8b 76 3d             	mov    0x3d(%esi),%esi
40cf1e:	83 c6 28             	add    $0x28,%esi
40cf21:	31 d2                	xor    %edx,%edx
40cf23:	52                   	push   %edx
40cf24:	66 4a                	dec    %dx
40cf26:	ad                   	lods   %ds:(%esi),%eax
40cf27:	31 f8                	xor    %edi,%eax
40cf29:	89 c3                	mov    %eax,%ebx
40cf2b:	c1 eb 10             	shr    $0x10,%ebx
40cf2e:	b7 00                	mov    $0x0,%bh
40cf30:	00 e0                	add    %ah,%al
40cf32:	b4 00                	mov    $0x0,%ah
40cf34:	66 11 d8             	adc    %bx,%ax
40cf37:	66 39 d0             	cmp    %dx,%ax
40cf3a:	73 05                	jae    0x40cf41
40cf3c:	66 89 c2             	mov    %ax,%dx
40cf3f:	5b                   	pop    %ebx
40cf40:	52                   	push   %edx
40cf41:	81 c2 00 00 01 00    	add    $0x10000,%edx
40cf47:	e2 dd                	loop   0x40cf26
40cf49:	91                   	xchg   %eax,%ecx
40cf4a:	66 58                	pop    %ax
40cf4c:	66 58                	pop    %ax
40cf4e:	5f                   	pop    %edi
40cf4f:	5e                   	pop    %esi
40cf50:	5b                   	pop    %ebx
40cf51:	c3                   	ret
40cf52:	8b c0                	mov    %eax,%eax
40cf54:	8b 48 3d             	mov    0x3d(%eax),%ecx
40cf57:	e3 05                	jecxz  0x40cf5e
40cf59:	8b 4c 91 28          	mov    0x28(%ecx,%edx,4),%ecx
40cf5d:	41                   	inc    %ecx
40cf5e:	49                   	dec    %ecx
40cf5f:	91                   	xchg   %eax,%ecx
40cf60:	c3                   	ret
40cf61:	8d 40 00             	lea    0x0(%eax),%eax
40cf64:	50                   	push   %eax
40cf65:	e8 f6 fb ff ff       	call   0x40cb60
40cf6a:	58                   	pop    %eax
40cf6b:	74 1a                	je     0x40cf87
40cf6d:	e8 56 c5 ff ff       	call   0x4094c8
40cf72:	0f b6 c8             	movzbl %al,%ecx
40cf75:	89 c8                	mov    %ecx,%eax
40cf77:	e2 02                	loop   0x40cf7b
40cf79:	40                   	inc    %eax
40cf7a:	c3                   	ret
40cf7b:	e2 03                	loop   0x40cf80
40cf7d:	b0 10                	mov    $0x10,%al
40cf7f:	c3                   	ret
40cf80:	e2 05                	loop   0x40cf87
40cf82:	31 c0                	xor    %eax,%eax
40cf84:	fe c4                	inc    %ah
40cf86:	c3                   	ret
40cf87:	31 c0                	xor    %eax,%eax
40cf89:	c3                   	ret
40cf8a:	8b c0                	mov    %eax,%eax
40cf8c:	83 48 52 ff          	orl    $0xffffffff,0x52(%eax)
40cf90:	31 d2                	xor    %edx,%edx
40cf92:	87 50 4e             	xchg   %edx,0x4e(%eax)
40cf95:	92                   	xchg   %eax,%edx
40cf96:	e8 75 d2 ff ff       	call   0x40a210
40cf9b:	c3                   	ret
40cf9c:	53                   	push   %ebx
40cf9d:	56                   	push   %esi
40cf9e:	55                   	push   %ebp
40cf9f:	57                   	push   %edi
40cfa0:	95                   	xchg   %eax,%ebp
40cfa1:	92                   	xchg   %eax,%edx
40cfa2:	e8 bd d4 ff ff       	call   0x40a464
40cfa7:	93                   	xchg   %eax,%ebx
40cfa8:	89 e8                	mov    %ebp,%eax
40cfaa:	e8 19 c5 ff ff       	call   0x4094c8
40cfaf:	3c 04                	cmp    $0x4,%al
40cfb1:	72 04                	jb     0x40cfb7
40cfb3:	3c 06                	cmp    $0x6,%al
40cfb5:	72 05                	jb     0x40cfbc
40cfb7:	0f cb                	bswap  %ebx
40cfb9:	c1 eb 08             	shr    $0x8,%ebx
40cfbc:	b2 02                	mov    $0x2,%dl
40cfbe:	38 d0                	cmp    %dl,%al
40cfc0:	72 06                	jb     0x40cfc8
40cfc2:	b2 07                	mov    $0x7,%dl
40cfc4:	38 d0                	cmp    %dl,%al
40cfc6:	76 07                	jbe    0x40cfcf
40cfc8:	89 e8                	mov    %ebp,%eax
40cfca:	e8 f5 fb ff ff       	call   0x40cbc4
40cfcf:	8b 45 1c             	mov    0x1c(%ebp),%eax
40cfd2:	8b 55 18             	mov    0x18(%ebp),%edx
40cfd5:	b1 01                	mov    $0x1,%cl
40cfd7:	e8 14 f7 ff ff       	call   0x40c6f0
40cfdc:	50                   	push   %eax
40cfdd:	31 d2                	xor    %edx,%edx
40cfdf:	42                   	inc    %edx
40cfe0:	b9 ff ff ff 00       	mov    $0xffffff,%ecx
40cfe5:	e8 9e c4 ff ff       	call   0x409488
40cfea:	31 d2                	xor    %edx,%edx
40cfec:	3b 55 18             	cmp    0x18(%ebp),%edx
40cfef:	0f 8d 66 01 00 00    	jge    0x40d15b
40cff5:	52                   	push   %edx
40cff6:	89 e8                	mov    %ebp,%eax
40cff8:	e8 0b fe ff ff       	call   0x40ce08
40cffd:	96                   	xchg   %eax,%esi
40cffe:	8b 44 24 04          	mov    0x4(%esp),%eax
40d002:	5a                   	pop    %edx
40d003:	52                   	push   %edx
40d004:	e8 ff fd ff ff       	call   0x40ce08
40d009:	97                   	xchg   %eax,%edi
40d00a:	89 e8                	mov    %ebp,%eax
40d00c:	e8 b7 c4 ff ff       	call   0x4094c8
40d011:	0f b6 c8             	movzbl %al,%ecx
40d014:	83 e9 02             	sub    $0x2,%ecx
40d017:	b2 08                	mov    $0x8,%dl
40d019:	75 52                	jne    0x40d06d
40d01b:	83 3c 24 00          	cmpl   $0x0,(%esp)
40d01f:	75 19                	jne    0x40d03a
40d021:	31 d2                	xor    %edx,%edx
40d023:	52                   	push   %edx
40d024:	89 e8                	mov    %ebp,%eax
40d026:	e8 29 ff ff ff       	call   0x40cf54
40d02b:	39 d8                	cmp    %ebx,%eax
40d02d:	5a                   	pop    %edx
40d02e:	74 06                	je     0x40d036
40d030:	42                   	inc    %edx
40d031:	83 fa 10             	cmp    $0x10,%edx
40d034:	72 ed                	jb     0x40d023
40d036:	87 da                	xchg   %ebx,%edx
40d038:	b2 08                	mov    $0x8,%dl
40d03a:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d03d:	41                   	inc    %ecx
40d03e:	d1 e9                	shr    $1,%ecx
40d040:	8a 26                	mov    (%esi),%ah
40d042:	c0 ec 04             	shr    $0x4,%ah
40d045:	38 dc                	cmp    %bl,%ah
40d047:	0f 94 c4             	sete   %ah
40d04a:	d0 e0                	shl    $1,%al
40d04c:	08 e0                	or     %ah,%al
40d04e:	8a 26                	mov    (%esi),%ah
40d050:	80 e4 0f             	and    $0xf,%ah
40d053:	38 dc                	cmp    %bl,%ah
40d055:	0f 94 c4             	sete   %ah
40d058:	d0 e0                	shl    $1,%al
40d05a:	08 e0                	or     %ah,%al
40d05c:	fe ca                	dec    %dl
40d05e:	fe ca                	dec    %dl
40d060:	75 03                	jne    0x40d065
40d062:	aa                   	stos   %al,%es:(%edi)
40d063:	b2 08                	mov    $0x8,%dl
40d065:	46                   	inc    %esi
40d066:	e2 d8                	loop   0x40d040
40d068:	e9 d7 00 00 00       	jmp    0x40d144
40d06d:	e2 39                	loop   0x40d0a8
40d06f:	83 3c 24 00          	cmpl   $0x0,(%esp)
40d073:	75 17                	jne    0x40d08c
40d075:	31 d2                	xor    %edx,%edx
40d077:	52                   	push   %edx
40d078:	89 e8                	mov    %ebp,%eax
40d07a:	e8 d5 fe ff ff       	call   0x40cf54
40d07f:	39 d8                	cmp    %ebx,%eax
40d081:	5a                   	pop    %edx
40d082:	74 04                	je     0x40d088
40d084:	fe c2                	inc    %dl
40d086:	75 ef                	jne    0x40d077
40d088:	87 da                	xchg   %ebx,%edx
40d08a:	b2 08                	mov    $0x8,%dl
40d08c:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d08f:	41                   	inc    %ecx
40d090:	3a 1e                	cmp    (%esi),%bl
40d092:	0f 94 c4             	sete   %ah
40d095:	d0 e0                	shl    $1,%al
40d097:	08 e0                	or     %ah,%al
40d099:	fe ca                	dec    %dl
40d09b:	75 03                	jne    0x40d0a0
40d09d:	aa                   	stos   %al,%es:(%edi)
40d09e:	b2 08                	mov    $0x8,%dl
40d0a0:	46                   	inc    %esi
40d0a1:	e2 ed                	loop   0x40d090
40d0a3:	e9 9c 00 00 00       	jmp    0x40d144
40d0a8:	e2 2a                	loop   0x40d0d4
40d0aa:	83 3c 24 00          	cmpl   $0x0,(%esp)
40d0ae:	75 09                	jne    0x40d0b9
40d0b0:	93                   	xchg   %eax,%ebx
40d0b1:	52                   	push   %edx
40d0b2:	e8 1d 83 ff ff       	call   0x4053d4
40d0b7:	5a                   	pop    %edx
40d0b8:	93                   	xchg   %eax,%ebx
40d0b9:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d0bc:	66 39 1e             	cmp    %bx,(%esi)
40d0bf:	0f 94 c4             	sete   %ah
40d0c2:	d0 e0                	shl    $1,%al
40d0c4:	08 e0                	or     %ah,%al
40d0c6:	fe ca                	dec    %dl
40d0c8:	75 03                	jne    0x40d0cd
40d0ca:	aa                   	stos   %al,%es:(%edi)
40d0cb:	b2 08                	mov    $0x8,%dl
40d0cd:	83 c6 02             	add    $0x2,%esi
40d0d0:	e2 ea                	loop   0x40d0bc
40d0d2:	eb 70                	jmp    0x40d144
40d0d4:	e2 2a                	loop   0x40d100
40d0d6:	83 3c 24 00          	cmpl   $0x0,(%esp)
40d0da:	75 09                	jne    0x40d0e5
40d0dc:	93                   	xchg   %eax,%ebx
40d0dd:	52                   	push   %edx
40d0de:	e8 a1 d3 ff ff       	call   0x40a484
40d0e3:	5a                   	pop    %edx
40d0e4:	93                   	xchg   %eax,%ebx
40d0e5:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d0e8:	66 39 1e             	cmp    %bx,(%esi)
40d0eb:	0f 94 c4             	sete   %ah
40d0ee:	d0 e0                	shl    $1,%al
40d0f0:	08 e0                	or     %ah,%al
40d0f2:	fe ca                	dec    %dl
40d0f4:	75 03                	jne    0x40d0f9
40d0f6:	aa                   	stos   %al,%es:(%edi)
40d0f7:	b2 08                	mov    $0x8,%dl
40d0f9:	83 c6 02             	add    $0x2,%esi
40d0fc:	e2 ea                	loop   0x40d0e8
40d0fe:	eb 44                	jmp    0x40d144
40d100:	e2 24                	loop   0x40d126
40d102:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d105:	55                   	push   %ebp
40d106:	8b 2e                	mov    (%esi),%ebp
40d108:	81 e5 ff ff ff 00    	and    $0xffffff,%ebp
40d10e:	39 dd                	cmp    %ebx,%ebp
40d110:	0f 94 c4             	sete   %ah
40d113:	d0 e0                	shl    $1,%al
40d115:	08 e0                	or     %ah,%al
40d117:	fe ca                	dec    %dl
40d119:	75 03                	jne    0x40d11e
40d11b:	aa                   	stos   %al,%es:(%edi)
40d11c:	b2 08                	mov    $0x8,%dl
40d11e:	83 c6 03             	add    $0x3,%esi
40d121:	e2 e3                	loop   0x40d106
40d123:	5d                   	pop    %ebp
40d124:	eb 1e                	jmp    0x40d144
40d126:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40d129:	81 26 ff ff ff 00    	andl   $0xffffff,(%esi)
40d12f:	3b 1e                	cmp    (%esi),%ebx
40d131:	0f 94 c4             	sete   %ah
40d134:	d0 e0                	shl    $1,%al
40d136:	08 e0                	or     %ah,%al
40d138:	fe ca                	dec    %dl
40d13a:	75 03                	jne    0x40d13f
40d13c:	aa                   	stos   %al,%es:(%edi)
40d13d:	b2 08                	mov    $0x8,%dl
40d13f:	83 c6 04             	add    $0x4,%esi
40d142:	e2 e5                	loop   0x40d129
40d144:	84 d2                	test   %dl,%dl
40d146:	74 0c                	je     0x40d154
40d148:	80 fa 08             	cmp    $0x8,%dl
40d14b:	74 07                	je     0x40d154
40d14d:	d0 e0                	shl    $1,%al
40d14f:	fe ca                	dec    %dl
40d151:	75 fa                	jne    0x40d14d
40d153:	aa                   	stos   %al,%es:(%edi)
40d154:	5a                   	pop    %edx
40d155:	42                   	inc    %edx
40d156:	e9 91 fe ff ff       	jmp    0x40cfec
40d15b:	5a                   	pop    %edx
40d15c:	52                   	push   %edx
40d15d:	95                   	xchg   %eax,%ebp
40d15e:	e8 11 fd ff ff       	call   0x40ce74
40d163:	58                   	pop    %eax
40d164:	e8 a7 d0 ff ff       	call   0x40a210
40d169:	5f                   	pop    %edi
40d16a:	5d                   	pop    %ebp
40d16b:	5e                   	pop    %esi
40d16c:	5b                   	pop    %ebx
40d16d:	c3                   	ret
40d16e:	8b c0                	mov    %eax,%eax
40d170:	53                   	push   %ebx
40d171:	89 c3                	mov    %eax,%ebx
40d173:	51                   	push   %ecx
40d174:	52                   	push   %edx
40d175:	e8 e6 f9 ff ff       	call   0x40cb60
40d17a:	9c                   	pushf
40d17b:	83 c8 ff             	or     $0xffffffff,%eax
40d17e:	9d                   	popf
40d17f:	74 1a                	je     0x40d19b
40d181:	e8 32 7f ff ff       	call   0x4050b8