406dfb:	33 c5                	xor    %ebp,%eax
406dfd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406e00:	8a 45 08             	mov    0x8(%ebp),%al
406e03:	0f 57 c0             	xorps  %xmm0,%xmm0
406e06:	88 45 f8             	mov    %al,-0x8(%ebp)
406e09:	8d 41 18             	lea    0x18(%ecx),%eax
406e0c:	50                   	push   %eax
406e0d:	8d 45 ec             	lea    -0x14(%ebp),%eax
406e10:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406e15:	50                   	push   %eax
406e16:	6a 01                	push   $0x1
406e18:	8d 45 f8             	lea    -0x8(%ebp),%eax
406e1b:	50                   	push   %eax
406e1c:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e1f:	50                   	push   %eax
406e20:	e8 88 26 01 00       	call   0x4194ad
406e25:	0f b7 4d f4          	movzwl -0xc(%ebp),%ecx
406e29:	83 c4 14             	add    $0x14,%esp
406e2c:	85 c0                	test   %eax,%eax
406e2e:	ba ff ff 00 00       	mov    $0xffff,%edx
406e33:	0f 48 ca             	cmovs  %edx,%ecx
406e36:	66 8b c1             	mov    %cx,%ax
406e39:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406e3c:	33 cd                	xor    %ebp,%ecx
406e3e:	e8 67 2d 01 00       	call   0x419baa
406e43:	8b e5                	mov    %ebp,%esp
406e45:	5d                   	pop    %ebp
406e46:	c2 04 00             	ret    $0x4
406e49:	cc                   	int3
406e4a:	cc                   	int3
406e4b:	cc                   	int3
406e4c:	cc                   	int3
406e4d:	cc                   	int3
406e4e:	cc                   	int3
406e4f:	cc                   	int3
406e50:	55                   	push   %ebp
406e51:	8b ec                	mov    %esp,%ebp
406e53:	83 ec 18             	sub    $0x18,%esp
406e56:	a1 14 50 45 00       	mov    0x455014,%eax
406e5b:	33 c5                	xor    %ebp,%eax
406e5d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406e60:	53                   	push   %ebx
406e61:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406e64:	56                   	push   %esi
406e65:	8b 75 08             	mov    0x8(%ebp),%esi
406e68:	57                   	push   %edi
406e69:	8b 7d 10             	mov    0x10(%ebp),%edi
406e6c:	3b f3                	cmp    %ebx,%esi
406e6e:	74 47                	je     0x406eb7
406e70:	83 c1 18             	add    $0x18,%ecx
406e73:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406e76:	8a 06                	mov    (%esi),%al
406e78:	0f 57 c0             	xorps  %xmm0,%xmm0
406e7b:	88 45 f8             	mov    %al,-0x8(%ebp)
406e7e:	8d 45 ec             	lea    -0x14(%ebp),%eax
406e81:	51                   	push   %ecx
406e82:	50                   	push   %eax
406e83:	6a 01                	push   $0x1
406e85:	8d 45 f8             	lea    -0x8(%ebp),%eax
406e88:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406e8d:	50                   	push   %eax
406e8e:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e91:	50                   	push   %eax
406e92:	e8 16 26 01 00       	call   0x4194ad
406e97:	0f b7 4d f4          	movzwl -0xc(%ebp),%ecx
406e9b:	8d 7f 02             	lea    0x2(%edi),%edi
406e9e:	83 c4 14             	add    $0x14,%esp
406ea1:	85 c0                	test   %eax,%eax
406ea3:	b8 ff ff 00 00       	mov    $0xffff,%eax
406ea8:	0f 48 c8             	cmovs  %eax,%ecx
406eab:	46                   	inc    %esi
406eac:	66 89 4f fe          	mov    %cx,-0x2(%edi)
406eb0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406eb3:	3b f3                	cmp    %ebx,%esi
406eb5:	75 bf                	jne    0x406e76
406eb7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406eba:	8b c6                	mov    %esi,%eax
406ebc:	5f                   	pop    %edi
406ebd:	5e                   	pop    %esi
406ebe:	33 cd                	xor    %ebp,%ecx
406ec0:	5b                   	pop    %ebx
406ec1:	e8 e4 2c 01 00       	call   0x419baa
406ec6:	8b e5                	mov    %ebp,%esp
406ec8:	5d                   	pop    %ebp
406ec9:	c2 0c 00             	ret    $0xc
406ecc:	cc                   	int3
406ecd:	cc                   	int3
406ece:	cc                   	int3
406ecf:	cc                   	int3
406ed0:	55                   	push   %ebp
406ed1:	8b ec                	mov    %esp,%ebp
406ed3:	83 ec 14             	sub    $0x14,%esp
406ed6:	a1 14 50 45 00       	mov    0x455014,%eax
406edb:	33 c5                	xor    %ebp,%eax
406edd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ee0:	8d 41 18             	lea    0x18(%ecx),%eax
406ee3:	0f 57 c0             	xorps  %xmm0,%xmm0
406ee6:	50                   	push   %eax
406ee7:	8d 45 ec             	lea    -0x14(%ebp),%eax
406eea:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406eef:	50                   	push   %eax
406ef0:	ff 75 08             	push   0x8(%ebp)
406ef3:	8d 45 f4             	lea    -0xc(%ebp),%eax
406ef6:	50                   	push   %eax
406ef7:	e8 4c 28 01 00       	call   0x419748
406efc:	0f b6 4d 0c          	movzbl 0xc(%ebp),%ecx
406f00:	83 c4 10             	add    $0x10,%esp
406f03:	0f b6 55 f4          	movzbl -0xc(%ebp),%edx
406f07:	83 f8 01             	cmp    $0x1,%eax
406f0a:	0f 45 d1             	cmovne %ecx,%edx
406f0d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f10:	33 cd                	xor    %ebp,%ecx
406f12:	8a c2                	mov    %dl,%al
406f14:	e8 91 2c 01 00       	call   0x419baa
406f19:	8b e5                	mov    %ebp,%esp
406f1b:	5d                   	pop    %ebp
406f1c:	c2 08 00             	ret    $0x8
406f1f:	cc                   	int3
406f20:	55                   	push   %ebp
406f21:	8b ec                	mov    %esp,%ebp
406f23:	83 ec 18             	sub    $0x18,%esp
406f26:	a1 14 50 45 00       	mov    0x455014,%eax
406f2b:	33 c5                	xor    %ebp,%eax
406f2d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406f30:	53                   	push   %ebx
406f31:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406f34:	56                   	push   %esi
406f35:	8b 75 08             	mov    0x8(%ebp),%esi
406f38:	57                   	push   %edi
406f39:	8b 7d 14             	mov    0x14(%ebp),%edi
406f3c:	3b f3                	cmp    %ebx,%esi
406f3e:	74 41                	je     0x406f81
406f40:	83 c1 18             	add    $0x18,%ecx
406f43:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406f46:	0f b7 06             	movzwl (%esi),%eax
406f49:	0f 57 c0             	xorps  %xmm0,%xmm0
406f4c:	51                   	push   %ecx
406f4d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406f50:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
406f55:	51                   	push   %ecx
406f56:	50                   	push   %eax
406f57:	8d 45 f4             	lea    -0xc(%ebp),%eax
406f5a:	50                   	push   %eax
406f5b:	e8 e8 27 01 00       	call   0x419748
406f60:	0f b6 4d 10          	movzbl 0x10(%ebp),%ecx
406f64:	8d 7f 01             	lea    0x1(%edi),%edi
406f67:	0f b6 55 f4          	movzbl -0xc(%ebp),%edx
406f6b:	83 c4 10             	add    $0x10,%esp
406f6e:	83 f8 01             	cmp    $0x1,%eax
406f71:	0f 45 d1             	cmovne %ecx,%edx
406f74:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406f77:	83 c6 02             	add    $0x2,%esi
406f7a:	88 57 ff             	mov    %dl,-0x1(%edi)
406f7d:	3b f3                	cmp    %ebx,%esi
406f7f:	75 c5                	jne    0x406f46
406f81:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f84:	8b c6                	mov    %esi,%eax
406f86:	5f                   	pop    %edi
406f87:	5e                   	pop    %esi
406f88:	33 cd                	xor    %ebp,%ecx
406f8a:	5b                   	pop    %ebx
406f8b:	e8 1a 2c 01 00       	call   0x419baa
406f90:	8b e5                	mov    %ebp,%esp
406f92:	5d                   	pop    %ebp
406f93:	c2 10 00             	ret    $0x10
406f96:	cc                   	int3
406f97:	cc                   	int3
406f98:	cc                   	int3
406f99:	cc                   	int3
406f9a:	cc                   	int3
406f9b:	cc                   	int3
406f9c:	cc                   	int3
406f9d:	cc                   	int3
406f9e:	cc                   	int3
406f9f:	cc                   	int3
406fa0:	55                   	push   %ebp
406fa1:	8b ec                	mov    %esp,%ebp
406fa3:	56                   	push   %esi
406fa4:	8b f1                	mov    %ecx,%esi
406fa6:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
406faa:	c7 06 78 f6 43 00    	movl   $0x43f678,(%esi)
406fb0:	74 0b                	je     0x406fbd
406fb2:	ff 76 0c             	push   0xc(%esi)
406fb5:	e8 89 ca 01 00       	call   0x423a43
406fba:	83 c4 04             	add    $0x4,%esp
406fbd:	ff 76 14             	push   0x14(%esi)
406fc0:	e8 7e ca 01 00       	call   0x423a43
406fc5:	83 c4 04             	add    $0x4,%esp
406fc8:	c7 06 2c e9 43 00    	movl   $0x43e92c,(%esi)
406fce:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
406fd2:	74 0b                	je     0x406fdf
406fd4:	6a 44                	push   $0x44
406fd6:	56                   	push   %esi
406fd7:	e8 dc 2b 01 00       	call   0x419bb8
406fdc:	83 c4 08             	add    $0x8,%esp
406fdf:	8b c6                	mov    %esi,%eax
406fe1:	5e                   	pop    %esi
406fe2:	5d                   	pop    %ebp
406fe3:	c2 04 00             	ret    $0x4
406fe6:	cc                   	int3
406fe7:	cc                   	int3
406fe8:	cc                   	int3
406fe9:	cc                   	int3
406fea:	cc                   	int3
406feb:	cc                   	int3
406fec:	cc                   	int3
406fed:	cc                   	int3
406fee:	cc                   	int3
406fef:	cc                   	int3
406ff0:	6a 00                	push   $0x0
406ff2:	6a 00                	push   $0x0
406ff4:	51                   	push   %ecx
406ff5:	ff 15 dc e0 43 00    	call   *0x43e0dc
406ffb:	85 c0                	test   %eax,%eax
406ffd:	75 13                	jne    0x407012
406fff:	ff 15 6c e0 43 00    	call   *0x43e06c
407005:	85 c0                	test   %eax,%eax
407007:	7e 0b                	jle    0x407014
407009:	0f b7 c0             	movzwl %ax,%eax
40700c:	0d 00 00 07 80       	or     $0x80070000,%eax
407011:	c3                   	ret
407012:	33 c0                	xor    %eax,%eax
407014:	c3                   	ret
407015:	cc                   	int3
407016:	cc                   	int3
407017:	cc                   	int3
407018:	cc                   	int3
407019:	cc                   	int3
40701a:	cc                   	int3
40701b:	cc                   	int3
40701c:	cc                   	int3
40701d:	cc                   	int3
40701e:	cc                   	int3
40701f:	cc                   	int3
407020:	55                   	push   %ebp
407021:	8b ec                	mov    %esp,%ebp
407023:	6a ff                	push   $0xffffffff
407025:	68 a0 bd 43 00       	push   $0x43bda0
40702a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407030:	50                   	push   %eax
407031:	56                   	push   %esi
407032:	57                   	push   %edi
407033:	a1 14 50 45 00       	mov    0x455014,%eax
407038:	33 c5                	xor    %ebp,%eax
40703a:	50                   	push   %eax
40703b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40703e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
407044:	8b f1                	mov    %ecx,%esi
407046:	8b 06                	mov    (%esi),%eax
407048:	8d 7e 68             	lea    0x68(%esi),%edi
40704b:	8d 4f b0             	lea    -0x50(%edi),%ecx
40704e:	8b 40 04             	mov    0x4(%eax),%eax
407051:	c7 44 38 98 60 ef 44 	movl   $0x44ef60,-0x68(%eax,%edi,1)
407058:	00
407059:	8b 06                	mov    (%esi),%eax
40705b:	8b 50 04             	mov    0x4(%eax),%edx
40705e:	8d 42 98             	lea    -0x68(%edx),%eax
407061:	89 44 3a 94          	mov    %eax,-0x6c(%edx,%edi,1)
407065:	e8 f6 05 00 00       	call   0x407660
40706a:	8b 06                	mov    (%esi),%eax
40706c:	8b 40 04             	mov    0x4(%eax),%eax
40706f:	c7 44 38 98 c8 ee 44 	movl   $0x44eec8,-0x68(%eax,%edi,1)
407076:	00
407077:	8b 06                	mov    (%esi),%eax
407079:	8b 48 04             	mov    0x4(%eax),%ecx
40707c:	8d 41 e0             	lea    -0x20(%ecx),%eax
40707f:	89 44 39 94          	mov    %eax,-0x6c(%ecx,%edi,1)
407083:	8b 47 a8             	mov    -0x58(%edi),%eax
407086:	8b 40 04             	mov    0x4(%eax),%eax
407089:	c7 44 38 a8 d0 ee 44 	movl   $0x44eed0,-0x58(%eax,%edi,1)
407090:	00
407091:	8b 47 a8             	mov    -0x58(%edi),%eax
407094:	8b 48 04             	mov    0x4(%eax),%ecx
407097:	8d 41 f8             	lea    -0x8(%ecx),%eax
40709a:	89 44 39 a4          	mov    %eax,-0x5c(%ecx,%edi,1)
40709e:	8b 06                	mov    (%esi),%eax
4070a0:	8b 40 04             	mov    0x4(%eax),%eax
4070a3:	c7 44 38 98 b8 ee 44 	movl   $0x44eeb8,-0x68(%eax,%edi,1)
4070aa:	00
4070ab:	8b 06                	mov    (%esi),%eax
4070ad:	8b 48 04             	mov    0x4(%eax),%ecx
4070b0:	8d 41 e8             	lea    -0x18(%ecx),%eax
4070b3:	89 44 39 94          	mov    %eax,-0x6c(%ecx,%edi,1)
4070b7:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4070be:	57                   	push   %edi
4070bf:	c7 07 6c ee 44 00    	movl   $0x44ee6c,(%edi)
4070c5:	e8 98 22 01 00       	call   0x419362
4070ca:	83 c4 04             	add    $0x4,%esp
4070cd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4070d0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4070d7:	59                   	pop    %ecx
4070d8:	5f                   	pop    %edi
4070d9:	5e                   	pop    %esi
4070da:	8b e5                	mov    %ebp,%esp
4070dc:	5d                   	pop    %ebp
4070dd:	c3                   	ret
4070de:	cc                   	int3
4070df:	cc                   	int3
4070e0:	cc                   	int3
4070e1:	cc                   	int3
4070e2:	cc                   	int3
4070e3:	cc                   	int3
4070e4:	cc                   	int3
4070e5:	cc                   	int3
4070e6:	cc                   	int3
4070e7:	cc                   	int3
4070e8:	cc                   	int3
4070e9:	cc                   	int3
4070ea:	cc                   	int3
4070eb:	cc                   	int3
4070ec:	cc                   	int3
4070ed:	cc                   	int3
4070ee:	cc                   	int3
4070ef:	cc                   	int3
4070f0:	55                   	push   %ebp
4070f1:	8b ec                	mov    %esp,%ebp
4070f3:	83 e4 f8             	and    $0xfffffff8,%esp
4070f6:	83 ec 1c             	sub    $0x1c,%esp
4070f9:	8b 45 10             	mov    0x10(%ebp),%eax
4070fc:	53                   	push   %ebx
4070fd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407100:	03 5d 14             	add    0x14(%ebp),%ebx
407103:	56                   	push   %esi
407104:	13 45 18             	adc    0x18(%ebp),%eax
407107:	8b 75 08             	mov    0x8(%ebp),%esi
40710a:	57                   	push   %edi
40710b:	8b f9                	mov    %ecx,%edi
40710d:	89 44 24 18          	mov    %eax,0x18(%esp)
407111:	89 74 24 20          	mov    %esi,0x20(%esp)
407115:	f6 47 3c 02          	testb  $0x2,0x3c(%edi)
407119:	8b 47 1c             	mov    0x1c(%edi),%eax
40711c:	8b 00                	mov    (%eax),%eax
40711e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
407122:	74 04                	je     0x407128
407124:	33 c9                	xor    %ecx,%ecx
407126:	eb 11                	jmp    0x407139
407128:	8b 47 20             	mov    0x20(%edi),%eax
40712b:	8b 08                	mov    (%eax),%ecx
40712d:	85 c9                	test   %ecx,%ecx
40712f:	74 08                	je     0x407139
407131:	39 4f 38             	cmp    %ecx,0x38(%edi)
407134:	73 03                	jae    0x407139
407136:	89 4f 38             	mov    %ecx,0x38(%edi)
407139:	8b 47 0c             	mov    0xc(%edi),%eax
40713c:	8b 10                	mov    (%eax),%edx
40713e:	8b 47 38             	mov    0x38(%edi),%eax
407141:	89 44 24 14          	mov    %eax,0x14(%esp)
407145:	2b c2                	sub    %edx,%eax
407147:	d1 f8                	sar    $1,%eax
407149:	89 54 24 10          	mov    %edx,0x10(%esp)