452f76:	55                   	push   %ebp
452f77:	8b ec                	mov    %esp,%ebp
452f79:	51                   	push   %ecx
452f7a:	56                   	push   %esi
452f7b:	57                   	push   %edi
452f7c:	8b f9                	mov    %ecx,%edi
452f7e:	8b 4f 04             	mov    0x4(%edi),%ecx
452f81:	8b 77 08             	mov    0x8(%edi),%esi
452f84:	85 c9                	test   %ecx,%ecx
452f86:	74 2f                	je     0x452fb7
452f88:	8b 47 0c             	mov    0xc(%edi),%eax
452f8b:	8b d6                	mov    %esi,%edx
452f8d:	2b d1                	sub    %ecx,%edx
452f8f:	2b c1                	sub    %ecx,%eax
452f91:	c1 fa 02             	sar    $0x2,%edx
452f94:	c1 f8 02             	sar    $0x2,%eax
452f97:	3b d0                	cmp    %eax,%edx
452f99:	73 1c                	jae    0x452fb7
452f9b:	ff 75 fc             	push   -0x4(%ebp)
452f9e:	33 d2                	xor    %edx,%edx
452fa0:	ff 75 fc             	push   -0x4(%ebp)
452fa3:	42                   	inc    %edx
452fa4:	51                   	push   %ecx
452fa5:	ff 75 08             	push   0x8(%ebp)
452fa8:	8b ce                	mov    %esi,%ecx
452faa:	e8 ca 19 00 00       	call   0x454979
452faf:	83 c6 04             	add    $0x4,%esi
452fb2:	89 77 08             	mov    %esi,0x8(%edi)
452fb5:	eb 0c                	jmp    0x452fc3
452fb7:	ff 75 08             	push   0x8(%ebp)
452fba:	51                   	push   %ecx
452fbb:	56                   	push   %esi
452fbc:	8b cf                	mov    %edi,%ecx
452fbe:	e8 2f 0a 00 00       	call   0x4539f2
452fc3:	5f                   	pop    %edi
452fc4:	5e                   	pop    %esi
452fc5:	c9                   	leave
452fc6:	c2 04 00             	ret    $0x4
452fc9:	8b ff                	mov    %edi,%edi
452fcb:	56                   	push   %esi
452fcc:	57                   	push   %edi
452fcd:	8b f9                	mov    %ecx,%edi
452fcf:	8b 77 04             	mov    0x4(%edi),%esi
452fd2:	85 f6                	test   %esi,%esi
452fd4:	74 23                	je     0x452ff9
452fd6:	53                   	push   %ebx
452fd7:	8b 5f 08             	mov    0x8(%edi),%ebx
452fda:	3b f3                	cmp    %ebx,%esi
452fdc:	74 12                	je     0x452ff0
452fde:	8b ce                	mov    %esi,%ecx
452fe0:	ff 15 1c 74 4a 00    	call   *0x4a741c
452fe6:	83 c6 04             	add    $0x4,%esi
452fe9:	3b f3                	cmp    %ebx,%esi
452feb:	75 f1                	jne    0x452fde
452fed:	8b 77 04             	mov    0x4(%edi),%esi
452ff0:	56                   	push   %esi
452ff1:	ff 15 10 74 4a 00    	call   *0x4a7410
452ff7:	59                   	pop    %ecx
452ff8:	5b                   	pop    %ebx
452ff9:	33 c0                	xor    %eax,%eax
452ffb:	89 47 04             	mov    %eax,0x4(%edi)
452ffe:	89 47 08             	mov    %eax,0x8(%edi)
453001:	89 47 0c             	mov    %eax,0xc(%edi)
453004:	5f                   	pop    %edi
453005:	5e                   	pop    %esi
453006:	c3                   	ret
453007:	8b ff                	mov    %edi,%edi
453009:	55                   	push   %ebp
45300a:	8b ec                	mov    %esp,%ebp
45300c:	6a ff                	push   $0xffffffff
45300e:	68 7b 13 49 00       	push   $0x49137b
453013:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
453019:	50                   	push   %eax
45301a:	51                   	push   %ecx
45301b:	56                   	push   %esi
45301c:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
453021:	33 c5                	xor    %ebp,%eax
453023:	50                   	push   %eax
453024:	8d 45 f4             	lea    -0xc(%ebp),%eax
453027:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
45302d:	8b f1                	mov    %ecx,%esi
45302f:	8b 46 04             	mov    0x4(%esi),%eax
453032:	50                   	push   %eax
453033:	ff 30                	push   (%eax)
453035:	8d 45 f0             	lea    -0x10(%ebp),%eax
453038:	50                   	push   %eax
453039:	e8 28 0c 00 00       	call   0x453c66
45303e:	ff 76 04             	push   0x4(%esi)
453041:	ff 15 10 74 4a 00    	call   *0x4a7410
453047:	83 66 04 00          	andl   $0x0,0x4(%esi)
45304b:	83 66 08 00          	andl   $0x0,0x8(%esi)
45304f:	59                   	pop    %ecx
453050:	8b 4d f4             	mov    -0xc(%ebp),%ecx
453053:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45305a:	59                   	pop    %ecx
45305b:	5e                   	pop    %esi
45305c:	c9                   	leave
45305d:	c3                   	ret
45305e:	cc                   	int3
45305f:	cc                   	int3
453060:	8b ff                	mov    %edi,%edi
453062:	55                   	push   %ebp
453063:	8b ec                	mov    %esp,%ebp
453065:	ff 71 08             	push   0x8(%ecx)
453068:	8b 4d 08             	mov    0x8(%ebp),%ecx
45306b:	e8 0f e4 fc ff       	call   0x42147f
453070:	5d                   	pop    %ebp
453071:	c2 04 00             	ret    $0x4
453074:	cc                   	int3
453075:	cc                   	int3
453076:	cc                   	int3
453077:	cc                   	int3
453078:	cc                   	int3
453079:	cc                   	int3
45307a:	cc                   	int3
45307b:	cc                   	int3
45307c:	cc                   	int3
45307d:	cc                   	int3
45307e:	cc                   	int3
45307f:	cc                   	int3
453080:	8b ff                	mov    %edi,%edi
453082:	55                   	push   %ebp
453083:	8b ec                	mov    %esp,%ebp
453085:	51                   	push   %ecx
453086:	56                   	push   %esi
453087:	6a 0c                	push   $0xc
453089:	8b f1                	mov    %ecx,%esi
45308b:	ff 15 14 74 4a 00    	call   *0x4a7414
453091:	8b d0                	mov    %eax,%edx
453093:	89 55 fc             	mov    %edx,-0x4(%ebp)
453096:	59                   	pop    %ecx
453097:	85 d2                	test   %edx,%edx
453099:	74 15                	je     0x4530b0
45309b:	8b 46 08             	mov    0x8(%esi),%eax
45309e:	c7 42 04 07 00 00 00 	movl   $0x7,0x4(%edx)
4530a5:	c7 02 90 35 40 00    	movl   $0x403590,(%edx)
4530ab:	89 42 08             	mov    %eax,0x8(%edx)
4530ae:	eb 02                	jmp    0x4530b2
4530b0:	33 d2                	xor    %edx,%edx
4530b2:	8b c2                	mov    %edx,%eax
4530b4:	5e                   	pop    %esi
4530b5:	c9                   	leave
4530b6:	c3                   	ret
4530b7:	cc                   	int3
4530b8:	cc                   	int3
4530b9:	cc                   	int3
4530ba:	cc                   	int3
4530bb:	cc                   	int3
4530bc:	cc                   	int3
4530bd:	cc                   	int3
4530be:	cc                   	int3
4530bf:	cc                   	int3
4530c0:	8b ff                	mov    %edi,%edi
4530c2:	55                   	push   %ebp
4530c3:	8b ec                	mov    %esp,%ebp
4530c5:	53                   	push   %ebx
4530c6:	56                   	push   %esi
4530c7:	57                   	push   %edi
4530c8:	33 db                	xor    %ebx,%ebx
4530ca:	bf bc 08 4a 00       	mov    $0x4a08bc,%edi
4530cf:	53                   	push   %ebx
4530d0:	68 6c 08 4a 00       	push   $0x4a086c
4530d5:	57                   	push   %edi
4530d6:	53                   	push   %ebx
4530d7:	ff 75 08             	push   0x8(%ebp)
4530da:	8b f1                	mov    %ecx,%esi
4530dc:	e8 fd de 03 00       	call   0x490fde
4530e1:	8b c8                	mov    %eax,%ecx
4530e3:	83 c4 14             	add    $0x14,%esp
4530e6:	85 c9                	test   %ecx,%ecx
4530e8:	74 0c                	je     0x4530f6
4530ea:	8b 46 08             	mov    0x8(%esi),%eax
4530ed:	8b 49 08             	mov    0x8(%ecx),%ecx
4530f0:	8b 00                	mov    (%eax),%eax
4530f2:	89 01                	mov    %eax,(%ecx)
4530f4:	eb 21                	jmp    0x453117
4530f6:	53                   	push   %ebx
4530f7:	68 94 08 4a 00       	push   $0x4a0894
4530fc:	57                   	push   %edi
4530fd:	53                   	push   %ebx
4530fe:	ff 75 08             	push   0x8(%ebp)
453101:	e8 d8 de 03 00       	call   0x490fde
453106:	8b c8                	mov    %eax,%ecx
453108:	83 c4 14             	add    $0x14,%esp
45310b:	85 c9                	test   %ecx,%ecx
45310d:	74 0a                	je     0x453119
45310f:	8b 46 08             	mov    0x8(%esi),%eax
453112:	8b 00                	mov    (%eax),%eax
453114:	89 41 08             	mov    %eax,0x8(%ecx)
453117:	b3 01                	mov    $0x1,%bl
453119:	5f                   	pop    %edi
45311a:	5e                   	pop    %esi
45311b:	8a c3                	mov    %bl,%al
45311d:	5b                   	pop    %ebx
45311e:	5d                   	pop    %ebp
45311f:	c2 04 00             	ret    $0x4
453122:	cc                   	int3
453123:	cc                   	int3
453124:	cc                   	int3
453125:	cc                   	int3
453126:	cc                   	int3
453127:	cc                   	int3
453128:	cc                   	int3
453129:	cc                   	int3
45312a:	cc                   	int3
45312b:	cc                   	int3
45312c:	cc                   	int3
45312d:	cc                   	int3
45312e:	cc                   	int3
45312f:	cc                   	int3
453130:	8b ff                	mov    %edi,%edi
453132:	55                   	push   %ebp
453133:	8b ec                	mov    %esp,%ebp
453135:	53                   	push   %ebx
453136:	56                   	push   %esi
453137:	57                   	push   %edi
453138:	33 db                	xor    %ebx,%ebx
45313a:	bf bc 08 4a 00       	mov    $0x4a08bc,%edi
45313f:	53                   	push   %ebx
453140:	68 6c 08 4a 00       	push   $0x4a086c
453145:	57                   	push   %edi
453146:	53                   	push   %ebx
453147:	ff 75 08             	push   0x8(%ebp)
45314a:	8b f1                	mov    %ecx,%esi
45314c:	e8 8d de 03 00       	call   0x490fde
453151:	83 c4 14             	add    $0x14,%esp
453154:	85 c0                	test   %eax,%eax
453156:	74 07                	je     0x45315f
453158:	8b 40 08             	mov    0x8(%eax),%eax
45315b:	8b 00                	mov    (%eax),%eax
45315d:	eb 1a                	jmp    0x453179
45315f:	53                   	push   %ebx
453160:	68 94 08 4a 00       	push   $0x4a0894
453165:	57                   	push   %edi
453166:	53                   	push   %ebx
453167:	ff 75 08             	push   0x8(%ebp)
45316a:	e8 6f de 03 00       	call   0x490fde
45316f:	83 c4 14             	add    $0x14,%esp
453172:	85 c0                	test   %eax,%eax
453174:	74 0a                	je     0x453180
453176:	8b 40 08             	mov    0x8(%eax),%eax
453179:	8b 4e 08             	mov    0x8(%esi),%ecx
45317c:	b3 01                	mov    $0x1,%bl
45317e:	89 01                	mov    %eax,(%ecx)
453180:	5f                   	pop    %edi
453181:	5e                   	pop    %esi
453182:	8a c3                	mov    %bl,%al
453184:	5b                   	pop    %ebx
453185:	5d                   	pop    %ebp
453186:	c2 04 00             	ret    $0x4
453189:	cc                   	int3
45318a:	cc                   	int3
45318b:	cc                   	int3
45318c:	cc                   	int3
45318d:	cc                   	int3
45318e:	cc                   	int3
45318f:	cc                   	int3
453190:	8b ff                	mov    %edi,%edi
453192:	55                   	push   %ebp
453193:	8b ec                	mov    %esp,%ebp
453195:	8d 41 08             	lea    0x8(%ecx),%eax
453198:	8b 4d 08             	mov    0x8(%ebp),%ecx
45319b:	50                   	push   %eax
45319c:	e8 4f 04 00 00       	call   0x4535f0
4531a1:	5d                   	pop    %ebp
4531a2:	c2 04 00             	ret    $0x4
4531a5:	cc                   	int3
4531a6:	cc                   	int3
4531a7:	cc                   	int3
4531a8:	cc                   	int3
4531a9:	cc                   	int3
4531aa:	cc                   	int3
4531ab:	cc                   	int3
4531ac:	cc                   	int3
4531ad:	cc                   	int3
4531ae:	cc                   	int3
4531af:	cc                   	int3
4531b0:	8b ff                	mov    %edi,%edi
4531b2:	55                   	push   %ebp
4531b3:	8b ec                	mov    %esp,%ebp
4531b5:	83 e4 f8             	and    $0xfffffff8,%esp
4531b8:	dd 41 08             	fldl   0x8(%ecx)
4531bb:	51                   	push   %ecx
4531bc:	51                   	push   %ecx
4531bd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4531c0:	dd 1c 24             	fstpl  (%esp)
4531c3:	e8 3a 02 00 00       	call   0x453402
4531c8:	8b e5                	mov    %ebp,%esp
4531ca:	5d                   	pop    %ebp
4531cb:	c2 04 00             	ret    $0x4
4531ce:	cc                   	int3
4531cf:	cc                   	int3
4531d0:	8b ff                	mov    %edi,%edi
4531d2:	55                   	push   %ebp
4531d3:	8b ec                	mov    %esp,%ebp
4531d5:	51                   	push   %ecx
4531d6:	56                   	push   %esi
4531d7:	6a 10                	push   $0x10
4531d9:	8b f1                	mov    %ecx,%esi
4531db:	ff 15 14 74 4a 00    	call   *0x4a7414
4531e1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4531e4:	59                   	pop    %ecx
4531e5:	85 c0                	test   %eax,%eax
4531e7:	74 15                	je     0x4531fe
4531e9:	dd 46 08             	fldl   0x8(%esi)
4531ec:	dd 58 08             	fstpl  0x8(%eax)
4531ef:	c7 40 04 05 00 00 00 	movl   $0x5,0x4(%eax)
4531f6:	c7 00 74 35 40 00    	movl   $0x403574,(%eax)
4531fc:	eb 02                	jmp    0x453200
4531fe:	33 c0                	xor    %eax,%eax
453200:	5e                   	pop    %esi
453201:	c9                   	leave
453202:	c3                   	ret
453203:	cc                   	int3
453204:	cc                   	int3
453205:	cc                   	int3
453206:	cc                   	int3
453207:	cc                   	int3
453208:	cc                   	int3
453209:	cc                   	int3
45320a:	cc                   	int3
45320b:	cc                   	int3
45320c:	cc                   	int3
45320d:	cc                   	int3
45320e:	cc                   	int3
45320f:	cc                   	int3
453210:	8b ff                	mov    %edi,%edi
453212:	55                   	push   %ebp
453213:	8b ec                	mov    %esp,%ebp
453215:	8d 41 08             	lea    0x8(%ecx),%eax
453218:	8b 4d 08             	mov    0x8(%ebp),%ecx
45321b:	50                   	push   %eax
45321c:	e8 cf 04 00 00       	call   0x4536f0
453221:	5d                   	pop    %ebp
453222:	c2 04 00             	ret    $0x4
453225:	cc                   	int3
453226:	cc                   	int3
453227:	cc                   	int3
453228:	cc                   	int3
453229:	cc                   	int3
45322a:	cc                   	int3
45322b:	cc                   	int3
45322c:	cc                   	int3
45322d:	cc                   	int3
45322e:	cc                   	int3
45322f:	cc                   	int3
453230:	8b ff                	mov    %edi,%edi
453232:	55                   	push   %ebp
453233:	8b ec                	mov    %esp,%ebp
453235:	ff 71 08             	push   0x8(%ecx)