40715b:	8d 70 02             	lea    0x2(%eax),%esi
40715e:	89 75 ac             	mov    %esi,-0x54(%ebp)
407161:	66 8b 06             	mov    (%esi),%ax
407164:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407167:	0f b7 d0             	movzwl %ax,%edx
40716a:	c1 e9 0b             	shr    $0xb,%ecx
40716d:	0f af ca             	imul   %edx,%ecx
407170:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
407173:	73 18                	jae    0x40718d
407175:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407178:	b9 00 08 00 00       	mov    $0x800,%ecx
40717d:	2b ca                	sub    %edx,%ecx
40717f:	c1 f9 05             	sar    $0x5,%ecx
407182:	03 c8                	add    %eax,%ecx
407184:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
407188:	66 89 0e             	mov    %cx,(%esi)
40718b:	eb 19                	jmp    0x4071a6
40718d:	29 4d f0             	sub    %ecx,-0x10(%ebp)
407190:	29 4d f4             	sub    %ecx,-0xc(%ebp)
407193:	66 8b c8             	mov    %ax,%cx
407196:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
40719d:	66 c1 e9 05          	shr    $0x5,%cx
4071a1:	2b c1                	sub    %ecx,%eax
4071a3:	66 89 06             	mov    %ax,(%esi)
4071a6:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4071ad:	73 25                	jae    0x4071d4
4071af:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
4071b3:	0f 84 a9 01 00 00    	je     0x407362
4071b9:	8b 4d 90             	mov    -0x70(%ebp),%ecx
4071bc:	8b 45 f4             	mov    -0xc(%ebp),%eax
4071bf:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
4071c3:	0f b6 09             	movzbl (%ecx),%ecx
4071c6:	ff 4d 94             	decl   -0x6c(%ebp)
4071c9:	c1 e0 08             	shl    $0x8,%eax
4071cc:	0b c1                	or     %ecx,%eax
4071ce:	ff 45 90             	incl   -0x70(%ebp)
4071d1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4071d4:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
4071da:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
4071e0:	e9 91 f7 ff ff       	jmp    0x406976
4071e5:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4071e9:	75 1c                	jne    0x407207
4071eb:	8b 45 b4             	mov    -0x4c(%ebp),%eax
4071ee:	8b 4d a8             	mov    -0x58(%ebp),%ecx
4071f1:	c1 e0 04             	shl    $0x4,%eax
4071f4:	c7 45 d0 08 00 00 00 	movl   $0x8,-0x30(%ebp)
4071fb:	8d 84 01 04 01 00 00 	lea    0x104(%ecx,%eax,1),%eax
407202:	e9 38 ff ff ff       	jmp    0x40713f
407207:	81 45 a8 04 02 00 00 	addl   $0x204,-0x58(%ebp)
40720e:	c7 45 d0 10 00 00 00 	movl   $0x10,-0x30(%ebp)
407215:	c7 45 c0 08 00 00 00 	movl   $0x8,-0x40(%ebp)
40721c:	c7 45 84 14 00 00 00 	movl   $0x14,-0x7c(%ebp)
407223:	8b 45 c0             	mov    -0x40(%ebp),%eax
407226:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
40722d:	89 45 b8             	mov    %eax,-0x48(%ebp)
407230:	eb 28                	jmp    0x40725a
407232:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
407236:	0f 84 32 01 00 00    	je     0x40736e
40723c:	8b 4d 90             	mov    -0x70(%ebp),%ecx
40723f:	8b 45 f4             	mov    -0xc(%ebp),%eax
407242:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
407246:	0f b6 09             	movzbl (%ecx),%ecx
407249:	ff 4d 94             	decl   -0x6c(%ebp)
40724c:	c1 e0 08             	shl    $0x8,%eax
40724f:	0b c1                	or     %ecx,%eax
407251:	ff 45 90             	incl   -0x70(%ebp)
407254:	89 45 f4             	mov    %eax,-0xc(%ebp)
407257:	ff 4d b8             	decl   -0x48(%ebp)
40725a:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
40725e:	7e 5e                	jle    0x4072be
407260:	8b 45 b0             	mov    -0x50(%ebp),%eax
407263:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407266:	c1 e9 0b             	shr    $0xb,%ecx
407269:	8d 14 00             	lea    (%eax,%eax,1),%edx
40726c:	8b 45 a8             	mov    -0x58(%ebp),%eax
40726f:	8d 34 02             	lea    (%edx,%eax,1),%esi
407272:	89 75 ac             	mov    %esi,-0x54(%ebp)
407275:	66 8b 06             	mov    (%esi),%ax
407278:	0f b7 f8             	movzwl %ax,%edi
40727b:	0f af cf             	imul   %edi,%ecx
40727e:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
407281:	73 17                	jae    0x40729a
407283:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407286:	b9 00 08 00 00       	mov    $0x800,%ecx
40728b:	2b cf                	sub    %edi,%ecx
40728d:	c1 f9 05             	sar    $0x5,%ecx
407290:	03 c8                	add    %eax,%ecx
407292:	d1 65 b0             	shll   $1,-0x50(%ebp)
407295:	66 89 0e             	mov    %cx,(%esi)
407298:	eb 16                	jmp    0x4072b0
40729a:	29 4d f0             	sub    %ecx,-0x10(%ebp)
40729d:	29 4d f4             	sub    %ecx,-0xc(%ebp)
4072a0:	66 8b c8             	mov    %ax,%cx
4072a3:	66 c1 e9 05          	shr    $0x5,%cx
4072a7:	2b c1                	sub    %ecx,%eax
4072a9:	42                   	inc    %edx
4072aa:	66 89 06             	mov    %ax,(%esi)
4072ad:	89 55 b0             	mov    %edx,-0x50(%ebp)
4072b0:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4072b7:	73 9e                	jae    0x407257
4072b9:	e9 74 ff ff ff       	jmp    0x407232
4072be:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4072c1:	8b 5d b0             	mov    -0x50(%ebp),%ebx
4072c4:	33 c0                	xor    %eax,%eax
4072c6:	40                   	inc    %eax
4072c7:	d3 e0                	shl    %cl,%eax
4072c9:	2b d8                	sub    %eax,%ebx
4072cb:	8b 45 84             	mov    -0x7c(%ebp),%eax
4072ce:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4072d1:	e9 04 ff ff ff       	jmp    0x4071da
4072d6:	01 5d d0             	add    %ebx,-0x30(%ebp)
4072d9:	8b 45 80             	mov    -0x80(%ebp),%eax
4072dc:	e9 f9 fe ff ff       	jmp    0x4071da
4072e1:	c7 85 78 ff ff ff 01 	movl   $0x1,-0x88(%ebp)
4072e8:	00 00 00
4072eb:	e9 88 00 00 00       	jmp    0x407378
4072f0:	c7 85 78 ff ff ff 03 	movl   $0x3,-0x88(%ebp)
4072f7:	00 00 00
4072fa:	eb 7c                	jmp    0x407378
4072fc:	c7 85 78 ff ff ff 0d 	movl   $0xd,-0x88(%ebp)
407303:	00 00 00
407306:	eb 70                	jmp    0x407378
407308:	c7 85 78 ff ff ff 0e 	movl   $0xe,-0x88(%ebp)
40730f:	00 00 00
407312:	eb 64                	jmp    0x407378
407314:	c7 85 78 ff ff ff 0f 	movl   $0xf,-0x88(%ebp)
40731b:	00 00 00
40731e:	eb 58                	jmp    0x407378
407320:	c7 85 78 ff ff ff 1a 	movl   $0x1a,-0x88(%ebp)
407327:	00 00 00
40732a:	eb 4c                	jmp    0x407378
40732c:	c7 85 78 ff ff ff 1b 	movl   $0x1b,-0x88(%ebp)
407333:	00 00 00
407336:	eb 40                	jmp    0x407378
407338:	c7 85 78 ff ff ff 0c 	movl   $0xc,-0x88(%ebp)
40733f:	00 00 00
407342:	eb 34                	jmp    0x407378
407344:	c7 85 78 ff ff ff 10 	movl   $0x10,-0x88(%ebp)
40734b:	00 00 00
40734e:	eb 28                	jmp    0x407378
407350:	83 4d d0 ff          	orl    $0xffffffff,-0x30(%ebp)
407354:	eb 22                	jmp    0x407378
407356:	c7 85 78 ff ff ff 1c 	movl   $0x1c,-0x88(%ebp)
40735d:	00 00 00
407360:	eb 16                	jmp    0x407378
407362:	c7 85 78 ff ff ff 05 	movl   $0x5,-0x88(%ebp)
407369:	00 00 00
40736c:	eb 0a                	jmp    0x407378
40736e:	c7 85 78 ff ff ff 18 	movl   $0x18,-0x88(%ebp)
407375:	00 00 00
407378:	8b bd 70 ff ff ff    	mov    -0x90(%ebp),%edi
40737e:	6a 22                	push   $0x22
407380:	59                   	pop    %ecx
407381:	8d b5 78 ff ff ff    	lea    -0x88(%ebp),%esi
407387:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
407389:	33 c0                	xor    %eax,%eax
40738b:	eb 03                	jmp    0x407390
40738d:	83 c8 ff             	or     $0xffffffff,%eax
407390:	5f                   	pop    %edi
407391:	5e                   	pop    %esi
407392:	5b                   	pop    %ebx
407393:	c9                   	leave
407394:	c3                   	ret
407395:	8c 69 40             	mov    %gs,0x40(%ecx)
407398:	00 31                	add    %dh,(%ecx)
40739a:	6a 40                	push   $0x40
40739c:	00 cc                	add    %cl,%ah
40739e:	6a 40                	push   $0x40
4073a0:	00 a1 6a 40 00 61    	add    %ah,0x6100406a(%ecx)
4073a6:	71 40                	jno    0x4073e8
4073a8:	00 af 71 40 00 f2    	add    %ch,-0xdffbf8f(%edi)
4073ae:	6a 40                	push   $0x40
4073b0:	00 91 6d 40 00 fb    	add    %dl,-0x4ffbf93(%ecx)
4073b6:	6d                   	insl   (%dx),%es:(%edi)
4073b7:	40                   	inc    %eax
4073b8:	00 3e                	add    %bh,(%esi)
4073ba:	6e                   	outsb  %ds:(%esi),(%dx)
4073bb:	40                   	inc    %eax
4073bc:	00 af 6e 40 00 d6    	add    %ch,-0x29ffbf92(%edi)
4073c2:	6e                   	outsb  %ds:(%esi),(%dx)
4073c3:	40                   	inc    %eax
4073c4:	00 96 6f 40 00 8b    	add    %dl,-0x74ffbf91(%esi)
4073ca:	6b 40 00 44          	imul   $0x44,0x0(%eax),%eax
4073ce:	6c                   	insb   (%dx),%es:(%edi)
4073cf:	40                   	inc    %eax
4073d0:	00 08                	add    %cl,(%eax)
4073d2:	6d                   	insl   (%dx),%es:(%edi)
4073d3:	40                   	inc    %eax
4073d4:	00 19                	add    %bl,(%ecx)
4073d6:	70 40                	jo     0x407418
4073d8:	00 e9                	add    %ch,%cl
4073da:	6d                   	insl   (%dx),%es:(%edi)
4073db:	40                   	inc    %eax
4073dc:	00 28                	add    %ch,(%eax)
4073de:	71 40                	jno    0x407420
4073e0:	00 e5                	add    %ah,%ch
4073e2:	71 40                	jno    0x407424
4073e4:	00 d6                	add    %dl,%dh
4073e6:	72 40                	jb     0x407428
4073e8:	00 10                	add    %dl,(%eax)
4073ea:	6f                   	outsl  %ds:(%esi),(%dx)
4073eb:	40                   	inc    %eax
4073ec:	00 27                	add    %ah,(%edi)
4073ee:	6f                   	outsl  %ds:(%esi),(%dx)
4073ef:	40                   	inc    %eax
4073f0:	00 23                	add    %ah,(%ebx)
4073f2:	72 40                	jb     0x407434
4073f4:	00 32                	add    %dh,(%edx)
4073f6:	72 40                	jb     0x407438
4073f8:	00 55 6f             	add    %dl,0x6f(%ebp)
4073fb:	40                   	inc    %eax
4073fc:	00 d7                	add    %dl,%bh
4073fe:	6c                   	insb   (%dx),%es:(%edi)
4073ff:	40                   	inc    %eax
407400:	00 62 6e             	add    %ah,0x6e(%edx)
407403:	40                   	inc    %eax
407404:	00 df                	add    %bl,%bh
407406:	70 40                	jo     0x407448