452138:	8b c6                	mov    %esi,%eax
45213a:	8b 75 ec             	mov    -0x14(%ebp),%esi
45213d:	8b d7                	mov    %edi,%edx
45213f:	d3 e6                	shl    %cl,%esi
452141:	83 7d f4 03          	cmpl   $0x3,-0xc(%ebp)
452145:	89 45 fc             	mov    %eax,-0x4(%ebp)
452148:	89 75 ec             	mov    %esi,-0x14(%ebp)
45214b:	72 17                	jb     0x452164
45214d:	8b 45 c8             	mov    -0x38(%ebp),%eax
452150:	03 45 e0             	add    -0x20(%ebp),%eax
452153:	8b 4d d0             	mov    -0x30(%ebp),%ecx
452156:	8b 44 83 f8          	mov    -0x8(%ebx,%eax,4),%eax
45215a:	d3 e8                	shr    %cl,%eax
45215c:	0b f0                	or     %eax,%esi
45215e:	8b 45 fc             	mov    -0x4(%ebp),%eax
452161:	89 75 ec             	mov    %esi,-0x14(%ebp)
452164:	53                   	push   %ebx
452165:	6a 00                	push   $0x0
452167:	ff 75 cc             	push   -0x34(%ebp)
45216a:	50                   	push   %eax
45216b:	52                   	push   %edx
45216c:	e8 af db fe ff       	call   0x43fd20
452171:	89 5d d8             	mov    %ebx,-0x28(%ebp)
452174:	5b                   	pop    %ebx
452175:	8b d8                	mov    %eax,%ebx
452177:	33 f6                	xor    %esi,%esi
452179:	8b c2                	mov    %edx,%eax
45217b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45217e:	89 45 f0             	mov    %eax,-0x10(%ebp)
452181:	8b f9                	mov    %ecx,%edi
452183:	89 5d bc             	mov    %ebx,-0x44(%ebp)
452186:	89 45 c0             	mov    %eax,-0x40(%ebp)
452189:	89 75 d8             	mov    %esi,-0x28(%ebp)
45218c:	85 c0                	test   %eax,%eax
45218e:	75 05                	jne    0x452195
452190:	83 fb ff             	cmp    $0xffffffff,%ebx
452193:	76 2a                	jbe    0x4521bf
452195:	6a 00                	push   $0x0
452197:	ff 75 cc             	push   -0x34(%ebp)
45219a:	83 c3 01             	add    $0x1,%ebx
45219d:	83 d0 ff             	adc    $0xffffffff,%eax
4521a0:	50                   	push   %eax
4521a1:	53                   	push   %ebx
4521a2:	e8 19 db fe ff       	call   0x43fcc0
4521a7:	03 f8                	add    %eax,%edi
4521a9:	13 f2                	adc    %edx,%esi
4521ab:	83 cb ff             	or     $0xffffffff,%ebx
4521ae:	33 c0                	xor    %eax,%eax
4521b0:	89 75 d8             	mov    %esi,-0x28(%ebp)
4521b3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4521b6:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4521b9:	89 45 f0             	mov    %eax,-0x10(%ebp)
4521bc:	89 45 c0             	mov    %eax,-0x40(%ebp)
4521bf:	85 f6                	test   %esi,%esi
4521c1:	77 56                	ja     0x452219
4521c3:	72 0b                	jb     0x4521d0
4521c5:	83 ff ff             	cmp    $0xffffffff,%edi
4521c8:	77 4f                	ja     0x452219
4521ca:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4521d0:	50                   	push   %eax
4521d1:	53                   	push   %ebx
4521d2:	33 c9                	xor    %ecx,%ecx
4521d4:	8b f7                	mov    %edi,%esi
4521d6:	0b 4d ec             	or     -0x14(%ebp),%ecx
4521d9:	6a 00                	push   $0x0
4521db:	ff 75 e4             	push   -0x1c(%ebp)
4521de:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4521e1:	e8 da da fe ff       	call   0x43fcc0
4521e6:	3b d6                	cmp    %esi,%edx
4521e8:	72 29                	jb     0x452213
4521ea:	77 05                	ja     0x4521f1
4521ec:	3b 45 fc             	cmp    -0x4(%ebp),%eax
4521ef:	76 22                	jbe    0x452213
4521f1:	8b 45 f0             	mov    -0x10(%ebp),%eax
4521f4:	83 c3 ff             	add    $0xffffffff,%ebx
4521f7:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4521fa:	83 d0 ff             	adc    $0xffffffff,%eax
4521fd:	03 7d cc             	add    -0x34(%ebp),%edi
452200:	89 45 f0             	mov    %eax,-0x10(%ebp)
452203:	83 55 d8 00          	adcl   $0x0,-0x28(%ebp)
452207:	89 45 c0             	mov    %eax,-0x40(%ebp)
45220a:	75 0a                	jne    0x452216
45220c:	83 ff ff             	cmp    $0xffffffff,%edi
45220f:	76 bf                	jbe    0x4521d0
452211:	eb 03                	jmp    0x452216
452213:	8b 45 f0             	mov    -0x10(%ebp),%eax
452216:	89 5d fc             	mov    %ebx,-0x4(%ebp)
452219:	85 c0                	test   %eax,%eax
45221b:	75 08                	jne    0x452225
45221d:	85 db                	test   %ebx,%ebx
45221f:	0f 84 ae 00 00 00    	je     0x4522d3
452225:	8b 4d c8             	mov    -0x38(%ebp),%ecx
452228:	33 ff                	xor    %edi,%edi
45222a:	33 f6                	xor    %esi,%esi
45222c:	85 c9                	test   %ecx,%ecx
45222e:	74 56                	je     0x452286
452230:	8b 45 0c             	mov    0xc(%ebp),%eax
452233:	8b 5d e8             	mov    -0x18(%ebp),%ebx
452236:	83 c0 04             	add    $0x4,%eax
452239:	89 45 ec             	mov    %eax,-0x14(%ebp)
45223c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
45223f:	90                   	nop
452240:	8b 00                	mov    (%eax),%eax
452242:	89 45 d8             	mov    %eax,-0x28(%ebp)
452245:	8b 45 c0             	mov    -0x40(%ebp),%eax
452248:	f7 65 d8             	mull   -0x28(%ebp)
45224b:	8b c8                	mov    %eax,%ecx
45224d:	8b 45 bc             	mov    -0x44(%ebp),%eax
452250:	f7 65 d8             	mull   -0x28(%ebp)
452253:	03 d1                	add    %ecx,%edx
452255:	03 f8                	add    %eax,%edi
452257:	8b 03                	mov    (%ebx),%eax
452259:	8b cf                	mov    %edi,%ecx
45225b:	13 f2                	adc    %edx,%esi
45225d:	8b fe                	mov    %esi,%edi
45225f:	33 f6                	xor    %esi,%esi
452261:	3b c1                	cmp    %ecx,%eax
452263:	73 05                	jae    0x45226a
452265:	83 c7 01             	add    $0x1,%edi
452268:	13 f6                	adc    %esi,%esi
45226a:	2b c1                	sub    %ecx,%eax
45226c:	89 03                	mov    %eax,(%ebx)
45226e:	83 c3 04             	add    $0x4,%ebx
452271:	8b 45 ec             	mov    -0x14(%ebp),%eax
452274:	83 c0 04             	add    $0x4,%eax
452277:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
45227b:	89 45 ec             	mov    %eax,-0x14(%ebp)
45227e:	75 c0                	jne    0x452240
452280:	8b 5d fc             	mov    -0x4(%ebp),%ebx
452283:	8b 4d c8             	mov    -0x38(%ebp),%ecx
452286:	33 c0                	xor    %eax,%eax
452288:	3b c6                	cmp    %esi,%eax
45228a:	77 40                	ja     0x4522cc
45228c:	72 05                	jb     0x452293
45228e:	39 7d c4             	cmp    %edi,-0x3c(%ebp)
452291:	73 39                	jae    0x4522cc
452293:	85 c9                	test   %ecx,%ecx
452295:	74 2e                	je     0x4522c5
452297:	8b 75 0c             	mov    0xc(%ebp),%esi
45229a:	8b f9                	mov    %ecx,%edi
45229c:	8b 55 e8             	mov    -0x18(%ebp),%edx
45229f:	83 c6 04             	add    $0x4,%esi
4522a2:	8b d8                	mov    %eax,%ebx
4522a4:	8b 0a                	mov    (%edx),%ecx
4522a6:	8d 76 04             	lea    0x4(%esi),%esi
4522a9:	33 c0                	xor    %eax,%eax
4522ab:	8d 52 04             	lea    0x4(%edx),%edx
4522ae:	03 4e fc             	add    -0x4(%esi),%ecx
4522b1:	13 c0                	adc    %eax,%eax
4522b3:	03 cb                	add    %ebx,%ecx
4522b5:	89 4a fc             	mov    %ecx,-0x4(%edx)
4522b8:	83 d0 00             	adc    $0x0,%eax
4522bb:	8b d8                	mov    %eax,%ebx
4522bd:	83 ef 01             	sub    $0x1,%edi
4522c0:	75 e2                	jne    0x4522a4
4522c2:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4522c5:	83 c3 ff             	add    $0xffffffff,%ebx
4522c8:	83 55 f0 ff          	adcl   $0xffffffff,-0x10(%ebp)
4522cc:	8b 45 f4             	mov    -0xc(%ebp),%eax
4522cf:	48                   	dec    %eax
4522d0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4522d3:	8b 75 b8             	mov    -0x48(%ebp),%esi
4522d6:	33 c0                	xor    %eax,%eax
4522d8:	8b 55 e0             	mov    -0x20(%ebp),%edx
4522db:	03 c3                	add    %ebx,%eax
4522dd:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
4522e0:	8b f8                	mov    %eax,%edi
4522e2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4522e5:	83 d6 00             	adc    $0x0,%esi
4522e8:	83 6d e8 04          	subl   $0x4,-0x18(%ebp)
4522ec:	4a                   	dec    %edx
4522ed:	8b 5d 08             	mov    0x8(%ebp),%ebx
4522f0:	83 e9 04             	sub    $0x4,%ecx
4522f3:	48                   	dec    %eax
4522f4:	89 7d b8             	mov    %edi,-0x48(%ebp)
4522f7:	89 55 e0             	mov    %edx,-0x20(%ebp)
4522fa:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
4522fd:	89 45 f4             	mov    %eax,-0xc(%ebp)
452300:	85 d2                	test   %edx,%edx
452302:	0f 89 ec fd ff ff    	jns    0x4520f4
452308:	eb 02                	jmp    0x45230c
45230a:	33 ff                	xor    %edi,%edi
45230c:	8b 55 f8             	mov    -0x8(%ebp),%edx
45230f:	42                   	inc    %edx
452310:	8b c2                	mov    %edx,%eax
452312:	3b 03                	cmp    (%ebx),%eax
452314:	73 18                	jae    0x45232e
452316:	8d 48 01             	lea    0x1(%eax),%ecx
452319:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
45231c:	8d 64 24 00          	lea    0x0(%esp),%esp
452320:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
452326:	8d 49 04             	lea    0x4(%ecx),%ecx
452329:	40                   	inc    %eax
45232a:	3b 03                	cmp    (%ebx),%eax
45232c:	72 f2                	jb     0x452320
45232e:	89 13                	mov    %edx,(%ebx)
452330:	85 d2                	test   %edx,%edx
452332:	74 0f                	je     0x452343
452334:	8b 0b                	mov    (%ebx),%ecx
452336:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
45233a:	75 07                	jne    0x452343
45233c:	83 c1 ff             	add    $0xffffffff,%ecx
45233f:	89 0b                	mov    %ecx,(%ebx)
452341:	75 f1                	jne    0x452334
452343:	8b d6                	mov    %esi,%edx
452345:	8b c7                	mov    %edi,%eax
452347:	5e                   	pop    %esi
452348:	5f                   	pop    %edi
452349:	5b                   	pop    %ebx
45234a:	8b e5                	mov    %ebp,%esp
45234c:	5d                   	pop    %ebp
45234d:	c3                   	ret
45234e:	33 c0                	xor    %eax,%eax
452350:	38 41 04             	cmp    %al,0x4(%ecx)
452353:	0f 94 c0             	sete   %al
452356:	48                   	dec    %eax
452357:	25 80 03 00 00       	and    $0x380,%eax
45235c:	83 c0 7f             	add    $0x7f,%eax
45235f:	c3                   	ret
452360:	8b 11                	mov    (%ecx),%edx
452362:	8a 02                	mov    (%edx),%al
452364:	42                   	inc    %edx
452365:	89 11                	mov    %edx,(%ecx)
452367:	c3                   	ret
452368:	8b 11                	mov    (%ecx),%edx
45236a:	0f b7 02             	movzwl (%edx),%eax
45236d:	83 c2 02             	add    $0x2,%edx
452370:	89 11                	mov    %edx,(%ecx)
452372:	c3                   	ret
452373:	8b ff                	mov    %edi,%edi
452375:	55                   	push   %ebp
452376:	8b ec                	mov    %esp,%ebp
452378:	8b 4d 08             	mov    0x8(%ebp),%ecx
45237b:	8d 41 d0             	lea    -0x30(%ecx),%eax
45237e:	83 f8 09             	cmp    $0x9,%eax
452381:	77 04                	ja     0x452387
452383:	b0 01                	mov    $0x1,%al
452385:	5d                   	pop    %ebp
452386:	c3                   	ret
452387:	8d 41 9f             	lea    -0x61(%ecx),%eax
45238a:	83 f8 19             	cmp    $0x19,%eax
45238d:	76 f4                	jbe    0x452383
45238f:	8d 41 bf             	lea    -0x41(%ecx),%eax
452392:	83 f8 19             	cmp    $0x19,%eax
452395:	76 ec                	jbe    0x452383
452397:	83 f9 5f             	cmp    $0x5f,%ecx
45239a:	0f 94 c0             	sete   %al
45239d:	5d                   	pop    %ebp
45239e:	c3                   	ret
45239f:	8a 41 04             	mov    0x4(%ecx),%al
4523a2:	c3                   	ret
4523a3:	8b ff                	mov    %edi,%edi
4523a5:	55                   	push   %ebp
4523a6:	8b ec                	mov    %esp,%ebp
4523a8:	ff 75 0c             	push   0xc(%ebp)
4523ab:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
4523af:	6a 08                	push   $0x8
4523b1:	50                   	push   %eax
4523b2:	e8 76 12 00 00       	call   0x45362d
4523b7:	83 c4 0c             	add    $0xc,%esp
4523ba:	f7 d8                	neg    %eax
4523bc:	1b c0                	sbb    %eax,%eax
4523be:	f7 d8                	neg    %eax
4523c0:	5d                   	pop    %ebp
4523c1:	c3                   	ret
4523c2:	8b ff                	mov    %edi,%edi
4523c4:	55                   	push   %ebp
4523c5:	8b ec                	mov    %esp,%ebp
4523c7:	6a 08                	push   $0x8
4523c9:	ff 75 08             	push   0x8(%ebp)
4523cc:	e8 1f 00 02 00       	call   0x4723f0
4523d1:	f7 d8                	neg    %eax
4523d3:	59                   	pop    %ecx
4523d4:	1b c0                	sbb    %eax,%eax
4523d6:	59                   	pop    %ecx
4523d7:	f7 d8                	neg    %eax
4523d9:	5d                   	pop    %ebp
4523da:	c3                   	ret
4523db:	cc                   	int3
4523dc:	cc                   	int3
4523dd:	cc                   	int3
4523de:	cc                   	int3
4523df:	cc                   	int3
4523e0:	8b ff                	mov    %edi,%edi
4523e2:	55                   	push   %ebp
4523e3:	8b ec                	mov    %esp,%ebp
4523e5:	8b 45 08             	mov    0x8(%ebp),%eax
4523e8:	33 d2                	xor    %edx,%edx
4523ea:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4523ed:	89 48 04             	mov    %ecx,0x4(%eax)
4523f0:	8b 4d 10             	mov    0x10(%ebp),%ecx
4523f3:	85 c9                	test   %ecx,%ecx
4523f5:	89 48 08             	mov    %ecx,0x8(%eax)
4523f8:	0f 95 c2             	setne  %dl
4523fb:	42                   	inc    %edx
4523fc:	89 10                	mov    %edx,(%eax)
4523fe:	5d                   	pop    %ebp
4523ff:	c3                   	ret
452400:	33 c0                	xor    %eax,%eax
452402:	38 41 04             	cmp    %al,0x4(%ecx)
452405:	0f 94 c0             	sete   %al
452408:	48                   	dec    %eax
452409:	83 e0 1d             	and    $0x1d,%eax
45240c:	83 c0 18             	add    $0x18,%eax
45240f:	c3                   	ret
452410:	33 c0                	xor    %eax,%eax
452412:	38 41 04             	cmp    %al,0x4(%ecx)
452415:	0f 94 c0             	sete   %al
452418:	48                   	dec    %eax
452419:	25 80 03 00 00       	and    $0x380,%eax
45241e:	83 c0 7f             	add    $0x7f,%eax
452421:	c3                   	ret
452422:	33 c0                	xor    %eax,%eax
452424:	38 41 04             	cmp    %al,0x4(%ecx)
452427:	0f 94 c0             	sete   %al
45242a:	48                   	dec    %eax
45242b:	25 80 fc ff ff       	and    $0xfffffc80,%eax
452430:	83 c0 82             	add    $0xffffff82,%eax
452433:	c3                   	ret
452434:	cc                   	int3
452435:	cc                   	int3
452436:	cc                   	int3
452437:	cc                   	int3
452438:	cc                   	int3
452439:	cc                   	int3
45243a:	cc                   	int3
45243b:	cc                   	int3
45243c:	cc                   	int3
45243d:	cc                   	int3
45243e:	cc                   	int3
45243f:	cc                   	int3
452440:	8b ff                	mov    %edi,%edi
452442:	55                   	push   %ebp
452443:	8b ec                	mov    %esp,%ebp
452445:	81 ec c0 03 00 00    	sub    $0x3c0,%esp
45244b:	a1 94 80 4b 00       	mov    0x4b8094,%eax
452450:	33 c5                	xor    %ebp,%eax
452452:	89 45 fc             	mov    %eax,-0x4(%ebp)
452455:	8b 4d 0c             	mov    0xc(%ebp),%ecx
452458:	53                   	push   %ebx
452459:	8b 5d 08             	mov    0x8(%ebp),%ebx
45245c:	56                   	push   %esi
45245d:	8b 11                	mov    (%ecx),%edx
45245f:	89 9d 20 fe ff ff    	mov    %ebx,-0x1e0(%ebp)
452465:	57                   	push   %edi
452466:	83 fa 01             	cmp    $0x1,%edx
452469:	0f 87 c9 00 00 00    	ja     0x452538
45246f:	8b 79 04             	mov    0x4(%ecx),%edi
452472:	85 ff                	test   %edi,%edi
452474:	75 1e                	jne    0x452494