53f90c:	83 c4 0c             	add    $0xc,%esp
53f90f:	85 db                	test   %ebx,%ebx
53f911:	0f 84 ba 00 00 00    	je     0x53f9d1
53f917:	8a 54 24 45          	mov    0x45(%esp),%dl
53f91b:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f91f:	8a e2                	mov    %dl,%ah
53f921:	8a 44 24 44          	mov    0x44(%esp),%al
53f925:	d2 ec                	shr    %cl,%ah
53f927:	8a cb                	mov    %bl,%cl
53f929:	d2 e0                	shl    %cl,%al
53f92b:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f92f:	0a e0                	or     %al,%ah
53f931:	8a 44 24 46          	mov    0x46(%esp),%al
53f935:	88 64 24 21          	mov    %ah,0x21(%esp)
53f939:	8a e0                	mov    %al,%ah
53f93b:	d2 ec                	shr    %cl,%ah
53f93d:	8a cb                	mov    %bl,%cl
53f93f:	d2 e2                	shl    %cl,%dl
53f941:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f945:	0a e2                	or     %dl,%ah
53f947:	8a 54 24 47          	mov    0x47(%esp),%dl
53f94b:	88 64 24 22          	mov    %ah,0x22(%esp)
53f94f:	8a e2                	mov    %dl,%ah
53f951:	d2 ec                	shr    %cl,%ah
53f953:	8a cb                	mov    %bl,%cl
53f955:	d2 e0                	shl    %cl,%al
53f957:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f95b:	0a e0                	or     %al,%ah
53f95d:	8a 44 24 48          	mov    0x48(%esp),%al
53f961:	8a e8                	mov    %al,%ch
53f963:	d2 ed                	shr    %cl,%ch
53f965:	8a cb                	mov    %bl,%cl
53f967:	d2 e2                	shl    %cl,%dl
53f969:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f96d:	0a ea                	or     %dl,%ch
53f96f:	8a 54 24 49          	mov    0x49(%esp),%dl
53f973:	8a f2                	mov    %dl,%dh
53f975:	d2 ee                	shr    %cl,%dh
53f977:	8a cb                	mov    %bl,%cl
53f979:	8a 5c 24 4a          	mov    0x4a(%esp),%bl
53f97d:	d2 e0                	shl    %cl,%al
53f97f:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f983:	0a f0                	or     %al,%dh
53f985:	8a c3                	mov    %bl,%al
53f987:	88 74 24 23          	mov    %dh,0x23(%esp)
53f98b:	d2 e8                	shr    %cl,%al
53f98d:	8a 4c 24 24          	mov    0x24(%esp),%cl
53f991:	d2 e2                	shl    %cl,%dl
53f993:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f997:	0a c2                	or     %dl,%al
53f999:	8b 54 24 24          	mov    0x24(%esp),%edx
53f99d:	8a 74 24 23          	mov    0x23(%esp),%dh
53f9a1:	88 44 24 13          	mov    %al,0x13(%esp)
53f9a5:	8a 44 24 4b          	mov    0x4b(%esp),%al
53f9a9:	8a f8                	mov    %al,%bh
53f9ab:	d2 ef                	shr    %cl,%bh
53f9ad:	8a ca                	mov    %dl,%cl
53f9af:	d2 e3                	shl    %cl,%bl
53f9b1:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
53f9b5:	0a fb                	or     %bl,%bh
53f9b7:	8a 5c 24 22          	mov    0x22(%esp),%bl
53f9bb:	88 7c 24 12          	mov    %bh,0x12(%esp)
53f9bf:	8a 7c 24 4c          	mov    0x4c(%esp),%bh
53f9c3:	d2 ef                	shr    %cl,%bh
53f9c5:	8a ca                	mov    %dl,%cl
53f9c7:	8a 54 24 21          	mov    0x21(%esp),%dl
53f9cb:	d2 e0                	shl    %cl,%al
53f9cd:	0a f8                	or     %al,%bh
53f9cf:	eb 28                	jmp    0x53f9f9
53f9d1:	8a 44 24 4a          	mov    0x4a(%esp),%al
53f9d5:	8a 7c 24 4b          	mov    0x4b(%esp),%bh
53f9d9:	8a 74 24 48          	mov    0x48(%esp),%dh
53f9dd:	8a 6c 24 47          	mov    0x47(%esp),%ch
53f9e1:	8a 64 24 46          	mov    0x46(%esp),%ah
53f9e5:	8a 5c 24 45          	mov    0x45(%esp),%bl
53f9e9:	8a 54 24 44          	mov    0x44(%esp),%dl
53f9ed:	88 44 24 12          	mov    %al,0x12(%esp)
53f9f1:	8a 44 24 49          	mov    0x49(%esp),%al
53f9f5:	88 44 24 13          	mov    %al,0x13(%esp)
53f9f9:	0f b6 cd             	movzbl %ch,%ecx
53f9fc:	c1 e1 08             	shl    $0x8,%ecx
53f9ff:	0f b6 c4             	movzbl %ah,%eax
53fa02:	0b c8                	or     %eax,%ecx
53fa04:	0f b6 c3             	movzbl %bl,%eax
53fa07:	c1 e1 08             	shl    $0x8,%ecx
53fa0a:	0b c8                	or     %eax,%ecx
53fa0c:	0f b6 df             	movzbl %bh,%ebx
53fa0f:	c1 e1 08             	shl    $0x8,%ecx
53fa12:	0f b6 c2             	movzbl %dl,%eax
53fa15:	0b c8                	or     %eax,%ecx
53fa17:	c1 e3 08             	shl    $0x8,%ebx
53fa1a:	0f b6 44 24 12       	movzbl 0x12(%esp),%eax
53fa1f:	0b d8                	or     %eax,%ebx
53fa21:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
53fa26:	c1 e3 08             	shl    $0x8,%ebx
53fa29:	0b d8                	or     %eax,%ebx
53fa2b:	0f b6 c6             	movzbl %dh,%eax
53fa2e:	c1 e3 08             	shl    $0x8,%ebx
53fa31:	0b d8                	or     %eax,%ebx
53fa33:	8b 44 24 68          	mov    0x68(%esp),%eax
53fa37:	89 4c 24 18          	mov    %ecx,0x18(%esp)
53fa3b:	3b c7                	cmp    %edi,%eax
53fa3d:	0f 83 ed fc ff ff    	jae    0x53f730
53fa43:	e9 2f 03 00 00       	jmp    0x53fd77
53fa48:	81 e1 07 00 00 80    	and    $0x80000007,%ecx
53fa4e:	79 05                	jns    0x53fa55
53fa50:	49                   	dec    %ecx
53fa51:	83 c9 f8             	or     $0xfffffff8,%ecx
53fa54:	41                   	inc    %ecx
53fa55:	8b 6c 24 5c          	mov    0x5c(%esp),%ebp
53fa59:	ba 08 00 00 00       	mov    $0x8,%edx
53fa5e:	2b d1                	sub    %ecx,%edx
53fa60:	89 4c 24 24          	mov    %ecx,0x24(%esp)
53fa64:	8b 4c 24 18          	mov    0x18(%esp),%ecx
53fa68:	89 54 24 14          	mov    %edx,0x14(%esp)
53fa6c:	0f 1f 40 00          	nopl   0x0(%eax)
53fa70:	ff 74 24 30          	push   0x30(%esp)
53fa74:	2b c7                	sub    %edi,%eax
53fa76:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
53fa7a:	ff 74 24 38          	push   0x38(%esp)
53fa7e:	89 44 24 70          	mov    %eax,0x70(%esp)
53fa82:	8d 44 24 30          	lea    0x30(%esp),%eax
53fa86:	ff 74 24 40          	push   0x40(%esp)
53fa8a:	89 5c 24 38          	mov    %ebx,0x38(%esp)
53fa8e:	50                   	push   %eax
53fa8f:	e8 4c 57 ed ff       	call   0x4151e0
53fa94:	33 c9                	xor    %ecx,%ecx
53fa96:	8d 47 ff             	lea    -0x1(%edi),%eax
53fa99:	33 d2                	xor    %edx,%edx
53fa9b:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
53fa9f:	83 c4 10             	add    $0x10,%esp
53faa2:	89 54 24 3c          	mov    %edx,0x3c(%esp)
53faa6:	03 ef                	add    %edi,%ebp
53faa8:	83 f8 07             	cmp    $0x7,%eax
53faab:	77 55                	ja     0x53fb02
53faad:	ff 24 85 04 fe 53 00 	jmp    *0x53fe04(,%eax,4)
53fab4:	0f b6 4d ff          	movzbl -0x1(%ebp),%ecx
53fab8:	4d                   	dec    %ebp
53fab9:	c1 e1 18             	shl    $0x18,%ecx
53fabc:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
53fac0:	4d                   	dec    %ebp
53fac1:	c1 e0 10             	shl    $0x10,%eax
53fac4:	0b c8                	or     %eax,%ecx
53fac6:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
53faca:	4d                   	dec    %ebp
53facb:	c1 e0 08             	shl    $0x8,%eax
53face:	0b c8                	or     %eax,%ecx
53fad0:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
53fad4:	4d                   	dec    %ebp
53fad5:	0b c8                	or     %eax,%ecx
53fad7:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
53fadb:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
53fadf:	4d                   	dec    %ebp
53fae0:	c1 e2 18             	shl    $0x18,%edx
53fae3:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
53fae7:	4d                   	dec    %ebp
53fae8:	c1 e0 10             	shl    $0x10,%eax
53faeb:	0b d0                	or     %eax,%edx
53faed:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
53faf1:	4d                   	dec    %ebp
53faf2:	c1 e0 08             	shl    $0x8,%eax
53faf5:	0b d0                	or     %eax,%edx
53faf7:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
53fafb:	4d                   	dec    %ebp
53fafc:	0b d0                	or     %eax,%edx
53fafe:	89 54 24 3c          	mov    %edx,0x3c(%esp)
53fb02:	8b 44 24 64          	mov    0x64(%esp),%eax
53fb06:	03 ef                	add    %edi,%ebp
53fb08:	83 f8 20             	cmp    $0x20,%eax
53fb0b:	75 09                	jne    0x53fb16
53fb0d:	8b cb                	mov    %ebx,%ecx
53fb0f:	8b da                	mov    %edx,%ebx
53fb11:	e9 eb 01 00 00       	jmp    0x53fd01
53fb16:	83 f8 40             	cmp    $0x40,%eax
53fb19:	75 0d                	jne    0x53fb28
53fb1b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
53fb1f:	8b ca                	mov    %edx,%ecx
53fb21:	8b d8                	mov    %eax,%ebx
53fb23:	e9 dd 01 00 00       	jmp    0x53fd05
53fb28:	8b 4c 24 18          	mov    0x18(%esp),%ecx
53fb2c:	8b c1                	mov    %ecx,%eax
53fb2e:	c1 e8 08             	shr    $0x8,%eax
53fb31:	88 44 24 45          	mov    %al,0x45(%esp)
53fb35:	8b c1                	mov    %ecx,%eax
53fb37:	c1 e8 10             	shr    $0x10,%eax
53fb3a:	88 44 24 46          	mov    %al,0x46(%esp)
53fb3e:	8b c3                	mov    %ebx,%eax
53fb40:	c1 e8 08             	shr    $0x8,%eax
53fb43:	88 44 24 49          	mov    %al,0x49(%esp)
53fb47:	8b c3                	mov    %ebx,%eax
53fb49:	c1 e8 10             	shr    $0x10,%eax
53fb4c:	88 44 24 4a          	mov    %al,0x4a(%esp)
53fb50:	8b c2                	mov    %edx,%eax
53fb52:	c1 e8 08             	shr    $0x8,%eax
53fb55:	88 44 24 4d          	mov    %al,0x4d(%esp)
53fb59:	8b c2                	mov    %edx,%eax
53fb5b:	c1 e8 10             	shr    $0x10,%eax
53fb5e:	88 44 24 4e          	mov    %al,0x4e(%esp)
53fb62:	8b c2                	mov    %edx,%eax
53fb64:	c1 e8 18             	shr    $0x18,%eax
53fb67:	88 44 24 4f          	mov    %al,0x4f(%esp)
53fb6b:	88 4c 24 44          	mov    %cl,0x44(%esp)
53fb6f:	c1 e9 18             	shr    $0x18,%ecx
53fb72:	88 4c 24 47          	mov    %cl,0x47(%esp)
53fb76:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
53fb7a:	8b c1                	mov    %ecx,%eax
53fb7c:	c1 e8 08             	shr    $0x8,%eax
53fb7f:	88 44 24 51          	mov    %al,0x51(%esp)
53fb83:	8b c1                	mov    %ecx,%eax
53fb85:	c1 e8 10             	shr    $0x10,%eax
53fb88:	88 44 24 52          	mov    %al,0x52(%esp)
53fb8c:	8b c1                	mov    %ecx,%eax
53fb8e:	c1 e8 18             	shr    $0x18,%eax
53fb91:	88 5c 24 48          	mov    %bl,0x48(%esp)
53fb95:	c1 eb 18             	shr    $0x18,%ebx
53fb98:	88 44 24 53          	mov    %al,0x53(%esp)
53fb9c:	33 c0                	xor    %eax,%eax
53fb9e:	88 5c 24 4b          	mov    %bl,0x4b(%esp)
53fba2:	8b 5c 24 24          	mov    0x24(%esp),%ebx
53fba6:	85 db                	test   %ebx,%ebx
53fba8:	88 54 24 4c          	mov    %dl,0x4c(%esp)
53fbac:	0f 95 c0             	setne  %al
53fbaf:	88 4c 24 50          	mov    %cl,0x50(%esp)
53fbb3:	83 c0 08             	add    $0x8,%eax
53fbb6:	50                   	push   %eax
53fbb7:	8b 44 24 68          	mov    0x68(%esp),%eax
53fbbb:	8b c0                	mov    %eax,%eax
53fbbd:	85 c0                	test   %eax,%eax
53fbbf:	79 03                	jns    0x53fbc4
53fbc1:	83 c0 07             	add    $0x7,%eax
53fbc4:	c1 f8 03             	sar    $0x3,%eax
53fbc7:	8d 4c 24 48          	lea    0x48(%esp),%ecx
53fbcb:	03 c1                	add    %ecx,%eax
53fbcd:	50                   	push   %eax
53fbce:	8b c1                	mov    %ecx,%eax
53fbd0:	50                   	push   %eax
53fbd1:	e8 fa 31 09 00       	call   0x5d2dd0
53fbd6:	83 c4 0c             	add    $0xc,%esp
53fbd9:	85 db                	test   %ebx,%ebx
53fbdb:	0f 84 ba 00 00 00    	je     0x53fc9b
53fbe1:	8a 54 24 45          	mov    0x45(%esp),%dl
53fbe5:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fbe9:	8a e2                	mov    %dl,%ah
53fbeb:	8a 44 24 44          	mov    0x44(%esp),%al
53fbef:	d2 ec                	shr    %cl,%ah
53fbf1:	8a cb                	mov    %bl,%cl
53fbf3:	d2 e0                	shl    %cl,%al
53fbf5:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fbf9:	0a e0                	or     %al,%ah
53fbfb:	8a 44 24 46          	mov    0x46(%esp),%al
53fbff:	88 64 24 23          	mov    %ah,0x23(%esp)
53fc03:	8a e0                	mov    %al,%ah
53fc05:	d2 ec                	shr    %cl,%ah
53fc07:	8a cb                	mov    %bl,%cl
53fc09:	d2 e2                	shl    %cl,%dl
53fc0b:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fc0f:	0a e2                	or     %dl,%ah
53fc11:	8a 54 24 47          	mov    0x47(%esp),%dl
53fc15:	88 64 24 22          	mov    %ah,0x22(%esp)
53fc19:	8a e2                	mov    %dl,%ah
53fc1b:	d2 ec                	shr    %cl,%ah
53fc1d:	8a cb                	mov    %bl,%cl
53fc1f:	d2 e0                	shl    %cl,%al
53fc21:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fc25:	0a e0                	or     %al,%ah
53fc27:	8a 44 24 48          	mov    0x48(%esp),%al
53fc2b:	8a e8                	mov    %al,%ch
53fc2d:	d2 ed                	shr    %cl,%ch
53fc2f:	8a cb                	mov    %bl,%cl
53fc31:	d2 e2                	shl    %cl,%dl
53fc33:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fc37:	0a ea                	or     %dl,%ch
53fc39:	8a 54 24 49          	mov    0x49(%esp),%dl
53fc3d:	8a f2                	mov    %dl,%dh
53fc3f:	d2 ee                	shr    %cl,%dh
53fc41:	8a cb                	mov    %bl,%cl
53fc43:	8a 5c 24 4a          	mov    0x4a(%esp),%bl
53fc47:	d2 e0                	shl    %cl,%al
53fc49:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fc4d:	0a f0                	or     %al,%dh
53fc4f:	8a c3                	mov    %bl,%al
53fc51:	88 74 24 21          	mov    %dh,0x21(%esp)
53fc55:	d2 e8                	shr    %cl,%al
53fc57:	8a 4c 24 24          	mov    0x24(%esp),%cl
53fc5b:	d2 e2                	shl    %cl,%dl
53fc5d:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fc61:	0a c2                	or     %dl,%al
53fc63:	8b 54 24 24          	mov    0x24(%esp),%edx
53fc67:	8a 74 24 21          	mov    0x21(%esp),%dh
53fc6b:	88 44 24 12          	mov    %al,0x12(%esp)
53fc6f:	8a 44 24 4b          	mov    0x4b(%esp),%al
53fc73:	8a f8                	mov    %al,%bh
53fc75:	d2 ef                	shr    %cl,%bh
53fc77:	8a ca                	mov    %dl,%cl
53fc79:	d2 e3                	shl    %cl,%bl
53fc7b:	8a 4c 24 14          	mov    0x14(%esp),%cl
53fc7f:	0a fb                	or     %bl,%bh
53fc81:	8a 5c 24 22          	mov    0x22(%esp),%bl
53fc85:	88 7c 24 13          	mov    %bh,0x13(%esp)
53fc89:	8a 7c 24 4c          	mov    0x4c(%esp),%bh
53fc8d:	d2 ef                	shr    %cl,%bh
53fc8f:	8a ca                	mov    %dl,%cl
53fc91:	8a 54 24 23          	mov    0x23(%esp),%dl
53fc95:	d2 e0                	shl    %cl,%al
53fc97:	0a f8                	or     %al,%bh
53fc99:	eb 28                	jmp    0x53fcc3
53fc9b:	8a 44 24 4a          	mov    0x4a(%esp),%al
53fc9f:	8a 7c 24 4b          	mov    0x4b(%esp),%bh
53fca3:	8a 74 24 48          	mov    0x48(%esp),%dh
53fca7:	8a 6c 24 47          	mov    0x47(%esp),%ch
53fcab:	8a 64 24 46          	mov    0x46(%esp),%ah
53fcaf:	8a 5c 24 45          	mov    0x45(%esp),%bl
53fcb3:	8a 54 24 44          	mov    0x44(%esp),%dl
53fcb7:	88 44 24 13          	mov    %al,0x13(%esp)
53fcbb:	8a 44 24 49          	mov    0x49(%esp),%al
53fcbf:	88 44 24 12          	mov    %al,0x12(%esp)
53fcc3:	0f b6 cd             	movzbl %ch,%ecx
53fcc6:	c1 e1 08             	shl    $0x8,%ecx
53fcc9:	0f b6 c4             	movzbl %ah,%eax
53fccc:	0b c8                	or     %eax,%ecx
53fcce:	0f b6 c3             	movzbl %bl,%eax
53fcd1:	c1 e1 08             	shl    $0x8,%ecx
53fcd4:	0b c8                	or     %eax,%ecx
53fcd6:	0f b6 df             	movzbl %bh,%ebx
53fcd9:	0f b6 c2             	movzbl %dl,%eax
53fcdc:	c1 e1 08             	shl    $0x8,%ecx
53fcdf:	0b c8                	or     %eax,%ecx
53fce1:	c1 e3 08             	shl    $0x8,%ebx
53fce4:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
53fce9:	0b d8                	or     %eax,%ebx
53fceb:	0f b6 44 24 12       	movzbl 0x12(%esp),%eax
53fcf0:	c1 e3 08             	shl    $0x8,%ebx
53fcf3:	0b d8                	or     %eax,%ebx
53fcf5:	0f b6 c6             	movzbl %dh,%eax
53fcf8:	8b 54 24 3c          	mov    0x3c(%esp),%edx
53fcfc:	c1 e3 08             	shl    $0x8,%ebx
53fcff:	0b d8                	or     %eax,%ebx
53fd01:	8b 44 24 1c          	mov    0x1c(%esp),%eax
53fd05:	33 44 24 2c          	xor    0x2c(%esp),%eax
53fd09:	03 f7                	add    %edi,%esi
53fd0b:	33 54 24 28          	xor    0x28(%esp),%edx
53fd0f:	89 4c 24 18          	mov    %ecx,0x18(%esp)
53fd13:	8d 4f ff             	lea    -0x1(%edi),%ecx
53fd16:	89 44 24 1c          	mov    %eax,0x1c(%esp)
53fd1a:	83 f9 07             	cmp    $0x7,%ecx
53fd1d:	77 46                	ja     0x53fd65
53fd1f:	8d 4f ff             	lea    -0x1(%edi),%ecx
53fd22:	ff 24 8d 24 fe 53 00 	jmp    *0x53fe24(,%ecx,4)
53fd29:	4e                   	dec    %esi
53fd2a:	c1 e8 18             	shr    $0x18,%eax