55cf92:	77 c7                	ja     0x55cf5b
55cf94:	8b 54 24 40          	mov    0x40(%esp),%edx
55cf98:	8b 4a 20             	mov    0x20(%edx),%ecx
55cf9b:	85 c9                	test   %ecx,%ecx
55cf9d:	74 0a                	je     0x55cfa9
55cf9f:	8b c6                	mov    %esi,%eax
55cfa1:	e8 be c5 01 00       	call   0x579564
55cfa6:	40                   	inc    %eax
55cfa7:	eb 0a                	jmp    0x55cfb3
55cfa9:	8b c6                	mov    %esi,%eax
55cfab:	e8 b4 c5 01 00       	call   0x579564
55cfb0:	83 c0 f4             	add    $0xfffffff4,%eax
55cfb3:	0f b7 54 24 50       	movzwl 0x50(%esp),%edx
55cfb8:	8b 73 1c             	mov    0x1c(%ebx),%esi
55cfbb:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55cfbe:	8b 54 24 44          	mov    0x44(%esp),%edx
55cfc2:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
55cfc5:	8b 52 34             	mov    0x34(%edx),%edx
55cfc8:	0f b6 4c ca 04       	movzbl 0x4(%edx,%ecx,8),%ecx
55cfcd:	03 ce                	add    %esi,%ecx
55cfcf:	8b 54 24 68          	mov    0x68(%esp),%edx
55cfd3:	49                   	dec    %ecx
55cfd4:	2b c1                	sub    %ecx,%eax
55cfd6:	3b c2                	cmp    %edx,%eax
55cfd8:	7e 04                	jle    0x55cfde
55cfda:	89 44 24 68          	mov    %eax,0x68(%esp)
55cfde:	8b 44 24 40          	mov    0x40(%esp),%eax
55cfe2:	8b 48 20             	mov    0x20(%eax),%ecx
55cfe5:	85 c9                	test   %ecx,%ecx
55cfe7:	75 25                	jne    0x55d00e
55cfe9:	8b 43 18             	mov    0x18(%ebx),%eax
55cfec:	8b ce                	mov    %esi,%ecx
55cfee:	99                   	cltd
55cfef:	52                   	push   %edx
55cff0:	50                   	push   %eax
55cff1:	41                   	inc    %ecx
55cff2:	b8 01 00 00 00       	mov    $0x1,%eax
55cff7:	d3 e0                	shl    %cl,%eax
55cff9:	c1 e0 0d             	shl    $0xd,%eax
55cffc:	99                   	cltd
55cffd:	0f a4 c2 0d          	shld   $0xd,%eax,%edx
55d001:	c1 e0 0d             	shl    $0xd,%eax
55d004:	e8 9f e0 ff ff       	call   0x55b0a8
55d009:	89 43 10             	mov    %eax,0x10(%ebx)
55d00c:	eb 07                	jmp    0x55d015
55d00e:	c7 43 10 00 20 00 00 	movl   $0x2000,0x10(%ebx)
55d015:	0f b7 54 24 50       	movzwl 0x50(%esp),%edx
55d01a:	8b 44 24 44          	mov    0x44(%esp),%eax
55d01e:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55d021:	8b 50 34             	mov    0x34(%eax),%edx
55d024:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
55d027:	8b 43 1c             	mov    0x1c(%ebx),%eax
55d02a:	0f b6 54 ca 04       	movzbl 0x4(%edx,%ecx,8),%edx
55d02f:	03 d0                	add    %eax,%edx
55d031:	8b 43 10             	mov    0x10(%ebx),%eax
55d034:	e8 c3 e5 ff ff       	call   0x55b5fc
55d039:	8b f0                	mov    %eax,%esi
55d03b:	33 d2                	xor    %edx,%edx
55d03d:	89 73 14             	mov    %esi,0x14(%ebx)
55d040:	8b 44 24 44          	mov    0x44(%esp),%eax
55d044:	c1 fe 0b             	sar    $0xb,%esi
55d047:	8a 90 d4 00 00 00    	mov    0xd4(%eax),%dl
55d04d:	03 d6                	add    %esi,%edx
55d04f:	4a                   	dec    %edx
55d050:	89 53 0c             	mov    %edx,0xc(%ebx)
55d053:	8b 4c 24 40          	mov    0x40(%esp),%ecx
55d057:	8b 41 20             	mov    0x20(%ecx),%eax
55d05a:	85 c0                	test   %eax,%eax
55d05c:	75 12                	jne    0x55d070
55d05e:	8b 53 04             	mov    0x4(%ebx),%edx
55d061:	85 d2                	test   %edx,%edx
55d063:	74 0b                	je     0x55d070
55d065:	8b 53 10             	mov    0x10(%ebx),%edx
55d068:	8b 43 04             	mov    0x4(%ebx),%eax
55d06b:	e8 78 08 00 00       	call   0x55d8e8
55d070:	8b 4c 24 6c          	mov    0x6c(%esp),%ecx
55d074:	66 8b 43 14          	mov    0x14(%ebx),%ax
55d078:	66 89 01             	mov    %ax,(%ecx)
55d07b:	ff 44 24 30          	incl   0x30(%esp)
55d07f:	83 44 24 6c 02       	addl   $0x2,0x6c(%esp)
55d084:	83 c3 24             	add    $0x24,%ebx
55d087:	8b 54 24 1c          	mov    0x1c(%esp),%edx
55d08b:	3b da                	cmp    %edx,%ebx
55d08d:	0f 85 a9 fe ff ff    	jne    0x55cf3c
55d093:	ff 44 24 24          	incl   0x24(%esp)
55d097:	83 44 24 20 3c       	addl   $0x3c,0x20(%esp)
55d09c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55d0a0:	8b 54 24 24          	mov    0x24(%esp),%edx
55d0a4:	0f b7 01             	movzwl (%ecx),%eax
55d0a7:	3b c2                	cmp    %edx,%eax
55d0a9:	0f 8f 28 fe ff ff    	jg     0x55ced7
55d0af:	8b 4c 24 40          	mov    0x40(%esp),%ecx
55d0b3:	8b 41 20             	mov    0x20(%ecx),%eax
55d0b6:	85 c0                	test   %eax,%eax
55d0b8:	75 13                	jne    0x55d0cd
55d0ba:	8b 54 24 14          	mov    0x14(%esp),%edx
55d0be:	8b 42 08             	mov    0x8(%edx),%eax
55d0c1:	ba 07 00 00 00       	mov    $0x7,%edx
55d0c6:	e8 21 af 01 00       	call   0x577fec
55d0cb:	eb 11                	jmp    0x55d0de
55d0cd:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55d0d1:	ba 06 00 00 00       	mov    $0x6,%edx
55d0d6:	8b 41 08             	mov    0x8(%ecx),%eax
55d0d9:	e8 9e b0 01 00       	call   0x57817c
55d0de:	66 ff 44 24 50       	incw   0x50(%esp)
55d0e3:	81 44 24 14 04 02 00 	addl   $0x204,0x14(%esp)
55d0ea:	00
55d0eb:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55d0ef:	8b 44 24 18          	mov    0x18(%esp),%eax
55d0f3:	3b c8                	cmp    %eax,%ecx
55d0f5:	0f 85 a0 fd ff ff    	jne    0x55ce9b
55d0fb:	8b 54 24 44          	mov    0x44(%esp),%edx
55d0ff:	33 c9                	xor    %ecx,%ecx
55d101:	8a 8a d4 00 00 00    	mov    0xd4(%edx),%cl
55d107:	8b 44 24 68          	mov    0x68(%esp),%eax
55d10b:	3b c8                	cmp    %eax,%ecx
55d10d:	7d 1f                	jge    0x55d12e
55d10f:	8b 54 24 68          	mov    0x68(%esp),%edx
55d113:	52                   	push   %edx
55d114:	68 37 de 69 00       	push   $0x69de37
55d119:	68 80 2e 6a 00       	push   $0x6a2e80
55d11e:	e8 a9 cf 01 00       	call   0x57a0cc
55d123:	83 c4 0c             	add    $0xc,%esp
55d126:	83 c8 ff             	or     $0xffffffff,%eax
55d129:	e9 0a 07 00 00       	jmp    0x55d838
55d12e:	33 d2                	xor    %edx,%edx
55d130:	33 c0                	xor    %eax,%eax
55d132:	e8 e5 b2 01 00       	call   0x57841c
55d137:	8b 14 24             	mov    (%esp),%edx
55d13a:	85 c0                	test   %eax,%eax
55d13c:	89 42 20             	mov    %eax,0x20(%edx)
55d13f:	75 1a                	jne    0x55d15b
55d141:	68 65 de 69 00       	push   $0x69de65
55d146:	68 80 2e 6a 00       	push   $0x6a2e80
55d14b:	e8 7c cf 01 00       	call   0x57a0cc
55d150:	83 c4 08             	add    $0x8,%esp
55d153:	83 c8 ff             	or     $0xffffffff,%eax
55d156:	e9 dd 06 00 00       	jmp    0x55d838
55d15b:	b8 90 ff 00 00       	mov    $0xff90,%eax
55d160:	e8 7b 8e 01 00       	call   0x575fe0
55d165:	8b 14 24             	mov    (%esp),%edx
55d168:	85 c0                	test   %eax,%eax
55d16a:	89 42 1c             	mov    %eax,0x1c(%edx)
55d16d:	75 08                	jne    0x55d177
55d16f:	83 c8 ff             	or     $0xffffffff,%eax
55d172:	e9 c1 06 00 00       	jmp    0x55d838
55d177:	8b 14 24             	mov    (%esp),%edx
55d17a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
55d17d:	83 c1 08             	add    $0x8,%ecx
55d180:	33 d2                	xor    %edx,%edx
55d182:	89 4c 24 10          	mov    %ecx,0x10(%esp)
55d186:	8b 44 24 10          	mov    0x10(%esp),%eax
55d18a:	89 50 04             	mov    %edx,0x4(%eax)
55d18d:	66 8b 44 24 04       	mov    0x4(%esp),%ax
55d192:	8b 4c 24 10          	mov    0x10(%esp),%ecx
55d196:	66 89 01             	mov    %ax,(%ecx)
55d199:	8b 54 24 10          	mov    0x10(%esp),%edx
55d19d:	c6 42 08 00          	movb   $0x0,0x8(%edx)
55d1a1:	8b 4c 24 10          	mov    0x10(%esp),%ecx
55d1a5:	c6 41 09 01          	movb   $0x1,0x9(%ecx)
55d1a9:	8b 04 24             	mov    (%esp),%eax
55d1ac:	8b 14 24             	mov    (%esp),%edx
55d1af:	8b 48 1c             	mov    0x1c(%eax),%ecx
55d1b2:	8b 04 24             	mov    (%esp),%eax
55d1b5:	8b 52 10             	mov    0x10(%edx),%edx
55d1b8:	8b 40 20             	mov    0x20(%eax),%eax
55d1bb:	e8 28 8d 01 00       	call   0x575ee8
55d1c0:	85 c0                	test   %eax,%eax
55d1c2:	74 1a                	je     0x55d1de
55d1c4:	68 7b de 69 00       	push   $0x69de7b
55d1c9:	68 80 2e 6a 00       	push   $0x6a2e80
55d1ce:	e8 f9 ce 01 00       	call   0x57a0cc
55d1d3:	83 c4 08             	add    $0x8,%esp
55d1d6:	83 c8 ff             	or     $0xffffffff,%eax
55d1d9:	e9 5a 06 00 00       	jmp    0x55d838
55d1de:	8b 14 24             	mov    (%esp),%edx
55d1e1:	8b 42 1c             	mov    0x1c(%edx),%eax
55d1e4:	e8 3f 8e 01 00       	call   0x576028
55d1e9:	8b 14 24             	mov    (%esp),%edx
55d1ec:	33 c9                	xor    %ecx,%ecx
55d1ee:	89 4a 1c             	mov    %ecx,0x1c(%edx)
55d1f1:	8b 44 24 44          	mov    0x44(%esp),%eax
55d1f5:	83 c0 48             	add    $0x48,%eax
55d1f8:	89 44 24 5c          	mov    %eax,0x5c(%esp)
55d1fc:	66 c7 44 24 50 00 00 	movw   $0x0,0x50(%esp)
55d203:	e9 4d 01 00 00       	jmp    0x55d355
55d208:	0f b7 44 24 50       	movzwl 0x50(%esp),%eax
55d20d:	8b 54 24 40          	mov    0x40(%esp),%edx
55d211:	8b 4a 2c             	mov    0x2c(%edx),%ecx
55d214:	8b d0                	mov    %eax,%edx
55d216:	c1 e2 07             	shl    $0x7,%edx
55d219:	03 d0                	add    %eax,%edx
55d21b:	c1 e2 02             	shl    $0x2,%edx
55d21e:	03 ca                	add    %edx,%ecx
55d220:	89 4c 24 14          	mov    %ecx,0x14(%esp)
55d224:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55d228:	8b 54 24 5c          	mov    0x5c(%esp),%edx
55d22c:	0f b7 01             	movzwl (%ecx),%eax
55d22f:	33 c9                	xor    %ecx,%ecx
55d231:	8a 4a 01             	mov    0x1(%edx),%cl
55d234:	3b c1                	cmp    %ecx,%eax
55d236:	0f 84 14 01 00 00    	je     0x55d350
55d23c:	b8 52 ff 00 00       	mov    $0xff52,%eax
55d241:	e8 9a 8d 01 00       	call   0x575fe0
55d246:	8b 14 24             	mov    (%esp),%edx
55d249:	85 c0                	test   %eax,%eax
55d24b:	89 42 1c             	mov    %eax,0x1c(%edx)
55d24e:	75 08                	jne    0x55d258
55d250:	83 c8 ff             	or     $0xffffffff,%eax
55d253:	e9 e0 05 00 00       	jmp    0x55d838
55d258:	8b 54 24 40          	mov    0x40(%esp),%edx
55d25c:	8b 4a 2c             	mov    0x2c(%edx),%ecx
55d25f:	89 4c 24 14          	mov    %ecx,0x14(%esp)
55d263:	8b 04 24             	mov    (%esp),%eax
55d266:	8b 40 1c             	mov    0x1c(%eax),%eax
55d269:	83 c0 08             	add    $0x8,%eax
55d26c:	c6 40 08 00          	movb   $0x0,0x8(%eax)
55d270:	8b 54 24 14          	mov    0x14(%esp),%edx
55d274:	8a 0a                	mov    (%edx),%cl
55d276:	80 c1 ff             	add    $0xff,%cl
55d279:	88 48 09             	mov    %cl,0x9(%eax)
55d27c:	8b 54 24 40          	mov    0x40(%esp),%edx
55d280:	8a 4a 15             	mov    0x15(%edx),%cl
55d283:	88 48 01             	mov    %cl,0x1(%eax)
55d286:	8b 54 24 40          	mov    0x40(%esp),%edx
55d28a:	66 8b 4a 16          	mov    0x16(%edx),%cx
55d28e:	66 89 48 02          	mov    %cx,0x2(%eax)
55d292:	8b 54 24 14          	mov    0x14(%esp),%edx
55d296:	8a 8a 24 01 00 00    	mov    0x124(%edx),%cl
55d29c:	80 c1 fe             	add    $0xfe,%cl
55d29f:	88 48 0a             	mov    %cl,0xa(%eax)
55d2a2:	8b 54 24 14          	mov    0x14(%esp),%edx
55d2a6:	8a 8a 28 01 00 00    	mov    0x128(%edx),%cl
55d2ac:	80 c1 fe             	add    $0xfe,%cl
55d2af:	88 48 0b             	mov    %cl,0xb(%eax)
55d2b2:	8b 54 24 14          	mov    0x14(%esp),%edx
55d2b6:	8a 8a 30 01 00 00    	mov    0x130(%edx),%cl
55d2bc:	88 48 0c             	mov    %cl,0xc(%eax)
55d2bf:	8b 54 24 14          	mov    0x14(%esp),%edx
55d2c3:	8a 4a 0c             	mov    0xc(%edx),%cl
55d2c6:	88 48 0d             	mov    %cl,0xd(%eax)
55d2c9:	8b 54 24 40          	mov    0x40(%esp),%edx
55d2cd:	8a 4a 18             	mov    0x18(%edx),%cl
55d2d0:	84 c9                	test   %cl,%cl
55d2d2:	0f 95 c2             	setne  %dl
55d2d5:	83 e2 01             	and    $0x1,%edx
55d2d8:	88 50 04             	mov    %dl,0x4(%eax)
55d2db:	33 db                	xor    %ebx,%ebx
55d2dd:	83 c0 14             	add    $0x14,%eax
55d2e0:	eb 2d                	jmp    0x55d30f
55d2e2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55d2e6:	8b d3                	mov    %ebx,%edx
55d2e8:	c1 e2 04             	shl    $0x4,%edx
55d2eb:	2b d3                	sub    %ebx,%edx
55d2ed:	8b 49 04             	mov    0x4(%ecx),%ecx
55d2f0:	8a 54 91 10          	mov    0x10(%ecx,%edx,4),%dl
55d2f4:	88 10                	mov    %dl,(%eax)
55d2f6:	8b d3                	mov    %ebx,%edx
55d2f8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55d2fc:	c1 e2 04             	shl    $0x4,%edx
55d2ff:	2b d3                	sub    %ebx,%edx
55d301:	8b 49 04             	mov    0x4(%ecx),%ecx
55d304:	43                   	inc    %ebx
55d305:	8a 54 91 14          	mov    0x14(%ecx,%edx,4),%dl
55d309:	88 50 01             	mov    %dl,0x1(%eax)
55d30c:	83 c0 02             	add    $0x2,%eax
55d30f:	8b 54 24 14          	mov    0x14(%esp),%edx
55d313:	0f b7 0a             	movzwl (%edx),%ecx
55d316:	3b d9                	cmp    %ecx,%ebx
55d318:	7c c8                	jl     0x55d2e2
55d31a:	8b 04 24             	mov    (%esp),%eax
55d31d:	8b 48 1c             	mov    0x1c(%eax),%ecx
55d320:	8b 04 24             	mov    (%esp),%eax
55d323:	8b 50 10             	mov    0x10(%eax),%edx
55d326:	8b 04 24             	mov    (%esp),%eax
55d329:	8b 40 20             	mov    0x20(%eax),%eax
55d32c:	e8 b7 8b 01 00       	call   0x575ee8
55d331:	85 c0                	test   %eax,%eax
55d333:	74 08                	je     0x55d33d
55d335:	83 c8 ff             	or     $0xffffffff,%eax
55d338:	e9 fb 04 00 00       	jmp    0x55d838
55d33d:	8b 14 24             	mov    (%esp),%edx
55d340:	8b 42 1c             	mov    0x1c(%edx),%eax
55d343:	e8 e0 8c 01 00       	call   0x576028
55d348:	8b 14 24             	mov    (%esp),%edx
55d34b:	33 c9                	xor    %ecx,%ecx
55d34d:	89 4a 1c             	mov    %ecx,0x1c(%edx)
55d350:	66 ff 44 24 50       	incw   0x50(%esp)
55d355:	8b 44 24 44          	mov    0x44(%esp),%eax
55d359:	66 8b 50 30          	mov    0x30(%eax),%dx
55d35d:	66 3b 54 24 50       	cmp    0x50(%esp),%dx
55d362:	0f 87 a0 fe ff ff    	ja     0x55d208
55d368:	66 c7 44 24 50 00 00 	movw   $0x0,0x50(%esp)
55d36f:	8b 4c 24 40          	mov    0x40(%esp),%ecx
55d373:	8b 41 2c             	mov    0x2c(%ecx),%eax
55d376:	89 44 24 14          	mov    %eax,0x14(%esp)
55d37a:	e9 5e 01 00 00       	jmp    0x55d4dd
55d37f:	0f b7 44 24 50       	movzwl 0x50(%esp),%eax
55d384:	8b 54 24 44          	mov    0x44(%esp),%edx
55d388:	8b 4a 34             	mov    0x34(%edx),%ecx
55d38b:	8b d0                	mov    %eax,%edx
55d38d:	c1 e2 03             	shl    $0x3,%edx
55d390:	8d 14 52             	lea    (%edx,%edx,2),%edx
55d393:	8d 14 d2             	lea    (%edx,%edx,8),%edx
55d396:	03 ca                	add    %edx,%ecx
55d398:	89 4c 24 58          	mov    %ecx,0x58(%esp)
55d39c:	8b 4c 24 58          	mov    0x58(%esp),%ecx
55d3a0:	8b 54 24 14          	mov    0x14(%esp),%edx
55d3a4:	66 8b 41 0c          	mov    0xc(%ecx),%ax
55d3a8:	66 3b 82 34 01 00 00 	cmp    0x134(%edx),%ax
55d3af:	75 4d                	jne    0x55d3fe
55d3b1:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)
55d3b8:	00
55d3b9:	33 c9                	xor    %ecx,%ecx
55d3bb:	89 4c 24 60          	mov    %ecx,0x60(%esp)
55d3bf:	8b 44 24 14          	mov    0x14(%esp),%eax
55d3c3:	8b 4c 24 58          	mov    0x58(%esp),%ecx
55d3c7:	8d 90 36 01 00 00    	lea    0x136(%eax),%edx
55d3cd:	8d 41 0e             	lea    0xe(%ecx),%eax
55d3d0:	eb 1a                	jmp    0x55d3ec
55d3d2:	66 8b 08             	mov    (%eax),%cx
55d3d5:	66 3b 0a             	cmp    (%edx),%cx
55d3d8:	74 08                	je     0x55d3e2
55d3da:	33 d2                	xor    %edx,%edx
55d3dc:	89 54 24 54          	mov    %edx,0x54(%esp)
55d3e0:	eb 22                	jmp    0x55d404
55d3e2:	ff 44 24 60          	incl   0x60(%esp)
55d3e6:	83 c2 02             	add    $0x2,%edx
55d3e9:	83 c0 02             	add    $0x2,%eax
55d3ec:	8b 4c 24 58          	mov    0x58(%esp),%ecx
55d3f0:	8b 5c 24 60          	mov    0x60(%esp),%ebx
55d3f4:	0f b7 49 0c          	movzwl 0xc(%ecx),%ecx
55d3f8:	3b cb                	cmp    %ebx,%ecx
55d3fa:	7f d6                	jg     0x55d3d2
55d3fc:	eb 06                	jmp    0x55d404
55d3fe:	33 c0                	xor    %eax,%eax
55d400:	89 44 24 54          	mov    %eax,0x54(%esp)
55d404:	8b 54 24 54          	mov    0x54(%esp),%edx
55d408:	85 d2                	test   %edx,%edx
55d40a:	0f 85 c0 00 00 00    	jne    0x55d4d0
55d410:	b8 5d ff 00 00       	mov    $0xff5d,%eax
55d415:	e8 c6 8b 01 00       	call   0x575fe0
55d41a:	8b 14 24             	mov    (%esp),%edx
55d41d:	85 c0                	test   %eax,%eax
55d41f:	89 42 1c             	mov    %eax,0x1c(%edx)
55d422:	75 08                	jne    0x55d42c
55d424:	83 c8 ff             	or     $0xffffffff,%eax
55d427:	e9 0c 04 00 00       	jmp    0x55d838
55d42c:	8b 14 24             	mov    (%esp),%edx
55d42f:	8b 4a 1c             	mov    0x1c(%edx),%ecx