40cd26:	33 db                	xor    %ebx,%ebx
40cd28:	56                   	push   %esi
40cd29:	39 1d c8 7c 43 00    	cmp    %ebx,0x437cc8
40cd2f:	75 0a                	jne    0x40cd3b
40cd31:	b9 c0 7c 43 00       	mov    $0x437cc0,%ecx
40cd36:	e8 a8 ff ff ff       	call   0x40cce3
40cd3b:	8b 75 0c             	mov    0xc(%ebp),%esi
40cd3e:	8b ce                	mov    %esi,%ecx
40cd40:	83 e1 0f             	and    $0xf,%ecx
40cd43:	8b c6                	mov    %esi,%eax
40cd45:	2b c1                	sub    %ecx,%eax
40cd47:	38 5d 10             	cmp    %bl,0x10(%ebp)
40cd4a:	74 39                	je     0x40cd85
40cd4c:	8b 0d c8 7c 43 00    	mov    0x437cc8,%ecx
40cd52:	3b cb                	cmp    %ebx,%ecx
40cd54:	74 4b                	je     0x40cda1
40cd56:	53                   	push   %ebx
40cd57:	50                   	push   %eax
40cd58:	ff 75 08             	push   0x8(%ebp)
40cd5b:	ff d1                	call   *%ecx
40cd5d:	85 c0                	test   %eax,%eax
40cd5f:	75 61                	jne    0x40cdc2
40cd61:	68 94 a7 42 00       	push   $0x42a794
40cd66:	be 74 2a 43 00       	mov    $0x432a74,%esi
40cd6b:	56                   	push   %esi
40cd6c:	e8 ec 97 ff ff       	call   0x40655d
40cd71:	59                   	pop    %ecx
40cd72:	59                   	pop    %ecx
40cd73:	8b ce                	mov    %esi,%ecx
40cd75:	e8 86 42 ff ff       	call   0x401000
40cd7a:	6a 02                	push   $0x2
40cd7c:	8b ce                	mov    %esi,%ecx
40cd7e:	e8 28 97 ff ff       	call   0x4064ab
40cd83:	eb 3d                	jmp    0x40cdc2
40cd85:	8b 0d cc 7c 43 00    	mov    0x437ccc,%ecx
40cd8b:	3b cb                	cmp    %ebx,%ecx
40cd8d:	74 12                	je     0x40cda1
40cd8f:	53                   	push   %ebx
40cd90:	50                   	push   %eax
40cd91:	ff 75 08             	push   0x8(%ebp)
40cd94:	ff d1                	call   *%ecx
40cd96:	85 c0                	test   %eax,%eax
40cd98:	75 28                	jne    0x40cdc2
40cd9a:	68 5c a7 42 00       	push   $0x42a75c
40cd9f:	eb c5                	jmp    0x40cd66
40cda1:	ff 15 90 a0 42 00    	call   *0x42a090
40cda7:	33 c9                	xor    %ecx,%ecx
40cda9:	3b f3                	cmp    %ebx,%esi
40cdab:	76 15                	jbe    0x40cdc2
40cdad:	8a d0                	mov    %al,%dl
40cdaf:	80 c2 4b             	add    $0x4b,%dl
40cdb2:	8b 45 08             	mov    0x8(%ebp),%eax
40cdb5:	03 c1                	add    %ecx,%eax
40cdb7:	8a da                	mov    %dl,%bl
40cdb9:	02 d9                	add    %cl,%bl
40cdbb:	30 18                	xor    %bl,(%eax)
40cdbd:	41                   	inc    %ecx
40cdbe:	3b ce                	cmp    %esi,%ecx
40cdc0:	72 f0                	jb     0x40cdb2
40cdc2:	5e                   	pop    %esi
40cdc3:	5b                   	pop    %ebx
40cdc4:	5d                   	pop    %ebp
40cdc5:	c2 0c 00             	ret    $0xc
40cdc8:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40cdcc:	8b 44 24 04          	mov    0x4(%esp),%eax
40cdd0:	85 c9                	test   %ecx,%ecx
40cdd2:	74 07                	je     0x40cddb
40cdd4:	c6 00 00             	movb   $0x0,(%eax)
40cdd7:	40                   	inc    %eax
40cdd8:	49                   	dec    %ecx
40cdd9:	75 f9                	jne    0x40cdd4
40cddb:	c2 08 00             	ret    $0x8
40cdde:	55                   	push   %ebp
40cddf:	8b ec                	mov    %esp,%ebp
40cde1:	8b 45 0c             	mov    0xc(%ebp),%eax
40cde4:	56                   	push   %esi
40cde5:	8b 75 14             	mov    0x14(%ebp),%esi
40cde8:	3b c6                	cmp    %esi,%eax
40cdea:	72 02                	jb     0x40cdee
40cdec:	8b c6                	mov    %esi,%eax
40cdee:	03 c0                	add    %eax,%eax
40cdf0:	50                   	push   %eax
40cdf1:	ff 75 08             	push   0x8(%ebp)
40cdf4:	ff 75 10             	push   0x10(%ebp)
40cdf7:	e8 74 ee 00 00       	call   0x41bc70
40cdfc:	83 c4 0c             	add    $0xc,%esp
40cdff:	ff 75 18             	push   0x18(%ebp)
40ce02:	8d 04 36             	lea    (%esi,%esi,1),%eax
40ce05:	50                   	push   %eax
40ce06:	ff 75 10             	push   0x10(%ebp)
40ce09:	e8 14 ff ff ff       	call   0x40cd22
40ce0e:	5e                   	pop    %esi
40ce0f:	5d                   	pop    %ebp
40ce10:	c2 14 00             	ret    $0x14
40ce13:	80 b9 00 01 00 00 00 	cmpb   $0x0,0x100(%ecx)
40ce1a:	74 24                	je     0x40ce40
40ce1c:	56                   	push   %esi
40ce1d:	8b 74 24 0c          	mov    0xc(%esp),%esi
40ce21:	57                   	push   %edi
40ce22:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40ce26:	6a 00                	push   $0x0
40ce28:	56                   	push   %esi
40ce29:	57                   	push   %edi
40ce2a:	68 80 00 00 00       	push   $0x80
40ce2f:	51                   	push   %ecx
40ce30:	e8 a9 ff ff ff       	call   0x40cdde
40ce35:	33 c0                	xor    %eax,%eax
40ce37:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
40ce3c:	5f                   	pop    %edi
40ce3d:	5e                   	pop    %esi
40ce3e:	eb 09                	jmp    0x40ce49
40ce40:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40ce44:	33 c0                	xor    %eax,%eax
40ce46:	66 89 01             	mov    %ax,(%ecx)
40ce49:	c2 08 00             	ret    $0x8
40ce4c:	56                   	push   %esi
40ce4d:	57                   	push   %edi
40ce4e:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40ce52:	33 c0                	xor    %eax,%eax
40ce54:	8b f1                	mov    %ecx,%esi
40ce56:	66 39 07             	cmp    %ax,(%edi)
40ce59:	75 17                	jne    0x40ce72
40ce5b:	68 00 01 00 00       	push   $0x100
40ce60:	50                   	push   %eax
40ce61:	56                   	push   %esi
40ce62:	88 86 00 01 00 00    	mov    %al,0x100(%esi)
40ce68:	e8 93 d3 00 00       	call   0x41a200
40ce6d:	83 c4 0c             	add    $0xc,%esp
40ce70:	eb 20                	jmp    0x40ce92
40ce72:	6a 01                	push   $0x1
40ce74:	68 80 00 00 00       	push   $0x80
40ce79:	56                   	push   %esi
40ce7a:	57                   	push   %edi
40ce7b:	c6 86 00 01 00 00 01 	movb   $0x1,0x100(%esi)
40ce82:	e8 04 d3 00 00       	call   0x41a18b
40ce87:	59                   	pop    %ecx
40ce88:	40                   	inc    %eax
40ce89:	50                   	push   %eax
40ce8a:	57                   	push   %edi
40ce8b:	8b ce                	mov    %esi,%ecx
40ce8d:	e8 4c ff ff ff       	call   0x40cdde
40ce92:	5f                   	pop    %edi
40ce93:	5e                   	pop    %esi
40ce94:	c2 04 00             	ret    $0x4
40ce97:	55                   	push   %ebp
40ce98:	8b ec                	mov    %esp,%ebp
40ce9a:	81 ec 00 02 00 00    	sub    $0x200,%esp
40cea0:	56                   	push   %esi
40cea1:	be 80 00 00 00       	mov    $0x80,%esi
40cea6:	56                   	push   %esi
40cea7:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40cead:	50                   	push   %eax
40ceae:	e8 60 ff ff ff       	call   0x40ce13
40ceb3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ceb6:	56                   	push   %esi
40ceb7:	8d 85 00 fe ff ff    	lea    -0x200(%ebp),%eax
40cebd:	50                   	push   %eax
40cebe:	e8 50 ff ff ff       	call   0x40ce13
40cec3:	8d 85 00 fe ff ff    	lea    -0x200(%ebp),%eax
40cec9:	50                   	push   %eax
40ceca:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40ced0:	50                   	push   %eax
40ced1:	e8 2b d5 00 00       	call   0x41a401
40ced6:	f7 d8                	neg    %eax
40ced8:	59                   	pop    %ecx
40ced9:	1a c0                	sbb    %al,%al
40cedb:	59                   	pop    %ecx
40cedc:	fe c0                	inc    %al
40cede:	8b d6                	mov    %esi,%edx
40cee0:	8d 8d 00 ff ff ff    	lea    -0x100(%ebp),%ecx
40cee6:	c6 01 00             	movb   $0x0,(%ecx)
40cee9:	41                   	inc    %ecx
40ceea:	4a                   	dec    %edx
40ceeb:	75 f9                	jne    0x40cee6
40ceed:	8d 8d 00 fe ff ff    	lea    -0x200(%ebp),%ecx
40cef3:	c6 01 00             	movb   $0x0,(%ecx)
40cef6:	41                   	inc    %ecx
40cef7:	4e                   	dec    %esi
40cef8:	75 f9                	jne    0x40cef3
40cefa:	5e                   	pop    %esi
40cefb:	c9                   	leave
40cefc:	c2 04 00             	ret    $0x4
40ceff:	56                   	push   %esi
40cf00:	68 3c a5 42 00       	push   $0x42a53c
40cf05:	8b f1                	mov    %ecx,%esi
40cf07:	e8 40 ff ff ff       	call   0x40ce4c
40cf0c:	8b c6                	mov    %esi,%eax
40cf0e:	5e                   	pop    %esi
40cf0f:	c3                   	ret
40cf10:	68 00 01 00 00       	push   $0x100
40cf15:	51                   	push   %ecx
40cf16:	c6 81 00 01 00 00 00 	movb   $0x0,0x100(%ecx)
40cf1d:	e8 a6 fe ff ff       	call   0x40cdc8
40cf22:	c3                   	ret
40cf23:	e9 e8 ff ff ff       	jmp    0x40cf10
40cf28:	55                   	push   %ebp
40cf29:	8b ec                	mov    %esp,%ebp
40cf2b:	83 ec 1c             	sub    $0x1c,%esp
40cf2e:	56                   	push   %esi
40cf2f:	33 f6                	xor    %esi,%esi
40cf31:	56                   	push   %esi
40cf32:	56                   	push   %esi
40cf33:	56                   	push   %esi
40cf34:	56                   	push   %esi
40cf35:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40cf38:	50                   	push   %eax
40cf39:	ff 15 10 a3 42 00    	call   *0x42a310
40cf3f:	85 c0                	test   %eax,%eax
40cf41:	74 21                	je     0x40cf64
40cf43:	56                   	push   %esi
40cf44:	56                   	push   %esi
40cf45:	56                   	push   %esi
40cf46:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40cf49:	50                   	push   %eax
40cf4a:	ff 15 14 a3 42 00    	call   *0x42a314
40cf50:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40cf53:	50                   	push   %eax
40cf54:	ff 15 18 a3 42 00    	call   *0x42a318
40cf5a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40cf5d:	50                   	push   %eax
40cf5e:	ff 15 1c a3 42 00    	call   *0x42a31c
40cf64:	5e                   	pop    %esi
40cf65:	c9                   	leave
40cf66:	c3                   	ret
40cf67:	55                   	push   %ebp
40cf68:	8b ec                	mov    %esp,%ebp
40cf6a:	81 ec 2c 01 00 00    	sub    $0x12c,%esp
40cf70:	83 3d d4 f0 42 00 00 	cmpl   $0x0,0x42f0d4
40cf77:	53                   	push   %ebx
40cf78:	56                   	push   %esi
40cf79:	57                   	push   %edi
40cf7a:	bf 00 04 00 00       	mov    $0x400,%edi
40cf7f:	75 31                	jne    0x40cfb2
40cf81:	6a 64                	push   $0x64
40cf83:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
40cf89:	50                   	push   %eax
40cf8a:	6a 0f                	push   $0xf
40cf8c:	57                   	push   %edi
40cf8d:	ff 15 94 a0 42 00    	call   *0x42a094
40cf93:	66 8b 85 d4 fe ff ff 	mov    -0x12c(%ebp),%ax
40cf9a:	66 a3 e4 c3 44 00    	mov    %ax,0x44c3e4
40cfa0:	33 c0                	xor    %eax,%eax
40cfa2:	66 a3 e6 c3 44 00    	mov    %ax,0x44c3e6
40cfa8:	c7 05 d4 f0 42 00 e4 	movl   $0x44c3e4,0x42f0d4
40cfaf:	c3 44 00
40cfb2:	8d 45 9c             	lea    -0x64(%ebp),%eax
40cfb5:	50                   	push   %eax
40cfb6:	ff 75 0c             	push   0xc(%ebp)
40cfb9:	ff 75 08             	push   0x8(%ebp)
40cfbc:	e8 ba 39 00 00       	call   0x41097b
40cfc1:	8b 5d 14             	mov    0x14(%ebp),%ebx
40cfc4:	8b 75 10             	mov    0x10(%ebp),%esi
40cfc7:	53                   	push   %ebx
40cfc8:	56                   	push   %esi
40cfc9:	33 c0                	xor    %eax,%eax
40cfcb:	68 c4 f0 42 00       	push   $0x42f0c4
40cfd0:	66 89 06             	mov    %ax,(%esi)
40cfd3:	8d 45 9c             	lea    -0x64(%ebp),%eax
40cfd6:	50                   	push   %eax
40cfd7:	6a 00                	push   $0x0
40cfd9:	57                   	push   %edi
40cfda:	ff 15 98 a0 42 00    	call   *0x42a098
40cfe0:	33 c0                	xor    %eax,%eax
40cfe2:	5f                   	pop    %edi
40cfe3:	66 89 44 5e fe       	mov    %ax,-0x2(%esi,%ebx,2)
40cfe8:	5e                   	pop    %esi
40cfe9:	5b                   	pop    %ebx
40cfea:	c9                   	leave
40cfeb:	c2 10 00             	ret    $0x10
40cfee:	55                   	push   %ebp
40cfef:	8b ec                	mov    %esp,%ebp
40cff1:	8b 45 08             	mov    0x8(%ebp),%eax
40cff4:	3d 40 42 0f 00       	cmp    $0xf4240,%eax
40cff9:	76 07                	jbe    0x40d002
40cffb:	c1 e8 08             	shr    $0x8,%eax
40cffe:	c1 6d 0c 08          	shrl   $0x8,0xc(%ebp)
40d002:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40d006:	75 04                	jne    0x40d00c
40d008:	33 c0                	xor    %eax,%eax
40d00a:	eb 12                	jmp    0x40d01e
40d00c:	39 45 0c             	cmp    %eax,0xc(%ebp)
40d00f:	73 05                	jae    0x40d016
40d011:	6a 64                	push   $0x64
40d013:	58                   	pop    %eax
40d014:	eb 08                	jmp    0x40d01e
40d016:	6b c0 64             	imul   $0x64,%eax,%eax
40d019:	33 d2                	xor    %edx,%edx
40d01b:	f7 75 0c             	divl   0xc(%ebp)
40d01e:	5d                   	pop    %ebp
40d01f:	c2 08 00             	ret    $0x8
40d022:	55                   	push   %ebp
40d023:	8b ec                	mov    %esp,%ebp
40d025:	51                   	push   %ecx
40d026:	51                   	push   %ecx
40d027:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d02a:	50                   	push   %eax
40d02b:	ff 15 58 a2 42 00    	call   *0x42a258
40d031:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d034:	50                   	push   %eax
40d035:	ff 75 0c             	push   0xc(%ebp)
40d038:	6a 00                	push   $0x0
40d03a:	ff 15 5c a2 42 00    	call   *0x42a25c
40d040:	ff 75 08             	push   0x8(%ebp)
40d043:	ff 75 fc             	push   -0x4(%ebp)
40d046:	ff 15 74 a2 42 00    	call   *0x42a274
40d04c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d04f:	ff 75 fc             	push   -0x4(%ebp)
40d052:	8b 08                	mov    (%eax),%ecx
40d054:	50                   	push   %eax
40d055:	ff 51 14             	call   *0x14(%ecx)
40d058:	c9                   	leave
40d059:	c2 08 00             	ret    $0x8
40d05c:	8b 44 24 04          	mov    0x4(%esp),%eax
40d060:	66 83 38 00          	cmpw   $0x0,(%eax)
40d064:	8b c8                	mov    %eax,%ecx
40d066:	74 38                	je     0x40d0a0
40d068:	56                   	push   %esi
40d069:	0f b7 11             	movzwl (%ecx),%edx
40d06c:	66 83 fa 5c          	cmp    $0x5c,%dx
40d070:	75 20                	jne    0x40d092
40d072:	0f b7 71 02          	movzwl 0x2(%ecx),%esi
40d076:	66 3b f2             	cmp    %dx,%si
40d079:	75 0d                	jne    0x40d088
40d07b:	6a 5c                	push   $0x5c
40d07d:	5a                   	pop    %edx
40d07e:	66 89 10             	mov    %dx,(%eax)
40d081:	40                   	inc    %eax
40d082:	40                   	inc    %eax
40d083:	83 c1 04             	add    $0x4,%ecx
40d086:	eb 11                	jmp    0x40d099
40d088:	66 83 fe 6e          	cmp    $0x6e,%si
40d08c:	75 04                	jne    0x40d092
40d08e:	6a 0a                	push   $0xa
40d090:	eb eb                	jmp    0x40d07d
40d092:	66 89 10             	mov    %dx,(%eax)
40d095:	40                   	inc    %eax
40d096:	40                   	inc    %eax
40d097:	41                   	inc    %ecx
40d098:	41                   	inc    %ecx
40d099:	66 83 39 00          	cmpw   $0x0,(%ecx)
40d09d:	75 ca                	jne    0x40d069
40d09f:	5e                   	pop    %esi
40d0a0:	33 c9                	xor    %ecx,%ecx
40d0a2:	66 89 08             	mov    %cx,(%eax)
40d0a5:	c2 04 00             	ret    $0x4
40d0a8:	83 3d e8 c3 44 00 00 	cmpl   $0x0,0x44c3e8
40d0af:	75 27                	jne    0x40d0d8
40d0b1:	56                   	push   %esi
40d0b2:	6a 00                	push   $0x0
40d0b4:	ff 15 08 a3 42 00    	call   *0x42a308