412d93:	75 1c                	jne    0x412db1
412d95:	83 0e 10             	orl    $0x10,(%esi)
412d98:	eb 2f                	jmp    0x412dc9
412d9a:	81 0e 80 00 00 00    	orl    $0x80,(%esi)
412da0:	b1 01                	mov    $0x1,%cl
412da2:	e9 83 00 00 00       	jmp    0x412e2a
412da7:	56                   	push   %esi
412da8:	e8 e2 01 00 00       	call   0x412f8f
412dad:	eb 78                	jmp    0x412e27
412daf:	b7 01                	mov    $0x1,%bh
412db1:	32 c9                	xor    %cl,%cl
412db3:	eb 75                	jmp    0x412e2a
412db5:	8d 45 fe             	lea    -0x2(%ebp),%eax
412db8:	50                   	push   %eax
412db9:	56                   	push   %esi
412dba:	e8 6e 02 00 00       	call   0x41302d
412dbf:	59                   	pop    %ecx
412dc0:	eb 65                	jmp    0x412e27
412dc2:	84 db                	test   %bl,%bl
412dc4:	75 eb                	jne    0x412db1
412dc6:	83 0e 20             	orl    $0x20,(%esi)
412dc9:	b3 01                	mov    $0x1,%bl
412dcb:	8a cb                	mov    %bl,%cl
412dcd:	eb 5b                	jmp    0x412e2a
412dcf:	83 e8 54             	sub    $0x54,%eax
412dd2:	74 4d                	je     0x412e21
412dd4:	83 e8 0e             	sub    $0xe,%eax
412dd7:	74 40                	je     0x412e19
412dd9:	83 e8 01             	sub    $0x1,%eax
412ddc:	74 2f                	je     0x412e0d
412dde:	83 e8 0b             	sub    $0xb,%eax
412de1:	74 1e                	je     0x412e01
412de3:	83 e8 06             	sub    $0x6,%eax
412de6:	74 11                	je     0x412df9
412de8:	83 e8 04             	sub    $0x4,%eax
412deb:	0f 85 04 01 00 00    	jne    0x412ef5
412df1:	56                   	push   %esi
412df2:	e8 8c 02 00 00       	call   0x413083
412df7:	eb 2e                	jmp    0x412e27
412df9:	56                   	push   %esi
412dfa:	e8 64 02 00 00       	call   0x413063
412dff:	eb 26                	jmp    0x412e27
412e01:	8d 45 ff             	lea    -0x1(%ebp),%eax
412e04:	50                   	push   %eax
412e05:	56                   	push   %esi
412e06:	e8 00 02 00 00       	call   0x41300b
412e0b:	eb b2                	jmp    0x412dbf
412e0d:	8d 45 ff             	lea    -0x1(%ebp),%eax
412e10:	50                   	push   %eax
412e11:	56                   	push   %esi
412e12:	e8 d2 01 00 00       	call   0x412fe9
412e17:	eb a6                	jmp    0x412dbf
412e19:	56                   	push   %esi
412e1a:	e8 aa 01 00 00       	call   0x412fc9
412e1f:	eb 06                	jmp    0x412e27
412e21:	56                   	push   %esi
412e22:	e8 83 01 00 00       	call   0x412faa
412e27:	59                   	pop    %ecx
412e28:	8a c8                	mov    %al,%cl
412e2a:	33 c0                	xor    %eax,%eax
412e2c:	84 c9                	test   %cl,%cl
412e2e:	0f 95 c0             	setne  %al
412e31:	03 f8                	add    %eax,%edi
412e33:	84 c9                	test   %cl,%cl
412e35:	0f 85 1c ff ff ff    	jne    0x412d57
412e3b:	84 ff                	test   %bh,%bh
412e3d:	74 01                	je     0x412e40
412e3f:	47                   	inc    %edi
412e40:	80 3f 20             	cmpb   $0x20,(%edi)
412e43:	74 fa                	je     0x412e3f
412e45:	84 ff                	test   %bh,%bh
412e47:	75 11                	jne    0x412e5a
412e49:	38 3f                	cmp    %bh,(%edi)
412e4b:	0f 85 a4 00 00 00    	jne    0x412ef5
412e51:	c6 46 08 01          	movb   $0x1,0x8(%esi)
412e55:	e9 ab 00 00 00       	jmp    0x412f05
412e5a:	6a 03                	push   $0x3
412e5c:	68 e8 76 42 00       	push   $0x4276e8
412e61:	57                   	push   %edi
412e62:	e8 c9 fd ff ff       	call   0x412c30
412e67:	83 c4 0c             	add    $0xc,%esp
412e6a:	85 c0                	test   %eax,%eax
412e6c:	0f 85 83 00 00 00    	jne    0x412ef5
412e72:	6a 20                	push   $0x20
412e74:	83 c7 03             	add    $0x3,%edi
412e77:	59                   	pop    %ecx
412e78:	eb 01                	jmp    0x412e7b
412e7a:	47                   	inc    %edi
412e7b:	8a 07                	mov    (%edi),%al
412e7d:	3a c1                	cmp    %cl,%al
412e7f:	74 f9                	je     0x412e7a
412e81:	3c 3d                	cmp    $0x3d,%al
412e83:	75 70                	jne    0x412ef5
412e85:	47                   	inc    %edi
412e86:	38 0f                	cmp    %cl,(%edi)
412e88:	74 fb                	je     0x412e85
412e8a:	6a 05                	push   $0x5
412e8c:	5b                   	pop    %ebx
412e8d:	53                   	push   %ebx
412e8e:	68 ec 76 42 00       	push   $0x4276ec
412e93:	57                   	push   %edi
412e94:	e8 e5 b2 00 00       	call   0x41e17e
412e99:	83 c4 0c             	add    $0xc,%esp
412e9c:	85 c0                	test   %eax,%eax
412e9e:	75 08                	jne    0x412ea8
412ea0:	81 0e 00 00 04 00    	orl    $0x40000,(%esi)
412ea6:	eb 3a                	jmp    0x412ee2
412ea8:	6a 08                	push   $0x8
412eaa:	5b                   	pop    %ebx
412eab:	53                   	push   %ebx
412eac:	68 f4 76 42 00       	push   $0x4276f4
412eb1:	57                   	push   %edi
412eb2:	e8 c7 b2 00 00       	call   0x41e17e
412eb7:	83 c4 0c             	add    $0xc,%esp
412eba:	85 c0                	test   %eax,%eax
412ebc:	75 08                	jne    0x412ec6
412ebe:	81 0e 00 00 02 00    	orl    $0x20000,(%esi)
412ec4:	eb 1c                	jmp    0x412ee2
412ec6:	6a 07                	push   $0x7
412ec8:	5b                   	pop    %ebx
412ec9:	53                   	push   %ebx
412eca:	68 fc 76 42 00       	push   $0x4276fc
412ecf:	57                   	push   %edi
412ed0:	e8 a9 b2 00 00       	call   0x41e17e
412ed5:	83 c4 0c             	add    $0xc,%esp
412ed8:	85 c0                	test   %eax,%eax
412eda:	75 19                	jne    0x412ef5
412edc:	81 0e 00 00 01 00    	orl    $0x10000,(%esi)
412ee2:	8d 0c 1f             	lea    (%edi,%ebx,1),%ecx
412ee5:	eb 01                	jmp    0x412ee8
412ee7:	41                   	inc    %ecx
412ee8:	8a 01                	mov    (%ecx),%al
412eea:	3c 20                	cmp    $0x20,%al
412eec:	74 f9                	je     0x412ee7
412eee:	84 c0                	test   %al,%al
412ef0:	e9 56 ff ff ff       	jmp    0x412e4b
412ef5:	e8 01 bf ff ff       	call   0x40edfb
412efa:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
412f00:	e8 7c a1 ff ff       	call   0x40d081
412f05:	5b                   	pop    %ebx
412f06:	5f                   	pop    %edi
412f07:	8b c6                	mov    %esi,%eax
412f09:	5e                   	pop    %esi
412f0a:	c9                   	leave
412f0b:	c3                   	ret
412f0c:	8b ff                	mov    %edi,%edi
412f0e:	55                   	push   %ebp
412f0f:	8b ec                	mov    %esp,%ebp
412f11:	83 ec 1c             	sub    $0x1c,%esp
412f14:	56                   	push   %esi
412f15:	57                   	push   %edi
412f16:	ff 75 0c             	push   0xc(%ebp)
412f19:	8d 45 e4             	lea    -0x1c(%ebp),%eax
412f1c:	50                   	push   %eax
412f1d:	e8 c0 fd ff ff       	call   0x412ce2
412f22:	8b f0                	mov    %eax,%esi
412f24:	8d 7d f0             	lea    -0x10(%ebp),%edi
412f27:	59                   	pop    %ecx
412f28:	59                   	pop    %ecx
412f29:	a5                   	movsl  %ds:(%esi),%es:(%edi)
412f2a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
412f2b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
412f2c:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
412f30:	5f                   	pop    %edi
412f31:	5e                   	pop    %esi
412f32:	74 57                	je     0x412f8b
412f34:	68 80 01 00 00       	push   $0x180
412f39:	ff 75 10             	push   0x10(%ebp)
412f3c:	8d 45 fc             	lea    -0x4(%ebp),%eax
412f3f:	ff 75 f0             	push   -0x10(%ebp)
412f42:	ff 75 08             	push   0x8(%ebp)
412f45:	50                   	push   %eax
412f46:	e8 a4 b9 00 00       	call   0x41e8ef
412f4b:	83 c4 14             	add    $0x14,%esp
412f4e:	85 c0                	test   %eax,%eax
412f50:	75 39                	jne    0x412f8b
412f52:	8b 45 14             	mov    0x14(%ebp),%eax
412f55:	ff 05 1c 46 43 00    	incl   0x43461c
412f5b:	83 c0 0c             	add    $0xc,%eax
412f5e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
412f61:	f0 09 08             	lock or %ecx,(%eax)
412f64:	8b 45 14             	mov    0x14(%ebp),%eax
412f67:	33 c9                	xor    %ecx,%ecx
412f69:	89 48 08             	mov    %ecx,0x8(%eax)
412f6c:	8b 45 14             	mov    0x14(%ebp),%eax
412f6f:	89 48 1c             	mov    %ecx,0x1c(%eax)
412f72:	8b 45 14             	mov    0x14(%ebp),%eax
412f75:	89 48 04             	mov    %ecx,0x4(%eax)
412f78:	8b 45 14             	mov    0x14(%ebp),%eax
412f7b:	89 08                	mov    %ecx,(%eax)
412f7d:	8b 4d 14             	mov    0x14(%ebp),%ecx
412f80:	8b 45 fc             	mov    -0x4(%ebp),%eax
412f83:	89 41 10             	mov    %eax,0x10(%ecx)
412f86:	8b 45 14             	mov    0x14(%ebp),%eax
412f89:	c9                   	leave
412f8a:	c3                   	ret
412f8b:	33 c0                	xor    %eax,%eax
412f8d:	c9                   	leave
412f8e:	c3                   	ret
412f8f:	8b ff                	mov    %edi,%edi
412f91:	55                   	push   %ebp
412f92:	8b ec                	mov    %esp,%ebp
412f94:	8b 4d 08             	mov    0x8(%ebp),%ecx
412f97:	8b 01                	mov    (%ecx),%eax
412f99:	a8 40                	test   $0x40,%al
412f9b:	74 04                	je     0x412fa1
412f9d:	32 c0                	xor    %al,%al
412f9f:	5d                   	pop    %ebp
412fa0:	c3                   	ret
412fa1:	83 c8 40             	or     $0x40,%eax
412fa4:	89 01                	mov    %eax,(%ecx)
412fa6:	b0 01                	mov    $0x1,%al
412fa8:	5d                   	pop    %ebp
412fa9:	c3                   	ret
412faa:	8b ff                	mov    %edi,%edi
412fac:	55                   	push   %ebp
412fad:	8b ec                	mov    %esp,%ebp
412faf:	8b 4d 08             	mov    0x8(%ebp),%ecx
412fb2:	ba 00 10 00 00       	mov    $0x1000,%edx
412fb7:	8b 01                	mov    (%ecx),%eax
412fb9:	85 c2                	test   %eax,%edx
412fbb:	74 04                	je     0x412fc1
412fbd:	32 c0                	xor    %al,%al
412fbf:	5d                   	pop    %ebp
412fc0:	c3                   	ret
412fc1:	0b c2                	or     %edx,%eax
412fc3:	89 01                	mov    %eax,(%ecx)
412fc5:	b0 01                	mov    $0x1,%al
412fc7:	5d                   	pop    %ebp
412fc8:	c3                   	ret
412fc9:	8b ff                	mov    %edi,%edi
412fcb:	55                   	push   %ebp
412fcc:	8b ec                	mov    %esp,%ebp
412fce:	8b 4d 08             	mov    0x8(%ebp),%ecx
412fd1:	8b 01                	mov    (%ecx),%eax
412fd3:	a9 00 c0 00 00       	test   $0xc000,%eax
412fd8:	74 04                	je     0x412fde
412fda:	32 c0                	xor    %al,%al
412fdc:	5d                   	pop    %ebp
412fdd:	c3                   	ret
412fde:	0d 00 80 00 00       	or     $0x8000,%eax
412fe3:	89 01                	mov    %eax,(%ecx)
412fe5:	b0 01                	mov    $0x1,%al
412fe7:	5d                   	pop    %ebp
412fe8:	c3                   	ret
412fe9:	8b ff                	mov    %edi,%edi
412feb:	55                   	push   %ebp
412fec:	8b ec                	mov    %esp,%ebp
412fee:	8b 45 0c             	mov    0xc(%ebp),%eax
412ff1:	80 38 00             	cmpb   $0x0,(%eax)
412ff4:	74 04                	je     0x412ffa
412ff6:	32 c0                	xor    %al,%al
412ff8:	5d                   	pop    %ebp
412ff9:	c3                   	ret
412ffa:	8b 4d 08             	mov    0x8(%ebp),%ecx
412ffd:	c6 00 01             	movb   $0x1,(%eax)
413000:	b0 01                	mov    $0x1,%al
413002:	81 49 04 00 08 00 00 	orl    $0x800,0x4(%ecx)
413009:	5d                   	pop    %ebp
41300a:	c3                   	ret
41300b:	8b ff                	mov    %edi,%edi
41300d:	55                   	push   %ebp
41300e:	8b ec                	mov    %esp,%ebp
413010:	8b 45 0c             	mov    0xc(%ebp),%eax
413013:	80 38 00             	cmpb   $0x0,(%eax)
413016:	74 04                	je     0x41301c
413018:	32 c0                	xor    %al,%al
41301a:	5d                   	pop    %ebp
41301b:	c3                   	ret
41301c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41301f:	c6 00 01             	movb   $0x1,(%eax)
413022:	b0 01                	mov    $0x1,%al
413024:	81 61 04 ff f7 ff ff 	andl   $0xfffff7ff,0x4(%ecx)
41302b:	5d                   	pop    %ebp
41302c:	c3                   	ret
41302d:	8b ff                	mov    %edi,%edi
41302f:	55                   	push   %ebp
413030:	8b ec                	mov    %esp,%ebp
413032:	8b 45 0c             	mov    0xc(%ebp),%eax
413035:	80 38 00             	cmpb   $0x0,(%eax)
413038:	75 25                	jne    0x41305f
41303a:	8b 55 08             	mov    0x8(%ebp),%edx
41303d:	c6 00 01             	movb   $0x1,(%eax)
413040:	8b 0a                	mov    (%edx),%ecx
413042:	f6 c1 02             	test   $0x2,%cl
413045:	75 18                	jne    0x41305f
413047:	83 e1 fe             	and    $0xfffffffe,%ecx
41304a:	b0 01                	mov    $0x1,%al
41304c:	83 c9 02             	or     $0x2,%ecx
41304f:	89 0a                	mov    %ecx,(%edx)
413051:	8b 4a 04             	mov    0x4(%edx),%ecx
413054:	83 e1 fc             	and    $0xfffffffc,%ecx
413057:	83 c9 04             	or     $0x4,%ecx
41305a:	89 4a 04             	mov    %ecx,0x4(%edx)
41305d:	5d                   	pop    %ebp
41305e:	c3                   	ret
41305f:	32 c0                	xor    %al,%al
413061:	5d                   	pop    %ebp
413062:	c3                   	ret
413063:	8b ff                	mov    %edi,%edi
413065:	55                   	push   %ebp
413066:	8b ec                	mov    %esp,%ebp
413068:	8b 4d 08             	mov    0x8(%ebp),%ecx
41306b:	8b 01                	mov    (%ecx),%eax
41306d:	a9 00 c0 00 00       	test   $0xc000,%eax
413072:	74 04                	je     0x413078
413074:	32 c0                	xor    %al,%al
413076:	5d                   	pop    %ebp
413077:	c3                   	ret
413078:	0d 00 40 00 00       	or     $0x4000,%eax
41307d:	89 01                	mov    %eax,(%ecx)
41307f:	b0 01                	mov    $0x1,%al
413081:	5d                   	pop    %ebp
413082:	c3                   	ret
413083:	8b ff                	mov    %edi,%edi
413085:	55                   	push   %ebp
413086:	8b ec                	mov    %esp,%ebp
413088:	8b 4d 08             	mov    0x8(%ebp),%ecx
41308b:	8b 01                	mov    (%ecx),%eax
41308d:	a9 00 02 00 00       	test   $0x200,%eax
413092:	75 04                	jne    0x413098
413094:	32 c0                	xor    %al,%al
413096:	5d                   	pop    %ebp
413097:	c3                   	ret
413098:	0d 00 04 00 00       	or     $0x400,%eax
41309d:	89 01                	mov    %eax,(%ecx)
41309f:	b0 01                	mov    $0x1,%al
4130a1:	5d                   	pop    %ebp
4130a2:	c3                   	ret
4130a3:	8b ff                	mov    %edi,%edi
4130a5:	55                   	push   %ebp
4130a6:	8b ec                	mov    %esp,%ebp
4130a8:	5d                   	pop    %ebp
4130a9:	e9 5e fe ff ff       	jmp    0x412f0c
4130ae:	8b ff                	mov    %edi,%edi
4130b0:	55                   	push   %ebp
4130b1:	8b ec                	mov    %esp,%ebp
4130b3:	56                   	push   %esi
4130b4:	8b 75 08             	mov    0x8(%ebp),%esi
4130b7:	85 f6                	test   %esi,%esi
4130b9:	74 0c                	je     0x4130c7
4130bb:	6a e0                	push   $0xffffffe0
4130bd:	33 d2                	xor    %edx,%edx
4130bf:	58                   	pop    %eax
4130c0:	f7 f6                	div    %esi
4130c2:	3b 45 0c             	cmp    0xc(%ebp),%eax
4130c5:	72 34                	jb     0x4130fb
4130c7:	0f af 75 0c          	imul   0xc(%ebp),%esi
4130cb:	85 f6                	test   %esi,%esi
4130cd:	75 17                	jne    0x4130e6