58016f:	89 45 8c             	mov    %eax,-0x74(%ebp)
580172:	0f b7 c3             	movzwl %bx,%eax
580175:	8b 4d 98             	mov    -0x68(%ebp),%ecx
580178:	8b 55 a8             	mov    -0x58(%ebp),%edx
58017b:	e8 ec fd ff ff       	call   0x57ff6c
580180:	0f b7 c0             	movzwl %ax,%eax
580183:	89 45 88             	mov    %eax,-0x78(%ebp)
580186:	0f b7 45 e2          	movzwl -0x1e(%ebp),%eax
58018a:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
58018d:	8b 55 94             	mov    -0x6c(%ebp),%edx
580190:	e8 d7 fd ff ff       	call   0x57ff6c
580195:	0f b7 c0             	movzwl %ax,%eax
580198:	89 45 84             	mov    %eax,-0x7c(%ebp)
58019b:	0f b7 45 e2          	movzwl -0x1e(%ebp),%eax
58019f:	8b 4d 88             	mov    -0x78(%ebp),%ecx
5801a2:	8b 55 90             	mov    -0x70(%ebp),%edx
5801a5:	e8 c2 fd ff ff       	call   0x57ff6c
5801aa:	0f b7 c0             	movzwl %ax,%eax
5801ad:	89 45 80             	mov    %eax,-0x80(%ebp)
5801b0:	0f b7 45 e0          	movzwl -0x20(%ebp),%eax
5801b4:	8b 4d 80             	mov    -0x80(%ebp),%ecx
5801b7:	8b 55 84             	mov    -0x7c(%ebp),%edx
5801ba:	e8 ad fd ff ff       	call   0x57ff6c
5801bf:	0f b7 c0             	movzwl %ax,%eax
5801c2:	8b 55 f4             	mov    -0xc(%ebp),%edx
5801c5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5801c8:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
5801cb:	66 89 01             	mov    %ax,(%ecx)
5801ce:	ff 45 f8             	incl   -0x8(%ebp)
5801d1:	ff 8d 7c ff ff ff    	decl   -0x84(%ebp)
5801d7:	0f 85 c9 fe ff ff    	jne    0x5800a6
5801dd:	5f                   	pop    %edi
5801de:	5e                   	pop    %esi
5801df:	5b                   	pop    %ebx
5801e0:	8b e5                	mov    %ebp,%esp
5801e2:	5d                   	pop    %ebp
5801e3:	c2 04 00             	ret    $0x4
5801e6:	8b c0                	mov    %eax,%eax
5801e8:	55                   	push   %ebp
5801e9:	8b ec                	mov    %esp,%ebp
5801eb:	83 c4 a4             	add    $0xffffffa4,%esp
5801ee:	53                   	push   %ebx
5801ef:	56                   	push   %esi
5801f0:	57                   	push   %edi
5801f1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5801f4:	89 55 fc             	mov    %edx,-0x4(%ebp)
5801f7:	8b f0                	mov    %eax,%esi
5801f9:	8b 5d 08             	mov    0x8(%ebp),%ebx
5801fc:	0f b7 06             	movzwl (%esi),%eax
5801ff:	0f b7 53 0c          	movzwl 0xc(%ebx),%edx
580203:	f7 ea                	imul   %edx
580205:	e8 06 c5 ff ff       	call   0x57c710
58020a:	8b d0                	mov    %eax,%edx
58020c:	8b ca                	mov    %edx,%ecx
58020e:	8b c1                	mov    %ecx,%eax
580210:	c1 e8 10             	shr    $0x10,%eax
580213:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
580219:	89 4d f4             	mov    %ecx,-0xc(%ebp)
58021c:	8b 53 1a             	mov    0x1a(%ebx),%edx
58021f:	8b ca                	mov    %edx,%ecx
580221:	0f af c8             	imul   %eax,%ecx
580224:	89 4d f0             	mov    %ecx,-0x10(%ebp)
580227:	66 81 3e ff ff       	cmpw   $0xffff,(%esi)
58022c:	74 08                	je     0x580236
58022e:	8b fa                	mov    %edx,%edi
580230:	40                   	inc    %eax
580231:	0f af f8             	imul   %eax,%edi
580234:	eb 05                	jmp    0x58023b
580236:	8b fa                	mov    %edx,%edi
580238:	0f af f8             	imul   %eax,%edi
58023b:	c7 43 04 03 00 00 00 	movl   $0x3,0x4(%ebx)
580242:	8b 45 f8             	mov    -0x8(%ebp),%eax
580245:	8b 55 f0             	mov    -0x10(%ebp),%edx
580248:	03 d2                	add    %edx,%edx
58024a:	03 c2                	add    %edx,%eax
58024c:	8b d6                	mov    %esi,%edx
58024e:	83 c2 02             	add    $0x2,%edx
580251:	53                   	push   %ebx
580252:	8d 4d cc             	lea    -0x34(%ebp),%ecx
580255:	87 ca                	xchg   %ecx,%edx
580257:	91                   	xchg   %eax,%ecx
580258:	e8 f3 f6 ff ff       	call   0x57f950
58025d:	8b 45 f8             	mov    -0x8(%ebp),%eax
580260:	8b d7                	mov    %edi,%edx
580262:	03 d2                	add    %edx,%edx
580264:	03 c2                	add    %edx,%eax
580266:	8b d6                	mov    %esi,%edx
580268:	83 c2 02             	add    $0x2,%edx
58026b:	53                   	push   %ebx
58026c:	8d 4d ac             	lea    -0x54(%ebp),%ecx
58026f:	87 ca                	xchg   %ecx,%edx
580271:	91                   	xchg   %eax,%ecx
580272:	e8 d9 f6 ff ff       	call   0x57f950
580277:	c7 43 04 04 00 00 00 	movl   $0x4,0x4(%ebx)
58027e:	8b 7b 08             	mov    0x8(%ebx),%edi
580281:	4f                   	dec    %edi
580282:	85 ff                	test   %edi,%edi
580284:	7c 4b                	jl     0x5802d1
580286:	47                   	inc    %edi
580287:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
58028e:	8d 75 ac             	lea    -0x54(%ebp),%esi
580291:	8d 5d cc             	lea    -0x34(%ebp),%ebx
580294:	0f b7 06             	movzwl (%esi),%eax
580297:	0f b7 13             	movzwl (%ebx),%edx
58029a:	2b c2                	sub    %edx,%eax
58029c:	f7 6d f4             	imull  -0xc(%ebp)
58029f:	89 45 a8             	mov    %eax,-0x58(%ebp)
5802a2:	db 45 a8             	fildl  -0x58(%ebp)
5802a5:	d8 35 dc 02 58 00    	fdivs  0x5802dc
5802ab:	0f b7 03             	movzwl (%ebx),%eax
5802ae:	89 45 a4             	mov    %eax,-0x5c(%ebp)
5802b1:	db 45 a4             	fildl  -0x5c(%ebp)
5802b4:	de c1                	faddp  %st,%st(1)
5802b6:	e8 05 2a e8 ff       	call   0x402cc0
5802bb:	8b 55 fc             	mov    -0x4(%ebp),%edx
5802be:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5802c1:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
5802c5:	ff 45 ec             	incl   -0x14(%ebp)
5802c8:	83 c3 02             	add    $0x2,%ebx
5802cb:	83 c6 02             	add    $0x2,%esi
5802ce:	4f                   	dec    %edi
5802cf:	75 c3                	jne    0x580294
5802d1:	5f                   	pop    %edi
5802d2:	5e                   	pop    %esi
5802d3:	5b                   	pop    %ebx
5802d4:	8b e5                	mov    %ebp,%esp
5802d6:	5d                   	pop    %ebp
5802d7:	c2 04 00             	ret    $0x4
5802da:	00 00                	add    %al,(%eax)
5802dc:	00 00                	add    %al,(%eax)
5802de:	80 47 55 8b          	addb   $0x8b,0x55(%edi)
5802e2:	ec                   	in     (%dx),%al
5802e3:	83 c4 ac             	add    $0xffffffac,%esp
5802e6:	53                   	push   %ebx
5802e7:	56                   	push   %esi
5802e8:	57                   	push   %edi
5802e9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5802ec:	89 55 fc             	mov    %edx,-0x4(%ebp)
5802ef:	8b f0                	mov    %eax,%esi
5802f1:	8b 5d 08             	mov    0x8(%ebp),%ebx
5802f4:	0f b7 06             	movzwl (%esi),%eax
5802f7:	0f b7 53 0c          	movzwl 0xc(%ebx),%edx
5802fb:	f7 ea                	imul   %edx
5802fd:	e8 0e c4 ff ff       	call   0x57c710
580302:	89 45 f4             	mov    %eax,-0xc(%ebp)
580305:	8b 45 f4             	mov    -0xc(%ebp),%eax
580308:	e8 53 f5 ff ff       	call   0x57f860
58030d:	8b f8                	mov    %eax,%edi
58030f:	8b 45 f4             	mov    -0xc(%ebp),%eax
580312:	e8 4d f5 ff ff       	call   0x57f864
580317:	89 45 f0             	mov    %eax,-0x10(%ebp)
58031a:	8b 43 1e             	mov    0x1e(%ebx),%eax
58031d:	f7 ef                	imul   %edi
58031f:	66 81 3e ff ff       	cmpw   $0xffff,(%esi)
580324:	74 0b                	je     0x580331
580326:	8b 53 1e             	mov    0x1e(%ebx),%edx
580329:	47                   	inc    %edi
58032a:	0f af d7             	imul   %edi,%edx
58032d:	8b fa                	mov    %edx,%edi
58032f:	eb 08                	jmp    0x580339
580331:	8b 53 1e             	mov    0x1e(%ebx),%edx
580334:	0f af d7             	imul   %edi,%edx
580337:	8b fa                	mov    %edx,%edi
580339:	c7 43 04 04 00 00 00 	movl   $0x4,0x4(%ebx)
580340:	8b 55 f8             	mov    -0x8(%ebp),%edx
580343:	03 c0                	add    %eax,%eax
580345:	03 d0                	add    %eax,%edx
580347:	8b c6                	mov    %esi,%eax
580349:	83 c0 02             	add    $0x2,%eax
58034c:	53                   	push   %ebx
58034d:	8d 4d cc             	lea    -0x34(%ebp),%ecx
580350:	87 ca                	xchg   %ecx,%edx
580352:	e8 91 fe ff ff       	call   0x5801e8
580357:	8b 55 f8             	mov    -0x8(%ebp),%edx
58035a:	8b c7                	mov    %edi,%eax
58035c:	03 c0                	add    %eax,%eax
58035e:	03 d0                	add    %eax,%edx
580360:	8b c6                	mov    %esi,%eax
580362:	83 c0 02             	add    $0x2,%eax
580365:	53                   	push   %ebx
580366:	8d 4d ac             	lea    -0x54(%ebp),%ecx
580369:	87 ca                	xchg   %ecx,%edx
58036b:	e8 78 fe ff ff       	call   0x5801e8
580370:	c7 43 04 05 00 00 00 	movl   $0x5,0x4(%ebx)
580377:	8b 7b 08             	mov    0x8(%ebx),%edi
58037a:	4f                   	dec    %edi
58037b:	85 ff                	test   %edi,%edi
58037d:	7c 32                	jl     0x5803b1
58037f:	47                   	inc    %edi
580380:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
580387:	8d 5d cc             	lea    -0x34(%ebp),%ebx
58038a:	8d 75 ac             	lea    -0x54(%ebp),%esi
58038d:	0f b7 0e             	movzwl (%esi),%ecx
580390:	0f b7 13             	movzwl (%ebx),%edx
580393:	8b 45 f0             	mov    -0x10(%ebp),%eax
580396:	e8 d1 f4 ff ff       	call   0x57f86c
58039b:	8b 55 fc             	mov    -0x4(%ebp),%edx
58039e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5803a1:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
5803a5:	ff 45 ec             	incl   -0x14(%ebp)
5803a8:	83 c6 02             	add    $0x2,%esi
5803ab:	83 c3 02             	add    $0x2,%ebx
5803ae:	4f                   	dec    %edi
5803af:	75 dc                	jne    0x58038d
5803b1:	5f                   	pop    %edi
5803b2:	5e                   	pop    %esi
5803b3:	5b                   	pop    %ebx
5803b4:	8b e5                	mov    %ebp,%esp
5803b6:	5d                   	pop    %ebp
5803b7:	c2 04 00             	ret    $0x4
5803ba:	8b c0                	mov    %eax,%eax
5803bc:	55                   	push   %ebp
5803bd:	8b ec                	mov    %esp,%ebp
5803bf:	83 c4 ac             	add    $0xffffffac,%esp
5803c2:	53                   	push   %ebx
5803c3:	56                   	push   %esi
5803c4:	57                   	push   %edi
5803c5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5803c8:	89 55 fc             	mov    %edx,-0x4(%ebp)
5803cb:	8b f0                	mov    %eax,%esi
5803cd:	8b 5d 08             	mov    0x8(%ebp),%ebx
5803d0:	0f b7 06             	movzwl (%esi),%eax
5803d3:	0f b7 53 0c          	movzwl 0xc(%ebx),%edx
5803d7:	f7 ea                	imul   %edx
5803d9:	e8 32 c3 ff ff       	call   0x57c710
5803de:	89 45 f4             	mov    %eax,-0xc(%ebp)
5803e1:	8b 45 f4             	mov    -0xc(%ebp),%eax
5803e4:	e8 77 f4 ff ff       	call   0x57f860
5803e9:	8b f8                	mov    %eax,%edi
5803eb:	8b 45 f4             	mov    -0xc(%ebp),%eax
5803ee:	e8 71 f4 ff ff       	call   0x57f864
5803f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
5803f6:	8b 43 22             	mov    0x22(%ebx),%eax
5803f9:	f7 ef                	imul   %edi
5803fb:	66 81 3e ff ff       	cmpw   $0xffff,(%esi)
580400:	74 0b                	je     0x58040d
580402:	8b 53 22             	mov    0x22(%ebx),%edx
580405:	47                   	inc    %edi
580406:	0f af d7             	imul   %edi,%edx
580409:	8b fa                	mov    %edx,%edi
58040b:	eb 08                	jmp    0x580415
58040d:	8b 53 22             	mov    0x22(%ebx),%edx
580410:	0f af d7             	imul   %edi,%edx
580413:	8b fa                	mov    %edx,%edi
580415:	c7 43 04 05 00 00 00 	movl   $0x5,0x4(%ebx)
58041c:	8b 55 f8             	mov    -0x8(%ebp),%edx
58041f:	03 c0                	add    %eax,%eax
580421:	03 d0                	add    %eax,%edx
580423:	8b c6                	mov    %esi,%eax
580425:	83 c0 02             	add    $0x2,%eax
580428:	53                   	push   %ebx
580429:	8d 4d cc             	lea    -0x34(%ebp),%ecx
58042c:	87 ca                	xchg   %ecx,%edx
58042e:	e8 ad fe ff ff       	call   0x5802e0
580433:	8b 55 f8             	mov    -0x8(%ebp),%edx
580436:	8b c7                	mov    %edi,%eax
580438:	03 c0                	add    %eax,%eax
58043a:	03 d0                	add    %eax,%edx
58043c:	8b c6                	mov    %esi,%eax
58043e:	83 c0 02             	add    $0x2,%eax
580441:	53                   	push   %ebx
580442:	8d 4d ac             	lea    -0x54(%ebp),%ecx
580445:	87 ca                	xchg   %ecx,%edx
580447:	e8 94 fe ff ff       	call   0x5802e0
58044c:	c7 43 04 06 00 00 00 	movl   $0x6,0x4(%ebx)
580453:	8b 7b 08             	mov    0x8(%ebx),%edi
580456:	4f                   	dec    %edi
580457:	85 ff                	test   %edi,%edi
580459:	7c 32                	jl     0x58048d
58045b:	47                   	inc    %edi
58045c:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
580463:	8d 5d cc             	lea    -0x34(%ebp),%ebx
580466:	8d 75 ac             	lea    -0x54(%ebp),%esi
580469:	0f b7 0e             	movzwl (%esi),%ecx
58046c:	0f b7 13             	movzwl (%ebx),%edx
58046f:	8b 45 f0             	mov    -0x10(%ebp),%eax
580472:	e8 f5 f3 ff ff       	call   0x57f86c
580477:	8b 55 fc             	mov    -0x4(%ebp),%edx
58047a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
58047d:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
580481:	ff 45 ec             	incl   -0x14(%ebp)
580484:	83 c6 02             	add    $0x2,%esi
580487:	83 c3 02             	add    $0x2,%ebx
58048a:	4f                   	dec    %edi
58048b:	75 dc                	jne    0x580469
58048d:	5f                   	pop    %edi
58048e:	5e                   	pop    %esi
58048f:	5b                   	pop    %ebx
580490:	8b e5                	mov    %ebp,%esp
580492:	5d                   	pop    %ebp
580493:	c2 04 00             	ret    $0x4
580496:	8b c0                	mov    %eax,%eax
580498:	55                   	push   %ebp
580499:	8b ec                	mov    %esp,%ebp
58049b:	83 c4 ac             	add    $0xffffffac,%esp
58049e:	53                   	push   %ebx
58049f:	56                   	push   %esi
5804a0:	57                   	push   %edi
5804a1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5804a4:	89 55 fc             	mov    %edx,-0x4(%ebp)
5804a7:	8b f0                	mov    %eax,%esi
5804a9:	8b 5d 08             	mov    0x8(%ebp),%ebx
5804ac:	0f b7 06             	movzwl (%esi),%eax
5804af:	0f b7 53 0c          	movzwl 0xc(%ebx),%edx
5804b3:	f7 ea                	imul   %edx
5804b5:	e8 56 c2 ff ff       	call   0x57c710
5804ba:	89 45 f4             	mov    %eax,-0xc(%ebp)
5804bd:	8b 45 f4             	mov    -0xc(%ebp),%eax
5804c0:	e8 9b f3 ff ff       	call   0x57f860
5804c5:	8b f8                	mov    %eax,%edi
5804c7:	8b 45 f4             	mov    -0xc(%ebp),%eax
5804ca:	e8 95 f3 ff ff       	call   0x57f864
5804cf:	89 45 f0             	mov    %eax,-0x10(%ebp)
5804d2:	8b 43 26             	mov    0x26(%ebx),%eax
5804d5:	f7 ef                	imul   %edi
5804d7:	66 81 3e ff ff       	cmpw   $0xffff,(%esi)
5804dc:	74 0b                	je     0x5804e9
5804de:	8b 53 26             	mov    0x26(%ebx),%edx
5804e1:	47                   	inc    %edi
5804e2:	0f af d7             	imul   %edi,%edx
5804e5:	8b fa                	mov    %edx,%edi
5804e7:	eb 08                	jmp    0x5804f1
5804e9:	8b 53 26             	mov    0x26(%ebx),%edx
5804ec:	0f af d7             	imul   %edi,%edx
5804ef:	8b fa                	mov    %edx,%edi
5804f1:	c7 43 04 06 00 00 00 	movl   $0x6,0x4(%ebx)
5804f8:	8b 55 f8             	mov    -0x8(%ebp),%edx
5804fb:	03 c0                	add    %eax,%eax
5804fd:	03 d0                	add    %eax,%edx
5804ff:	8b c6                	mov    %esi,%eax
580501:	83 c0 02             	add    $0x2,%eax
580504:	53                   	push   %ebx
580505:	8d 4d cc             	lea    -0x34(%ebp),%ecx
580508:	87 ca                	xchg   %ecx,%edx
58050a:	e8 ad fe ff ff       	call   0x5803bc
58050f:	8b 55 f8             	mov    -0x8(%ebp),%edx
580512:	8b c7                	mov    %edi,%eax
580514:	03 c0                	add    %eax,%eax
580516:	03 d0                	add    %eax,%edx
580518:	8b c6                	mov    %esi,%eax
58051a:	83 c0 02             	add    $0x2,%eax
58051d:	53                   	push   %ebx
58051e:	8d 4d ac             	lea    -0x54(%ebp),%ecx
580521:	87 ca                	xchg   %ecx,%edx
580523:	e8 94 fe ff ff       	call   0x5803bc
580528:	c7 43 04 07 00 00 00 	movl   $0x7,0x4(%ebx)
58052f:	8b 7b 08             	mov    0x8(%ebx),%edi
580532:	4f                   	dec    %edi
580533:	85 ff                	test   %edi,%edi
580535:	7c 32                	jl     0x580569