4131b1:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
4131b5:	0f b7 ce             	movzwl %si,%ecx
4131b8:	23 c1                	and    %ecx,%eax
4131ba:	eb 02                	jmp    0x4131be
4131bc:	33 c0                	xor    %eax,%eax
4131be:	5e                   	pop    %esi
4131bf:	c9                   	leave
4131c0:	c3                   	ret
4131c1:	8b ff                	mov    %edi,%edi
4131c3:	55                   	push   %ebp
4131c4:	8b ec                	mov    %esp,%ebp
4131c6:	83 ec 20             	sub    $0x20,%esp
4131c9:	a1 18 60 42 00       	mov    0x426018,%eax
4131ce:	33 c5                	xor    %ebp,%eax
4131d0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4131d3:	ff 75 10             	push   0x10(%ebp)
4131d6:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4131d9:	e8 6c 98 ff ff       	call   0x40ca4a
4131de:	8b 55 08             	mov    0x8(%ebp),%edx
4131e1:	83 fa ff             	cmp    $0xffffffff,%edx
4131e4:	7c 13                	jl     0x4131f9
4131e6:	81 fa ff 00 00 00    	cmp    $0xff,%edx
4131ec:	7f 0b                	jg     0x4131f9
4131ee:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4131f1:	8b 00                	mov    (%eax),%eax
4131f3:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
4131f7:	eb 74                	jmp    0x41326d
4131f9:	53                   	push   %ebx
4131fa:	56                   	push   %esi
4131fb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4131fe:	8b da                	mov    %edx,%ebx
413200:	c1 fb 08             	sar    $0x8,%ebx
413203:	0f b6 cb             	movzbl %bl,%ecx
413206:	57                   	push   %edi
413207:	8b 06                	mov    (%esi),%eax
413209:	33 ff                	xor    %edi,%edi
41320b:	66 39 3c 48          	cmp    %di,(%eax,%ecx,2)
41320f:	7d 10                	jge    0x413221
413211:	33 c9                	xor    %ecx,%ecx
413213:	88 5d f0             	mov    %bl,-0x10(%ebp)
413216:	6a 02                	push   $0x2
413218:	88 55 f1             	mov    %dl,-0xf(%ebp)
41321b:	88 4d f2             	mov    %cl,-0xe(%ebp)
41321e:	58                   	pop    %eax
41321f:	eb 0b                	jmp    0x41322c
413221:	33 c9                	xor    %ecx,%ecx
413223:	88 55 f0             	mov    %dl,-0x10(%ebp)
413226:	33 c0                	xor    %eax,%eax
413228:	88 4d f1             	mov    %cl,-0xf(%ebp)
41322b:	40                   	inc    %eax
41322c:	6a 01                	push   $0x1
41322e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
413231:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
413235:	8d 4d f4             	lea    -0xc(%ebp),%ecx
413238:	ff 76 08             	push   0x8(%esi)
41323b:	51                   	push   %ecx
41323c:	50                   	push   %eax
41323d:	8d 45 f0             	lea    -0x10(%ebp),%eax
413240:	50                   	push   %eax
413241:	8d 45 e4             	lea    -0x1c(%ebp),%eax
413244:	6a 01                	push   $0x1
413246:	50                   	push   %eax
413247:	e8 bd da ff ff       	call   0x410d09
41324c:	83 c4 1c             	add    $0x1c,%esp
41324f:	5f                   	pop    %edi
413250:	5e                   	pop    %esi
413251:	5b                   	pop    %ebx
413252:	85 c0                	test   %eax,%eax
413254:	75 13                	jne    0x413269
413256:	38 45 ec             	cmp    %al,-0x14(%ebp)
413259:	74 0a                	je     0x413265
41325b:	8b 45 e0             	mov    -0x20(%ebp),%eax
41325e:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
413265:	33 c0                	xor    %eax,%eax
413267:	eb 17                	jmp    0x413280
413269:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
41326d:	23 45 0c             	and    0xc(%ebp),%eax
413270:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
413274:	74 0a                	je     0x413280
413276:	8b 4d e0             	mov    -0x20(%ebp),%ecx
413279:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
413280:	8b 4d fc             	mov    -0x4(%ebp),%ecx
413283:	33 cd                	xor    %ebp,%ecx
413285:	e8 6b 59 ff ff       	call   0x408bf5
41328a:	c9                   	leave
41328b:	c3                   	ret
41328c:	cc                   	int3
41328d:	cc                   	int3
41328e:	cc                   	int3
41328f:	cc                   	int3
413290:	8b ff                	mov    %edi,%edi
413292:	55                   	push   %ebp
413293:	8b ec                	mov    %esp,%ebp
413295:	81 ec 18 01 00 00    	sub    $0x118,%esp
41329b:	a1 18 60 42 00       	mov    0x426018,%eax
4132a0:	33 c5                	xor    %ebp,%eax
4132a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4132a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4132a8:	53                   	push   %ebx
4132a9:	8b 5d 14             	mov    0x14(%ebp),%ebx
4132ac:	56                   	push   %esi
4132ad:	8b 75 08             	mov    0x8(%ebp),%esi
4132b0:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
4132b6:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
4132bc:	57                   	push   %edi
4132bd:	8b 7d 10             	mov    0x10(%ebp),%edi
4132c0:	89 bd 00 ff ff ff    	mov    %edi,-0x100(%ebp)
4132c6:	85 f6                	test   %esi,%esi
4132c8:	75 25                	jne    0x4132ef
4132ca:	85 c9                	test   %ecx,%ecx
4132cc:	74 21                	je     0x4132ef
4132ce:	e8 00 ba ff ff       	call   0x40ecd3
4132d3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4132d9:	e8 38 b9 ff ff       	call   0x40ec16
4132de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4132e1:	5f                   	pop    %edi
4132e2:	5e                   	pop    %esi
4132e3:	33 cd                	xor    %ebp,%ecx
4132e5:	5b                   	pop    %ebx
4132e6:	e8 0a 59 ff ff       	call   0x408bf5
4132eb:	8b e5                	mov    %ebp,%esp
4132ed:	5d                   	pop    %ebp
4132ee:	c3                   	ret
4132ef:	85 ff                	test   %edi,%edi
4132f1:	74 db                	je     0x4132ce
4132f3:	85 db                	test   %ebx,%ebx
4132f5:	74 d7                	je     0x4132ce
4132f7:	c7 85 e8 fe ff ff 00 	movl   $0x0,-0x118(%ebp)
4132fe:	00 00 00
413301:	83 f9 02             	cmp    $0x2,%ecx
413304:	72 d8                	jb     0x4132de
413306:	49                   	dec    %ecx
413307:	0f af cf             	imul   %edi,%ecx
41330a:	03 ce                	add    %esi,%ecx
41330c:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
413312:	8b c1                	mov    %ecx,%eax
413314:	33 d2                	xor    %edx,%edx
413316:	2b c6                	sub    %esi,%eax
413318:	f7 f7                	div    %edi
41331a:	40                   	inc    %eax
41331b:	83 f8 08             	cmp    $0x8,%eax
41331e:	0f 87 b6 00 00 00    	ja     0x4133da
413324:	3b ce                	cmp    %esi,%ecx
413326:	0f 86 27 04 00 00    	jbe    0x413753
41332c:	8d 14 37             	lea    (%edi,%esi,1),%edx
41332f:	89 95 f0 fe ff ff    	mov    %edx,-0x110(%ebp)
413335:	8b c6                	mov    %esi,%eax
413337:	8b f2                	mov    %edx,%esi
413339:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
41333f:	3b f1                	cmp    %ecx,%esi
413341:	77 2f                	ja     0x413372
413343:	50                   	push   %eax
413344:	56                   	push   %esi
413345:	8b cb                	mov    %ebx,%ecx
413347:	ff 15 50 c2 41 00    	call   *0x41c250
41334d:	ff d3                	call   *%ebx
41334f:	83 c4 08             	add    $0x8,%esp
413352:	85 c0                	test   %eax,%eax
413354:	7e 0a                	jle    0x413360
413356:	8b c6                	mov    %esi,%eax
413358:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
41335e:	eb 06                	jmp    0x413366
413360:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
413366:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
41336c:	03 f7                	add    %edi,%esi
41336e:	3b f1                	cmp    %ecx,%esi
413370:	76 d1                	jbe    0x413343
413372:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
413378:	8b d1                	mov    %ecx,%edx
41337a:	3b c1                	cmp    %ecx,%eax
41337c:	74 3b                	je     0x4133b9
41337e:	2b c1                	sub    %ecx,%eax
413380:	8b df                	mov    %edi,%ebx
413382:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
413388:	eb 06                	jmp    0x413390
41338a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
413390:	8a 0c 10             	mov    (%eax,%edx,1),%cl
413393:	8d 52 01             	lea    0x1(%edx),%edx
413396:	8b b5 04 ff ff ff    	mov    -0xfc(%ebp),%esi
41339c:	8a 42 ff             	mov    -0x1(%edx),%al
41339f:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
4133a3:	8b c6                	mov    %esi,%eax
4133a5:	88 4a ff             	mov    %cl,-0x1(%edx)
4133a8:	83 eb 01             	sub    $0x1,%ebx
4133ab:	75 e3                	jne    0x413390
4133ad:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4133b3:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
4133b9:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
4133bf:	2b cf                	sub    %edi,%ecx
4133c1:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
4133c7:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
4133cd:	3b ce                	cmp    %esi,%ecx
4133cf:	0f 87 60 ff ff ff    	ja     0x413335
4133d5:	e9 79 03 00 00       	jmp    0x413753
4133da:	d1 e8                	shr    $1,%eax
4133dc:	8b cb                	mov    %ebx,%ecx
4133de:	0f af c7             	imul   %edi,%eax
4133e1:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4133e7:	8d 3c 30             	lea    (%eax,%esi,1),%edi
4133ea:	57                   	push   %edi
4133eb:	56                   	push   %esi
4133ec:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
4133f2:	ff 15 50 c2 41 00    	call   *0x41c250
4133f8:	ff d3                	call   *%ebx
4133fa:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
413400:	83 c4 08             	add    $0x8,%esp
413403:	85 c0                	test   %eax,%eax
413405:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41340b:	7e 4d                	jle    0x41345a
41340d:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
413413:	89 bd f0 fe ff ff    	mov    %edi,-0x110(%ebp)
413419:	3b c7                	cmp    %edi,%eax
41341b:	74 3d                	je     0x41345a
41341d:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
413423:	8b f7                	mov    %edi,%esi
413425:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
41342b:	eb 03                	jmp    0x413430
41342d:	8d 49 00             	lea    0x0(%ecx),%ecx
413430:	8a 06                	mov    (%esi),%al
413432:	8b d6                	mov    %esi,%edx
413434:	2b d7                	sub    %edi,%edx
413436:	8a 0a                	mov    (%edx),%cl
413438:	88 02                	mov    %al,(%edx)
41343a:	88 0e                	mov    %cl,(%esi)
41343c:	46                   	inc    %esi
41343d:	83 eb 01             	sub    $0x1,%ebx
413440:	75 ee                	jne    0x413430
413442:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
413448:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
41344e:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
413454:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41345a:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
413460:	8b cb                	mov    %ebx,%ecx
413462:	50                   	push   %eax
413463:	ff 15 50 c2 41 00    	call   *0x41c250
413469:	ff d3                	call   *%ebx
41346b:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413471:	83 c4 08             	add    $0x8,%esp
413474:	85 c0                	test   %eax,%eax
413476:	7e 49                	jle    0x4134c1
413478:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
41347e:	89 b5 ec fe ff ff    	mov    %esi,-0x114(%ebp)
413484:	8b f2                	mov    %edx,%esi
413486:	3b c2                	cmp    %edx,%eax
413488:	74 37                	je     0x4134c1
41348a:	8b 9d ec fe ff ff    	mov    -0x114(%ebp),%ebx
413490:	2b c2                	sub    %edx,%eax
413492:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
413498:	8b d0                	mov    %eax,%edx
41349a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4134a0:	8a 06                	mov    (%esi),%al
4134a2:	8d 76 01             	lea    0x1(%esi),%esi
4134a5:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
4134a9:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
4134ad:	88 4e ff             	mov    %cl,-0x1(%esi)
4134b0:	83 eb 01             	sub    $0x1,%ebx
4134b3:	75 eb                	jne    0x4134a0
4134b5:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4134bb:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4134c1:	52                   	push   %edx
4134c2:	57                   	push   %edi
4134c3:	8b cb                	mov    %ebx,%ecx
4134c5:	ff 15 50 c2 41 00    	call   *0x41c250
4134cb:	ff d3                	call   *%ebx
4134cd:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4134d3:	83 c4 08             	add    $0x8,%esp
4134d6:	85 c0                	test   %eax,%eax
4134d8:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4134de:	7e 35                	jle    0x413515
4134e0:	8b d8                	mov    %eax,%ebx
4134e2:	8b f2                	mov    %edx,%esi
4134e4:	3b fa                	cmp    %edx,%edi
4134e6:	74 2d                	je     0x413515
4134e8:	8b c7                	mov    %edi,%eax
4134ea:	2b c2                	sub    %edx,%eax
4134ec:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
4134f2:	8b d0                	mov    %eax,%edx
4134f4:	8a 06                	mov    (%esi),%al
4134f6:	8d 76 01             	lea    0x1(%esi),%esi
4134f9:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
4134fd:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
413501:	88 4e ff             	mov    %cl,-0x1(%esi)
413504:	83 eb 01             	sub    $0x1,%ebx
413507:	75 eb                	jne    0x4134f4
413509:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
41350f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413515:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
41351b:	8b da                	mov    %edx,%ebx
41351d:	89 95 04 ff ff ff    	mov    %edx,-0xfc(%ebp)
413523:	3b fe                	cmp    %esi,%edi
413525:	76 3e                	jbe    0x413565
413527:	eb 07                	jmp    0x413530
413529:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
413530:	03 f0                	add    %eax,%esi
413532:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
413538:	3b f7                	cmp    %edi,%esi
41353a:	73 23                	jae    0x41355f
41353c:	8b 8d f8 fe ff ff    	mov    -0x108(%ebp),%ecx
413542:	57                   	push   %edi
413543:	56                   	push   %esi
413544:	ff 15 50 c2 41 00    	call   *0x41c250
41354a:	ff 95 f8 fe ff ff    	call   *-0x108(%ebp)
413550:	83 c4 08             	add    $0x8,%esp
413553:	85 c0                	test   %eax,%eax
413555:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
41355b:	7e d3                	jle    0x413530
41355d:	eb 42                	jmp    0x4135a1
41355f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413565:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
41356b:	eb 03                	jmp    0x413570
41356d:	8d 49 00             	lea    0x0(%ecx),%ecx
413570:	03 f0                	add    %eax,%esi
413572:	3b f2                	cmp    %edx,%esi
413574:	77 1f                	ja     0x413595
413576:	57                   	push   %edi
413577:	56                   	push   %esi
413578:	8b cb                	mov    %ebx,%ecx
41357a:	ff 15 50 c2 41 00    	call   *0x41c250
413580:	ff d3                	call   *%ebx
413582:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
413588:	83 c4 08             	add    $0x8,%esp
41358b:	85 c0                	test   %eax,%eax
41358d:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
413593:	7e db                	jle    0x413570
413595:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
41359b:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
4135a1:	8b b5 f8 fe ff ff    	mov    -0x108(%ebp),%esi
4135a7:	eb 07                	jmp    0x4135b0
4135a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4135b0:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4135b6:	8b cb                	mov    %ebx,%ecx
4135b8:	2b d8                	sub    %eax,%ebx
4135ba:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
4135c0:	3b df                	cmp    %edi,%ebx
4135c2:	76 1f                	jbe    0x4135e3
4135c4:	57                   	push   %edi
4135c5:	53                   	push   %ebx
4135c6:	8b ce                	mov    %esi,%ecx
4135c8:	ff 15 50 c2 41 00    	call   *0x41c250
4135ce:	ff d6                	call   *%esi
4135d0:	83 c4 08             	add    $0x8,%esp
4135d3:	85 c0                	test   %eax,%eax
4135d5:	7f d9                	jg     0x4135b0
4135d7:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4135dd:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
4135e3:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4135e9:	89 9d 04 ff ff ff    	mov    %ebx,-0xfc(%ebp)
4135ef:	3b de                	cmp    %esi,%ebx
4135f1:	72 4a                	jb     0x41363d
4135f3:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)