403bec:	8d 4e 02             	lea    0x2(%esi),%ecx
403bef:	66 8b 06             	mov    (%esi),%ax
403bf2:	83 c6 02             	add    $0x2,%esi
403bf5:	66 3b c7             	cmp    %di,%ax
403bf8:	75 f5                	jne    0x403bef
403bfa:	2b f1                	sub    %ecx,%esi
403bfc:	d1 fe                	sar    $1,%esi
403bfe:	8b ce                	mov    %esi,%ecx
403c00:	d1 e9                	shr    $1,%ecx
403c02:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
403c05:	3b c6                	cmp    %esi,%eax
403c07:	75 57                	jne    0x403c60
403c09:	51                   	push   %ecx
403c0a:	89 0a                	mov    %ecx,(%edx)
403c0c:	ff 15 a4 f0 40 00    	call   *0x40f0a4
403c12:	8b d8                	mov    %eax,%ebx
403c14:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
403c17:	85 db                	test   %ebx,%ebx
403c19:	74 41                	je     0x403c5c
403c1b:	85 f6                	test   %esi,%esi
403c1d:	74 36                	je     0x403c55
403c1f:	33 c0                	xor    %eax,%eax
403c21:	89 5d ec             	mov    %ebx,-0x14(%ebp)
403c24:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
403c28:	8b f8                	mov    %eax,%edi
403c2a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
403c2d:	66 8b 04 79          	mov    (%ecx,%edi,2),%ax
403c31:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
403c35:	66 8b 44 79 02       	mov    0x2(%ecx,%edi,2),%ax
403c3a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
403c3d:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
403c41:	e8 0b ff ff ff       	call   0x403b51
403c46:	83 c7 02             	add    $0x2,%edi
403c49:	88 03                	mov    %al,(%ebx)
403c4b:	43                   	inc    %ebx
403c4c:	3b fe                	cmp    %esi,%edi
403c4e:	72 da                	jb     0x403c2a
403c50:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
403c53:	33 ff                	xor    %edi,%edi
403c55:	8b 45 e0             	mov    -0x20(%ebp),%eax
403c58:	89 18                	mov    %ebx,(%eax)
403c5a:	eb 07                	jmp    0x403c63
403c5c:	6a 08                	push   $0x8
403c5e:	eb 02                	jmp    0x403c62
403c60:	6a 57                	push   $0x57
403c62:	5f                   	pop    %edi
403c63:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403c66:	8b c7                	mov    %edi,%eax
403c68:	5f                   	pop    %edi
403c69:	5e                   	pop    %esi
403c6a:	33 cd                	xor    %ebp,%ecx
403c6c:	5b                   	pop    %ebx
403c6d:	e8 5e 4e 00 00       	call   0x408ad0
403c72:	c9                   	leave
403c73:	c2 04 00             	ret    $0x4
403c76:	8b d1                	mov    %ecx,%edx
403c78:	56                   	push   %esi
403c79:	8d 72 02             	lea    0x2(%edx),%esi
403c7c:	66 8b 02             	mov    (%edx),%ax
403c7f:	83 c2 02             	add    $0x2,%edx
403c82:	66 85 c0             	test   %ax,%ax
403c85:	75 f5                	jne    0x403c7c
403c87:	2b d6                	sub    %esi,%edx
403c89:	d1 fa                	sar    $1,%edx
403c8b:	5e                   	pop    %esi
403c8c:	83 fa 02             	cmp    $0x2,%edx
403c8f:	76 1c                	jbe    0x403cad
403c91:	66 83 39 30          	cmpw   $0x30,(%ecx)
403c95:	75 16                	jne    0x403cad
403c97:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
403c9b:	83 f8 78             	cmp    $0x78,%eax
403c9e:	74 05                	je     0x403ca5
403ca0:	83 f8 58             	cmp    $0x58,%eax
403ca3:	75 08                	jne    0x403cad
403ca5:	83 c1 04             	add    $0x4,%ecx
403ca8:	e9 a4 fe ff ff       	jmp    0x403b51
403cad:	51                   	push   %ecx
403cae:	ff 15 dc f1 40 00    	call   *0x40f1dc
403cb4:	59                   	pop    %ecx
403cb5:	c3                   	ret
403cb6:	8b d1                	mov    %ecx,%edx
403cb8:	56                   	push   %esi
403cb9:	57                   	push   %edi
403cba:	33 ff                	xor    %edi,%edi
403cbc:	8d 72 02             	lea    0x2(%edx),%esi
403cbf:	66 8b 02             	mov    (%edx),%ax
403cc2:	83 c2 02             	add    $0x2,%edx
403cc5:	66 3b c7             	cmp    %di,%ax
403cc8:	75 f5                	jne    0x403cbf
403cca:	2b d6                	sub    %esi,%edx
403ccc:	d1 fa                	sar    $1,%edx
403cce:	83 fa 02             	cmp    $0x2,%edx
403cd1:	76 1b                	jbe    0x403cee
403cd3:	66 83 39 30          	cmpw   $0x30,(%ecx)
403cd7:	75 15                	jne    0x403cee
403cd9:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
403cdd:	83 f8 78             	cmp    $0x78,%eax
403ce0:	74 05                	je     0x403ce7
403ce2:	83 f8 58             	cmp    $0x58,%eax
403ce5:	75 07                	jne    0x403cee
403ce7:	6a 10                	push   $0x10
403ce9:	83 c1 04             	add    $0x4,%ecx
403cec:	eb 02                	jmp    0x403cf0
403cee:	6a 0a                	push   $0xa
403cf0:	58                   	pop    %eax
403cf1:	50                   	push   %eax
403cf2:	57                   	push   %edi
403cf3:	51                   	push   %ecx
403cf4:	ff 15 9c f1 40 00    	call   *0x40f19c
403cfa:	83 c4 0c             	add    $0xc,%esp
403cfd:	5f                   	pop    %edi
403cfe:	5e                   	pop    %esi
403cff:	c3                   	ret
403d00:	8b ff                	mov    %edi,%edi
403d02:	56                   	push   %esi
403d03:	8b f1                	mov    %ecx,%esi
403d05:	57                   	push   %edi
403d06:	8b fa                	mov    %edx,%edi
403d08:	8d 56 02             	lea    0x2(%esi),%edx
403d0b:	66 8b 06             	mov    (%esi),%ax
403d0e:	83 c6 02             	add    $0x2,%esi
403d11:	66 85 c0             	test   %ax,%ax
403d14:	75 f5                	jne    0x403d0b
403d16:	2b f2                	sub    %edx,%esi
403d18:	d1 fe                	sar    $1,%esi
403d1a:	83 fe 12             	cmp    $0x12,%esi
403d1d:	75 22                	jne    0x403d41
403d1f:	66 83 39 30          	cmpw   $0x30,(%ecx)
403d23:	75 1c                	jne    0x403d41
403d25:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
403d29:	83 f8 78             	cmp    $0x78,%eax
403d2c:	74 05                	je     0x403d33
403d2e:	83 f8 58             	cmp    $0x58,%eax
403d31:	74 0e                	je     0x403d41
403d33:	e8 7e ff ff ff       	call   0x403cb6
403d38:	89 07                	mov    %eax,(%edi)
403d3a:	b0 01                	mov    $0x1,%al
403d3c:	89 57 04             	mov    %edx,0x4(%edi)
403d3f:	eb 02                	jmp    0x403d43
403d41:	32 c0                	xor    %al,%al
403d43:	5f                   	pop    %edi
403d44:	5e                   	pop    %esi
403d45:	c3                   	ret
403d46:	8b ff                	mov    %edi,%edi
403d48:	55                   	push   %ebp
403d49:	8b ec                	mov    %esp,%ebp
403d4b:	51                   	push   %ecx
403d4c:	51                   	push   %ecx
403d4d:	53                   	push   %ebx
403d4e:	56                   	push   %esi
403d4f:	57                   	push   %edi
403d50:	6a 34                	push   $0x34
403d52:	8b d9                	mov    %ecx,%ebx
403d54:	8b f2                	mov    %edx,%esi
403d56:	6a 00                	push   $0x0
403d58:	53                   	push   %ebx
403d59:	89 75 f8             	mov    %esi,-0x8(%ebp)
403d5c:	e8 83 53 00 00       	call   0x4090e4
403d61:	8b 7d 0c             	mov    0xc(%ebp),%edi
403d64:	83 c4 0c             	add    $0xc,%esp
403d67:	8b 0c be             	mov    (%esi,%edi,4),%ecx
403d6a:	6a 2a                	push   $0x2a
403d6c:	58                   	pop    %eax
403d6d:	66 39 01             	cmp    %ax,(%ecx)
403d70:	74 08                	je     0x403d7a
403d72:	e8 ff fe ff ff       	call   0x403c76
403d77:	89 43 08             	mov    %eax,0x8(%ebx)
403d7a:	8b 44 be 04          	mov    0x4(%esi,%edi,4),%eax
403d7e:	6a 2a                	push   $0x2a
403d80:	5a                   	pop    %edx
403d81:	66 39 10             	cmp    %dx,(%eax)
403d84:	74 13                	je     0x403d99
403d86:	83 4b 04 01          	orl    $0x1,0x4(%ebx)
403d8a:	8b 4c be 04          	mov    0x4(%esi,%edi,4),%ecx
403d8e:	e8 e3 fe ff ff       	call   0x403c76
403d93:	6a 2a                	push   $0x2a
403d95:	89 43 10             	mov    %eax,0x10(%ebx)
403d98:	5a                   	pop    %edx
403d99:	8b 44 be 08          	mov    0x8(%esi,%edi,4),%eax
403d9d:	66 39 10             	cmp    %dx,(%eax)
403da0:	74 13                	je     0x403db5
403da2:	83 4b 04 02          	orl    $0x2,0x4(%ebx)
403da6:	8b 4c be 08          	mov    0x8(%esi,%edi,4),%ecx
403daa:	e8 c7 fe ff ff       	call   0x403c76
403daf:	6a 2a                	push   $0x2a
403db1:	89 43 14             	mov    %eax,0x14(%ebx)
403db4:	5a                   	pop    %edx
403db5:	8b 44 be 0c          	mov    0xc(%esi,%edi,4),%eax
403db9:	66 39 10             	cmp    %dx,(%eax)
403dbc:	74 13                	je     0x403dd1
403dbe:	83 4b 04 04          	orl    $0x4,0x4(%ebx)
403dc2:	8b 4c be 0c          	mov    0xc(%esi,%edi,4),%ecx
403dc6:	e8 ab fe ff ff       	call   0x403c76
403dcb:	6a 2a                	push   $0x2a
403dcd:	89 43 18             	mov    %eax,0x18(%ebx)
403dd0:	5a                   	pop    %edx
403dd1:	8b 44 be 10          	mov    0x10(%esi,%edi,4),%eax
403dd5:	66 39 10             	cmp    %dx,(%eax)
403dd8:	74 13                	je     0x403ded
403dda:	83 4b 04 08          	orl    $0x8,0x4(%ebx)
403dde:	8b 4c be 10          	mov    0x10(%esi,%edi,4),%ecx
403de2:	e8 8f fe ff ff       	call   0x403c76
403de7:	6a 2a                	push   $0x2a
403de9:	89 43 1c             	mov    %eax,0x1c(%ebx)
403dec:	5a                   	pop    %edx
403ded:	8b 44 be 14          	mov    0x14(%esi,%edi,4),%eax
403df1:	66 39 10             	cmp    %dx,(%eax)
403df4:	74 13                	je     0x403e09
403df6:	83 4b 04 10          	orl    $0x10,0x4(%ebx)
403dfa:	8b 4c be 14          	mov    0x14(%esi,%edi,4),%ecx
403dfe:	e8 73 fe ff ff       	call   0x403c76
403e03:	6a 2a                	push   $0x2a
403e05:	89 43 20             	mov    %eax,0x20(%ebx)
403e08:	5a                   	pop    %edx
403e09:	8b 44 be 18          	mov    0x18(%esi,%edi,4),%eax
403e0d:	c7 45 fc 2d 00 00 00 	movl   $0x2d,-0x4(%ebp)
403e14:	66 39 10             	cmp    %dx,(%eax)
403e17:	74 3e                	je     0x403e57
403e19:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
403e1d:	8d 4b 2c             	lea    0x2c(%ebx),%ecx
403e20:	8b 44 be 18          	mov    0x18(%esi,%edi,4),%eax
403e24:	0f b7 00             	movzwl (%eax),%eax
403e27:	83 21 00             	andl   $0x0,(%ecx)
403e2a:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
403e2e:	75 06                	jne    0x403e36
403e30:	83 63 24 00          	andl   $0x0,0x24(%ebx)
403e34:	eb 21                	jmp    0x403e57
403e36:	51                   	push   %ecx
403e37:	8b d1                	mov    %ecx,%edx
403e39:	8b 4c be 18          	mov    0x18(%esi,%edi,4),%ecx
403e3d:	e8 90 f1 ff ff       	call   0x402fd2
403e42:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
403e45:	8d 51 01             	lea    0x1(%ecx),%edx
403e48:	8a 01                	mov    (%ecx),%al
403e4a:	41                   	inc    %ecx
403e4b:	84 c0                	test   %al,%al
403e4d:	75 f9                	jne    0x403e48
403e4f:	2b ca                	sub    %edx,%ecx
403e51:	6a 2a                	push   $0x2a
403e53:	89 4b 24             	mov    %ecx,0x24(%ebx)
403e56:	5a                   	pop    %edx
403e57:	8b 44 be 1c          	mov    0x1c(%esi,%edi,4),%eax
403e5b:	66 39 10             	cmp    %dx,(%eax)
403e5e:	74 6b                	je     0x403ecb
403e60:	83 4b 04 40          	orl    $0x40,0x4(%ebx)
403e64:	8b 4c be 1c          	mov    0x1c(%esi,%edi,4),%ecx
403e68:	0f b7 01             	movzwl (%ecx),%eax
403e6b:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
403e6f:	75 0a                	jne    0x403e7b
403e71:	83 63 30 00          	andl   $0x0,0x30(%ebx)
403e75:	83 63 28 00          	andl   $0x0,0x28(%ebx)
403e79:	eb 50                	jmp    0x403ecb
403e7b:	83 f8 30             	cmp    $0x30,%eax
403e7e:	75 1f                	jne    0x403e9f
403e80:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
403e84:	83 f8 58             	cmp    $0x58,%eax
403e87:	74 05                	je     0x403e8e
403e89:	83 f8 78             	cmp    $0x78,%eax
403e8c:	75 11                	jne    0x403e9f
403e8e:	8d 43 28             	lea    0x28(%ebx),%eax
403e91:	83 c1 04             	add    $0x4,%ecx
403e94:	50                   	push   %eax
403e95:	8d 53 30             	lea    0x30(%ebx),%edx
403e98:	e8 2b fd ff ff       	call   0x403bc8
403e9d:	eb 29                	jmp    0x403ec8
403e9f:	51                   	push   %ecx
403ea0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
403ea3:	8d 73 30             	lea    0x30(%ebx),%esi
403ea6:	83 26 00             	andl   $0x0,(%esi)
403ea9:	8b d6                	mov    %esi,%edx
403eab:	8b 4c b9 1c          	mov    0x1c(%ecx,%edi,4),%ecx
403eaf:	e8 1e f1 ff ff       	call   0x402fd2
403eb4:	8b 0e                	mov    (%esi),%ecx
403eb6:	8d 51 01             	lea    0x1(%ecx),%edx
403eb9:	8a 01                	mov    (%ecx),%al
403ebb:	41                   	inc    %ecx
403ebc:	84 c0                	test   %al,%al
403ebe:	75 f9                	jne    0x403eb9
403ec0:	8b 75 f8             	mov    -0x8(%ebp),%esi
403ec3:	2b ca                	sub    %edx,%ecx
403ec5:	89 4b 28             	mov    %ecx,0x28(%ebx)
403ec8:	6a 2a                	push   $0x2a
403eca:	5a                   	pop    %edx
403ecb:	8b 44 be 20          	mov    0x20(%esi,%edi,4),%eax
403ecf:	66 39 10             	cmp    %dx,(%eax)
403ed2:	74 13                	je     0x403ee7
403ed4:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
403edb:	8b 4c be 20          	mov    0x20(%esi,%edi,4),%ecx
403edf:	e8 92 fd ff ff       	call   0x403c76
403ee4:	89 43 0c             	mov    %eax,0xc(%ebx)
403ee7:	5f                   	pop    %edi
403ee8:	5e                   	pop    %esi
403ee9:	5b                   	pop    %ebx
403eea:	c9                   	leave
403eeb:	c2 08 00             	ret    $0x8
403eee:	8b ff                	mov    %edi,%edi
403ef0:	55                   	push   %ebp
403ef1:	8b ec                	mov    %esp,%ebp
403ef3:	51                   	push   %ecx
403ef4:	56                   	push   %esi
403ef5:	8b f2                	mov    %edx,%esi
403ef7:	83 f9 07             	cmp    $0x7,%ecx
403efa:	74 0c                	je     0x403f08
403efc:	6a 1c                	push   $0x1c
403efe:	59                   	pop    %ecx
403eff:	e8 5b eb ff ff       	call   0x402a5f
403f04:	33 c0                	xor    %eax,%eax
403f06:	eb 69                	jmp    0x403f71
403f08:	53                   	push   %ebx
403f09:	57                   	push   %edi
403f0a:	8b 7e 08             	mov    0x8(%esi),%edi
403f0d:	6a 2a                	push   $0x2a
403f0f:	58                   	pop    %eax
403f10:	66 39 07             	cmp    %ax,(%edi)
403f13:	75 02                	jne    0x403f17
403f15:	33 ff                	xor    %edi,%edi
403f17:	8b 4e 0c             	mov    0xc(%esi),%ecx
403f1a:	66 39 01             	cmp    %ax,(%ecx)
403f1d:	75 05                	jne    0x403f24
403f1f:	83 cb ff             	or     $0xffffffff,%ebx
403f22:	eb 0a                	jmp    0x403f2e
403f24:	e8 4d fd ff ff       	call   0x403c76
403f29:	6a 2a                	push   $0x2a
403f2b:	8b d8                	mov    %eax,%ebx
403f2d:	58                   	pop    %eax
403f2e:	8b 4e 10             	mov    0x10(%esi),%ecx
403f31:	66 39 01             	cmp    %ax,(%ecx)
403f34:	75 02                	jne    0x403f38
403f36:	33 c9                	xor    %ecx,%ecx
403f38:	8b 56 14             	mov    0x14(%esi),%edx
403f3b:	66 39 02             	cmp    %ax,(%edx)
403f3e:	75 02                	jne    0x403f42
403f40:	33 d2                	xor    %edx,%edx
403f42:	8b 46 18             	mov    0x18(%esi),%eax
403f45:	6a 2a                	push   $0x2a
403f47:	5e                   	pop    %esi
403f48:	0f b7 00             	movzwl (%eax),%eax
403f4b:	66 3b c6             	cmp    %si,%ax
403f4e:	74 0e                	je     0x403f5e
403f50:	83 f8 74             	cmp    $0x74,%eax
403f53:	74 09                	je     0x403f5e
403f55:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403f59:	83 f8 54             	cmp    $0x54,%eax
403f5c:	75 04                	jne    0x403f62
403f5e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
403f62:	ff 75 fc             	push   -0x4(%ebp)
403f65:	52                   	push   %edx
403f66:	51                   	push   %ecx
403f67:	53                   	push   %ebx
403f68:	57                   	push   %edi