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)
40714d:	99                   	cltd
40714e:	39 54 24 18          	cmp    %edx,0x18(%esp)
407152:	0f 87 ac 00 00 00    	ja     0x407204
407158:	72 08                	jb     0x407162
40715a:	3b d8                	cmp    %eax,%ebx
40715c:	0f 87 a2 00 00 00    	ja     0x407204
407162:	8b 55 24             	mov    0x24(%ebp),%edx
407165:	8b c3                	mov    %ebx,%eax
407167:	0b 44 24 18          	or     0x18(%esp),%eax
40716b:	74 19                	je     0x407186
40716d:	f6 c2 01             	test   $0x1,%dl
407170:	74 0b                	je     0x40717d
407172:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
407177:	0f 84 87 00 00 00    	je     0x407204
40717d:	f6 c2 02             	test   $0x2,%dl
407180:	74 04                	je     0x407186
407182:	85 c9                	test   %ecx,%ecx
407184:	74 7e                	je     0x407204
407186:	f6 c2 01             	test   $0x1,%dl
407189:	74 38                	je     0x4071c3
40718b:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
407190:	74 31                	je     0x4071c3
407192:	8b 57 0c             	mov    0xc(%edi),%edx
407195:	8b 44 24 10          	mov    0x10(%esp),%eax
407199:	8b 74 24 10          	mov    0x10(%esp),%esi
40719d:	89 02                	mov    %eax,(%edx)
40719f:	8b 47 1c             	mov    0x1c(%edi),%eax
4071a2:	8d 14 5e             	lea    (%esi,%ebx,2),%edx
4071a5:	8b 74 24 20          	mov    0x20(%esp),%esi
4071a9:	89 10                	mov    %edx,(%eax)
4071ab:	8b 44 24 14          	mov    0x14(%esp),%eax
4071af:	2b c2                	sub    %edx,%eax
4071b1:	d1 f8                	sar    $1,%eax
4071b3:	89 44 24 14          	mov    %eax,0x14(%esp)
4071b7:	8b 47 2c             	mov    0x2c(%edi),%eax
4071ba:	8b 54 24 14          	mov    0x14(%esp),%edx
4071be:	89 10                	mov    %edx,(%eax)
4071c0:	8b 55 24             	mov    0x24(%ebp),%edx
4071c3:	f6 c2 02             	test   $0x2,%dl
4071c6:	74 31                	je     0x4071f9
4071c8:	85 c9                	test   %ecx,%ecx
4071ca:	74 2d                	je     0x4071f9
4071cc:	8b 47 30             	mov    0x30(%edi),%eax
4071cf:	8b 54 24 10          	mov    0x10(%esp),%edx
4071d3:	8b f2                	mov    %edx,%esi
4071d5:	8b 08                	mov    (%eax),%ecx
4071d7:	8b 47 20             	mov    0x20(%edi),%eax
4071da:	8b 00                	mov    (%eax),%eax
4071dc:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4071df:	8b 47 10             	mov    0x10(%edi),%eax
4071e2:	89 10                	mov    %edx,(%eax)
4071e4:	8d 14 5e             	lea    (%esi,%ebx,2),%edx
4071e7:	8b 47 20             	mov    0x20(%edi),%eax
4071ea:	2b ca                	sub    %edx,%ecx
4071ec:	8b 74 24 20          	mov    0x20(%esp),%esi
4071f0:	d1 f9                	sar    $1,%ecx
4071f2:	89 10                	mov    %edx,(%eax)
4071f4:	8b 47 30             	mov    0x30(%edi),%eax
4071f7:	89 08                	mov    %ecx,(%eax)
4071f9:	8b 44 24 18          	mov    0x18(%esp),%eax
4071fd:	89 1e                	mov    %ebx,(%esi)
4071ff:	89 46 04             	mov    %eax,0x4(%esi)
407202:	eb 0d                	jmp    0x407211
407204:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
40720a:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
407211:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
407218:	0f 57 c0             	xorps  %xmm0,%xmm0
40721b:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
407222:	8b c6                	mov    %esi,%eax
407224:	5f                   	pop    %edi
407225:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
40722a:	5e                   	pop    %esi
40722b:	5b                   	pop    %ebx
40722c:	8b e5                	mov    %ebp,%esp
40722e:	5d                   	pop    %ebp
40722f:	c2 20 00             	ret    $0x20
407232:	cc                   	int3
407233:	cc                   	int3
407234:	cc                   	int3
407235:	cc                   	int3
407236:	cc                   	int3
407237:	cc                   	int3
407238:	cc                   	int3
407239:	cc                   	int3
40723a:	cc                   	int3
40723b:	cc                   	int3
40723c:	cc                   	int3
40723d:	cc                   	int3
40723e:	cc                   	int3
40723f:	cc                   	int3
407240:	55                   	push   %ebp
407241:	8b ec                	mov    %esp,%ebp
407243:	83 e4 f8             	and    $0xfffffff8,%esp
407246:	83 ec 24             	sub    $0x24,%esp
407249:	53                   	push   %ebx
40724a:	56                   	push   %esi
40724b:	8b f1                	mov    %ecx,%esi
40724d:	57                   	push   %edi
40724e:	f6 46 3c 02          	testb  $0x2,0x3c(%esi)
407252:	8b 46 1c             	mov    0x1c(%esi),%eax
407255:	8b 00                	mov    (%eax),%eax
407257:	89 44 24 10          	mov    %eax,0x10(%esp)
40725b:	74 04                	je     0x407261
40725d:	33 c9                	xor    %ecx,%ecx
40725f:	eb 11                	jmp    0x407272
407261:	8b 46 20             	mov    0x20(%esi),%eax
407264:	8b 08                	mov    (%eax),%ecx
407266:	85 c9                	test   %ecx,%ecx
407268:	74 08                	je     0x407272
40726a:	39 4e 38             	cmp    %ecx,0x38(%esi)
40726d:	73 03                	jae    0x407272
40726f:	89 4e 38             	mov    %ecx,0x38(%esi)
407272:	8b 46 0c             	mov    0xc(%esi),%eax
407275:	8b 7e 38             	mov    0x38(%esi),%edi
407278:	8b 5d 18             	mov    0x18(%ebp),%ebx
40727b:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
40727f:	8b 10                	mov    (%eax),%edx
407281:	2b fa                	sub    %edx,%edi
407283:	8b 45 14             	mov    0x14(%ebp),%eax
407286:	d1 ff                	sar    $1,%edi
407288:	89 54 24 24          	mov    %edx,0x24(%esp)
40728c:	89 7c 24 14          	mov    %edi,0x14(%esp)
407290:	83 e8 00             	sub    $0x0,%eax
407293:	74 66                	je     0x4072fb
407295:	83 e8 01             	sub    $0x1,%eax
407298:	74 12                	je     0x4072ac
40729a:	83 e8 01             	sub    $0x1,%eax
40729d:	0f 85 1c 01 00 00    	jne    0x4073bf
4072a3:	8b c7                	mov    %edi,%eax
4072a5:	99                   	cltd
4072a6:	8b f8                	mov    %eax,%edi
4072a8:	8b c2                	mov    %edx,%eax
4072aa:	eb 60                	jmp    0x40730c
4072ac:	8b c3                	mov    %ebx,%eax
4072ae:	83 e0 03             	and    $0x3,%eax
4072b1:	3c 03                	cmp    $0x3,%al
4072b3:	0f 84 06 01 00 00    	je     0x4073bf
4072b9:	f6 c3 01             	test   $0x1,%bl
4072bc:	74 1b                	je     0x4072d9
4072be:	8b 44 24 10          	mov    0x10(%esp),%eax
4072c2:	85 c0                	test   %eax,%eax
4072c4:	75 08                	jne    0x4072ce
4072c6:	85 d2                	test   %edx,%edx
4072c8:	0f 85 f1 00 00 00    	jne    0x4073bf
4072ce:	2b c2                	sub    %edx,%eax
4072d0:	d1 f8                	sar    $1,%eax
4072d2:	99                   	cltd
4072d3:	8b f8                	mov    %eax,%edi
4072d5:	8b c2                	mov    %edx,%eax
4072d7:	eb 33                	jmp    0x40730c
4072d9:	f6 c3 02             	test   $0x2,%bl
4072dc:	0f 84 dd 00 00 00    	je     0x4073bf
4072e2:	85 c9                	test   %ecx,%ecx
4072e4:	75 08                	jne    0x4072ee
4072e6:	85 d2                	test   %edx,%edx
4072e8:	0f 85 d1 00 00 00    	jne    0x4073bf
4072ee:	8b c1                	mov    %ecx,%eax
4072f0:	2b c2                	sub    %edx,%eax
4072f2:	d1 f8                	sar    $1,%eax
4072f4:	99                   	cltd
4072f5:	8b f8                	mov    %eax,%edi
4072f7:	8b c2                	mov    %edx,%eax
4072f9:	eb 11                	jmp    0x40730c
4072fb:	0f 57 c0             	xorps  %xmm0,%xmm0
4072fe:	66 0f 13 44 24 18    	movlpd %xmm0,0x18(%esp)
407304:	8b 44 24 1c          	mov    0x1c(%esp),%eax
407308:	8b 7c 24 18          	mov    0x18(%esp),%edi
40730c:	03 7d 0c             	add    0xc(%ebp),%edi
40730f:	13 45 10             	adc    0x10(%ebp),%eax
407312:	89 44 24 18          	mov    %eax,0x18(%esp)
407316:	8b 44 24 14          	mov    0x14(%esp),%eax
40731a:	99                   	cltd
40731b:	39 54 24 18          	cmp    %edx,0x18(%esp)
40731f:	0f 87 9a 00 00 00    	ja     0x4073bf
407325:	72 08                	jb     0x40732f