401cd1:	e8 b3 fe ff ff       	call   0x401b89
401cd6:	8b 03                	mov    (%ebx),%eax
401cd8:	6a 08                	push   $0x8
401cda:	8d 4d d8             	lea    -0x28(%ebp),%ecx
401cdd:	51                   	push   %ecx
401cde:	8b cb                	mov    %ebx,%ecx
401ce0:	ff 50 08             	call   *0x8(%eax)
401ce3:	83 f8 08             	cmp    $0x8,%eax
401ce6:	74 22                	je     0x401d0a
401ce8:	8b cb                	mov    %ebx,%ecx
401cea:	e8 ff fe ff ff       	call   0x401bee
401cef:	39 7d b8             	cmp    %edi,-0x48(%ebp)
401cf2:	74 09                	je     0x401cfd
401cf4:	ff 75 b8             	push   -0x48(%ebp)
401cf7:	e8 e6 81 01 00       	call   0x419ee2
401cfc:	59                   	pop    %ecx
401cfd:	33 c0                	xor    %eax,%eax
401cff:	e9 d2 09 00 00       	jmp    0x4026d6
401d04:	c6 45 f2 00          	movb   $0x0,-0xe(%ebp)
401d08:	eb 27                	jmp    0x401d31
401d0a:	57                   	push   %edi
401d0b:	57                   	push   %edi
401d0c:	57                   	push   %edi
401d0d:	57                   	push   %edi
401d0e:	8d 45 d8             	lea    -0x28(%ebp),%eax
401d11:	50                   	push   %eax
401d12:	8b 83 04 57 00 00    	mov    0x5704(%ebx),%eax
401d18:	05 20 40 00 00       	add    $0x4020,%eax
401d1d:	50                   	push   %eax
401d1e:	6a 04                	push   $0x4
401d20:	8d b3 24 10 00 00    	lea    0x1024(%ebx),%esi
401d26:	57                   	push   %edi
401d27:	8b ce                	mov    %esi,%ecx
401d29:	e8 09 44 00 00       	call   0x406137
401d2e:	89 75 d4             	mov    %esi,-0x2c(%ebp)
401d31:	6a 07                	push   $0x7
401d33:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d36:	e8 26 96 00 00       	call   0x40b361
401d3b:	39 7d cc             	cmp    %edi,-0x34(%ebp)
401d3e:	74 a8                	je     0x401ce8
401d40:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d43:	e8 cb 96 00 00       	call   0x40b413
401d48:	0f b7 c0             	movzwl %ax,%eax
401d4b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d4e:	89 83 2c 57 00 00    	mov    %eax,0x572c(%ebx)
401d54:	c6 83 3c 57 00 00 00 	movb   $0x0,0x573c(%ebx)
401d5b:	e8 9b 96 00 00       	call   0x40b3fb
401d60:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d63:	0f b6 f0             	movzbl %al,%esi
401d66:	e8 a8 96 00 00       	call   0x40b413
401d6b:	0f b7 c0             	movzwl %ax,%eax
401d6e:	89 83 34 57 00 00    	mov    %eax,0x5734(%ebx)
401d74:	c1 e8 0e             	shr    $0xe,%eax
401d77:	24 01                	and    $0x1,%al
401d79:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d7c:	88 83 3c 57 00 00    	mov    %al,0x573c(%ebx)
401d82:	e8 8c 96 00 00       	call   0x40b413
401d87:	0f b7 c0             	movzwl %ax,%eax
401d8a:	89 83 38 57 00 00    	mov    %eax,0x5738(%ebx)
401d90:	89 b3 30 57 00 00    	mov    %esi,0x5730(%ebx)
401d96:	83 f8 07             	cmp    $0x7,%eax
401d99:	73 0c                	jae    0x401da7
401d9b:	8b cb                	mov    %ebx,%ecx
401d9d:	e8 95 fe ff ff       	call   0x401c37
401da2:	e9 48 ff ff ff       	jmp    0x401cef
401da7:	83 ee 73             	sub    $0x73,%esi
401daa:	6a 03                	push   $0x3
401dac:	5f                   	pop    %edi
401dad:	74 2b                	je     0x401dda
401daf:	4e                   	dec    %esi
401db0:	74 1c                	je     0x401dce
401db2:	83 ee 06             	sub    $0x6,%esi
401db5:	74 0f                	je     0x401dc6
401db7:	4e                   	dec    %esi
401db8:	75 2a                	jne    0x401de4
401dba:	c7 83 30 57 00 00 05 	movl   $0x5,0x5730(%ebx)
401dc1:	00 00 00
401dc4:	eb 1e                	jmp    0x401de4
401dc6:	89 bb 30 57 00 00    	mov    %edi,0x5730(%ebx)
401dcc:	eb 16                	jmp    0x401de4
401dce:	c7 83 30 57 00 00 02 	movl   $0x2,0x5730(%ebx)
401dd5:	00 00 00
401dd8:	eb 0a                	jmp    0x401de4
401dda:	c7 83 30 57 00 00 01 	movl   $0x1,0x5730(%ebx)
401de1:	00 00 00
401de4:	8b 8b 30 57 00 00    	mov    0x5730(%ebx),%ecx
401dea:	89 8b 24 57 00 00    	mov    %ecx,0x5724(%ebx)
401df0:	83 f9 75             	cmp    $0x75,%ecx
401df3:	75 04                	jne    0x401df9
401df5:	6a 06                	push   $0x6
401df7:	eb 12                	jmp    0x401e0b
401df9:	83 f9 01             	cmp    $0x1,%ecx
401dfc:	75 09                	jne    0x401e07
401dfe:	f6 83 34 57 00 00 02 	testb  $0x2,0x5734(%ebx)
401e05:	75 ee                	jne    0x401df5
401e07:	83 c0 f9             	add    $0xfffffff9,%eax
401e0a:	50                   	push   %eax
401e0b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401e0e:	e8 4e 95 00 00       	call   0x40b361
401e13:	ff b3 38 57 00 00    	push   0x5738(%ebx)
401e19:	8b cb                	mov    %ebx,%ecx
401e1b:	e8 b4 f2 ff ff       	call   0x4010d4
401e20:	33 c9                	xor    %ecx,%ecx
401e22:	03 83 20 a2 00 00    	add    0xa220(%ebx),%eax
401e28:	13 8b 24 a2 00 00    	adc    0xa224(%ebx),%ecx
401e2e:	89 83 28 a2 00 00    	mov    %eax,0xa228(%ebx)
401e34:	8b 83 30 57 00 00    	mov    0x5730(%ebx),%eax
401e3a:	89 8b 2c a2 00 00    	mov    %ecx,0xa22c(%ebx)
401e40:	83 f8 01             	cmp    $0x1,%eax
401e43:	0f 84 d5 06 00 00    	je     0x40251e
401e49:	0f 8e a5 06 00 00    	jle    0x4024f4
401e4f:	3b c7                	cmp    %edi,%eax
401e51:	0f 8e 8d 00 00 00    	jle    0x401ee4
401e57:	83 f8 05             	cmp    $0x5,%eax
401e5a:	0f 85 94 06 00 00    	jne    0x4024f4
401e60:	50                   	push   %eax
401e61:	8d 83 d0 7a 00 00    	lea    0x7ad0(%ebx),%eax
401e67:	8d bb c8 7a 00 00    	lea    0x7ac8(%ebx),%edi
401e6d:	59                   	pop    %ecx
401e6e:	8d b3 2c 57 00 00    	lea    0x572c(%ebx),%esi
401e74:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401e76:	8a 08                	mov    (%eax),%cl
401e78:	8b 38                	mov    (%eax),%edi
401e7a:	80 e1 01             	and    $0x1,%cl
401e7d:	88 8b e4 7a 00 00    	mov    %cl,0x7ae4(%ebx)
401e83:	8b cf                	mov    %edi,%ecx
401e85:	c1 e9 02             	shr    $0x2,%ecx
401e88:	80 e1 01             	and    $0x1,%cl
401e8b:	88 8b e6 7a 00 00    	mov    %cl,0x7ae6(%ebx)
401e91:	8b c7                	mov    %edi,%eax
401e93:	d1 e8                	shr    $1,%eax
401e95:	8b cf                	mov    %edi,%ecx
401e97:	c1 e9 03             	shr    $0x3,%ecx
401e9a:	24 01                	and    $0x1,%al
401e9c:	80 e1 01             	and    $0x1,%cl
401e9f:	8d b3 e7 7a 00 00    	lea    0x7ae7(%ebx),%esi
401ea5:	88 83 e5 7a 00 00    	mov    %al,0x7ae5(%ebx)
401eab:	88 0e                	mov    %cl,(%esi)
401ead:	84 c0                	test   %al,%al
401eaf:	74 0e                	je     0x401ebf
401eb1:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401eb4:	e8 8f 95 00 00       	call   0x40b448
401eb9:	89 83 dc 7a 00 00    	mov    %eax,0x7adc(%ebx)
401ebf:	80 3e 00             	cmpb   $0x0,(%esi)
401ec2:	0f 84 10 07 00 00    	je     0x4025d8
401ec8:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401ecb:	e8 43 95 00 00       	call   0x40b413
401ed0:	0f b7 c0             	movzwl %ax,%eax
401ed3:	89 83 e0 7a 00 00    	mov    %eax,0x7ae0(%ebx)
401ed9:	89 83 58 a2 00 00    	mov    %eax,0xa258(%ebx)
401edf:	e9 f4 06 00 00       	jmp    0x4025d8
401ee4:	83 f8 02             	cmp    $0x2,%eax
401ee7:	0f 94 45 f3          	sete   -0xd(%ebp)
401eeb:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
401eef:	8d 83 c8 57 00 00    	lea    0x57c8(%ebx),%eax
401ef5:	75 06                	jne    0x401efd
401ef7:	8d 83 08 7b 00 00    	lea    0x7b08(%ebx),%eax
401efd:	8b f8                	mov    %eax,%edi
401eff:	6a 00                	push   $0x0
401f01:	8b cf                	mov    %edi,%ecx
401f03:	89 45 ec             	mov    %eax,-0x14(%ebp)
401f06:	e8 b7 7b 00 00       	call   0x409ac2
401f0b:	6a 05                	push   $0x5
401f0d:	59                   	pop    %ecx
401f0e:	8d b3 2c 57 00 00    	lea    0x572c(%ebx),%esi
401f14:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401f16:	8b 75 ec             	mov    -0x14(%ebp),%esi
401f19:	8a 46 08             	mov    0x8(%esi),%al
401f1c:	24 01                	and    $0x1,%al
401f1e:	88 86 88 10 00 00    	mov    %al,0x1088(%esi)
401f24:	8b 46 08             	mov    0x8(%esi),%eax
401f27:	8b c8                	mov    %eax,%ecx
401f29:	d1 e9                	shr    $1,%ecx
401f2b:	80 e1 01             	and    $0x1,%cl
401f2e:	88 8e 89 10 00 00    	mov    %cl,0x1089(%esi)
401f34:	8b c8                	mov    %eax,%ecx
401f36:	c1 e9 02             	shr    $0x2,%ecx
401f39:	80 e1 01             	and    $0x1,%cl
401f3c:	88 8e 8b 10 00 00    	mov    %cl,0x108b(%esi)
401f42:	8b c8                	mov    %eax,%ecx
401f44:	c1 e9 0a             	shr    $0xa,%ecx
401f47:	80 e1 01             	and    $0x1,%cl
401f4a:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
401f4e:	88 8e 90 10 00 00    	mov    %cl,0x1090(%esi)
401f54:	74 09                	je     0x401f5f
401f56:	a8 10                	test   $0x10,%al
401f58:	74 05                	je     0x401f5f
401f5a:	33 c9                	xor    %ecx,%ecx
401f5c:	41                   	inc    %ecx
401f5d:	eb 02                	jmp    0x401f61
401f5f:	33 c9                	xor    %ecx,%ecx
401f61:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
401f65:	8b 75 ec             	mov    -0x14(%ebp),%esi
401f68:	88 8e e0 10 00 00    	mov    %cl,0x10e0(%esi)
401f6e:	75 09                	jne    0x401f79
401f70:	a8 10                	test   $0x10,%al
401f72:	74 05                	je     0x401f79
401f74:	33 c9                	xor    %ecx,%ecx
401f76:	41                   	inc    %ecx
401f77:	eb 02                	jmp    0x401f7b
401f79:	33 c9                	xor    %ecx,%ecx
401f7b:	88 8e ea 10 00 00    	mov    %cl,0x10ea(%esi)
401f81:	8b c8                	mov    %eax,%ecx
401f83:	81 e1 e0 00 00 00    	and    $0xe0,%ecx
401f89:	80 f9 e0             	cmp    $0xe0,%cl
401f8c:	0f 94 c1             	sete   %cl
401f8f:	88 8e e1 10 00 00    	mov    %cl,0x10e1(%esi)
401f95:	84 c9                	test   %cl,%cl
401f97:	74 04                	je     0x401f9d
401f99:	33 d2                	xor    %edx,%edx
401f9b:	eb 0f                	jmp    0x401fac
401f9d:	8b c8                	mov    %eax,%ecx
401f9f:	c1 e9 05             	shr    $0x5,%ecx
401fa2:	83 e1 07             	and    $0x7,%ecx
401fa5:	ba 00 00 01 00       	mov    $0x10000,%edx
401faa:	d3 e2                	shl    %cl,%edx
401fac:	8b c8                	mov    %eax,%ecx
401fae:	c1 e9 03             	shr    $0x3,%ecx
401fb1:	80 e1 01             	and    $0x1,%cl
401fb4:	c1 e8 0b             	shr    $0xb,%eax
401fb7:	88 8e e2 10 00 00    	mov    %cl,0x10e2(%esi)
401fbd:	24 01                	and    $0x1,%al
401fbf:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401fc2:	89 96 e4 10 00 00    	mov    %edx,0x10e4(%esi)
401fc8:	88 86 e3 10 00 00    	mov    %al,0x10e3(%esi)
401fce:	e8 75 94 00 00       	call   0x40b448
401fd3:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401fd6:	89 46 14             	mov    %eax,0x14(%esi)
401fd9:	e8 6a 94 00 00       	call   0x40b448
401fde:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401fe1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401fe4:	e8 12 94 00 00       	call   0x40b3fb
401fe9:	6a 02                	push   $0x2
401feb:	5f                   	pop    %edi
401fec:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401fef:	88 46 18             	mov    %al,0x18(%esi)
401ff2:	89 be 60 10 00 00    	mov    %edi,0x1060(%esi)
401ff8:	e8 4b 94 00 00       	call   0x40b448
401ffd:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402000:	89 86 64 10 00 00    	mov    %eax,0x1064(%esi)
402006:	e8 3d 94 00 00       	call   0x40b448
40200b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40200e:	89 45 e0             	mov    %eax,-0x20(%ebp)
402011:	e8 e5 93 00 00       	call   0x40b3fb
402016:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402019:	88 46 19             	mov    %al,0x19(%esi)
40201c:	e8 da 93 00 00       	call   0x40b3fb
402021:	2c 30                	sub    $0x30,%al
402023:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402026:	88 46 1a             	mov    %al,0x1a(%esi)
402029:	e8 e5 93 00 00       	call   0x40b413
40202e:	0f b7 c0             	movzwl %ax,%eax
402031:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402034:	89 45 ec             	mov    %eax,-0x14(%ebp)
402037:	e8 0c 94 00 00       	call   0x40b448
40203c:	83 a6 8c 10 00 00 00 	andl   $0x0,0x108c(%esi)
402043:	80 be 8b 10 00 00 00 	cmpb   $0x0,0x108b(%esi)
40204a:	89 46 1c             	mov    %eax,0x1c(%esi)
40204d:	74 41                	je     0x402090
40204f:	0f b6 4e 19          	movzbl 0x19(%esi),%ecx
402053:	83 e9 0d             	sub    $0xd,%ecx
402056:	74 2e                	je     0x402086
402058:	2b cf                	sub    %edi,%ecx
40205a:	74 22                	je     0x40207e
40205c:	83 e9 05             	sub    $0x5,%ecx
40205f:	74 11                	je     0x402072
402061:	83 e9 06             	sub    $0x6,%ecx
402064:	74 0c                	je     0x402072
402066:	c7 86 8c 10 00 00 04 	movl   $0x4,0x108c(%esi)
40206d:	00 00 00
402070:	eb 1e                	jmp    0x402090
402072:	c7 86 8c 10 00 00 03 	movl   $0x3,0x108c(%esi)
402079:	00 00 00
40207c:	eb 12                	jmp    0x402090
40207e:	89 be 8c 10 00 00    	mov    %edi,0x108c(%esi)
402084:	eb 0a                	jmp    0x402090
402086:	c7 86 8c 10 00 00 01 	movl   $0x1,0x108c(%esi)
40208d:	00 00 00
402090:	8a 56 18             	mov    0x18(%esi),%dl
402093:	89 be ec 10 00 00    	mov    %edi,0x10ec(%esi)
402099:	80 fa 03             	cmp    $0x3,%dl
40209c:	74 13                	je     0x4020b1
40209e:	80 fa 05             	cmp    $0x5,%dl
4020a1:	74 0e                	je     0x4020b1
4020a3:	80 fa 06             	cmp    $0x6,%dl
4020a6:	73 13                	jae    0x4020bb
4020a8:	83 a6 ec 10 00 00 00 	andl   $0x0,0x10ec(%esi)
4020af:	eb 0a                	jmp    0x4020bb
4020b1:	c7 86 ec 10 00 00 01 	movl   $0x1,0x10ec(%esi)
4020b8:	00 00 00
4020bb:	33 ff                	xor    %edi,%edi
4020bd:	8d 8e f0 10 00 00    	lea    0x10f0(%esi),%ecx
4020c3:	89 39                	mov    %edi,(%ecx)
4020c5:	80 fa 03             	cmp    $0x3,%dl
4020c8:	75 1f                	jne    0x4020e9
4020ca:	8b d0                	mov    %eax,%edx
4020cc:	81 e2 00 f0 00 00    	and    $0xf000,%edx
4020d2:	81 fa 00 a0 00 00    	cmp    $0xa000,%edx
4020d8:	75 0f                	jne    0x4020e9
4020da:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
4020e0:	33 c9                	xor    %ecx,%ecx
4020e2:	66 89 8e f4 10 00 00 	mov    %cx,0x10f4(%esi)
4020e9:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
4020ed:	75 09                	jne    0x4020f8
4020ef:	85 c0                	test   %eax,%eax
4020f1:	79 05                	jns    0x4020f8
4020f3:	33 c0                	xor    %eax,%eax
4020f5:	40                   	inc    %eax
4020f6:	eb 02                	jmp    0x4020fa
4020f8:	33 c0                	xor    %eax,%eax
4020fa:	88 86 e8 10 00 00    	mov    %al,0x10e8(%esi)
402100:	8b 46 08             	mov    0x8(%esi),%eax
402103:	c1 e8 08             	shr    $0x8,%eax
402106:	24 01                	and    $0x1,%al
402108:	88 86 e9 10 00 00    	mov    %al,0x10e9(%esi)
40210e:	74 29                	je     0x402139
402110:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402113:	e8 30 93 00 00       	call   0x40b448
402118:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40211b:	8b f8                	mov    %eax,%edi
40211d:	e8 26 93 00 00       	call   0x40b448
402122:	83 7d e4 ff          	cmpl   $0xffffffff,-0x1c(%ebp)
402126:	89 45 e8             	mov    %eax,-0x18(%ebp)
402129:	75 0a                	jne    0x402135
40212b:	83 f8 ff             	cmp    $0xffffffff,%eax
40212e:	75 05                	jne    0x402135
402130:	33 c0                	xor    %eax,%eax
402132:	40                   	inc    %eax
402133:	eb 0e                	jmp    0x402143
402135:	33 c0                	xor    %eax,%eax
402137:	eb 0a                	jmp    0x402143
402139:	83 7d e4 ff          	cmpl   $0xffffffff,-0x1c(%ebp)
40213d:	89 7d e8             	mov    %edi,-0x18(%ebp)
402140:	0f 94 c0             	sete   %al
402143:	6a 01                	push   $0x1
402145:	6a 00                	push   $0x0
402147:	6a 00                	push   $0x0
402149:	57                   	push   %edi
40214a:	88 86 8a 10 00 00    	mov    %al,0x108a(%esi)
402150:	e8 5b 84 01 00       	call   0x41a5b0
402155:	8b 4e 14             	mov    0x14(%esi),%ecx
402158:	33 ff                	xor    %edi,%edi
40215a:	6a 01                	push   $0x1
40215c:	57                   	push   %edi
40215d:	03 c1                	add    %ecx,%eax
40215f:	57                   	push   %edi
402160:	ff 75 e8             	push   -0x18(%ebp)
402163:	13 d7                	adc    %edi,%edx
402165:	89 86 48 10 00 00    	mov    %eax,0x1048(%esi)
40216b:	89 96 4c 10 00 00    	mov    %edx,0x104c(%esi)