ac613c:	cc                   	int3
ac613d:	cc                   	int3
ac613e:	cc                   	int3
ac613f:	cc                   	int3
ac6140:	cc                   	int3
ac6141:	cc                   	int3
ac6142:	cc                   	int3
ac6143:	cc                   	int3
ac6144:	cc                   	int3
ac6145:	cc                   	int3
ac6146:	cc                   	int3
ac6147:	cc                   	int3
ac6148:	cc                   	int3
ac6149:	cc                   	int3
ac614a:	cc                   	int3
ac614b:	cc                   	int3
ac614c:	cc                   	int3
ac614d:	cc                   	int3
ac614e:	cc                   	int3
ac614f:	cc                   	int3
ac6150:	8b ff                	mov    %edi,%edi
ac6152:	55                   	push   %ebp
ac6153:	8b ec                	mov    %esp,%ebp
ac6155:	8b 45 0c             	mov    0xc(%ebp),%eax
ac6158:	57                   	push   %edi
ac6159:	8b 7d 08             	mov    0x8(%ebp),%edi
ac615c:	3b f8                	cmp    %eax,%edi
ac615e:	74 26                	je     0xac6186
ac6160:	56                   	push   %esi
ac6161:	8b 75 10             	mov    0x10(%ebp),%esi
ac6164:	85 f6                	test   %esi,%esi
ac6166:	74 1d                	je     0xac6185
ac6168:	2b f8                	sub    %eax,%edi
ac616a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
ac6170:	8a 08                	mov    (%eax),%cl
ac6172:	8d 40 01             	lea    0x1(%eax),%eax
ac6175:	8a 54 07 ff          	mov    -0x1(%edi,%eax,1),%dl
ac6179:	88 4c 07 ff          	mov    %cl,-0x1(%edi,%eax,1)
ac617d:	88 50 ff             	mov    %dl,-0x1(%eax)
ac6180:	83 ee 01             	sub    $0x1,%esi
ac6183:	75 eb                	jne    0xac6170
ac6185:	5e                   	pop    %esi
ac6186:	5f                   	pop    %edi
ac6187:	5d                   	pop    %ebp
ac6188:	c3                   	ret
ac6189:	cc                   	int3
ac618a:	cc                   	int3
ac618b:	cc                   	int3
ac618c:	cc                   	int3
ac618d:	cc                   	int3
ac618e:	cc                   	int3
ac618f:	cc                   	int3
ac6190:	cc                   	int3
ac6191:	cc                   	int3
ac6192:	cc                   	int3
ac6193:	cc                   	int3
ac6194:	cc                   	int3
ac6195:	cc                   	int3
ac6196:	cc                   	int3
ac6197:	cc                   	int3
ac6198:	cc                   	int3
ac6199:	cc                   	int3
ac619a:	cc                   	int3
ac619b:	cc                   	int3
ac619c:	cc                   	int3
ac619d:	cc                   	int3
ac619e:	cc                   	int3
ac619f:	cc                   	int3
ac61a0:	8b ff                	mov    %edi,%edi
ac61a2:	55                   	push   %ebp
ac61a3:	8b ec                	mov    %esp,%ebp
ac61a5:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
ac61ab:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
ac61b0:	33 c5                	xor    %ebp,%eax
ac61b2:	89 45 fc             	mov    %eax,-0x4(%ebp)
ac61b5:	8b 4d 08             	mov    0x8(%ebp),%ecx
ac61b8:	8b 55 0c             	mov    0xc(%ebp),%edx
ac61bb:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
ac61c1:	56                   	push   %esi
ac61c2:	8b 75 14             	mov    0x14(%ebp),%esi
ac61c5:	89 b5 00 ff ff ff    	mov    %esi,-0x100(%ebp)
ac61cb:	57                   	push   %edi
ac61cc:	8b 7d 10             	mov    0x10(%ebp),%edi
ac61cf:	89 bd 04 ff ff ff    	mov    %edi,-0xfc(%ebp)
ac61d5:	85 c9                	test   %ecx,%ecx
ac61d7:	75 24                	jne    0xac61fd
ac61d9:	85 d2                	test   %edx,%edx
ac61db:	74 20                	je     0xac61fd
ac61dd:	e8 8d 86 97 ff       	call   0x43e86f
ac61e2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ac61e8:	e8 0b 91 95 ff       	call   0x41f2f8
ac61ed:	5f                   	pop    %edi
ac61ee:	5e                   	pop    %esi
ac61ef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
ac61f2:	33 cd                	xor    %ebp,%ecx
ac61f4:	e8 bd 55 95 ff       	call   0x41b7b6
ac61f9:	8b e5                	mov    %ebp,%esp
ac61fb:	5d                   	pop    %ebp
ac61fc:	c3                   	ret
ac61fd:	85 ff                	test   %edi,%edi
ac61ff:	74 dc                	je     0xac61dd
ac6201:	85 f6                	test   %esi,%esi
ac6203:	74 d8                	je     0xac61dd
ac6205:	c7 85 f8 fe ff ff 00 	movl   $0x0,-0x108(%ebp)
ac620c:	00 00 00
ac620f:	83 fa 02             	cmp    $0x2,%edx
ac6212:	0f 82 12 03 00 00    	jb     0xac652a
ac6218:	4a                   	dec    %edx
ac6219:	0f af d7             	imul   %edi,%edx
ac621c:	53                   	push   %ebx
ac621d:	03 d1                	add    %ecx,%edx
ac621f:	89 95 08 ff ff ff    	mov    %edx,-0xf8(%ebp)
ac6225:	8b c2                	mov    %edx,%eax
ac6227:	33 d2                	xor    %edx,%edx
ac6229:	2b c1                	sub    %ecx,%eax
ac622b:	f7 f7                	div    %edi
ac622d:	8d 58 01             	lea    0x1(%eax),%ebx
ac6230:	83 fb 08             	cmp    $0x8,%ebx
ac6233:	77 16                	ja     0xac624b
ac6235:	56                   	push   %esi
ac6236:	57                   	push   %edi
ac6237:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
ac623d:	51                   	push   %ecx
ac623e:	e8 4d fe ff ff       	call   0xac6090
ac6243:	83 c4 10             	add    $0x10,%esp
ac6246:	e9 b7 02 00 00       	jmp    0xac6502
ac624b:	d1 eb                	shr    $1,%ebx
ac624d:	0f af df             	imul   %edi,%ebx
ac6250:	03 d9                	add    %ecx,%ebx
ac6252:	53                   	push   %ebx
ac6253:	51                   	push   %ecx
ac6254:	8b ce                	mov    %esi,%ecx
ac6256:	89 9d f0 fe ff ff    	mov    %ebx,-0x110(%ebp)
ac625c:	ff 15 00 80 db 00    	call   *0xdb8000
ac6262:	ff d6                	call   *%esi
ac6264:	83 c4 08             	add    $0x8,%esp
ac6267:	85 c0                	test   %eax,%eax
ac6269:	7e 10                	jle    0xac627b
ac626b:	57                   	push   %edi
ac626c:	53                   	push   %ebx
ac626d:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
ac6273:	e8 d8 fe ff ff       	call   0xac6150
ac6278:	83 c4 0c             	add    $0xc,%esp
ac627b:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
ac6281:	8b ce                	mov    %esi,%ecx
ac6283:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
ac6289:	ff 15 00 80 db 00    	call   *0xdb8000
ac628f:	ff d6                	call   *%esi
ac6291:	83 c4 08             	add    $0x8,%esp
ac6294:	85 c0                	test   %eax,%eax
ac6296:	7e 15                	jle    0xac62ad
ac6298:	57                   	push   %edi
ac6299:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
ac629f:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
ac62a5:	e8 a6 fe ff ff       	call   0xac6150
ac62aa:	83 c4 0c             	add    $0xc,%esp
ac62ad:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
ac62b3:	8b ce                	mov    %esi,%ecx
ac62b5:	53                   	push   %ebx
ac62b6:	ff 15 00 80 db 00    	call   *0xdb8000
ac62bc:	ff d6                	call   *%esi
ac62be:	83 c4 08             	add    $0x8,%esp
ac62c1:	85 c0                	test   %eax,%eax
ac62c3:	7e 10                	jle    0xac62d5
ac62c5:	57                   	push   %edi
ac62c6:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
ac62cc:	53                   	push   %ebx
ac62cd:	e8 7e fe ff ff       	call   0xac6150
ac62d2:	83 c4 0c             	add    $0xc,%esp
ac62d5:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
ac62db:	8b f8                	mov    %eax,%edi
ac62dd:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
ac62e3:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac62e9:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
ac62ef:	90                   	nop
ac62f0:	3b de                	cmp    %esi,%ebx
ac62f2:	76 37                	jbe    0xac632b
ac62f4:	03 f2                	add    %edx,%esi
ac62f6:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
ac62fc:	3b f3                	cmp    %ebx,%esi
ac62fe:	73 25                	jae    0xac6325
ac6300:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
ac6306:	53                   	push   %ebx
ac6307:	56                   	push   %esi
ac6308:	ff 15 00 80 db 00    	call   *0xdb8000
ac630e:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
ac6314:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac631a:	83 c4 08             	add    $0x8,%esp
ac631d:	85 c0                	test   %eax,%eax
ac631f:	7e d3                	jle    0xac62f4
ac6321:	3b de                	cmp    %esi,%ebx
ac6323:	77 3d                	ja     0xac6362
ac6325:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
ac632b:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
ac6331:	03 f2                	add    %edx,%esi
ac6333:	3b f0                	cmp    %eax,%esi
ac6335:	77 1f                	ja     0xac6356
ac6337:	53                   	push   %ebx
ac6338:	56                   	push   %esi
ac6339:	8b cf                	mov    %edi,%ecx
ac633b:	ff 15 00 80 db 00    	call   *0xdb8000
ac6341:	ff d7                	call   *%edi
ac6343:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac6349:	83 c4 08             	add    $0x8,%esp
ac634c:	85 c0                	test   %eax,%eax
ac634e:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
ac6354:	7e db                	jle    0xac6331
ac6356:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
ac635c:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
ac6362:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
ac6368:	eb 06                	jmp    0xac6370
ac636a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
ac6370:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac6376:	2b fa                	sub    %edx,%edi
ac6378:	3b fb                	cmp    %ebx,%edi
ac637a:	76 19                	jbe    0xac6395
ac637c:	53                   	push   %ebx
ac637d:	57                   	push   %edi
ac637e:	8b ce                	mov    %esi,%ecx
ac6380:	ff 15 00 80 db 00    	call   *0xdb8000
ac6386:	ff d6                	call   *%esi
ac6388:	83 c4 08             	add    $0x8,%esp
ac638b:	85 c0                	test   %eax,%eax
ac638d:	7f e1                	jg     0xac6370
ac638f:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac6395:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
ac639b:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
ac63a1:	3b fe                	cmp    %esi,%edi
ac63a3:	72 5e                	jb     0xac6403
ac63a5:	89 95 e8 fe ff ff    	mov    %edx,-0x118(%ebp)
ac63ab:	89 bd e4 fe ff ff    	mov    %edi,-0x11c(%ebp)
ac63b1:	3b f7                	cmp    %edi,%esi
ac63b3:	74 33                	je     0xac63e8
ac63b5:	8b de                	mov    %esi,%ebx
ac63b7:	8b d7                	mov    %edi,%edx
ac63b9:	8b b5 e8 fe ff ff    	mov    -0x118(%ebp),%esi
ac63bf:	2b df                	sub    %edi,%ebx
ac63c1:	8a 02                	mov    (%edx),%al
ac63c3:	8d 52 01             	lea    0x1(%edx),%edx
ac63c6:	8a 4c 13 ff          	mov    -0x1(%ebx,%edx,1),%cl
ac63ca:	88 44 13 ff          	mov    %al,-0x1(%ebx,%edx,1)
ac63ce:	88 4a ff             	mov    %cl,-0x1(%edx)
ac63d1:	83 ee 01             	sub    $0x1,%esi
ac63d4:	75 eb                	jne    0xac63c1
ac63d6:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
ac63dc:	8b 9d f0 fe ff ff    	mov    -0x110(%ebp),%ebx
ac63e2:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac63e8:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
ac63ee:	3b df                	cmp    %edi,%ebx
ac63f0:	0f 85 fa fe ff ff    	jne    0xac62f0
ac63f6:	8b de                	mov    %esi,%ebx
ac63f8:	89 9d f0 fe ff ff    	mov    %ebx,-0x110(%ebp)
ac63fe:	e9 ed fe ff ff       	jmp    0xac62f0
ac6403:	03 fa                	add    %edx,%edi
ac6405:	3b df                	cmp    %edi,%ebx
ac6407:	73 32                	jae    0xac643b
ac6409:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
ac6410:	2b fa                	sub    %edx,%edi
ac6412:	3b fb                	cmp    %ebx,%edi
ac6414:	76 25                	jbe    0xac643b
ac6416:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
ac641c:	53                   	push   %ebx
ac641d:	57                   	push   %edi
ac641e:	ff 15 00 80 db 00    	call   *0xdb8000
ac6424:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
ac642a:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac6430:	83 c4 08             	add    $0x8,%esp
ac6433:	85 c0                	test   %eax,%eax
ac6435:	74 d9                	je     0xac6410
ac6437:	3b df                	cmp    %edi,%ebx
ac6439:	72 2f                	jb     0xac646a
ac643b:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
ac6441:	2b fa                	sub    %edx,%edi
ac6443:	3b bd fc fe ff ff    	cmp    -0x104(%ebp),%edi
ac6449:	76 19                	jbe    0xac6464
ac644b:	53                   	push   %ebx
ac644c:	57                   	push   %edi
ac644d:	8b ce                	mov    %esi,%ecx
ac644f:	ff 15 00 80 db 00    	call   *0xdb8000
ac6455:	ff d6                	call   *%esi
ac6457:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
ac645d:	83 c4 08             	add    $0x8,%esp
ac6460:	85 c0                	test   %eax,%eax
ac6462:	74 dd                	je     0xac6441
ac6464:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
ac646a:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
ac6470:	8b c7                	mov    %edi,%eax
ac6472:	8b 9d fc fe ff ff    	mov    -0x104(%ebp),%ebx
ac6478:	8b ca                	mov    %edx,%ecx
ac647a:	2b ce                	sub    %esi,%ecx
ac647c:	2b c3                	sub    %ebx,%eax
ac647e:	3b c1                	cmp    %ecx,%eax
ac6480:	7c 39                	jl     0xac64bb
ac6482:	3b df                	cmp    %edi,%ebx
ac6484:	73 18                	jae    0xac649e
ac6486:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
ac648c:	89 9c 85 0c ff ff ff 	mov    %ebx,-0xf4(%ebp,%eax,4)
ac6493:	89 7c 85 84          	mov    %edi,-0x7c(%ebp,%eax,4)
ac6497:	40                   	inc    %eax
ac6498:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
ac649e:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
ac64a4:	3b f2                	cmp    %edx,%esi
ac64a6:	73 4c                	jae    0xac64f4
ac64a8:	8b ce                	mov    %esi,%ecx
ac64aa:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
ac64b0:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
ac64b6:	e9 6a fd ff ff       	jmp    0xac6225
ac64bb:	3b f2                	cmp    %edx,%esi
ac64bd:	73 18                	jae    0xac64d7
ac64bf:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
ac64c5:	89 b4 85 0c ff ff ff 	mov    %esi,-0xf4(%ebp,%eax,4)
ac64cc:	89 54 85 84          	mov    %edx,-0x7c(%ebp,%eax,4)
ac64d0:	40                   	inc    %eax
ac64d1:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
ac64d7:	8b 8d fc fe ff ff    	mov    -0x104(%ebp),%ecx
ac64dd:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
ac64e3:	3b cf                	cmp    %edi,%ecx
ac64e5:	73 15                	jae    0xac64fc
ac64e7:	8b d7                	mov    %edi,%edx
ac64e9:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
ac64ef:	e9 2b fd ff ff       	jmp    0xac621f
ac64f4:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
ac64fa:	eb 06                	jmp    0xac6502
ac64fc:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
ac6502:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
ac6508:	83 e8 01             	sub    $0x1,%eax
ac650b:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
ac6511:	78 16                	js     0xac6529
ac6513:	8b 8c 85 0c ff ff ff 	mov    -0xf4(%ebp,%eax,4),%ecx
ac651a:	8b 54 85 84          	mov    -0x7c(%ebp,%eax,4),%edx
ac651e:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
ac6524:	e9 f6 fc ff ff       	jmp    0xac621f
ac6529:	5b                   	pop    %ebx
ac652a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
ac652d:	5f                   	pop    %edi
ac652e:	33 cd                	xor    %ebp,%ecx
ac6530:	5e                   	pop    %esi
ac6531:	e8 80 52 95 ff       	call   0x41b7b6
ac6536:	8b e5                	mov    %ebp,%esp
ac6538:	5d                   	pop    %ebp
ac6539:	c3                   	ret
ac653a:	cc                   	int3
ac653b:	cc                   	int3
ac653c:	cc                   	int3
ac653d:	cc                   	int3
ac653e:	cc                   	int3
ac653f:	cc                   	int3
ac6540:	cc                   	int3
ac6541:	cc                   	int3
ac6542:	cc                   	int3