407db6:	0b f0                	or     %eax,%esi
407db8:	b8 00 10 00 00       	mov    $0x1000,%eax
407dbd:	57                   	push   %edi
407dbe:	8b f9                	mov    %ecx,%edi
407dc0:	3b f0                	cmp    %eax,%esi
407dc2:	73 02                	jae    0x407dc6
407dc4:	8b f0                	mov    %eax,%esi
407dc6:	8a 02                	mov    (%edx),%al
407dc8:	89 77 0c             	mov    %esi,0xc(%edi)
407dcb:	3c e1                	cmp    $0xe1,%al
407dcd:	72 05                	jb     0x407dd4
407dcf:	6a 04                	push   $0x4
407dd1:	58                   	pop    %eax
407dd2:	eb 2e                	jmp    0x407e02
407dd4:	0f b6 c8             	movzbl %al,%ecx
407dd7:	33 d2                	xor    %edx,%edx
407dd9:	6a 09                	push   $0x9
407ddb:	5e                   	pop    %esi
407ddc:	8b c1                	mov    %ecx,%eax
407dde:	f7 f6                	div    %esi
407de0:	8b c1                	mov    %ecx,%eax
407de2:	89 17                	mov    %edx,(%edi)
407de4:	33 d2                	xor    %edx,%edx
407de6:	f7 f6                	div    %esi
407de8:	33 d2                	xor    %edx,%edx
407dea:	0f b6 c8             	movzbl %al,%ecx
407ded:	6a 05                	push   $0x5
407def:	5e                   	pop    %esi
407df0:	8b c1                	mov    %ecx,%eax
407df2:	f7 f6                	div    %esi
407df4:	33 d2                	xor    %edx,%edx
407df6:	89 47 08             	mov    %eax,0x8(%edi)
407df9:	8b c1                	mov    %ecx,%eax
407dfb:	f7 f6                	div    %esi
407dfd:	33 c0                	xor    %eax,%eax
407dff:	89 57 04             	mov    %edx,0x4(%edi)
407e02:	5f                   	pop    %edi
407e03:	5e                   	pop    %esi
407e04:	c3                   	ret
407e05:	55                   	push   %ebp
407e06:	8b ec                	mov    %esp,%ebp
407e08:	51                   	push   %ecx
407e09:	8b c1                	mov    %ecx,%eax
407e0b:	8b 4a 04             	mov    0x4(%edx),%ecx
407e0e:	03 0a                	add    (%edx),%ecx
407e10:	53                   	push   %ebx
407e11:	57                   	push   %edi
407e12:	bf 00 03 00 00       	mov    $0x300,%edi
407e17:	89 45 fc             	mov    %eax,-0x4(%ebp)
407e1a:	d3 e7                	shl    %cl,%edi
407e1c:	8d 58 54             	lea    0x54(%eax),%ebx
407e1f:	81 c7 36 07 00 00    	add    $0x736,%edi
407e25:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
407e29:	74 08                	je     0x407e33
407e2b:	3b 3b                	cmp    (%ebx),%edi
407e2d:	75 04                	jne    0x407e33
407e2f:	33 c0                	xor    %eax,%eax
407e31:	eb 33                	jmp    0x407e66
407e33:	56                   	push   %esi
407e34:	8b 75 08             	mov    0x8(%ebp),%esi
407e37:	8b c8                	mov    %eax,%ecx
407e39:	8b d6                	mov    %esi,%edx
407e3b:	e8 3a ff ff ff       	call   0x407d7a
407e40:	8d 04 3f             	lea    (%edi,%edi,1),%eax
407e43:	50                   	push   %eax
407e44:	56                   	push   %esi
407e45:	8b 36                	mov    (%esi),%esi
407e47:	8b ce                	mov    %esi,%ecx
407e49:	ff 15 50 c2 41 00    	call   *0x41c250
407e4f:	ff d6                	call   *%esi
407e51:	59                   	pop    %ecx
407e52:	59                   	pop    %ecx
407e53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407e56:	89 3b                	mov    %edi,(%ebx)
407e58:	5e                   	pop    %esi
407e59:	89 41 10             	mov    %eax,0x10(%ecx)
407e5c:	f7 d8                	neg    %eax
407e5e:	1b c0                	sbb    %eax,%eax
407e60:	83 e0 fe             	and    $0xfffffffe,%eax
407e63:	83 c0 02             	add    $0x2,%eax
407e66:	5f                   	pop    %edi
407e67:	5b                   	pop    %ebx
407e68:	c9                   	leave
407e69:	c3                   	ret
407e6a:	55                   	push   %ebp
407e6b:	8b ec                	mov    %esp,%ebp
407e6d:	83 ec 14             	sub    $0x14,%esp
407e70:	53                   	push   %ebx
407e71:	56                   	push   %esi
407e72:	57                   	push   %edi
407e73:	8b f9                	mov    %ecx,%edi
407e75:	51                   	push   %ecx
407e76:	8d 4d f0             	lea    -0x10(%ebp),%ecx
407e79:	e8 1a ff ff ff       	call   0x407d98
407e7e:	59                   	pop    %ecx
407e7f:	85 c0                	test   %eax,%eax
407e81:	75 71                	jne    0x407ef4
407e83:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407e86:	8d 55 f0             	lea    -0x10(%ebp),%edx
407e89:	53                   	push   %ebx
407e8a:	8b cf                	mov    %edi,%ecx
407e8c:	e8 74 ff ff ff       	call   0x407e05
407e91:	59                   	pop    %ecx
407e92:	85 c0                	test   %eax,%eax
407e94:	75 5e                	jne    0x407ef4
407e96:	39 47 14             	cmp    %eax,0x14(%edi)
407e99:	74 0a                	je     0x407ea5
407e9b:	8b 45 fc             	mov    -0x4(%ebp),%eax
407e9e:	8d 4f 28             	lea    0x28(%edi),%ecx
407ea1:	3b 01                	cmp    (%ecx),%eax
407ea3:	74 44                	je     0x407ee9
407ea5:	ff 77 14             	push   0x14(%edi)
407ea8:	8b 73 04             	mov    0x4(%ebx),%esi
407eab:	8b ce                	mov    %esi,%ecx
407ead:	53                   	push   %ebx
407eae:	ff 15 50 c2 41 00    	call   *0x41c250
407eb4:	ff d6                	call   *%esi
407eb6:	83 67 14 00          	andl   $0x0,0x14(%edi)
407eba:	8b 33                	mov    (%ebx),%esi
407ebc:	59                   	pop    %ecx
407ebd:	59                   	pop    %ecx
407ebe:	ff 75 fc             	push   -0x4(%ebp)
407ec1:	8b ce                	mov    %esi,%ecx
407ec3:	53                   	push   %ebx
407ec4:	ff 15 50 c2 41 00    	call   *0x41c250
407eca:	ff d6                	call   *%esi
407ecc:	89 47 14             	mov    %eax,0x14(%edi)
407ecf:	59                   	pop    %ecx
407ed0:	59                   	pop    %ecx
407ed1:	8d 4f 28             	lea    0x28(%edi),%ecx
407ed4:	85 c0                	test   %eax,%eax
407ed6:	75 0e                	jne    0x407ee6
407ed8:	8b d3                	mov    %ebx,%edx
407eda:	8b cf                	mov    %edi,%ecx
407edc:	e8 99 fe ff ff       	call   0x407d7a
407ee1:	6a 02                	push   $0x2
407ee3:	58                   	pop    %eax
407ee4:	eb 0e                	jmp    0x407ef4
407ee6:	8b 45 fc             	mov    -0x4(%ebp),%eax
407ee9:	8d 75 f0             	lea    -0x10(%ebp),%esi
407eec:	89 01                	mov    %eax,(%ecx)
407eee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407eef:	33 c0                	xor    %eax,%eax
407ef1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407ef2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407ef3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407ef4:	5f                   	pop    %edi
407ef5:	5e                   	pop    %esi
407ef6:	5b                   	pop    %ebx
407ef7:	c9                   	leave
407ef8:	c3                   	ret
407ef9:	55                   	push   %ebp
407efa:	8b ec                	mov    %esp,%ebp
407efc:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
407f02:	a1 18 60 42 00       	mov    0x426018,%eax
407f07:	33 c5                	xor    %ebp,%eax
407f09:	89 45 fc             	mov    %eax,-0x4(%ebp)
407f0c:	8b 45 20             	mov    0x20(%ebp),%eax
407f0f:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
407f15:	33 c0                	xor    %eax,%eax
407f17:	53                   	push   %ebx
407f18:	8b 5d 18             	mov    0x18(%ebp),%ebx
407f1b:	56                   	push   %esi
407f1c:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
407f22:	8b f0                	mov    %eax,%esi
407f24:	57                   	push   %edi
407f25:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
407f2b:	8d bd f8 fd ff ff    	lea    -0x208(%ebp),%edi
407f31:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
407f37:	b9 81 00 00 00       	mov    $0x81,%ecx
407f3c:	8a d0                	mov    %al,%dl
407f3e:	b8 00 04 00 04       	mov    $0x4000400,%eax
407f43:	f3 ab                	rep stos %eax,%es:(%edi)
407f45:	8b 45 1c             	mov    0x1c(%ebp),%eax
407f48:	03 c3                	add    %ebx,%eax
407f4a:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
407f50:	33 c0                	xor    %eax,%eax
407f52:	83 8d f0 fd ff ff ff 	orl    $0xffffffff,-0x210(%ebp)
407f59:	8b c8                	mov    %eax,%ecx
407f5b:	8b f8                	mov    %eax,%edi
407f5d:	3b 9d e8 fd ff ff    	cmp    -0x218(%ebp),%ebx
407f63:	0f 84 22 02 00 00    	je     0x40818b
407f69:	0f b6 03             	movzbl (%ebx),%eax
407f6c:	c1 e1 08             	shl    $0x8,%ecx
407f6f:	0b c8                	or     %eax,%ecx
407f71:	43                   	inc    %ebx
407f72:	47                   	inc    %edi
407f73:	89 5d 18             	mov    %ebx,0x18(%ebp)
407f76:	83 ff 05             	cmp    $0x5,%edi
407f79:	7c e2                	jl     0x407f5d
407f7b:	39 75 24             	cmp    %esi,0x24(%ebp)
407f7e:	75 07                	jne    0x407f87
407f80:	33 c0                	xor    %eax,%eax
407f82:	e9 07 02 00 00       	jmp    0x40818e
407f87:	8b bd d8 fd ff ff    	mov    -0x228(%ebp),%edi
407f8d:	8b 45 24             	mov    0x24(%ebp),%eax
407f90:	2b bd ec fd ff ff    	sub    -0x214(%ebp),%edi
407f96:	2b c6                	sub    %esi,%eax
407f98:	3b c7                	cmp    %edi,%eax
407f9a:	73 02                	jae    0x407f9e
407f9c:	8b f8                	mov    %eax,%edi
407f9e:	85 ff                	test   %edi,%edi
407fa0:	0f 84 db 01 00 00    	je     0x408181
407fa6:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
407fac:	8b 9d e4 fd ff ff    	mov    -0x21c(%ebp),%ebx
407fb2:	8a 24 03             	mov    (%ebx,%eax,1),%ah
407fb5:	8b 9d dc fd ff ff    	mov    -0x224(%ebp),%ebx
407fbb:	8a c4                	mov    %ah,%al
407fbd:	24 fe                	and    $0xfe,%al
407fbf:	88 24 33             	mov    %ah,(%ebx,%esi,1)
407fc2:	46                   	inc    %esi
407fc3:	8b 5d 18             	mov    0x18(%ebp),%ebx
407fc6:	3c e8                	cmp    $0xe8,%al
407fc8:	74 22                	je     0x407fec
407fca:	80 fa 0f             	cmp    $0xf,%dl
407fcd:	75 08                	jne    0x407fd7
407fcf:	8a c4                	mov    %ah,%al
407fd1:	24 f0                	and    $0xf0,%al
407fd3:	3c 80                	cmp    $0x80,%al
407fd5:	74 0d                	je     0x407fe4
407fd7:	ff 85 ec fd ff ff    	incl   -0x214(%ebp)
407fdd:	8a d4                	mov    %ah,%dl
407fdf:	83 ef 01             	sub    $0x1,%edi
407fe2:	75 c2                	jne    0x407fa6
407fe4:	85 ff                	test   %edi,%edi
407fe6:	0f 84 95 01 00 00    	je     0x408181
407fec:	3b 75 24             	cmp    0x24(%ebp),%esi
407fef:	0f 84 8c 01 00 00    	je     0x408181
407ff5:	8b bd ec fd ff ff    	mov    -0x214(%ebp),%edi
407ffb:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
408001:	8a 04 38             	mov    (%eax,%edi,1),%al
408004:	47                   	inc    %edi
408005:	88 85 f7 fd ff ff    	mov    %al,-0x209(%ebp)
40800b:	89 bd ec fd ff ff    	mov    %edi,-0x214(%ebp)
408011:	3c e8                	cmp    $0xe8,%al
408013:	75 0e                	jne    0x408023
408015:	0f b6 c2             	movzbl %dl,%eax
408018:	8d bd f8 fd ff ff    	lea    -0x208(%ebp),%edi
40801e:	8d 3c 47             	lea    (%edi,%eax,2),%edi
408021:	eb 0a                	jmp    0x40802d
408023:	8d 7d f8             	lea    -0x8(%ebp),%edi
408026:	3c e9                	cmp    $0xe9,%al
408028:	74 03                	je     0x40802d
40802a:	8d 7d fa             	lea    -0x6(%ebp),%edi
40802d:	0f b7 07             	movzwl (%edi),%eax
408030:	8b 95 f0 fd ff ff    	mov    -0x210(%ebp),%edx
408036:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40803c:	0f b7 c0             	movzwl %ax,%eax
40803f:	c1 ea 0b             	shr    $0xb,%edx
408042:	0f af d0             	imul   %eax,%edx
408045:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
40804b:	3b ca                	cmp    %edx,%ecx
40804d:	73 53                	jae    0x4080a2
40804f:	b8 00 08 00 00       	mov    $0x800,%eax
408054:	89 95 f0 fd ff ff    	mov    %edx,-0x210(%ebp)
40805a:	2b 85 d4 fd ff ff    	sub    -0x22c(%ebp),%eax
408060:	c1 e8 05             	shr    $0x5,%eax
408063:	03 85 e0 fd ff ff    	add    -0x220(%ebp),%eax
408069:	66 89 07             	mov    %ax,(%edi)
40806c:	81 fa 00 00 00 01    	cmp    $0x1000000,%edx
408072:	73 23                	jae    0x408097
408074:	3b 9d e8 fd ff ff    	cmp    -0x218(%ebp),%ebx
40807a:	0f 84 0b 01 00 00    	je     0x40818b
408080:	8b c2                	mov    %edx,%eax
408082:	c1 e1 08             	shl    $0x8,%ecx
408085:	c1 e0 08             	shl    $0x8,%eax
408088:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40808e:	0f b6 03             	movzbl (%ebx),%eax
408091:	0b c8                	or     %eax,%ecx
408093:	43                   	inc    %ebx
408094:	89 5d 18             	mov    %ebx,0x18(%ebp)
408097:	8a 95 f7 fd ff ff    	mov    -0x209(%ebp),%dl
40809d:	e9 e5 fe ff ff       	jmp    0x407f87
4080a2:	29 95 f0 fd ff ff    	sub    %edx,-0x210(%ebp)
4080a8:	2b ca                	sub    %edx,%ecx
4080aa:	8b 95 e0 fd ff ff    	mov    -0x220(%ebp),%edx
4080b0:	c1 e8 05             	shr    $0x5,%eax
4080b3:	2b d0                	sub    %eax,%edx
4080b5:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
4080bb:	66 89 17             	mov    %dx,(%edi)
4080be:	3d 00 00 00 01       	cmp    $0x1000000,%eax
4080c3:	73 21                	jae    0x4080e6
4080c5:	3b 9d e8 fd ff ff    	cmp    -0x218(%ebp),%ebx
4080cb:	0f 84 ba 00 00 00    	je     0x40818b
4080d1:	c1 e0 08             	shl    $0x8,%eax
4080d4:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
4080da:	0f b6 03             	movzbl (%ebx),%eax
4080dd:	c1 e1 08             	shl    $0x8,%ecx
4080e0:	0b c8                	or     %eax,%ecx
4080e2:	43                   	inc    %ebx
4080e3:	89 5d 18             	mov    %ebx,0x18(%ebp)
4080e6:	80 bd f7 fd ff ff e8 	cmpb   $0xe8,-0x209(%ebp)
4080ed:	75 1f                	jne    0x40810e
4080ef:	8b 45 0c             	mov    0xc(%ebp),%eax
4080f2:	8b 55 08             	mov    0x8(%ebp),%edx
4080f5:	8b fa                	mov    %edx,%edi
4080f7:	83 f8 04             	cmp    $0x4,%eax
4080fa:	0f 82 8b 00 00 00    	jb     0x40818b
408100:	83 c2 04             	add    $0x4,%edx
408103:	83 e8 04             	sub    $0x4,%eax
408106:	89 55 08             	mov    %edx,0x8(%ebp)
408109:	89 45 0c             	mov    %eax,0xc(%ebp)
40810c:	eb 19                	jmp    0x408127
40810e:	8b 45 14             	mov    0x14(%ebp),%eax
408111:	8b 55 10             	mov    0x10(%ebp),%edx
408114:	8b fa                	mov    %edx,%edi
408116:	83 f8 04             	cmp    $0x4,%eax
408119:	72 70                	jb     0x40818b
40811b:	83 c2 04             	add    $0x4,%edx
40811e:	83 e8 04             	sub    $0x4,%eax
408121:	89 55 10             	mov    %edx,0x10(%ebp)
408124:	89 45 14             	mov    %eax,0x14(%ebp)
408127:	0f b6 17             	movzbl (%edi),%edx
40812a:	0f b6 47 01          	movzbl 0x1(%edi),%eax
40812e:	c1 e2 08             	shl    $0x8,%edx
408131:	0b d0                	or     %eax,%edx
408133:	0f b6 47 02          	movzbl 0x2(%edi),%eax
408137:	c1 e2 08             	shl    $0x8,%edx
40813a:	0b d0                	or     %eax,%edx
40813c:	0f b6 47 03          	movzbl 0x3(%edi),%eax
408140:	8b bd dc fd ff ff    	mov    -0x224(%ebp),%edi
408146:	c1 e2 08             	shl    $0x8,%edx
408149:	0b d0                	or     %eax,%edx
40814b:	2b d6                	sub    %esi,%edx
40814d:	83 ea 04             	sub    $0x4,%edx
408150:	88 14 37             	mov    %dl,(%edi,%esi,1)
408153:	46                   	inc    %esi
408154:	3b 75 24             	cmp    0x24(%ebp),%esi
408157:	74 28                	je     0x408181
408159:	8b c2                	mov    %edx,%eax
40815b:	c1 e8 08             	shr    $0x8,%eax
40815e:	88 04 37             	mov    %al,(%edi,%esi,1)
408161:	46                   	inc    %esi
408162:	3b 75 24             	cmp    0x24(%ebp),%esi
408165:	74 1a                	je     0x408181
408167:	8b c2                	mov    %edx,%eax
408169:	c1 e8 10             	shr    $0x10,%eax
40816c:	88 04 37             	mov    %al,(%edi,%esi,1)
40816f:	46                   	inc    %esi
408170:	3b 75 24             	cmp    0x24(%ebp),%esi
408173:	74 0c                	je     0x408181
408175:	c1 ea 18             	shr    $0x18,%edx
408178:	88 14 37             	mov    %dl,(%edi,%esi,1)
40817b:	46                   	inc    %esi
40817c:	e9 06 fe ff ff       	jmp    0x407f87
408181:	33 c0                	xor    %eax,%eax
408183:	3b 75 24             	cmp    0x24(%ebp),%esi
408186:	0f 95 c0             	setne  %al
408189:	eb 03                	jmp    0x40818e
40818b:	33 c0                	xor    %eax,%eax