401db6:	8d 59 fc             	lea    -0x4(%ecx),%ebx
401db9:	8b 33                	mov    (%ebx),%esi
401dbb:	57                   	push   %edi
401dbc:	6b fe 30             	imul   $0x30,%esi,%edi
401dbf:	83 c7 28             	add    $0x28,%edi
401dc2:	85 f6                	test   %esi,%esi
401dc4:	74 11                	je     0x401dd7
401dc6:	03 f9                	add    %ecx,%edi
401dc8:	83 ef 30             	sub    $0x30,%edi
401dcb:	8b cf                	mov    %edi,%ecx
401dcd:	e8 94 10 00 00       	call   0x402e66
401dd2:	83 ee 01             	sub    $0x1,%esi
401dd5:	75 f1                	jne    0x401dc8
401dd7:	5f                   	pop    %edi
401dd8:	5e                   	pop    %esi
401dd9:	8b c3                	mov    %ebx,%eax
401ddb:	5b                   	pop    %ebx
401ddc:	c2 04 00             	ret    $0x4
401ddf:	55                   	push   %ebp
401de0:	8b ec                	mov    %esp,%ebp
401de2:	51                   	push   %ecx
401de3:	51                   	push   %ecx
401de4:	8b c1                	mov    %ecx,%eax
401de6:	56                   	push   %esi
401de7:	57                   	push   %edi
401de8:	89 45 fc             	mov    %eax,-0x4(%ebp)
401deb:	8b 50 08             	mov    0x8(%eax),%edx
401dee:	3b 50 04             	cmp    0x4(%eax),%edx
401df1:	72 66                	jb     0x401e59
401df3:	53                   	push   %ebx
401df4:	8d 72 01             	lea    0x1(%edx),%esi
401df7:	33 db                	xor    %ebx,%ebx
401df9:	0f af 70 0c          	imul   0xc(%eax),%esi
401dfd:	6a 0c                	push   $0xc
401dff:	59                   	pop    %ecx
401e00:	8b c6                	mov    %esi,%eax
401e02:	89 75 f8             	mov    %esi,-0x8(%ebp)
401e05:	f7 e1                	mul    %ecx
401e07:	0f 90 c3             	seto   %bl
401e0a:	33 c9                	xor    %ecx,%ecx
401e0c:	f7 db                	neg    %ebx
401e0e:	0b d8                	or     %eax,%ebx
401e10:	83 c3 04             	add    $0x4,%ebx
401e13:	0f 92 c1             	setb   %cl
401e16:	f7 d9                	neg    %ecx
401e18:	0b cb                	or     %ebx,%ecx
401e1a:	e8 bc 3c 00 00       	call   0x405adb
401e1f:	33 d2                	xor    %edx,%edx
401e21:	85 c0                	test   %eax,%eax
401e23:	74 07                	je     0x401e2c
401e25:	89 30                	mov    %esi,(%eax)
401e27:	8d 48 04             	lea    0x4(%eax),%ecx
401e2a:	eb 02                	jmp    0x401e2e
401e2c:	8b ca                	mov    %edx,%ecx
401e2e:	8b 45 fc             	mov    -0x4(%ebp),%eax
401e31:	39 50 08             	cmp    %edx,0x8(%eax)
401e34:	76 18                	jbe    0x401e4e
401e36:	8b da                	mov    %edx,%ebx
401e38:	8b 30                	mov    (%eax),%esi
401e3a:	8d 3c 0b             	lea    (%ebx,%ecx,1),%edi
401e3d:	03 f3                	add    %ebx,%esi
401e3f:	42                   	inc    %edx
401e40:	83 c3 0c             	add    $0xc,%ebx
401e43:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401e44:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401e45:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401e46:	3b 50 08             	cmp    0x8(%eax),%edx
401e49:	72 ed                	jb     0x401e38
401e4b:	8b 75 f8             	mov    -0x8(%ebp),%esi
401e4e:	8b 50 08             	mov    0x8(%eax),%edx
401e51:	89 08                	mov    %ecx,(%eax)
401e53:	89 70 04             	mov    %esi,0x4(%eax)
401e56:	5b                   	pop    %ebx
401e57:	eb 02                	jmp    0x401e5b
401e59:	8b 08                	mov    (%eax),%ecx
401e5b:	6b fa 0c             	imul   $0xc,%edx,%edi
401e5e:	8d 75 08             	lea    0x8(%ebp),%esi
401e61:	03 f9                	add    %ecx,%edi
401e63:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401e64:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401e65:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401e66:	ff 40 08             	incl   0x8(%eax)
401e69:	5f                   	pop    %edi
401e6a:	5e                   	pop    %esi
401e6b:	c9                   	leave
401e6c:	c2 0c 00             	ret    $0xc
401e6f:	55                   	push   %ebp
401e70:	8b ec                	mov    %esp,%ebp
401e72:	56                   	push   %esi
401e73:	8b f1                	mov    %ecx,%esi
401e75:	8d 46 04             	lea    0x4(%esi),%eax
401e78:	50                   	push   %eax
401e79:	33 c0                	xor    %eax,%eax
401e7b:	50                   	push   %eax
401e7c:	ff 75 0c             	push   0xc(%ebp)
401e7f:	ff 75 08             	push   0x8(%ebp)
401e82:	50                   	push   %eax
401e83:	50                   	push   %eax
401e84:	ff 15 8c 20 41 00    	call   *0x41208c
401e8a:	33 c9                	xor    %ecx,%ecx
401e8c:	89 06                	mov    %eax,(%esi)
401e8e:	85 c0                	test   %eax,%eax
401e90:	5e                   	pop    %esi
401e91:	0f 95 c1             	setne  %cl
401e94:	8b c1                	mov    %ecx,%eax
401e96:	5d                   	pop    %ebp
401e97:	c2 08 00             	ret    $0x8
401e9a:	56                   	push   %esi
401e9b:	8b f1                	mov    %ecx,%esi
401e9d:	83 3e 00             	cmpl   $0x0,(%esi)
401ea0:	74 12                	je     0x401eb4
401ea2:	6a 00                	push   $0x0
401ea4:	ff 36                	push   (%esi)
401ea6:	ff 15 88 20 41 00    	call   *0x412088
401eac:	ff 36                	push   (%esi)
401eae:	ff 15 00 22 41 00    	call   *0x412200
401eb4:	83 26 00             	andl   $0x0,(%esi)
401eb7:	5e                   	pop    %esi
401eb8:	c3                   	ret
401eb9:	55                   	push   %ebp
401eba:	8b ec                	mov    %esp,%ebp
401ebc:	56                   	push   %esi
401ebd:	8b 75 08             	mov    0x8(%ebp),%esi
401ec0:	57                   	push   %edi
401ec1:	56                   	push   %esi
401ec2:	8b f9                	mov    %ecx,%edi
401ec4:	e8 91 15 00 00       	call   0x40345a
401ec9:	8d 46 04             	lea    0x4(%esi),%eax
401ecc:	50                   	push   %eax
401ecd:	8d 4f 04             	lea    0x4(%edi),%ecx
401ed0:	e8 85 15 00 00       	call   0x40345a
401ed5:	8d 46 08             	lea    0x8(%esi),%eax
401ed8:	50                   	push   %eax
401ed9:	8d 4f 08             	lea    0x8(%edi),%ecx
401edc:	e8 79 15 00 00       	call   0x40345a
401ee1:	8b 46 0c             	mov    0xc(%esi),%eax
401ee4:	89 47 0c             	mov    %eax,0xc(%edi)
401ee7:	8b c7                	mov    %edi,%eax
401ee9:	5f                   	pop    %edi
401eea:	5e                   	pop    %esi
401eeb:	5d                   	pop    %ebp
401eec:	c2 04 00             	ret    $0x4
401eef:	55                   	push   %ebp
401ef0:	8b ec                	mov    %esp,%ebp
401ef2:	51                   	push   %ecx
401ef3:	51                   	push   %ecx
401ef4:	53                   	push   %ebx
401ef5:	56                   	push   %esi
401ef6:	8b f1                	mov    %ecx,%esi
401ef8:	57                   	push   %edi
401ef9:	8b 7e 08             	mov    0x8(%esi),%edi
401efc:	3b 7e 04             	cmp    0x4(%esi),%edi
401eff:	0f 82 8d 00 00 00    	jb     0x401f92
401f05:	47                   	inc    %edi
401f06:	33 db                	xor    %ebx,%ebx
401f08:	0f af 7e 0c          	imul   0xc(%esi),%edi
401f0c:	6a 10                	push   $0x10
401f0e:	59                   	pop    %ecx
401f0f:	8b c7                	mov    %edi,%eax
401f11:	89 7d f8             	mov    %edi,-0x8(%ebp)
401f14:	f7 e1                	mul    %ecx
401f16:	0f 90 c3             	seto   %bl
401f19:	33 c9                	xor    %ecx,%ecx
401f1b:	f7 db                	neg    %ebx
401f1d:	0b d8                	or     %eax,%ebx
401f1f:	83 c3 04             	add    $0x4,%ebx
401f22:	0f 92 c1             	setb   %cl
401f25:	f7 d9                	neg    %ecx
401f27:	0b cb                	or     %ebx,%ecx
401f29:	e8 ad 3b 00 00       	call   0x405adb
401f2e:	85 c0                	test   %eax,%eax
401f30:	74 21                	je     0x401f53
401f32:	89 38                	mov    %edi,(%eax)
401f34:	8d 58 04             	lea    0x4(%eax),%ebx
401f37:	8b cf                	mov    %edi,%ecx
401f39:	8b c3                	mov    %ebx,%eax
401f3b:	33 ff                	xor    %edi,%edi
401f3d:	85 c9                	test   %ecx,%ecx
401f3f:	76 16                	jbe    0x401f57
401f41:	89 38                	mov    %edi,(%eax)
401f43:	8d 40 10             	lea    0x10(%eax),%eax
401f46:	89 78 f4             	mov    %edi,-0xc(%eax)
401f49:	89 78 f8             	mov    %edi,-0x8(%eax)
401f4c:	83 e9 01             	sub    $0x1,%ecx
401f4f:	75 f0                	jne    0x401f41
401f51:	eb 04                	jmp    0x401f57
401f53:	33 ff                	xor    %edi,%edi
401f55:	8b df                	mov    %edi,%ebx
401f57:	39 7e 08             	cmp    %edi,0x8(%esi)
401f5a:	76 20                	jbe    0x401f7c
401f5c:	8b cf                	mov    %edi,%ecx
401f5e:	89 7d fc             	mov    %edi,-0x4(%ebp)
401f61:	8b 06                	mov    (%esi),%eax
401f63:	03 c1                	add    %ecx,%eax
401f65:	03 cb                	add    %ebx,%ecx
401f67:	50                   	push   %eax
401f68:	e8 91 00 00 00       	call   0x401ffe
401f6d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401f70:	47                   	inc    %edi
401f71:	83 c1 10             	add    $0x10,%ecx
401f74:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401f77:	3b 7e 08             	cmp    0x8(%esi),%edi
401f7a:	72 e5                	jb     0x401f61
401f7c:	8b 0e                	mov    (%esi),%ecx
401f7e:	85 c9                	test   %ecx,%ecx
401f80:	74 06                	je     0x401f88
401f82:	51                   	push   %ecx
401f83:	e8 96 fa ff ff       	call   0x401a1e
401f88:	8b 45 f8             	mov    -0x8(%ebp),%eax
401f8b:	89 1e                	mov    %ebx,(%esi)
401f8d:	89 46 04             	mov    %eax,0x4(%esi)
401f90:	eb 02                	jmp    0x401f94
401f92:	8b 1e                	mov    (%esi),%ebx
401f94:	8b 4e 08             	mov    0x8(%esi),%ecx
401f97:	8d 45 08             	lea    0x8(%ebp),%eax
401f9a:	c1 e1 04             	shl    $0x4,%ecx
401f9d:	50                   	push   %eax
401f9e:	03 cb                	add    %ebx,%ecx
401fa0:	e8 59 00 00 00       	call   0x401ffe
401fa5:	ff 46 08             	incl   0x8(%esi)
401fa8:	8d 4d 08             	lea    0x8(%ebp),%ecx
401fab:	e8 df f3 ff ff       	call   0x40138f
401fb0:	5f                   	pop    %edi
401fb1:	5e                   	pop    %esi
401fb2:	5b                   	pop    %ebx
401fb3:	c9                   	leave
401fb4:	c2 10 00             	ret    $0x10
401fb7:	55                   	push   %ebp
401fb8:	8b ec                	mov    %esp,%ebp
401fba:	53                   	push   %ebx
401fbb:	56                   	push   %esi
401fbc:	57                   	push   %edi
401fbd:	8b f1                	mov    %ecx,%esi
401fbf:	33 ff                	xor    %edi,%edi
401fc1:	6a 05                	push   $0x5
401fc3:	58                   	pop    %eax
401fc4:	89 46 0c             	mov    %eax,0xc(%esi)
401fc7:	89 46 04             	mov    %eax,0x4(%esi)
401fca:	89 7e 08             	mov    %edi,0x8(%esi)
401fcd:	e8 62 00 00 00       	call   0x402034
401fd2:	8b 5d 08             	mov    0x8(%ebp),%ebx
401fd5:	39 7b 08             	cmp    %edi,0x8(%ebx)
401fd8:	76 1b                	jbe    0x401ff5
401fda:	83 ec 10             	sub    $0x10,%esp
401fdd:	8b cb                	mov    %ebx,%ecx
401fdf:	8b c4                	mov    %esp,%eax
401fe1:	57                   	push   %edi
401fe2:	50                   	push   %eax
401fe3:	e8 a0 00 00 00       	call   0x402088
401fe8:	8b ce                	mov    %esi,%ecx
401fea:	e8 00 ff ff ff       	call   0x401eef
401fef:	47                   	inc    %edi
401ff0:	3b 7b 08             	cmp    0x8(%ebx),%edi
401ff3:	72 e5                	jb     0x401fda
401ff5:	5f                   	pop    %edi
401ff6:	8b c6                	mov    %esi,%eax
401ff8:	5e                   	pop    %esi
401ff9:	5b                   	pop    %ebx
401ffa:	5d                   	pop    %ebp
401ffb:	c2 04 00             	ret    $0x4
401ffe:	55                   	push   %ebp
401fff:	8b ec                	mov    %esp,%ebp
402001:	56                   	push   %esi
402002:	8b 75 08             	mov    0x8(%ebp),%esi
402005:	57                   	push   %edi
402006:	56                   	push   %esi
402007:	8b f9                	mov    %ecx,%edi
402009:	e8 56 12 00 00       	call   0x403264
40200e:	8d 46 04             	lea    0x4(%esi),%eax
402011:	50                   	push   %eax
402012:	8d 4f 04             	lea    0x4(%edi),%ecx
402015:	e8 4a 12 00 00       	call   0x403264
40201a:	8d 46 08             	lea    0x8(%esi),%eax
40201d:	50                   	push   %eax
40201e:	8d 4f 08             	lea    0x8(%edi),%ecx
402021:	e8 3e 12 00 00       	call   0x403264
402026:	8b 46 0c             	mov    0xc(%esi),%eax
402029:	89 47 0c             	mov    %eax,0xc(%edi)
40202c:	8b c7                	mov    %edi,%eax
40202e:	5f                   	pop    %edi
40202f:	5e                   	pop    %esi
402030:	5d                   	pop    %ebp
402031:	c2 04 00             	ret    $0x4
402034:	53                   	push   %ebx
402035:	56                   	push   %esi
402036:	57                   	push   %edi
402037:	8b f9                	mov    %ecx,%edi
402039:	33 db                	xor    %ebx,%ebx
40203b:	6a 10                	push   $0x10
40203d:	59                   	pop    %ecx
40203e:	8b 77 04             	mov    0x4(%edi),%esi
402041:	8b c6                	mov    %esi,%eax
402043:	f7 e1                	mul    %ecx
402045:	0f 90 c3             	seto   %bl
402048:	33 c9                	xor    %ecx,%ecx
40204a:	f7 db                	neg    %ebx
40204c:	0b d8                	or     %eax,%ebx
40204e:	83 c3 04             	add    $0x4,%ebx
402051:	0f 92 c1             	setb   %cl
402054:	f7 d9                	neg    %ecx
402056:	0b cb                	or     %ebx,%ecx
402058:	e8 7e 3a 00 00       	call   0x405adb
40205d:	85 c0                	test   %eax,%eax
40205f:	74 1f                	je     0x402080
402061:	89 30                	mov    %esi,(%eax)
402063:	8d 48 04             	lea    0x4(%eax),%ecx
402066:	8b c1                	mov    %ecx,%eax
402068:	85 f6                	test   %esi,%esi
40206a:	74 16                	je     0x402082
40206c:	33 d2                	xor    %edx,%edx
40206e:	89 10                	mov    %edx,(%eax)
402070:	8d 40 10             	lea    0x10(%eax),%eax
402073:	89 50 f4             	mov    %edx,-0xc(%eax)
402076:	89 50 f8             	mov    %edx,-0x8(%eax)
402079:	83 ee 01             	sub    $0x1,%esi
40207c:	75 f0                	jne    0x40206e
40207e:	eb 02                	jmp    0x402082
402080:	33 c9                	xor    %ecx,%ecx
402082:	89 0f                	mov    %ecx,(%edi)
402084:	5f                   	pop    %edi
402085:	5e                   	pop    %esi
402086:	5b                   	pop    %ebx
402087:	c3                   	ret
402088:	55                   	push   %ebp
402089:	8b ec                	mov    %esp,%ebp
40208b:	56                   	push   %esi
40208c:	8b 75 0c             	mov    0xc(%ebp),%esi
40208f:	57                   	push   %edi
402090:	8b f9                	mov    %ecx,%edi
402092:	3b 77 08             	cmp    0x8(%edi),%esi
402095:	0f 92 c1             	setb   %cl
402098:	e8 8e 37 00 00       	call   0x40582b
40209d:	8b 4d 08             	mov    0x8(%ebp),%ecx
4020a0:	c1 e6 04             	shl    $0x4,%esi
4020a3:	03 37                	add    (%edi),%esi
4020a5:	56                   	push   %esi
4020a6:	e8 0e fe ff ff       	call   0x401eb9
4020ab:	8b 45 08             	mov    0x8(%ebp),%eax
4020ae:	5f                   	pop    %edi
4020af:	5e                   	pop    %esi
4020b0:	5d                   	pop    %ebp
4020b1:	c2 08 00             	ret    $0x8
4020b4:	55                   	push   %ebp
4020b5:	8b ec                	mov    %esp,%ebp
4020b7:	56                   	push   %esi
4020b8:	8b f1                	mov    %ecx,%esi
4020ba:	83 3e 00             	cmpl   $0x0,(%esi)
4020bd:	75 05                	jne    0x4020c4
4020bf:	33 c0                	xor    %eax,%eax
4020c1:	40                   	inc    %eax