44a144:	81 e6 00 00 00 80    	and    $0x80000000,%esi
44a14a:	75 c4                	jne    0x44a110
44a14c:	5e                   	pop    %esi
44a14d:	5f                   	pop    %edi
44a14e:	5b                   	pop    %ebx
44a14f:	33 c0                	xor    %eax,%eax
44a151:	c3                   	ret
44a152:	8d 42 ff             	lea    -0x1(%edx),%eax
44a155:	5b                   	pop    %ebx
44a156:	c3                   	ret
44a157:	8b 42 fc             	mov    -0x4(%edx),%eax
44a15a:	3a c3                	cmp    %bl,%al
44a15c:	74 36                	je     0x44a194
44a15e:	84 c0                	test   %al,%al
44a160:	74 ea                	je     0x44a14c
44a162:	3a e3                	cmp    %bl,%ah
44a164:	74 27                	je     0x44a18d
44a166:	84 e4                	test   %ah,%ah
44a168:	74 e2                	je     0x44a14c
44a16a:	c1 e8 10             	shr    $0x10,%eax
44a16d:	3a c3                	cmp    %bl,%al
44a16f:	74 15                	je     0x44a186
44a171:	84 c0                	test   %al,%al
44a173:	74 d7                	je     0x44a14c
44a175:	3a e3                	cmp    %bl,%ah
44a177:	74 06                	je     0x44a17f
44a179:	84 e4                	test   %ah,%ah
44a17b:	74 cf                	je     0x44a14c
44a17d:	eb 91                	jmp    0x44a110
44a17f:	5e                   	pop    %esi
44a180:	5f                   	pop    %edi
44a181:	8d 42 ff             	lea    -0x1(%edx),%eax
44a184:	5b                   	pop    %ebx
44a185:	c3                   	ret
44a186:	8d 42 fe             	lea    -0x2(%edx),%eax
44a189:	5e                   	pop    %esi
44a18a:	5f                   	pop    %edi
44a18b:	5b                   	pop    %ebx
44a18c:	c3                   	ret
44a18d:	8d 42 fd             	lea    -0x3(%edx),%eax
44a190:	5e                   	pop    %esi
44a191:	5f                   	pop    %edi
44a192:	5b                   	pop    %ebx
44a193:	c3                   	ret
44a194:	8d 42 fc             	lea    -0x4(%edx),%eax
44a197:	5e                   	pop    %esi
44a198:	5f                   	pop    %edi
44a199:	5b                   	pop    %ebx
44a19a:	c3                   	ret
44a19b:	cc                   	int3
44a19c:	cc                   	int3
44a19d:	cc                   	int3
44a19e:	cc                   	int3
44a19f:	cc                   	int3
44a1a0:	8b ff                	mov    %edi,%edi
44a1a2:	55                   	push   %ebp
44a1a3:	8b ec                	mov    %esp,%ebp
44a1a5:	51                   	push   %ecx
44a1a6:	a1 08 a0 46 00       	mov    0x46a008,%eax
44a1ab:	33 c5                	xor    %ebp,%eax
44a1ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
44a1b0:	8b 4d 08             	mov    0x8(%ebp),%ecx
44a1b3:	53                   	push   %ebx
44a1b4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
44a1b7:	3b d9                	cmp    %ecx,%ebx
44a1b9:	76 6f                	jbe    0x44a22a
44a1bb:	8b 45 10             	mov    0x10(%ebp),%eax
44a1be:	56                   	push   %esi
44a1bf:	57                   	push   %edi
44a1c0:	8d 14 01             	lea    (%ecx,%eax,1),%edx
44a1c3:	8b f2                	mov    %edx,%esi
44a1c5:	8b f9                	mov    %ecx,%edi
44a1c7:	3b f3                	cmp    %ebx,%esi
44a1c9:	77 2b                	ja     0x44a1f6
44a1cb:	eb 03                	jmp    0x44a1d0
44a1cd:	8d 49 00             	lea    0x0(%ecx),%ecx
44a1d0:	8b 4d 14             	mov    0x14(%ebp),%ecx
44a1d3:	57                   	push   %edi
44a1d4:	56                   	push   %esi
44a1d5:	ff 75 18             	push   0x18(%ebp)
44a1d8:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a1de:	ff 55 14             	call   *0x14(%ebp)
44a1e1:	83 c4 0c             	add    $0xc,%esp
44a1e4:	85 c0                	test   %eax,%eax
44a1e6:	7e 02                	jle    0x44a1ea
44a1e8:	8b fe                	mov    %esi,%edi
44a1ea:	8b 45 10             	mov    0x10(%ebp),%eax
44a1ed:	03 f0                	add    %eax,%esi
44a1ef:	3b f3                	cmp    %ebx,%esi
44a1f1:	76 dd                	jbe    0x44a1d0
44a1f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
44a1f6:	8b f0                	mov    %eax,%esi
44a1f8:	8b d3                	mov    %ebx,%edx
44a1fa:	3b fb                	cmp    %ebx,%edi
44a1fc:	74 21                	je     0x44a21f
44a1fe:	85 c0                	test   %eax,%eax
44a200:	74 1d                	je     0x44a21f
44a202:	2b fb                	sub    %ebx,%edi
44a204:	8a 02                	mov    (%edx),%al
44a206:	8d 52 01             	lea    0x1(%edx),%edx
44a209:	8a 4c 17 ff          	mov    -0x1(%edi,%edx,1),%cl
44a20d:	88 44 17 ff          	mov    %al,-0x1(%edi,%edx,1)
44a211:	88 4a ff             	mov    %cl,-0x1(%edx)
44a214:	83 ee 01             	sub    $0x1,%esi
44a217:	75 eb                	jne    0x44a204
44a219:	8b 45 10             	mov    0x10(%ebp),%eax
44a21c:	8b 4d 08             	mov    0x8(%ebp),%ecx
44a21f:	2b d8                	sub    %eax,%ebx
44a221:	8d 14 01             	lea    (%ecx,%eax,1),%edx
44a224:	3b d9                	cmp    %ecx,%ebx
44a226:	77 9b                	ja     0x44a1c3
44a228:	5f                   	pop    %edi
44a229:	5e                   	pop    %esi
44a22a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44a22d:	33 cd                	xor    %ebp,%ecx
44a22f:	5b                   	pop    %ebx
44a230:	e8 01 3c fe ff       	call   0x42de36
44a235:	8b e5                	mov    %ebp,%esp
44a237:	5d                   	pop    %ebp
44a238:	c3                   	ret
44a239:	cc                   	int3
44a23a:	cc                   	int3
44a23b:	cc                   	int3
44a23c:	cc                   	int3
44a23d:	cc                   	int3
44a23e:	cc                   	int3
44a23f:	cc                   	int3
44a240:	8b ff                	mov    %edi,%edi
44a242:	55                   	push   %ebp
44a243:	8b ec                	mov    %esp,%ebp
44a245:	8b 45 0c             	mov    0xc(%ebp),%eax
44a248:	57                   	push   %edi
44a249:	8b 7d 08             	mov    0x8(%ebp),%edi
44a24c:	3b f8                	cmp    %eax,%edi
44a24e:	74 26                	je     0x44a276
44a250:	56                   	push   %esi
44a251:	8b 75 10             	mov    0x10(%ebp),%esi
44a254:	85 f6                	test   %esi,%esi
44a256:	74 1d                	je     0x44a275
44a258:	2b f8                	sub    %eax,%edi
44a25a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
44a260:	8a 08                	mov    (%eax),%cl
44a262:	8d 40 01             	lea    0x1(%eax),%eax
44a265:	8a 54 07 ff          	mov    -0x1(%edi,%eax,1),%dl
44a269:	88 4c 07 ff          	mov    %cl,-0x1(%edi,%eax,1)
44a26d:	88 50 ff             	mov    %dl,-0x1(%eax)
44a270:	83 ee 01             	sub    $0x1,%esi
44a273:	75 eb                	jne    0x44a260
44a275:	5e                   	pop    %esi
44a276:	5f                   	pop    %edi
44a277:	5d                   	pop    %ebp
44a278:	c3                   	ret
44a279:	cc                   	int3
44a27a:	cc                   	int3
44a27b:	cc                   	int3
44a27c:	cc                   	int3
44a27d:	cc                   	int3
44a27e:	cc                   	int3
44a27f:	cc                   	int3
44a280:	8b ff                	mov    %edi,%edi
44a282:	55                   	push   %ebp
44a283:	8b ec                	mov    %esp,%ebp
44a285:	81 ec 20 01 00 00    	sub    $0x120,%esp
44a28b:	a1 08 a0 46 00       	mov    0x46a008,%eax
44a290:	33 c5                	xor    %ebp,%eax
44a292:	89 45 fc             	mov    %eax,-0x4(%ebp)
44a295:	8b 4d 18             	mov    0x18(%ebp),%ecx
44a298:	8b 55 0c             	mov    0xc(%ebp),%edx
44a29b:	53                   	push   %ebx
44a29c:	8b 5d 08             	mov    0x8(%ebp),%ebx
44a29f:	89 9d fc fe ff ff    	mov    %ebx,-0x104(%ebp)
44a2a5:	89 8d f8 fe ff ff    	mov    %ecx,-0x108(%ebp)
44a2ab:	56                   	push   %esi
44a2ac:	8b 75 14             	mov    0x14(%ebp),%esi
44a2af:	89 b5 00 ff ff ff    	mov    %esi,-0x100(%ebp)
44a2b5:	57                   	push   %edi
44a2b6:	8b 7d 10             	mov    0x10(%ebp),%edi
44a2b9:	89 bd 04 ff ff ff    	mov    %edi,-0xfc(%ebp)
44a2bf:	85 db                	test   %ebx,%ebx
44a2c1:	75 25                	jne    0x44a2e8
44a2c3:	85 d2                	test   %edx,%edx
44a2c5:	74 21                	je     0x44a2e8
44a2c7:	e8 6a 9b fe ff       	call   0x433e36
44a2cc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
44a2d2:	e8 a3 9a fe ff       	call   0x433d7a
44a2d7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44a2da:	5f                   	pop    %edi
44a2db:	5e                   	pop    %esi
44a2dc:	33 cd                	xor    %ebp,%ecx
44a2de:	5b                   	pop    %ebx
44a2df:	e8 52 3b fe ff       	call   0x42de36
44a2e4:	8b e5                	mov    %ebp,%esp
44a2e6:	5d                   	pop    %ebp
44a2e7:	c3                   	ret
44a2e8:	85 ff                	test   %edi,%edi
44a2ea:	74 db                	je     0x44a2c7
44a2ec:	85 f6                	test   %esi,%esi
44a2ee:	74 d7                	je     0x44a2c7
44a2f0:	c7 85 f4 fe ff ff 00 	movl   $0x0,-0x10c(%ebp)
44a2f7:	00 00 00
44a2fa:	83 fa 02             	cmp    $0x2,%edx
44a2fd:	72 d8                	jb     0x44a2d7
44a2ff:	4a                   	dec    %edx
44a300:	0f af d7             	imul   %edi,%edx
44a303:	03 d3                	add    %ebx,%edx
44a305:	89 95 08 ff ff ff    	mov    %edx,-0xf8(%ebp)
44a30b:	eb 03                	jmp    0x44a310
44a30d:	8d 49 00             	lea    0x0(%ecx),%ecx
44a310:	8b c2                	mov    %edx,%eax
44a312:	33 d2                	xor    %edx,%edx
44a314:	2b c3                	sub    %ebx,%eax
44a316:	f7 f7                	div    %edi
44a318:	8d 58 01             	lea    0x1(%eax),%ebx
44a31b:	83 fb 08             	cmp    $0x8,%ebx
44a31e:	77 1c                	ja     0x44a33c
44a320:	51                   	push   %ecx
44a321:	56                   	push   %esi
44a322:	57                   	push   %edi
44a323:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
44a329:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
44a32f:	e8 6c fe ff ff       	call   0x44a1a0
44a334:	83 c4 14             	add    $0x14,%esp
44a337:	e9 f1 02 00 00       	jmp    0x44a62d
44a33c:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
44a342:	d1 eb                	shr    $1,%ebx
44a344:	0f af df             	imul   %edi,%ebx
44a347:	03 d8                	add    %eax,%ebx
44a349:	53                   	push   %ebx
44a34a:	50                   	push   %eax
44a34b:	51                   	push   %ecx
44a34c:	8b ce                	mov    %esi,%ecx
44a34e:	89 9d ec fe ff ff    	mov    %ebx,-0x114(%ebp)
44a354:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a35a:	ff d6                	call   *%esi
44a35c:	83 c4 0c             	add    $0xc,%esp
44a35f:	85 c0                	test   %eax,%eax
44a361:	7e 10                	jle    0x44a373
44a363:	57                   	push   %edi
44a364:	53                   	push   %ebx
44a365:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
44a36b:	e8 d0 fe ff ff       	call   0x44a240
44a370:	83 c4 0c             	add    $0xc,%esp
44a373:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
44a379:	8b ce                	mov    %esi,%ecx
44a37b:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
44a381:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
44a387:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a38d:	ff d6                	call   *%esi
44a38f:	83 c4 0c             	add    $0xc,%esp
44a392:	85 c0                	test   %eax,%eax
44a394:	7e 15                	jle    0x44a3ab
44a396:	57                   	push   %edi
44a397:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
44a39d:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
44a3a3:	e8 98 fe ff ff       	call   0x44a240
44a3a8:	83 c4 0c             	add    $0xc,%esp
44a3ab:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
44a3b1:	8b ce                	mov    %esi,%ecx
44a3b3:	53                   	push   %ebx
44a3b4:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
44a3ba:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a3c0:	ff d6                	call   *%esi
44a3c2:	83 c4 0c             	add    $0xc,%esp
44a3c5:	85 c0                	test   %eax,%eax
44a3c7:	7e 10                	jle    0x44a3d9
44a3c9:	57                   	push   %edi
44a3ca:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
44a3d0:	53                   	push   %ebx
44a3d1:	e8 6a fe ff ff       	call   0x44a240
44a3d6:	83 c4 0c             	add    $0xc,%esp
44a3d9:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
44a3df:	8b f8                	mov    %eax,%edi
44a3e1:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
44a3e7:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
44a3ed:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
44a3f3:	3b de                	cmp    %esi,%ebx
44a3f5:	76 46                	jbe    0x44a43d
44a3f7:	eb 07                	jmp    0x44a400
44a3f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
44a400:	03 f2                	add    %edx,%esi
44a402:	89 b5 f0 fe ff ff    	mov    %esi,-0x110(%ebp)
44a408:	3b f3                	cmp    %ebx,%esi
44a40a:	73 2b                	jae    0x44a437
44a40c:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
44a412:	53                   	push   %ebx
44a413:	56                   	push   %esi
44a414:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
44a41a:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a420:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
44a426:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
44a42c:	83 c4 0c             	add    $0xc,%esp
44a42f:	85 c0                	test   %eax,%eax
44a431:	7e cd                	jle    0x44a400
44a433:	3b de                	cmp    %esi,%ebx
44a435:	77 43                	ja     0x44a47a
44a437:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
44a43d:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
44a443:	03 f2                	add    %edx,%esi
44a445:	3b f0                	cmp    %eax,%esi
44a447:	77 25                	ja     0x44a46e
44a449:	53                   	push   %ebx
44a44a:	56                   	push   %esi
44a44b:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
44a451:	8b cf                	mov    %edi,%ecx
44a453:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a459:	ff d7                	call   *%edi
44a45b:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
44a461:	83 c4 0c             	add    $0xc,%esp
44a464:	85 c0                	test   %eax,%eax
44a466:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
44a46c:	7e d5                	jle    0x44a443
44a46e:	8b bd e8 fe ff ff    	mov    -0x118(%ebp),%edi
44a474:	89 b5 f0 fe ff ff    	mov    %esi,-0x110(%ebp)
44a47a:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
44a480:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
44a486:	2b fa                	sub    %edx,%edi
44a488:	3b fb                	cmp    %ebx,%edi
44a48a:	76 1f                	jbe    0x44a4ab
44a48c:	53                   	push   %ebx
44a48d:	57                   	push   %edi
44a48e:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
44a494:	8b ce                	mov    %esi,%ecx
44a496:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a49c:	ff d6                	call   *%esi
44a49e:	83 c4 0c             	add    $0xc,%esp
44a4a1:	85 c0                	test   %eax,%eax
44a4a3:	7f db                	jg     0x44a480
44a4a5:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
44a4ab:	8b b5 f0 fe ff ff    	mov    -0x110(%ebp),%esi
44a4b1:	89 bd e8 fe ff ff    	mov    %edi,-0x118(%ebp)
44a4b7:	3b fe                	cmp    %esi,%edi
44a4b9:	72 5e                	jb     0x44a519
44a4bb:	89 95 e4 fe ff ff    	mov    %edx,-0x11c(%ebp)
44a4c1:	89 bd e0 fe ff ff    	mov    %edi,-0x120(%ebp)
44a4c7:	3b f7                	cmp    %edi,%esi
44a4c9:	74 33                	je     0x44a4fe
44a4cb:	8b de                	mov    %esi,%ebx
44a4cd:	8b d7                	mov    %edi,%edx
44a4cf:	8b b5 e4 fe ff ff    	mov    -0x11c(%ebp),%esi
44a4d5:	2b df                	sub    %edi,%ebx
44a4d7:	8a 02                	mov    (%edx),%al
44a4d9:	8d 52 01             	lea    0x1(%edx),%edx
44a4dc:	8a 4c 13 ff          	mov    -0x1(%ebx,%edx,1),%cl
44a4e0:	88 44 13 ff          	mov    %al,-0x1(%ebx,%edx,1)
44a4e4:	88 4a ff             	mov    %cl,-0x1(%edx)
44a4e7:	83 ee 01             	sub    $0x1,%esi
44a4ea:	75 eb                	jne    0x44a4d7
44a4ec:	8b b5 f0 fe ff ff    	mov    -0x110(%ebp),%esi
44a4f2:	8b 9d ec fe ff ff    	mov    -0x114(%ebp),%ebx
44a4f8:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx