57ff68:	c3                   	ret
57ff69:	8d 40 00             	lea    0x0(%eax),%eax
57ff6c:	2b ca                	sub    %edx,%ecx
57ff6e:	0f af c8             	imul   %eax,%ecx
57ff71:	81 c1 00 80 00 00    	add    $0x8000,%ecx
57ff77:	c1 e9 10             	shr    $0x10,%ecx
57ff7a:	66 03 ca             	add    %dx,%cx
57ff7d:	8b c1                	mov    %ecx,%eax
57ff7f:	c3                   	ret
57ff80:	55                   	push   %ebp
57ff81:	8b ec                	mov    %esp,%ebp
57ff83:	81 c4 7c ff ff ff    	add    $0xffffff7c,%esp
57ff89:	53                   	push   %ebx
57ff8a:	56                   	push   %esi
57ff8b:	57                   	push   %edi
57ff8c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
57ff8f:	89 55 f4             	mov    %edx,-0xc(%ebp)
57ff92:	8b f0                	mov    %eax,%esi
57ff94:	8b 7d 08             	mov    0x8(%ebp),%edi
57ff97:	8b 47 08             	mov    0x8(%edi),%eax
57ff9a:	89 45 f0             	mov    %eax,-0x10(%ebp)
57ff9d:	0f b7 06             	movzwl (%esi),%eax
57ffa0:	0f b7 57 0c          	movzwl 0xc(%edi),%edx
57ffa4:	f7 ea                	imul   %edx
57ffa6:	e8 65 c7 ff ff       	call   0x57c710
57ffab:	89 45 ec             	mov    %eax,-0x14(%ebp)
57ffae:	8b 45 ec             	mov    -0x14(%ebp),%eax
57ffb1:	e8 aa f8 ff ff       	call   0x57f860
57ffb6:	89 45 dc             	mov    %eax,-0x24(%ebp)
57ffb9:	8b 45 ec             	mov    -0x14(%ebp),%eax
57ffbc:	e8 a3 f8 ff ff       	call   0x57f864
57ffc1:	8b d8                	mov    %eax,%ebx
57ffc3:	0f b7 46 02          	movzwl 0x2(%esi),%eax
57ffc7:	0f b7 57 0c          	movzwl 0xc(%edi),%edx
57ffcb:	f7 ea                	imul   %edx
57ffcd:	e8 3e c7 ff ff       	call   0x57c710
57ffd2:	89 45 e8             	mov    %eax,-0x18(%ebp)
57ffd5:	8b 45 e8             	mov    -0x18(%ebp),%eax
57ffd8:	e8 83 f8 ff ff       	call   0x57f860
57ffdd:	89 45 d8             	mov    %eax,-0x28(%ebp)
57ffe0:	8b 45 e8             	mov    -0x18(%ebp),%eax
57ffe3:	e8 7c f8 ff ff       	call   0x57f864
57ffe8:	66 89 45 e2          	mov    %ax,-0x1e(%ebp)
57ffec:	0f b7 46 04          	movzwl 0x4(%esi),%eax
57fff0:	0f b7 57 0c          	movzwl 0xc(%edi),%edx
57fff4:	f7 ea                	imul   %edx
57fff6:	e8 15 c7 ff ff       	call   0x57c710
57fffb:	89 45 e4             	mov    %eax,-0x1c(%ebp)
57fffe:	8b 45 e4             	mov    -0x1c(%ebp),%eax
580001:	e8 5a f8 ff ff       	call   0x57f860
580006:	89 45 d4             	mov    %eax,-0x2c(%ebp)
580009:	8b 45 e4             	mov    -0x1c(%ebp),%eax
58000c:	e8 53 f8 ff ff       	call   0x57f864
580011:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
580015:	66 81 3e ff ff       	cmpw   $0xffff,(%esi)
58001a:	74 09                	je     0x580025
58001c:	8b 45 dc             	mov    -0x24(%ebp),%eax
58001f:	40                   	inc    %eax
580020:	89 45 d0             	mov    %eax,-0x30(%ebp)
580023:	eb 06                	jmp    0x58002b
580025:	8b 45 dc             	mov    -0x24(%ebp),%eax
580028:	89 45 d0             	mov    %eax,-0x30(%ebp)
58002b:	66 81 7e 02 ff ff    	cmpw   $0xffff,0x2(%esi)
580031:	74 09                	je     0x58003c
580033:	8b 45 d8             	mov    -0x28(%ebp),%eax
580036:	40                   	inc    %eax
580037:	89 45 cc             	mov    %eax,-0x34(%ebp)
58003a:	eb 06                	jmp    0x580042
58003c:	8b 45 d8             	mov    -0x28(%ebp),%eax
58003f:	89 45 cc             	mov    %eax,-0x34(%ebp)
580042:	66 81 7e 04 ff ff    	cmpw   $0xffff,0x4(%esi)
580048:	74 09                	je     0x580053
58004a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
58004d:	40                   	inc    %eax
58004e:	89 45 c8             	mov    %eax,-0x38(%ebp)
580051:	eb 06                	jmp    0x580059
580053:	8b 45 d4             	mov    -0x2c(%ebp),%eax
580056:	89 45 c8             	mov    %eax,-0x38(%ebp)
580059:	8b 47 0e             	mov    0xe(%edi),%eax
58005c:	f7 6d d4             	imull  -0x2c(%ebp)
58005f:	89 45 bc             	mov    %eax,-0x44(%ebp)
580062:	8b 47 0e             	mov    0xe(%edi),%eax
580065:	f7 6d c8             	imull  -0x38(%ebp)
580068:	89 45 b8             	mov    %eax,-0x48(%ebp)
58006b:	8b 47 12             	mov    0x12(%edi),%eax
58006e:	f7 6d d8             	imull  -0x28(%ebp)
580071:	89 45 c4             	mov    %eax,-0x3c(%ebp)
580074:	8b 47 12             	mov    0x12(%edi),%eax
580077:	f7 6d cc             	imull  -0x34(%ebp)
58007a:	89 45 c0             	mov    %eax,-0x40(%ebp)
58007d:	8b 77 16             	mov    0x16(%edi),%esi
580080:	0f af 75 dc          	imul   -0x24(%ebp),%esi
580084:	8b 47 16             	mov    0x16(%edi),%eax
580087:	f7 6d d0             	imull  -0x30(%ebp)
58008a:	8b f8                	mov    %eax,%edi
58008c:	8b 45 f0             	mov    -0x10(%ebp),%eax
58008f:	48                   	dec    %eax
580090:	85 c0                	test   %eax,%eax
580092:	0f 8c 45 01 00 00    	jl     0x5801dd
580098:	40                   	inc    %eax
580099:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
58009f:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
5800a6:	55                   	push   %ebp
5800a7:	8b 4d bc             	mov    -0x44(%ebp),%ecx
5800aa:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5800ad:	8b c6                	mov    %esi,%eax
5800af:	e8 9c fe ff ff       	call   0x57ff50
5800b4:	59                   	pop    %ecx
5800b5:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5800b8:	55                   	push   %ebp
5800b9:	8b 4d b8             	mov    -0x48(%ebp),%ecx
5800bc:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5800bf:	8b c6                	mov    %esi,%eax
5800c1:	e8 8a fe ff ff       	call   0x57ff50
5800c6:	59                   	pop    %ecx
5800c7:	89 45 b0             	mov    %eax,-0x50(%ebp)
5800ca:	55                   	push   %ebp
5800cb:	8b 4d bc             	mov    -0x44(%ebp),%ecx
5800ce:	8b 55 c0             	mov    -0x40(%ebp),%edx
5800d1:	8b c6                	mov    %esi,%eax
5800d3:	e8 78 fe ff ff       	call   0x57ff50
5800d8:	59                   	pop    %ecx
5800d9:	89 45 ac             	mov    %eax,-0x54(%ebp)
5800dc:	55                   	push   %ebp
5800dd:	8b 4d b8             	mov    -0x48(%ebp),%ecx
5800e0:	8b 55 c0             	mov    -0x40(%ebp),%edx
5800e3:	8b c6                	mov    %esi,%eax
5800e5:	e8 66 fe ff ff       	call   0x57ff50
5800ea:	59                   	pop    %ecx
5800eb:	89 45 a8             	mov    %eax,-0x58(%ebp)
5800ee:	55                   	push   %ebp
5800ef:	8b 4d bc             	mov    -0x44(%ebp),%ecx
5800f2:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5800f5:	8b c7                	mov    %edi,%eax
5800f7:	e8 54 fe ff ff       	call   0x57ff50
5800fc:	59                   	pop    %ecx
5800fd:	89 45 a4             	mov    %eax,-0x5c(%ebp)
580100:	55                   	push   %ebp
580101:	8b 4d b8             	mov    -0x48(%ebp),%ecx
580104:	8b 55 c4             	mov    -0x3c(%ebp),%edx
580107:	8b c7                	mov    %edi,%eax
580109:	e8 42 fe ff ff       	call   0x57ff50
58010e:	59                   	pop    %ecx
58010f:	89 45 a0             	mov    %eax,-0x60(%ebp)
580112:	55                   	push   %ebp
580113:	8b 4d bc             	mov    -0x44(%ebp),%ecx
580116:	8b 55 c0             	mov    -0x40(%ebp),%edx
580119:	8b c7                	mov    %edi,%eax
58011b:	e8 30 fe ff ff       	call   0x57ff50
580120:	59                   	pop    %ecx
580121:	89 45 9c             	mov    %eax,-0x64(%ebp)
580124:	55                   	push   %ebp
580125:	8b 4d b8             	mov    -0x48(%ebp),%ecx
580128:	8b 55 c0             	mov    -0x40(%ebp),%edx
58012b:	8b c7                	mov    %edi,%eax
58012d:	e8 1e fe ff ff       	call   0x57ff50
580132:	59                   	pop    %ecx
580133:	89 45 98             	mov    %eax,-0x68(%ebp)
580136:	0f b7 c3             	movzwl %bx,%eax
580139:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
58013c:	8b 55 b4             	mov    -0x4c(%ebp),%edx
58013f:	e8 28 fe ff ff       	call   0x57ff6c
580144:	0f b7 c0             	movzwl %ax,%eax
580147:	89 45 94             	mov    %eax,-0x6c(%ebp)
58014a:	0f b7 c3             	movzwl %bx,%eax
58014d:	8b 4d a0             	mov    -0x60(%ebp),%ecx
580150:	8b 55 b0             	mov    -0x50(%ebp),%edx
580153:	e8 14 fe ff ff       	call   0x57ff6c
580158:	0f b7 c0             	movzwl %ax,%eax
58015b:	89 45 90             	mov    %eax,-0x70(%ebp)
58015e:	0f b7 c3             	movzwl %bx,%eax
580161:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
580164:	8b 55 ac             	mov    -0x54(%ebp),%edx
580167:	e8 00 fe ff ff       	call   0x57ff6c
58016c:	0f b7 c0             	movzwl %ax,%eax
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