55c6bc:	8b 56 28             	mov    0x28(%esi),%edx
55c6bf:	59                   	pop    %ecx
55c6c0:	88 4c 82 03          	mov    %cl,0x3(%edx,%eax,4)
55c6c4:	40                   	inc    %eax
55c6c5:	0f b7 53 30          	movzwl 0x30(%ebx),%edx
55c6c9:	3b c2                	cmp    %edx,%eax
55c6cb:	7c ad                	jl     0x55c67a
55c6cd:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55c6d0:	8b 55 10             	mov    0x10(%ebp),%edx
55c6d3:	8b 45 04             	mov    0x4(%ebp),%eax
55c6d6:	e8 0d 98 01 00       	call   0x575ee8
55c6db:	85 c0                	test   %eax,%eax
55c6dd:	74 1a                	je     0x55c6f9
55c6df:	68 46 dd 69 00       	push   $0x69dd46
55c6e4:	68 80 2e 6a 00       	push   $0x6a2e80
55c6e9:	e8 de d9 01 00       	call   0x57a0cc
55c6ee:	83 c4 08             	add    $0x8,%esp
55c6f1:	83 c8 ff             	or     $0xffffffff,%eax
55c6f4:	e9 a2 04 00 00       	jmp    0x55cb9b
55c6f9:	8b 45 1c             	mov    0x1c(%ebp),%eax
55c6fc:	e8 27 99 01 00       	call   0x576028
55c701:	33 d2                	xor    %edx,%edx
55c703:	b8 64 ff 00 00       	mov    $0xff64,%eax
55c708:	89 55 1c             	mov    %edx,0x1c(%ebp)
55c70b:	e8 d0 98 01 00       	call   0x575fe0
55c710:	89 45 1c             	mov    %eax,0x1c(%ebp)
55c713:	85 c0                	test   %eax,%eax
55c715:	75 08                	jne    0x55c71f
55c717:	83 c8 ff             	or     $0xffffffff,%eax
55c71a:	e9 7c 04 00 00       	jmp    0x55cb9b
55c71f:	e8 08 ce 01 00       	call   0x57952c
55c724:	50                   	push   %eax
55c725:	68 5f dd 69 00       	push   $0x69dd5f
55c72a:	8d 94 24 c8 0f 00 00 	lea    0xfc8(%esp),%edx
55c731:	52                   	push   %edx
55c732:	e8 7d d9 01 00       	call   0x57a0b4
55c737:	83 c4 0c             	add    $0xc,%esp
55c73a:	8b 75 1c             	mov    0x1c(%ebp),%esi
55c73d:	83 c6 08             	add    $0x8,%esi
55c740:	8d 84 24 c0 0f 00 00 	lea    0xfc0(%esp),%eax
55c747:	50                   	push   %eax
55c748:	e8 23 e4 ff ff       	call   0x55ab70
55c74d:	59                   	pop    %ecx
55c74e:	66 89 46 02          	mov    %ax,0x2(%esi)
55c752:	8d 84 24 c0 0f 00 00 	lea    0xfc0(%esp),%eax
55c759:	66 c7 06 01 00       	movw   $0x1,(%esi)
55c75e:	e8 7d cd 01 00       	call   0x5794e0
55c763:	89 46 04             	mov    %eax,0x4(%esi)
55c766:	85 c0                	test   %eax,%eax
55c768:	75 05                	jne    0x55c76f
55c76a:	e8 d9 e3 ff ff       	call   0x55ab48
55c76f:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55c772:	8b 55 10             	mov    0x10(%ebp),%edx
55c775:	8b 45 04             	mov    0x4(%ebp),%eax
55c778:	e8 6b 97 01 00       	call   0x575ee8
55c77d:	85 c0                	test   %eax,%eax
55c77f:	74 1a                	je     0x55c79b
55c781:	68 7a dd 69 00       	push   $0x69dd7a
55c786:	68 80 2e 6a 00       	push   $0x6a2e80
55c78b:	e8 3c d9 01 00       	call   0x57a0cc
55c790:	83 c4 08             	add    $0x8,%esp
55c793:	83 c8 ff             	or     $0xffffffff,%eax
55c796:	e9 00 04 00 00       	jmp    0x55cb9b
55c79b:	8b 45 1c             	mov    0x1c(%ebp),%eax
55c79e:	e8 85 98 01 00       	call   0x576028
55c7a3:	33 d2                	xor    %edx,%edx
55c7a5:	8d 4b 38             	lea    0x38(%ebx),%ecx
55c7a8:	89 55 1c             	mov    %edx,0x1c(%ebp)
55c7ab:	89 4c 24 08          	mov    %ecx,0x8(%esp)
55c7af:	8d 43 48             	lea    0x48(%ebx),%eax
55c7b2:	33 ff                	xor    %edi,%edi
55c7b4:	89 44 24 04          	mov    %eax,0x4(%esp)
55c7b8:	e9 61 01 00 00       	jmp    0x55c91e
55c7bd:	8b 44 24 04          	mov    0x4(%esp),%eax
55c7c1:	33 d2                	xor    %edx,%edx
55c7c3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
55c7c7:	8a 50 01             	mov    0x1(%eax),%dl
55c7ca:	4a                   	dec    %edx
55c7cb:	33 c0                	xor    %eax,%eax
55c7cd:	8a 41 07             	mov    0x7(%ecx),%al
55c7d0:	e8 7b 1b 01 00       	call   0x56e350
55c7d5:	8b f0                	mov    %eax,%esi
55c7d7:	8b 44 24 04          	mov    0x4(%esp),%eax
55c7db:	8a 48 01             	mov    0x1(%eax),%cl
55c7de:	b8 01 00 00 00       	mov    $0x1,%eax
55c7e3:	d3 e0                	shl    %cl,%eax
55c7e5:	50                   	push   %eax
55c7e6:	50                   	push   %eax
55c7e7:	8d 54 24 28          	lea    0x28(%esp),%edx
55c7eb:	33 c9                	xor    %ecx,%ecx
55c7ed:	52                   	push   %edx
55c7ee:	33 d2                	xor    %edx,%edx
55c7f0:	8b c6                	mov    %esi,%eax
55c7f2:	e8 9d 14 01 00       	call   0x56dc94
55c7f7:	8b c6                	mov    %esi,%eax
55c7f9:	e8 ee 11 01 00       	call   0x56d9ec
55c7fe:	0f b7 d7             	movzwl %di,%edx
55c801:	8b 4c 24 08          	mov    0x8(%esp),%ecx
55c805:	33 c0                	xor    %eax,%eax
55c807:	8a 41 06             	mov    0x6(%ecx),%al
55c80a:	e8 cd 3e 01 00       	call   0x5706dc
55c80f:	8b 54 24 04          	mov    0x4(%esp),%edx
55c813:	33 c9                	xor    %ecx,%ecx
55c815:	33 f6                	xor    %esi,%esi
55c817:	8a 4a 01             	mov    0x1(%edx),%cl
55c81a:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
55c81d:	66 05 fe ff          	add    $0xfffe,%ax
55c821:	66 89 44 24 10       	mov    %ax,0x10(%esp)
55c826:	8d 44 24 20          	lea    0x20(%esp),%eax
55c82a:	89 44 24 0c          	mov    %eax,0xc(%esp)
55c82e:	66 3b 74 24 10       	cmp    0x10(%esp),%si
55c833:	0f 83 ce 00 00 00    	jae    0x55c907
55c839:	66 85 f6             	test   %si,%si
55c83c:	74 0f                	je     0x55c84d
55c83e:	0f b7 c6             	movzwl %si,%eax
55c841:	48                   	dec    %eax
55c842:	b9 03 00 00 00       	mov    $0x3,%ecx
55c847:	99                   	cltd
55c848:	f7 f9                	idiv   %ecx
55c84a:	40                   	inc    %eax
55c84b:	eb 02                	jmp    0x55c84f
55c84d:	33 c0                	xor    %eax,%eax
55c84f:	66 89 44 24 12       	mov    %ax,0x12(%esp)
55c854:	8b 54 24 0c          	mov    0xc(%esp),%edx
55c858:	8b 4a 10             	mov    0x10(%edx),%ecx
55c85b:	51                   	push   %ecx
55c85c:	0f b7 4c 24 16       	movzwl 0x16(%esp),%ecx
55c861:	8b 44 24 08          	mov    0x8(%esp),%eax
55c865:	33 d2                	xor    %edx,%edx
55c867:	8a 50 01             	mov    0x1(%eax),%dl
55c86a:	8b 44 24 08          	mov    0x8(%esp),%eax
55c86e:	0f b6 40 07          	movzbl 0x7(%eax),%eax
55c872:	e8 01 06 01 00       	call   0x56ce78
55c877:	66 89 44 24 14       	mov    %ax,0x14(%esp)
55c87c:	8b 54 24 08          	mov    0x8(%esp),%edx
55c880:	8b 0a                	mov    (%edx),%ecx
55c882:	85 c9                	test   %ecx,%ecx
55c884:	75 2d                	jne    0x55c8b3
55c886:	8b 44 24 0c          	mov    0xc(%esp),%eax
55c88a:	8b 40 24             	mov    0x24(%eax),%eax
55c88d:	99                   	cltd
55c88e:	52                   	push   %edx
55c88f:	50                   	push   %eax
55c890:	0f b7 4c 24 1c       	movzwl 0x1c(%esp),%ecx
55c895:	41                   	inc    %ecx
55c896:	b8 01 00 00 00       	mov    $0x1,%eax
55c89b:	d3 e0                	shl    %cl,%eax
55c89d:	c1 e0 0d             	shl    $0xd,%eax
55c8a0:	99                   	cltd
55c8a1:	0f a4 c2 0d          	shld   $0xd,%eax,%edx
55c8a5:	c1 e0 0d             	shl    $0xd,%eax
55c8a8:	e8 fb e7 ff ff       	call   0x55b0a8
55c8ad:	89 44 24 18          	mov    %eax,0x18(%esp)
55c8b1:	eb 08                	jmp    0x55c8bb
55c8b3:	c7 44 24 18 00 20 00 	movl   $0x2000,0x18(%esp)
55c8ba:	00
55c8bb:	0f b7 d7             	movzwl %di,%edx
55c8be:	8b 43 34             	mov    0x34(%ebx),%eax
55c8c1:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55c8c4:	33 d2                	xor    %edx,%edx
55c8c6:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
55c8c9:	8a 54 c8 04          	mov    0x4(%eax,%ecx,8),%dl
55c8cd:	8b 44 24 18          	mov    0x18(%esp),%eax
55c8d1:	0f b7 4c 24 14       	movzwl 0x14(%esp),%ecx
55c8d6:	03 d1                	add    %ecx,%edx
55c8d8:	e8 1f ed ff ff       	call   0x55b5fc
55c8dd:	0f b7 d7             	movzwl %di,%edx
55c8e0:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55c8e3:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
55c8e6:	8b 53 34             	mov    0x34(%ebx),%edx
55c8e9:	8d 0c ca             	lea    (%edx,%ecx,8),%ecx
55c8ec:	51                   	push   %ecx
55c8ed:	0f b7 d6             	movzwl %si,%edx
55c8f0:	59                   	pop    %ecx
55c8f1:	66 89 44 51 0e       	mov    %ax,0xe(%ecx,%edx,2)
55c8f6:	46                   	inc    %esi
55c8f7:	83 44 24 0c 28       	addl   $0x28,0xc(%esp)
55c8fc:	66 3b 74 24 10       	cmp    0x10(%esp),%si
55c901:	0f 82 32 ff ff ff    	jb     0x55c839
55c907:	0f b7 c7             	movzwl %di,%eax
55c90a:	66 8b 4c 24 10       	mov    0x10(%esp),%cx
55c90f:	8b 53 34             	mov    0x34(%ebx),%edx
55c912:	8d 04 40             	lea    (%eax,%eax,2),%eax
55c915:	47                   	inc    %edi
55c916:	8d 04 c0             	lea    (%eax,%eax,8),%eax
55c919:	66 89 4c c2 0c       	mov    %cx,0xc(%edx,%eax,8)
55c91e:	66 3b 7b 30          	cmp    0x30(%ebx),%di
55c922:	0f 82 95 fe ff ff    	jb     0x55c7bd
55c928:	b8 52 ff 00 00       	mov    $0xff52,%eax
55c92d:	e8 ae 96 01 00       	call   0x575fe0
55c932:	89 45 1c             	mov    %eax,0x1c(%ebp)
55c935:	85 c0                	test   %eax,%eax
55c937:	75 08                	jne    0x55c941
55c939:	83 c8 ff             	or     $0xffffffff,%eax
55c93c:	e9 5a 02 00 00       	jmp    0x55cb9b
55c941:	8b 45 1c             	mov    0x1c(%ebp),%eax
55c944:	8a 4b 3c             	mov    0x3c(%ebx),%cl
55c947:	83 c0 08             	add    $0x8,%eax
55c94a:	8a 53 48             	mov    0x48(%ebx),%dl
55c94d:	0a d1                	or     %cl,%dl
55c94f:	88 10                	mov    %dl,(%eax)
55c951:	8a 4b 3c             	mov    0x3c(%ebx),%cl
55c954:	8a 53 48             	mov    0x48(%ebx),%dl
55c957:	0a d1                	or     %cl,%dl
55c959:	33 c9                	xor    %ecx,%ecx
55c95b:	88 50 08             	mov    %dl,0x8(%eax)
55c95e:	8a 53 49             	mov    0x49(%ebx),%dl
55c961:	80 c2 ff             	add    $0xff,%dl
55c964:	88 50 09             	mov    %dl,0x9(%eax)
55c967:	8a 4b 49             	mov    0x49(%ebx),%cl
55c96a:	89 48 10             	mov    %ecx,0x10(%eax)
55c96d:	8a 53 3d             	mov    0x3d(%ebx),%dl
55c970:	88 50 01             	mov    %dl,0x1(%eax)
55c973:	66 8b 4b 40          	mov    0x40(%ebx),%cx
55c977:	66 89 48 02          	mov    %cx,0x2(%eax)
55c97b:	8a 53 4a             	mov    0x4a(%ebx),%dl
55c97e:	80 c2 fe             	add    $0xfe,%dl
55c981:	88 50 0a             	mov    %dl,0xa(%eax)
55c984:	8a 4b 4c             	mov    0x4c(%ebx),%cl
55c987:	80 c1 fe             	add    $0xfe,%cl
55c98a:	88 48 0b             	mov    %cl,0xb(%eax)
55c98d:	8a 53 4e             	mov    0x4e(%ebx),%dl
55c990:	88 50 0c             	mov    %dl,0xc(%eax)
55c993:	8a 4b 4f             	mov    0x4f(%ebx),%cl
55c996:	88 48 0d             	mov    %cl,0xd(%eax)
55c999:	8a 53 3e             	mov    0x3e(%ebx),%dl
55c99c:	84 d2                	test   %dl,%dl
55c99e:	0f 95 c1             	setne  %cl
55c9a1:	83 e1 01             	and    $0x1,%ecx
55c9a4:	88 48 04             	mov    %cl,0x4(%eax)
55c9a7:	8b 54 24 04          	mov    0x4(%esp),%edx
55c9ab:	f6 02 01             	testb  $0x1,(%edx)
55c9ae:	74 39                	je     0x55c9e9
55c9b0:	66 c7 44 24 12 00 00 	movw   $0x0,0x12(%esp)
55c9b7:	8d 50 14             	lea    0x14(%eax),%edx
55c9ba:	8b 44 24 04          	mov    0x4(%esp),%eax
55c9be:	83 c0 08             	add    $0x8,%eax
55c9c1:	eb 15                	jmp    0x55c9d8
55c9c3:	8a 08                	mov    (%eax),%cl
55c9c5:	88 0a                	mov    %cl,(%edx)
55c9c7:	8a 48 42             	mov    0x42(%eax),%cl
55c9ca:	88 4a 01             	mov    %cl,0x1(%edx)
55c9cd:	83 c2 02             	add    $0x2,%edx
55c9d0:	66 ff 44 24 12       	incw   0x12(%esp)
55c9d5:	83 c0 02             	add    $0x2,%eax
55c9d8:	8b 74 24 04          	mov    0x4(%esp),%esi
55c9dc:	0f b7 4c 24 12       	movzwl 0x12(%esp),%ecx
55c9e1:	0f b6 76 01          	movzbl 0x1(%esi),%esi
55c9e5:	3b ce                	cmp    %esi,%ecx
55c9e7:	7c da                	jl     0x55c9c3
55c9e9:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55c9ec:	8b 55 10             	mov    0x10(%ebp),%edx
55c9ef:	8b 45 04             	mov    0x4(%ebp),%eax
55c9f2:	e8 f1 94 01 00       	call   0x575ee8
55c9f7:	85 c0                	test   %eax,%eax
55c9f9:	74 1a                	je     0x55ca15
55c9fb:	68 93 dd 69 00       	push   $0x69dd93
55ca00:	68 80 2e 6a 00       	push   $0x6a2e80
55ca05:	e8 c2 d6 01 00       	call   0x57a0cc
55ca0a:	83 c4 08             	add    $0x8,%esp
55ca0d:	83 c8 ff             	or     $0xffffffff,%eax
55ca10:	e9 86 01 00 00       	jmp    0x55cb9b
55ca15:	8b 45 1c             	mov    0x1c(%ebp),%eax
55ca18:	e8 0b 96 01 00       	call   0x576028
55ca1d:	33 d2                	xor    %edx,%edx
55ca1f:	b8 5c ff 00 00       	mov    $0xff5c,%eax
55ca24:	89 55 1c             	mov    %edx,0x1c(%ebp)
55ca27:	e8 b4 95 01 00       	call   0x575fe0
55ca2c:	89 45 1c             	mov    %eax,0x1c(%ebp)
55ca2f:	85 c0                	test   %eax,%eax
55ca31:	75 08                	jne    0x55ca3b
55ca33:	83 c8 ff             	or     $0xffffffff,%eax
55ca36:	e9 60 01 00 00       	jmp    0x55cb9b
55ca3b:	8b 44 24 04          	mov    0x4(%esp),%eax
55ca3f:	8b 75 1c             	mov    0x1c(%ebp),%esi
55ca42:	83 c6 08             	add    $0x8,%esi
55ca45:	8a 50 07             	mov    0x7(%eax),%dl
55ca48:	84 d2                	test   %dl,%dl
55ca4a:	75 04                	jne    0x55ca50
55ca4c:	b1 02                	mov    $0x2,%cl
55ca4e:	eb 02                	jmp    0x55ca52
55ca50:	33 c9                	xor    %ecx,%ecx
55ca52:	88 0e                	mov    %cl,(%esi)
55ca54:	8b 43 34             	mov    0x34(%ebx),%eax
55ca57:	0f b7 50 0c          	movzwl 0xc(%eax),%edx
55ca5b:	89 56 04             	mov    %edx,0x4(%esi)
55ca5e:	8a 83 d4 00 00 00    	mov    0xd4(%ebx),%al
55ca64:	88 46 0c             	mov    %al,0xc(%esi)
55ca67:	8b 53 34             	mov    0x34(%ebx),%edx
55ca6a:	83 c2 0e             	add    $0xe,%edx
55ca6d:	89 56 08             	mov    %edx,0x8(%esi)
55ca70:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55ca73:	8b 55 10             	mov    0x10(%ebp),%edx
55ca76:	8b 45 04             	mov    0x4(%ebp),%eax
55ca79:	e8 6a 94 01 00       	call   0x575ee8
55ca7e:	85 c0                	test   %eax,%eax
55ca80:	74 08                	je     0x55ca8a
55ca82:	83 c8 ff             	or     $0xffffffff,%eax
55ca85:	e9 11 01 00 00       	jmp    0x55cb9b
55ca8a:	33 d2                	xor    %edx,%edx
55ca8c:	89 56 08             	mov    %edx,0x8(%esi)
55ca8f:	8b 45 1c             	mov    0x1c(%ebp),%eax
55ca92:	e8 91 95 01 00       	call   0x576028
55ca97:	66 bf 01 00          	mov    $0x1,%di
55ca9b:	33 d2                	xor    %edx,%edx
55ca9d:	89 55 1c             	mov    %edx,0x1c(%ebp)
55caa0:	8d 4b 48             	lea    0x48(%ebx),%ecx
55caa3:	89 4c 24 04          	mov    %ecx,0x4(%esp)
55caa7:	e9 90 00 00 00       	jmp    0x55cb3c
55caac:	b8 5d ff 00 00       	mov    $0xff5d,%eax
55cab1:	e8 2a 95 01 00       	call   0x575fe0
55cab6:	8b f0                	mov    %eax,%esi
55cab8:	89 75 1c             	mov    %esi,0x1c(%ebp)
55cabb:	85 f6                	test   %esi,%esi
55cabd:	75 08                	jne    0x55cac7
55cabf:	83 c8 ff             	or     $0xffffffff,%eax
55cac2:	e9 d4 00 00 00       	jmp    0x55cb9b
55cac7:	83 c6 08             	add    $0x8,%esi
55caca:	66 89 3e             	mov    %di,(%esi)
55cacd:	8b 54 24 04          	mov    0x4(%esp),%edx
55cad1:	8a 4a 07             	mov    0x7(%edx),%cl
55cad4:	84 c9                	test   %cl,%cl
55cad6:	75 04                	jne    0x55cadc
55cad8:	b0 02                	mov    $0x2,%al
55cada:	eb 02                	jmp    0x55cade
55cadc:	33 c0                	xor    %eax,%eax
55cade:	88 46 04             	mov    %al,0x4(%esi)
55cae1:	0f b7 c7             	movzwl %di,%eax
55cae4:	8b 4b 34             	mov    0x34(%ebx),%ecx
55cae7:	8d 14 40             	lea    (%eax,%eax,2),%edx
55caea:	c1 e0 03             	shl    $0x3,%eax
55caed:	8d 14 d2             	lea    (%edx,%edx,8),%edx
55caf0:	0f b7 54 d1 0c       	movzwl 0xc(%ecx,%edx,8),%edx
55caf5:	89 56 08             	mov    %edx,0x8(%esi)
55caf8:	8d 04 40             	lea    (%eax,%eax,2),%eax
55cafb:	8a 8b d4 00 00 00    	mov    0xd4(%ebx),%cl
55cb01:	88 4e 10             	mov    %cl,0x10(%esi)
55cb04:	8d 04 c0             	lea    (%eax,%eax,8),%eax
55cb07:	8b 53 34             	mov    0x34(%ebx),%edx
55cb0a:	03 c2                	add    %edx,%eax
55cb0c:	83 c0 0e             	add    $0xe,%eax
55cb0f:	89 46 0c             	mov    %eax,0xc(%esi)
55cb12:	8b 45 04             	mov    0x4(%ebp),%eax
55cb15:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55cb18:	8b 55 10             	mov    0x10(%ebp),%edx
55cb1b:	e8 c8 93 01 00       	call   0x575ee8
55cb20:	85 c0                	test   %eax,%eax
55cb22:	74 05                	je     0x55cb29
55cb24:	83 c8 ff             	or     $0xffffffff,%eax
55cb27:	eb 72                	jmp    0x55cb9b