587fd5:	3b 45 dc             	cmp    -0x24(%ebp),%eax
587fd8:	7c 7c                	jl     0x588056
587fda:	8b 45 dc             	mov    -0x24(%ebp),%eax
587fdd:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
587fe0:	7c 74                	jl     0x588056
587fe2:	55                   	push   %ebp
587fe3:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
587fe6:	8b 55 c8             	mov    -0x38(%ebp),%edx
587fe9:	8b c6                	mov    %esi,%eax
587feb:	e8 e8 fc ff ff       	call   0x587cd8
587ff0:	59                   	pop    %ecx
587ff1:	8b f8                	mov    %eax,%edi
587ff3:	55                   	push   %ebp
587ff4:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
587ff7:	8b 55 c8             	mov    -0x38(%ebp),%edx
587ffa:	8b 45 d0             	mov    -0x30(%ebp),%eax
587ffd:	e8 d6 fc ff ff       	call   0x587cd8
588002:	59                   	pop    %ecx
588003:	2b f8                	sub    %eax,%edi
588005:	89 7d d8             	mov    %edi,-0x28(%ebp)
588008:	55                   	push   %ebp
588009:	8b cb                	mov    %ebx,%ecx
58800b:	8b 55 c8             	mov    -0x38(%ebp),%edx
58800e:	8b 45 d0             	mov    -0x30(%ebp),%eax
588011:	e8 c2 fc ff ff       	call   0x587cd8
588016:	59                   	pop    %ecx
588017:	8b f8                	mov    %eax,%edi
588019:	55                   	push   %ebp
58801a:	8b cb                	mov    %ebx,%ecx
58801c:	8b 55 cc             	mov    -0x34(%ebp),%edx
58801f:	8b 45 d0             	mov    -0x30(%ebp),%eax
588022:	e8 b1 fc ff ff       	call   0x587cd8
588027:	59                   	pop    %ecx
588028:	2b f8                	sub    %eax,%edi
58802a:	89 7d d4             	mov    %edi,-0x2c(%ebp)
58802d:	55                   	push   %ebp
58802e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
588031:	8b 55 c8             	mov    -0x38(%ebp),%edx
588034:	8b 45 d0             	mov    -0x30(%ebp),%eax
588037:	e8 9c fc ff ff       	call   0x587cd8
58803c:	59                   	pop    %ecx
58803d:	50                   	push   %eax
58803e:	55                   	push   %ebp
58803f:	8b cb                	mov    %ebx,%ecx
588041:	8b 55 c8             	mov    -0x38(%ebp),%edx
588044:	8b 45 d0             	mov    -0x30(%ebp),%eax
588047:	e8 8c fc ff ff       	call   0x587cd8
58804c:	59                   	pop    %ecx
58804d:	5a                   	pop    %edx
58804e:	92                   	xchg   %eax,%edx
58804f:	2b c2                	sub    %edx,%eax
588051:	e9 8e 00 00 00       	jmp    0x5880e4
588056:	8b 45 dc             	mov    -0x24(%ebp),%eax
588059:	3b 45 e0             	cmp    -0x20(%ebp),%eax
58805c:	7c 7b                	jl     0x5880d9
58805e:	8b 45 e0             	mov    -0x20(%ebp),%eax
588061:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
588064:	7c 73                	jl     0x5880d9
588066:	55                   	push   %ebp
588067:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
58806a:	8b 55 c8             	mov    -0x38(%ebp),%edx
58806d:	8b c6                	mov    %esi,%eax
58806f:	e8 64 fc ff ff       	call   0x587cd8
588074:	59                   	pop    %ecx
588075:	8b f8                	mov    %eax,%edi
588077:	55                   	push   %ebp
588078:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
58807b:	8b 55 c8             	mov    -0x38(%ebp),%edx
58807e:	8b 45 d0             	mov    -0x30(%ebp),%eax
588081:	e8 52 fc ff ff       	call   0x587cd8
588086:	59                   	pop    %ecx
588087:	2b f8                	sub    %eax,%edi
588089:	89 7d d8             	mov    %edi,-0x28(%ebp)
58808c:	55                   	push   %ebp
58808d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
588090:	8b 55 c8             	mov    -0x38(%ebp),%edx
588093:	8b 45 d0             	mov    -0x30(%ebp),%eax
588096:	e8 3d fc ff ff       	call   0x587cd8
58809b:	59                   	pop    %ecx
58809c:	8b f8                	mov    %eax,%edi
58809e:	55                   	push   %ebp
58809f:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5880a2:	8b 55 cc             	mov    -0x34(%ebp),%edx
5880a5:	8b 45 d0             	mov    -0x30(%ebp),%eax
5880a8:	e8 2b fc ff ff       	call   0x587cd8
5880ad:	59                   	pop    %ecx
5880ae:	2b f8                	sub    %eax,%edi
5880b0:	89 7d d4             	mov    %edi,-0x2c(%ebp)
5880b3:	55                   	push   %ebp
5880b4:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5880b7:	8b 55 cc             	mov    -0x34(%ebp),%edx
5880ba:	8b 45 d0             	mov    -0x30(%ebp),%eax
5880bd:	e8 16 fc ff ff       	call   0x587cd8
5880c2:	59                   	pop    %ecx
5880c3:	50                   	push   %eax
5880c4:	55                   	push   %ebp
5880c5:	8b cb                	mov    %ebx,%ecx
5880c7:	8b 55 cc             	mov    -0x34(%ebp),%edx
5880ca:	8b 45 d0             	mov    -0x30(%ebp),%eax
5880cd:	e8 06 fc ff ff       	call   0x587cd8
5880d2:	59                   	pop    %ecx
5880d3:	5a                   	pop    %edx
5880d4:	92                   	xchg   %eax,%edx
5880d5:	2b c2                	sub    %edx,%eax
5880d7:	eb 0b                	jmp    0x5880e4
5880d9:	33 c0                	xor    %eax,%eax
5880db:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5880de:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5880e1:	89 55 d8             	mov    %edx,-0x28(%ebp)
5880e4:	8b 7d d8             	mov    -0x28(%ebp),%edi
5880e7:	0f af 7d e4          	imul   -0x1c(%ebp),%edi
5880eb:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5880ee:	0f af 55 e0          	imul   -0x20(%ebp),%edx
5880f2:	03 fa                	add    %edx,%edi
5880f4:	f7 6d dc             	imull  -0x24(%ebp)
5880f7:	03 f8                	add    %eax,%edi
5880f9:	55                   	push   %ebp
5880fa:	8b cb                	mov    %ebx,%ecx
5880fc:	8b 55 cc             	mov    -0x34(%ebp),%edx
5880ff:	8b 45 d0             	mov    -0x30(%ebp),%eax
588102:	e8 d1 fb ff ff       	call   0x587cd8
588107:	59                   	pop    %ecx
588108:	50                   	push   %eax
588109:	8b c7                	mov    %edi,%eax
58810b:	e8 00 46 ff ff       	call   0x57c710
588110:	05 00 80 00 00       	add    $0x8000,%eax
588115:	c1 e8 10             	shr    $0x10,%eax
588118:	5a                   	pop    %edx
588119:	66 03 d0             	add    %ax,%dx
58811c:	8b 45 f0             	mov    -0x10(%ebp),%eax
58811f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
588122:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
588126:	ff 45 f8             	incl   -0x8(%ebp)
588129:	ff 4d bc             	decl   -0x44(%ebp)
58812c:	0f 85 9e fc ff ff    	jne    0x587dd0
588132:	5f                   	pop    %edi
588133:	5e                   	pop    %esi
588134:	5b                   	pop    %ebx
588135:	8b e5                	mov    %ebp,%esp
588137:	5d                   	pop    %ebp
588138:	c2 04 00             	ret    $0x4
58813b:	90                   	nop
58813c:	53                   	push   %ebx
58813d:	56                   	push   %esi
58813e:	57                   	push   %edi
58813f:	55                   	push   %ebp
588140:	83 c4 e4             	add    $0xffffffe4,%esp
588143:	8b e8                	mov    %eax,%ebp
588145:	8d 85 30 01 00 00    	lea    0x130(%ebp),%eax
58814b:	89 44 24 18          	mov    %eax,0x18(%esp)
58814f:	b8 00 12 00 00       	mov    $0x1200,%eax
588154:	e8 53 a6 e7 ff       	call   0x4027ac
588159:	8b f8                	mov    %eax,%edi
58815b:	85 ff                	test   %edi,%edi
58815d:	75 07                	jne    0x588166
58815f:	33 c0                	xor    %eax,%eax
588161:	e9 2a 01 00 00       	jmp    0x588290
588166:	33 f6                	xor    %esi,%esi
588168:	8d 5c 24 04          	lea    0x4(%esp),%ebx
58816c:	8b c6                	mov    %esi,%eax
58816e:	e8 99 53 ff ff       	call   0x57d50c
588173:	66 89 44 24 08       	mov    %ax,0x8(%esp)
588178:	66 8b 44 24 08       	mov    0x8(%esp),%ax
58817d:	66 89 44 24 06       	mov    %ax,0x6(%esp)
588182:	66 89 44 24 04       	mov    %ax,0x4(%esp)
588187:	f6 45 00 02          	testb  $0x2,0x0(%ebp)
58818b:	74 25                	je     0x5881b2
58818d:	c7 04 24 03 00 00 00 	movl   $0x3,(%esp)
588194:	8d 8d c4 00 00 00    	lea    0xc4(%ebp),%ecx
58819a:	8b 54 b5 3c          	mov    0x3c(%ebp,%esi,4),%edx
58819e:	66 8b 03             	mov    (%ebx),%ax
5881a1:	e8 da 46 ff ff       	call   0x57c880
5881a6:	66 89 03             	mov    %ax,(%ebx)
5881a9:	ff 0c 24             	decl   (%esp)
5881ac:	75 e6                	jne    0x588194
5881ae:	83 65 00 fd          	andl   $0xfffffffd,0x0(%ebp)
5881b2:	0f b7 44 24 04       	movzwl 0x4(%esp),%eax
5881b7:	8b 54 24 18          	mov    0x18(%esp),%edx
5881bb:	0f b7 52 0c          	movzwl 0xc(%edx),%edx
5881bf:	f7 ea                	imul   %edx
5881c1:	e8 4a 45 ff ff       	call   0x57c710
5881c6:	89 44 24 0c          	mov    %eax,0xc(%esp)
5881ca:	0f b7 44 24 06       	movzwl 0x6(%esp),%eax
5881cf:	8b 54 24 18          	mov    0x18(%esp),%edx
5881d3:	0f b7 52 0c          	movzwl 0xc(%edx),%edx
5881d7:	f7 ea                	imul   %edx
5881d9:	e8 32 45 ff ff       	call   0x57c710
5881de:	89 44 24 10          	mov    %eax,0x10(%esp)
5881e2:	0f b7 44 24 08       	movzwl 0x8(%esp),%eax
5881e7:	8b 54 24 18          	mov    0x18(%esp),%edx
5881eb:	0f b7 52 0c          	movzwl 0xc(%edx),%edx
5881ef:	f7 ea                	imul   %edx
5881f1:	e8 1a 45 ff ff       	call   0x57c710
5881f6:	89 44 24 14          	mov    %eax,0x14(%esp)
5881fa:	8b 44 24 0c          	mov    0xc(%esp),%eax
5881fe:	e8 5d 76 ff ff       	call   0x57f860
588203:	8b 54 24 18          	mov    0x18(%esp),%edx
588207:	f7 6a 16             	imull  0x16(%edx)
58820a:	89 04 b7             	mov    %eax,(%edi,%esi,4)
58820d:	8b 44 24 10          	mov    0x10(%esp),%eax
588211:	e8 4a 76 ff ff       	call   0x57f860
588216:	8b 54 24 18          	mov    0x18(%esp),%edx
58821a:	f7 6a 12             	imull  0x12(%edx)
58821d:	89 84 b7 00 04 00 00 	mov    %eax,0x400(%edi,%esi,4)
588224:	8b 44 24 14          	mov    0x14(%esp),%eax
588228:	e8 33 76 ff ff       	call   0x57f860
58822d:	8b 54 24 18          	mov    0x18(%esp),%edx
588231:	f7 6a 0e             	imull  0xe(%edx)
588234:	89 84 b7 00 08 00 00 	mov    %eax,0x800(%edi,%esi,4)
58823b:	8b 44 24 0c          	mov    0xc(%esp),%eax
58823f:	e8 20 76 ff ff       	call   0x57f864
588244:	66 89 84 77 00 0c 00 	mov    %ax,0xc00(%edi,%esi,2)
58824b:	00
58824c:	8b 44 24 10          	mov    0x10(%esp),%eax
588250:	e8 0f 76 ff ff       	call   0x57f864
588255:	66 89 84 77 00 0e 00 	mov    %ax,0xe00(%edi,%esi,2)
58825c:	00
58825d:	8b 44 24 14          	mov    0x14(%esp),%eax
588261:	e8 fe 75 ff ff       	call   0x57f864
588266:	66 89 84 77 00 10 00 	mov    %ax,0x1000(%edi,%esi,2)
58826d:	00
58826e:	46                   	inc    %esi
58826f:	83 c3 02             	add    $0x2,%ebx
588272:	81 fe 00 01 00 00    	cmp    $0x100,%esi
588278:	0f 85 ee fe ff ff    	jne    0x58816c
58827e:	89 bd 62 01 00 00    	mov    %edi,0x162(%ebp)
588284:	c7 85 5e 01 00 00 f4 	movl   $0x587cf4,0x15e(%ebp)
58828b:	7c 58 00
58828e:	8b c5                	mov    %ebp,%eax
588290:	83 c4 1c             	add    $0x1c,%esp
588293:	5d                   	pop    %ebp
588294:	5f                   	pop    %edi
588295:	5e                   	pop    %esi
588296:	5b                   	pop    %ebx
588297:	c3                   	ret
588298:	55                   	push   %ebp
588299:	8b ec                	mov    %esp,%ebp
58829b:	83 c4 f4             	add    $0xfffffff4,%esp
58829e:	53                   	push   %ebx
58829f:	56                   	push   %esi
5882a0:	57                   	push   %edi
5882a1:	8b f9                	mov    %ecx,%edi
5882a3:	89 55 fc             	mov    %edx,-0x4(%ebp)
5882a6:	8b f0                	mov    %eax,%esi
5882a8:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
5882ac:	7c 12                	jl     0x5882c0
5882ae:	83 7d 10 03          	cmpl   $0x3,0x10(%ebp)
5882b2:	7f 0c                	jg     0x5882c0
5882b4:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5882b8:	7c 06                	jl     0x5882c0
5882ba:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
5882be:	7e 07                	jle    0x5882c7
5882c0:	33 c0                	xor    %eax,%eax
5882c2:	e9 4f 03 00 00       	jmp    0x588616
5882c7:	e8 9c 42 ff ff       	call   0x57c568
5882cc:	8b d8                	mov    %eax,%ebx
5882ce:	85 db                	test   %ebx,%ebx
5882d0:	75 07                	jne    0x5882d9
5882d2:	33 c0                	xor    %eax,%eax
5882d4:	e9 3d 03 00 00       	jmp    0x588616
5882d9:	c7 83 90 00 00 00 48 	movl   $0x57cd48,0x90(%ebx)
5882e0:	cd 57 00
5882e3:	8b 45 10             	mov    0x10(%ebp),%eax
5882e6:	89 43 10             	mov    %eax,0x10(%ebx)
5882e9:	8b 45 0c             	mov    0xc(%ebp),%eax
5882ec:	89 43 14             	mov    %eax,0x14(%ebx)
5882ef:	33 c0                	xor    %eax,%eax
5882f1:	89 43 18             	mov    %eax,0x18(%ebx)
5882f4:	89 73 1c             	mov    %esi,0x1c(%ebx)
5882f7:	89 7b 20             	mov    %edi,0x20(%ebx)
5882fa:	8b 45 14             	mov    0x14(%ebp),%eax
5882fd:	89 43 24             	mov    %eax,0x24(%ebx)
588300:	8b 45 fc             	mov    -0x4(%ebp),%eax
588303:	89 03                	mov    %eax,(%ebx)
588305:	8b 45 18             	mov    0x18(%ebp),%eax
588308:	89 43 04             	mov    %eax,0x4(%ebx)
58830b:	33 c0                	xor    %eax,%eax
58830d:	89 83 e0 00 00 00    	mov    %eax,0xe0(%ebx)
588313:	89 83 dc 00 00 00    	mov    %eax,0xdc(%ebx)
588319:	8b 55 fc             	mov    -0x4(%ebp),%edx
58831c:	8b c3                	mov    %ebx,%eax
58831e:	e8 d9 59 ff ff       	call   0x57dcfc
588323:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
588329:	8b 55 18             	mov    0x18(%ebp),%edx
58832c:	8b c3                	mov    %ebx,%eax
58832e:	e8 35 6a ff ff       	call   0x57ed68
588333:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
588339:	f6 45 09 02          	testb  $0x2,0x9(%ebp)
58833d:	75 08                	jne    0x588347
58833f:	85 f6                	test   %esi,%esi
588341:	75 15                	jne    0x588358
588343:	85 ff                	test   %edi,%edi
588345:	75 11                	jne    0x588358
588347:	c7 83 90 00 00 00 6c 	movl   $0x57f26c,0x90(%ebx)
58834e:	f2 57 00
588351:	8b c3                	mov    %ebx,%eax
588353:	e9 be 02 00 00       	jmp    0x588616
588358:	85 f6                	test   %esi,%esi
58835a:	75 0e                	jne    0x58836a
58835c:	8b c3                	mov    %ebx,%eax
58835e:	e8 55 70 ff ff       	call   0x57f3b8
588363:	33 c0                	xor    %eax,%eax
588365:	e9 ac 02 00 00       	jmp    0x588616
58836a:	8b c6                	mov    %esi,%eax
58836c:	e8 7b 4b ff ff       	call   0x57ceec
588371:	3d 6b 6e 69 6c       	cmp    $0x6c696e6b,%eax
588376:	75 0f                	jne    0x588387
588378:	8b 55 08             	mov    0x8(%ebp),%edx
58837b:	8b c3                	mov    %ebx,%eax
58837d:	e8 46 9d ff ff       	call   0x5820c8
588382:	e9 8f 02 00 00       	jmp    0x588616
588387:	33 c9                	xor    %ecx,%ecx
588389:	8b 55 fc             	mov    -0x4(%ebp),%edx
58838c:	8b c6                	mov    %esi,%eax
58838e:	e8 75 71 ff ff       	call   0x57f508
588393:	85 c0                	test   %eax,%eax
588395:	75 0e                	jne    0x5883a5
588397:	8b c3                	mov    %ebx,%eax
588399:	e8 1a 70 ff ff       	call   0x57f3b8
58839e:	33 c0                	xor    %eax,%eax
5883a0:	e9 71 02 00 00       	jmp    0x588616
5883a5:	8b c6                	mov    %esi,%eax
5883a7:	e8 18 43 ff ff       	call   0x57c6c4
5883ac:	89 43 28             	mov    %eax,0x28(%ebx)
5883af:	8b c6                	mov    %esi,%eax
5883b1:	e8 36 4b ff ff       	call   0x57ceec
5883b6:	3d 6c 63 6d 6e       	cmp    $0x6e6d636c,%eax
5883bb:	75 47                	jne    0x588404
5883bd:	83 bb d8 00 00 00 00 	cmpl   $0x0,0xd8(%ebx)
5883c4:	75 0d                	jne    0x5883d3
5883c6:	33 c0                	xor    %eax,%eax
5883c8:	e8 93 9d ff ff       	call   0x582160
5883cd:	89 83 d8 00 00 00    	mov    %eax,0xd8(%ebx)
5883d3:	b9 32 6c 63 6e       	mov    $0x6e636c32,%ecx
5883d8:	8b d6                	mov    %esi,%edx
5883da:	8b c3                	mov    %ebx,%eax
5883dc:	e8 37 9f ff ff       	call   0x582318
5883e1:	85 ff                	test   %edi,%edi
5883e3:	75 18                	jne    0x5883fd
5883e5:	8b 43 28             	mov    0x28(%ebx),%eax
5883e8:	89 43 2c             	mov    %eax,0x2c(%ebx)
5883eb:	b8 64 25 58 00       	mov    $0x582564,%eax
5883f0:	89 83 90 00 00 00    	mov    %eax,0x90(%ebx)
5883f6:	8b c3                	mov    %ebx,%eax
5883f8:	e9 19 02 00 00       	jmp    0x588616
5883fd:	81 4d 08 00 01 00 00 	orl    $0x100,0x8(%ebp)
588404:	85 ff                	test   %edi,%edi
588406:	75 0e                	jne    0x588416
588408:	8b c3                	mov    %ebx,%eax
58840a:	e8 a9 6f ff ff       	call   0x57f3b8