411cb5:	83 e2 07             	and    $0x7,%edx
411cb8:	03 c2                	add    %edx,%eax
411cba:	c1 f8 03             	sar    $0x3,%eax
411cbd:	6a 0c                	push   $0xc
411cbf:	5b                   	pop    %ebx
411cc0:	33 d2                	xor    %edx,%edx
411cc2:	f7 f3                	div    %ebx
411cc4:	6a 0c                	push   $0xc
411cc6:	33 d2                	xor    %edx,%edx
411cc8:	8b 8e ac 00 00 00    	mov    0xac(%esi),%ecx
411cce:	89 8e 50 01 00 00    	mov    %ecx,0x150(%esi)
411cd4:	8b d8                	mov    %eax,%ebx
411cd6:	6b db 54             	imul   $0x54,%ebx,%ebx
411cd9:	2b fb                	sub    %ebx,%edi
411cdb:	8b c7                	mov    %edi,%eax
411cdd:	89 45 f8             	mov    %eax,-0x8(%ebp)
411ce0:	5f                   	pop    %edi
411ce1:	f7 f7                	div    %edi
411ce3:	6a 0c                	push   $0xc
411ce5:	33 d2                	xor    %edx,%edx
411ce7:	40                   	inc    %eax
411ce8:	6b c0 0c             	imul   $0xc,%eax,%eax
411ceb:	8d 3c 08             	lea    (%eax,%ecx,1),%edi
411cee:	8b 45 f8             	mov    -0x8(%ebp),%eax
411cf1:	03 c8                	add    %eax,%ecx
411cf3:	89 8e 5c 01 00 00    	mov    %ecx,0x15c(%esi)
411cf9:	59                   	pop    %ecx
411cfa:	8b c3                	mov    %ebx,%eax
411cfc:	f7 f1                	div    %ecx
411cfe:	6a 04                	push   $0x4
411d00:	5a                   	pop    %edx
411d01:	52                   	push   %edx
411d02:	89 be 54 01 00 00    	mov    %edi,0x154(%esi)
411d08:	89 be b0 00 00 00    	mov    %edi,0xb0(%esi)
411d0e:	59                   	pop    %ecx
411d0f:	6b c0 0c             	imul   $0xc,%eax,%eax
411d12:	03 c7                	add    %edi,%eax
411d14:	89 86 b4 00 00 00    	mov    %eax,0xb4(%esi)
411d1a:	33 c0                	xor    %eax,%eax
411d1c:	40                   	inc    %eax
411d1d:	88 44 06 03          	mov    %al,0x3(%esi,%eax,1)
411d21:	40                   	inc    %eax
411d22:	4a                   	dec    %edx
411d23:	75 f8                	jne    0x411d1d
411d25:	40                   	inc    %eax
411d26:	88 44 0e 04          	mov    %al,0x4(%esi,%ecx,1)
411d2a:	41                   	inc    %ecx
411d2b:	40                   	inc    %eax
411d2c:	40                   	inc    %eax
411d2d:	83 f9 08             	cmp    $0x8,%ecx
411d30:	7c f4                	jl     0x411d26
411d32:	40                   	inc    %eax
411d33:	eb 08                	jmp    0x411d3d
411d35:	88 44 0e 04          	mov    %al,0x4(%esi,%ecx,1)
411d39:	41                   	inc    %ecx
411d3a:	83 c0 03             	add    $0x3,%eax
411d3d:	83 f9 0c             	cmp    $0xc,%ecx
411d40:	7c f3                	jl     0x411d35
411d42:	40                   	inc    %eax
411d43:	eb 08                	jmp    0x411d4d
411d45:	88 44 0e 04          	mov    %al,0x4(%esi,%ecx,1)
411d49:	41                   	inc    %ecx
411d4a:	83 c0 04             	add    $0x4,%eax
411d4d:	83 f9 26             	cmp    $0x26,%ecx
411d50:	7c f3                	jl     0x411d45
411d52:	33 c9                	xor    %ecx,%ecx
411d54:	c7 45 fc d7 ff ff ff 	movl   $0xffffffd7,-0x4(%ebp)
411d5b:	29 75 fc             	sub    %esi,-0x4(%ebp)
411d5e:	88 8e aa 00 00 00    	mov    %cl,0xaa(%esi)
411d64:	8d 46 2a             	lea    0x2a(%esi),%eax
411d67:	c7 45 f8 80 00 00 00 	movl   $0x80,-0x8(%ebp)
411d6e:	0f b6 54 0e 04       	movzbl 0x4(%esi,%ecx,1),%edx
411d73:	8b 7d fc             	mov    -0x4(%ebp),%edi
411d76:	33 db                	xor    %ebx,%ebx
411d78:	03 f8                	add    %eax,%edi
411d7a:	3b d7                	cmp    %edi,%edx
411d7c:	0f 9c c3             	setl   %bl
411d7f:	03 cb                	add    %ebx,%ecx
411d81:	88 08                	mov    %cl,(%eax)
411d83:	40                   	inc    %eax
411d84:	ff 4d f8             	decl   -0x8(%ebp)
411d87:	75 e5                	jne    0x411d6e
411d89:	5f                   	pop    %edi
411d8a:	5e                   	pop    %esi
411d8b:	5b                   	pop    %ebx
411d8c:	c9                   	leave
411d8d:	c3                   	ret
411d8e:	56                   	push   %esi
411d8f:	6a 01                	push   $0x1
411d91:	68 60 f1 42 00       	push   $0x42f160
411d96:	8b f1                	mov    %ecx,%esi
411d98:	e8 56 b4 00 00       	call   0x41d1f3
411d9d:	c7 06 8c b1 42 00    	movl   $0x42b18c,(%esi)
411da3:	8b c6                	mov    %esi,%eax
411da5:	5e                   	pop    %esi
411da6:	c3                   	ret
411da7:	c7 01 8c b1 42 00    	movl   $0x42b18c,(%ecx)
411dad:	e9 bb b4 00 00       	jmp    0x41d26d
411db2:	56                   	push   %esi
411db3:	8b f1                	mov    %ecx,%esi
411db5:	c7 06 8c b1 42 00    	movl   $0x42b18c,(%esi)
411dbb:	e8 ad b4 00 00       	call   0x41d26d
411dc0:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
411dc5:	74 07                	je     0x411dce
411dc7:	56                   	push   %esi
411dc8:	e8 0a 81 00 00       	call   0x419ed7
411dcd:	59                   	pop    %ecx
411dce:	8b c6                	mov    %esi,%eax
411dd0:	5e                   	pop    %esi
411dd1:	c2 04 00             	ret    $0x4
411dd4:	55                   	push   %ebp
411dd5:	8b ec                	mov    %esp,%ebp
411dd7:	8b 45 0c             	mov    0xc(%ebp),%eax
411dda:	53                   	push   %ebx
411ddb:	56                   	push   %esi
411ddc:	8b f1                	mov    %ecx,%esi
411dde:	0f b6 5c 30 29       	movzbl 0x29(%eax,%esi,1),%ebx
411de3:	8b 45 10             	mov    0x10(%ebp),%eax
411de6:	0f b6 54 30 29       	movzbl 0x29(%eax,%esi,1),%edx
411deb:	89 5d 0c             	mov    %ebx,0xc(%ebp)
411dee:	3b da                	cmp    %edx,%ebx
411df0:	75 05                	jne    0x411df7
411df2:	8b 45 08             	mov    0x8(%ebp),%eax
411df5:	eb 47                	jmp    0x411e3e
411df7:	8d 8c 96 b8 00 00 00 	lea    0xb8(%esi,%edx,4),%ecx
411dfe:	57                   	push   %edi
411dff:	8b 39                	mov    (%ecx),%edi
411e01:	85 ff                	test   %edi,%edi
411e03:	74 29                	je     0x411e2e
411e05:	8b 5d 08             	mov    0x8(%ebp),%ebx
411e08:	6b c0 0c             	imul   $0xc,%eax,%eax
411e0b:	8b 17                	mov    (%edi),%edx
411e0d:	50                   	push   %eax
411e0e:	53                   	push   %ebx
411e0f:	57                   	push   %edi
411e10:	89 11                	mov    %edx,(%ecx)
411e12:	e8 59 9e 00 00       	call   0x41bc70
411e17:	8b 45 0c             	mov    0xc(%ebp),%eax
411e1a:	8d 84 86 b8 00 00 00 	lea    0xb8(%esi,%eax,4),%eax
411e21:	8b 08                	mov    (%eax),%ecx
411e23:	89 0b                	mov    %ecx,(%ebx)
411e25:	89 18                	mov    %ebx,(%eax)
411e27:	83 c4 0c             	add    $0xc,%esp
411e2a:	8b c7                	mov    %edi,%eax
411e2c:	eb 0f                	jmp    0x411e3d
411e2e:	52                   	push   %edx
411e2f:	53                   	push   %ebx
411e30:	ff 75 08             	push   0x8(%ebp)
411e33:	8b ce                	mov    %esi,%ecx
411e35:	e8 85 fd ff ff       	call   0x411bbf
411e3a:	8b 45 08             	mov    0x8(%ebp),%eax
411e3d:	5f                   	pop    %edi
411e3e:	5e                   	pop    %esi
411e3f:	5b                   	pop    %ebx
411e40:	5d                   	pop    %ebp
411e41:	c2 0c 00             	ret    $0xc
411e44:	53                   	push   %ebx
411e45:	55                   	push   %ebp
411e46:	56                   	push   %esi
411e47:	8b 74 24 10          	mov    0x10(%esp),%esi
411e4b:	8b 86 50 06 00 00    	mov    0x650(%esi),%eax
411e51:	0f b6 00             	movzbl (%eax),%eax
411e54:	8a 84 30 6c 09 00 00 	mov    0x96c(%eax,%esi,1),%al
411e5b:	88 86 6e 0a 00 00    	mov    %al,0xa6e(%esi)
411e61:	57                   	push   %edi
411e62:	8d 79 02             	lea    0x2(%ecx),%edi
411e65:	8b 49 08             	mov    0x8(%ecx),%ecx
411e68:	0f b7 09             	movzwl (%ecx),%ecx
411e6b:	0f b6 17             	movzbl (%edi),%edx
411e6e:	0f b6 94 32 6c 09 00 	movzbl 0x96c(%edx,%esi,1),%edx
411e75:	00
411e76:	0f b6 5f 01          	movzbl 0x1(%edi),%ebx
411e7a:	0f b6 8c 31 6b 08 00 	movzbl 0x86b(%ecx,%esi,1),%ecx
411e81:	00
411e82:	c1 e3 05             	shl    $0x5,%ebx
411e85:	03 d3                	add    %ebx,%edx
411e87:	8d 8c 51 f8 04 00 00 	lea    0x4f8(%ecx,%edx,2),%ecx
411e8e:	8b 96 64 06 00 00    	mov    0x664(%esi),%edx
411e94:	c1 fa 1a             	sar    $0x1a,%edx
411e97:	83 e2 20             	and    $0x20,%edx
411e9a:	03 ca                	add    %edx,%ecx
411e9c:	0f b6 96 6d 0a 00 00 	movzbl 0xa6d(%esi),%edx
411ea3:	03 ca                	add    %edx,%ecx
411ea5:	0f b6 c0             	movzbl %al,%eax
411ea8:	8d 96 70 4a 00 00    	lea    0x4a70(%esi),%edx
411eae:	c1 6a 08 0e          	shrl   $0xe,0x8(%edx)
411eb2:	8b 6a 08             	mov    0x8(%edx),%ebp
411eb5:	03 c8                	add    %eax,%ecx
411eb7:	8b 42 04             	mov    0x4(%edx),%eax
411eba:	2b 02                	sub    (%edx),%eax
411ebc:	33 d2                	xor    %edx,%edx
411ebe:	f7 f5                	div    %ebp
411ec0:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
411ec3:	0f b7 19             	movzwl (%ecx),%ebx
411ec6:	3b c3                	cmp    %ebx,%eax
411ec8:	73 46                	jae    0x411f10
411eca:	89 be 50 06 00 00    	mov    %edi,0x650(%esi)
411ed0:	8a 47 01             	mov    0x1(%edi),%al
411ed3:	3c 80                	cmp    $0x80,%al
411ed5:	0f 92 c2             	setb   %dl
411ed8:	02 d0                	add    %al,%dl
411eda:	88 57 01             	mov    %dl,0x1(%edi)
411edd:	83 a6 7c 4a 00 00 00 	andl   $0x0,0x4a7c(%esi)
411ee4:	0f b7 01             	movzwl (%ecx),%eax
411ee7:	89 86 80 4a 00 00    	mov    %eax,0x4a80(%esi)
411eed:	0f b7 01             	movzwl (%ecx),%eax
411ef0:	0f b7 d0             	movzwl %ax,%edx
411ef3:	83 c2 20             	add    $0x20,%edx
411ef6:	c1 fa 07             	sar    $0x7,%edx
411ef9:	2b c2                	sub    %edx,%eax
411efb:	83 e8 80             	sub    $0xffffff80,%eax
411efe:	66 89 01             	mov    %ax,(%ecx)
411f01:	ff 86 64 06 00 00    	incl   0x664(%esi)
411f07:	c6 86 6d 0a 00 00 01 	movb   $0x1,0xa6d(%esi)
411f0e:	eb 5c                	jmp    0x411f6c
411f10:	89 9e 7c 4a 00 00    	mov    %ebx,0x4a7c(%esi)
411f16:	0f b7 01             	movzwl (%ecx),%eax
411f19:	0f b7 d0             	movzwl %ax,%edx
411f1c:	83 c2 20             	add    $0x20,%edx
411f1f:	c1 fa 07             	sar    $0x7,%edx
411f22:	2b c2                	sub    %edx,%eax
411f24:	66 89 01             	mov    %ax,(%ecx)
411f27:	c7 86 80 4a 00 00 00 	movl   $0x4000,0x4a80(%esi)
411f2e:	40 00 00
411f31:	0f b7 01             	movzwl (%ecx),%eax
411f34:	8a 8e 6c 0a 00 00    	mov    0xa6c(%esi),%cl
411f3a:	c1 e8 0a             	shr    $0xa,%eax
411f3d:	0f b6 80 9c ad 42 00 	movzbl 0x42ad9c(%eax),%eax
411f44:	89 86 58 06 00 00    	mov    %eax,0x658(%esi)
411f4a:	c7 86 54 06 00 00 01 	movl   $0x1,0x654(%esi)
411f51:	00 00 00
411f54:	0f b6 07             	movzbl (%edi),%eax
411f57:	88 8c 30 6c 06 00 00 	mov    %cl,0x66c(%eax,%esi,1)
411f5e:	83 a6 50 06 00 00 00 	andl   $0x0,0x650(%esi)
411f65:	c6 86 6d 0a 00 00 00 	movb   $0x0,0xa6d(%esi)
411f6c:	5f                   	pop    %edi
411f6d:	5e                   	pop    %esi
411f6e:	5d                   	pop    %ebp
411f6f:	5b                   	pop    %ebx
411f70:	c2 04 00             	ret    $0x4
411f73:	68 00 01 00 00       	push   $0x100
411f78:	c6 81 6c 0a 00 00 01 	movb   $0x1,0xa6c(%ecx)
411f7f:	81 c1 6c 06 00 00    	add    $0x66c,%ecx
411f85:	6a 00                	push   $0x0
411f87:	51                   	push   %ecx
411f88:	e8 73 82 00 00       	call   0x41a200
411f8d:	83 c4 0c             	add    $0xc,%esp
411f90:	c3                   	ret
411f91:	56                   	push   %esi
411f92:	8b f1                	mov    %ecx,%esi
411f94:	8b 4e 78             	mov    0x78(%esi),%ecx
411f97:	8b 46 04             	mov    0x4(%esi),%eax
411f9a:	57                   	push   %edi
411f9b:	8b f9                	mov    %ecx,%edi
411f9d:	2b f8                	sub    %eax,%edi
411f9f:	79 04                	jns    0x411fa5
411fa1:	32 c0                	xor    %al,%al
411fa3:	eb 67                	jmp    0x41200c
411fa5:	3d 00 40 00 00       	cmp    $0x4000,%eax
411faa:	7e 1d                	jle    0x411fc9
411fac:	85 ff                	test   %edi,%edi
411fae:	7e 10                	jle    0x411fc0
411fb0:	8b 4e 10             	mov    0x10(%esi),%ecx
411fb3:	57                   	push   %edi
411fb4:	03 c1                	add    %ecx,%eax
411fb6:	50                   	push   %eax
411fb7:	51                   	push   %ecx
411fb8:	e8 b3 a5 00 00       	call   0x41c570
411fbd:	83 c4 0c             	add    $0xc,%esp
411fc0:	83 66 04 00          	andl   $0x0,0x4(%esi)
411fc4:	89 7e 78             	mov    %edi,0x78(%esi)
411fc7:	eb 02                	jmp    0x411fcb
411fc9:	8b f9                	mov    %ecx,%edi
411fcb:	8b 0e                	mov    (%esi),%ecx
411fcd:	b8 00 80 00 00       	mov    $0x8000,%eax
411fd2:	2b c7                	sub    %edi,%eax
411fd4:	50                   	push   %eax
411fd5:	8b 46 10             	mov    0x10(%esi),%eax
411fd8:	03 c7                	add    %edi,%eax
411fda:	50                   	push   %eax
411fdb:	e8 07 98 ff ff       	call   0x40b7e7
411fe0:	85 c0                	test   %eax,%eax
411fe2:	7e 03                	jle    0x411fe7
411fe4:	01 46 78             	add    %eax,0x78(%esi)
411fe7:	80 be 39 4c 00 00 00 	cmpb   $0x0,0x4c39(%esi)
411fee:	8b 4e 78             	mov    0x78(%esi),%ecx
411ff1:	8d 51 e2             	lea    -0x1e(%ecx),%edx
411ff4:	89 56 7c             	mov    %edx,0x7c(%esi)
411ff7:	74 09                	je     0x412002
411ff9:	81 c1 0c fe ff ff    	add    $0xfffffe0c,%ecx
411fff:	89 4e 7c             	mov    %ecx,0x7c(%esi)
412002:	33 c9                	xor    %ecx,%ecx
412004:	83 f8 ff             	cmp    $0xffffffff,%eax
412007:	0f 95 c1             	setne  %cl
41200a:	8a c1                	mov    %cl,%al
41200c:	5f                   	pop    %edi
41200d:	5e                   	pop    %esi
41200e:	c3                   	ret
41200f:	56                   	push   %esi
412010:	8b f1                	mov    %ecx,%esi
412012:	8b 4e 78             	mov    0x78(%esi),%ecx
412015:	8b 46 04             	mov    0x4(%esi),%eax
412018:	57                   	push   %edi
412019:	8b f9                	mov    %ecx,%edi
41201b:	2b f8                	sub    %eax,%edi
41201d:	79 07                	jns    0x412026
41201f:	32 c0                	xor    %al,%al
412021:	e9 9f 00 00 00       	jmp    0x4120c5
412026:	8b 96 88 00 00 00    	mov    0x88(%esi),%edx
41202c:	2b d0                	sub    %eax,%edx
41202e:	01 96 80 00 00 00    	add    %edx,0x80(%esi)
412034:	3d 00 40 00 00       	cmp    $0x4000,%eax
412039:	7e 1d                	jle    0x412058
41203b:	85 ff                	test   %edi,%edi
41203d:	7e 10                	jle    0x41204f
41203f:	8b 4e 10             	mov    0x10(%esi),%ecx
412042:	57                   	push   %edi
412043:	03 c1                	add    %ecx,%eax
412045:	50                   	push   %eax
412046:	51                   	push   %ecx
412047:	e8 24 a5 00 00       	call   0x41c570
41204c:	83 c4 0c             	add    $0xc,%esp
41204f:	83 66 04 00          	andl   $0x0,0x4(%esi)
412053:	89 7e 78             	mov    %edi,0x78(%esi)
412056:	eb 02                	jmp    0x41205a
412058:	8b f9                	mov    %ecx,%edi
41205a:	b9 00 80 00 00       	mov    $0x8000,%ecx
41205f:	33 c0                	xor    %eax,%eax
412061:	3b f9                	cmp    %ecx,%edi
412063:	74 17                	je     0x41207c
412065:	8b 46 10             	mov    0x10(%esi),%eax
412068:	2b cf                	sub    %edi,%ecx
41206a:	51                   	push   %ecx
41206b:	8b 0e                	mov    (%esi),%ecx
41206d:	03 c7                	add    %edi,%eax
41206f:	50                   	push   %eax
412070:	e8 72 97 ff ff       	call   0x40b7e7
412075:	85 c0                	test   %eax,%eax
412077:	7e 03                	jle    0x41207c
412079:	01 46 78             	add    %eax,0x78(%esi)
41207c:	80 be 39 4c 00 00 00 	cmpb   $0x0,0x4c39(%esi)
412083:	8b 4e 78             	mov    0x78(%esi),%ecx
412086:	8d 51 e2             	lea    -0x1e(%ecx),%edx
412089:	89 56 7c             	mov    %edx,0x7c(%esi)
41208c:	74 09                	je     0x412097
41208e:	81 c1 0c fe ff ff    	add    $0xfffffe0c,%ecx
412094:	89 4e 7c             	mov    %ecx,0x7c(%esi)
412097:	8b 96 80 00 00 00    	mov    0x80(%esi),%edx
41209d:	8b 4e 04             	mov    0x4(%esi),%ecx
4120a0:	89 8e 88 00 00 00    	mov    %ecx,0x88(%esi)