415a47:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415a48:	83 e2 1f             	and    $0x1f,%edx
415a4b:	03 c2                	add    %edx,%eax
415a4d:	c1 f8 05             	sar    $0x5,%eax
415a50:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415a51:	89 45 c4             	mov    %eax,-0x3c(%ebp)
415a54:	8b 45 d0             	mov    -0x30(%ebp),%eax
415a57:	a5                   	movsl  %ds:(%esi),%es:(%edi)
415a58:	25 1f 00 00 80       	and    $0x8000001f,%eax
415a5d:	79 05                	jns    0x415a64
415a5f:	48                   	dec    %eax
415a60:	83 c8 e0             	or     $0xffffffe0,%eax
415a63:	40                   	inc    %eax
415a64:	89 45 d0             	mov    %eax,-0x30(%ebp)
415a67:	83 cf ff             	or     $0xffffffff,%edi
415a6a:	8b c7                	mov    %edi,%eax
415a6c:	8b 7d d0             	mov    -0x30(%ebp),%edi
415a6f:	8b cf                	mov    %edi,%ecx
415a71:	d3 e0                	shl    %cl,%eax
415a73:	6a 20                	push   $0x20
415a75:	89 5d e0             	mov    %ebx,-0x20(%ebp)
415a78:	f7 d0                	not    %eax
415a7a:	89 45 d8             	mov    %eax,-0x28(%ebp)
415a7d:	58                   	pop    %eax
415a7e:	2b c7                	sub    %edi,%eax
415a80:	6a 03                	push   $0x3
415a82:	89 45 c8             	mov    %eax,-0x38(%ebp)
415a85:	5e                   	pop    %esi
415a86:	8b 54 9d f0          	mov    -0x10(%ebp,%ebx,4),%edx
415a8a:	8b c2                	mov    %edx,%eax
415a8c:	23 45 d8             	and    -0x28(%ebp),%eax
415a8f:	8b cf                	mov    %edi,%ecx
415a91:	d3 ea                	shr    %cl,%edx
415a93:	8b 4d c8             	mov    -0x38(%ebp),%ecx
415a96:	d3 e0                	shl    %cl,%eax
415a98:	0b 55 e0             	or     -0x20(%ebp),%edx
415a9b:	43                   	inc    %ebx
415a9c:	89 54 9d ec          	mov    %edx,-0x14(%ebp,%ebx,4)
415aa0:	89 45 e0             	mov    %eax,-0x20(%ebp)
415aa3:	3b de                	cmp    %esi,%ebx
415aa5:	7c df                	jl     0x415a86
415aa7:	8b 45 c4             	mov    -0x3c(%ebp),%eax
415aaa:	c1 e0 02             	shl    $0x2,%eax
415aad:	8d 55 f8             	lea    -0x8(%ebp),%edx
415ab0:	6a 02                	push   $0x2
415ab2:	2b d0                	sub    %eax,%edx
415ab4:	8b 45 c4             	mov    -0x3c(%ebp),%eax
415ab7:	33 db                	xor    %ebx,%ebx
415ab9:	59                   	pop    %ecx
415aba:	83 cf ff             	or     $0xffffffff,%edi
415abd:	3b c8                	cmp    %eax,%ecx
415abf:	7c 0b                	jl     0x415acc
415ac1:	8b 02                	mov    (%edx),%eax
415ac3:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
415ac7:	8b 45 c4             	mov    -0x3c(%ebp),%eax
415aca:	eb 04                	jmp    0x415ad0
415acc:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
415ad0:	83 ea 04             	sub    $0x4,%edx
415ad3:	49                   	dec    %ecx
415ad4:	79 e7                	jns    0x415abd
415ad6:	8b 4d cc             	mov    -0x34(%ebp),%ecx
415ad9:	41                   	inc    %ecx
415ada:	8b c1                	mov    %ecx,%eax
415adc:	99                   	cltd
415add:	83 e2 1f             	and    $0x1f,%edx
415ae0:	03 d0                	add    %eax,%edx
415ae2:	c1 fa 05             	sar    $0x5,%edx
415ae5:	89 55 d4             	mov    %edx,-0x2c(%ebp)
415ae8:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
415aee:	79 05                	jns    0x415af5
415af0:	49                   	dec    %ecx
415af1:	83 c9 e0             	or     $0xffffffe0,%ecx
415af4:	41                   	inc    %ecx
415af5:	6a 1f                	push   $0x1f
415af7:	58                   	pop    %eax
415af8:	2b c1                	sub    %ecx,%eax
415afa:	89 45 d0             	mov    %eax,-0x30(%ebp)
415afd:	8b 4d d0             	mov    -0x30(%ebp),%ecx
415b00:	33 c0                	xor    %eax,%eax
415b02:	40                   	inc    %eax
415b03:	d3 e0                	shl    %cl,%eax
415b05:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
415b09:	0f 84 92 00 00 00    	je     0x415ba1
415b0f:	8b c7                	mov    %edi,%eax
415b11:	d3 e0                	shl    %cl,%eax
415b13:	f7 d0                	not    %eax
415b15:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
415b19:	eb 04                	jmp    0x415b1f
415b1b:	39 5c 95 f0          	cmp    %ebx,-0x10(%ebp,%edx,4)
415b1f:	75 07                	jne    0x415b28
415b21:	42                   	inc    %edx
415b22:	3b d6                	cmp    %esi,%edx
415b24:	7c f5                	jl     0x415b1b
415b26:	eb 76                	jmp    0x415b9e
415b28:	8b 7d cc             	mov    -0x34(%ebp),%edi
415b2b:	8b c7                	mov    %edi,%eax
415b2d:	99                   	cltd
415b2e:	6a 1f                	push   $0x1f
415b30:	59                   	pop    %ecx
415b31:	23 d1                	and    %ecx,%edx
415b33:	03 d0                	add    %eax,%edx
415b35:	c1 fa 05             	sar    $0x5,%edx
415b38:	81 e7 1f 00 00 80    	and    $0x8000001f,%edi
415b3e:	79 05                	jns    0x415b45
415b40:	4f                   	dec    %edi
415b41:	83 cf e0             	or     $0xffffffe0,%edi
415b44:	47                   	inc    %edi
415b45:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
415b49:	2b cf                	sub    %edi,%ecx
415b4b:	33 ff                	xor    %edi,%edi
415b4d:	47                   	inc    %edi
415b4e:	d3 e7                	shl    %cl,%edi
415b50:	6a ff                	push   $0xffffffff
415b52:	8b cb                	mov    %ebx,%ecx
415b54:	89 7d dc             	mov    %edi,-0x24(%ebp)
415b57:	03 f8                	add    %eax,%edi
415b59:	89 7d e0             	mov    %edi,-0x20(%ebp)
415b5c:	3b f8                	cmp    %eax,%edi
415b5e:	8b 45 e0             	mov    -0x20(%ebp),%eax
415b61:	5f                   	pop    %edi
415b62:	72 05                	jb     0x415b69
415b64:	3b 45 dc             	cmp    -0x24(%ebp),%eax
415b67:	73 03                	jae    0x415b6c
415b69:	33 c9                	xor    %ecx,%ecx
415b6b:	41                   	inc    %ecx
415b6c:	4a                   	dec    %edx
415b6d:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
415b71:	78 28                	js     0x415b9b
415b73:	85 c9                	test   %ecx,%ecx
415b75:	74 21                	je     0x415b98
415b77:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
415b7b:	8b cb                	mov    %ebx,%ecx
415b7d:	8d 78 01             	lea    0x1(%eax),%edi
415b80:	3b f8                	cmp    %eax,%edi
415b82:	89 7d e0             	mov    %edi,-0x20(%ebp)
415b85:	8b c7                	mov    %edi,%eax
415b87:	72 05                	jb     0x415b8e
415b89:	83 f8 01             	cmp    $0x1,%eax
415b8c:	73 03                	jae    0x415b91
415b8e:	33 c9                	xor    %ecx,%ecx
415b90:	41                   	inc    %ecx
415b91:	4a                   	dec    %edx
415b92:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
415b96:	79 db                	jns    0x415b73
415b98:	83 cf ff             	or     $0xffffffff,%edi
415b9b:	8b 4d d0             	mov    -0x30(%ebp),%ecx
415b9e:	8b 55 d4             	mov    -0x2c(%ebp),%edx
415ba1:	8b c7                	mov    %edi,%eax
415ba3:	d3 e0                	shl    %cl,%eax
415ba5:	21 44 95 f0          	and    %eax,-0x10(%ebp,%edx,4)
415ba9:	42                   	inc    %edx
415baa:	3b d6                	cmp    %esi,%edx
415bac:	7d 11                	jge    0x415bbf
415bae:	8d 7d f0             	lea    -0x10(%ebp),%edi
415bb1:	8b ce                	mov    %esi,%ecx
415bb3:	8d 3c 97             	lea    (%edi,%edx,4),%edi
415bb6:	2b ca                	sub    %edx,%ecx
415bb8:	33 c0                	xor    %eax,%eax
415bba:	f3 ab                	rep stos %eax,%es:(%edi)
415bbc:	83 cf ff             	or     $0xffffffff,%edi
415bbf:	8b 0d 30 14 42 00    	mov    0x421430,%ecx
415bc5:	41                   	inc    %ecx
415bc6:	8b c1                	mov    %ecx,%eax
415bc8:	99                   	cltd
415bc9:	83 e2 1f             	and    $0x1f,%edx
415bcc:	03 c2                	add    %edx,%eax
415bce:	c1 f8 05             	sar    $0x5,%eax
415bd1:	89 45 d8             	mov    %eax,-0x28(%ebp)
415bd4:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
415bda:	79 05                	jns    0x415be1
415bdc:	49                   	dec    %ecx
415bdd:	83 c9 e0             	or     $0xffffffe0,%ecx
415be0:	41                   	inc    %ecx
415be1:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415be4:	d3 e7                	shl    %cl,%edi
415be6:	8b c3                	mov    %ebx,%eax
415be8:	6a 20                	push   $0x20
415bea:	89 5d e0             	mov    %ebx,-0x20(%ebp)
415bed:	8b 5d dc             	mov    -0x24(%ebp),%ebx
415bf0:	59                   	pop    %ecx
415bf1:	2b cb                	sub    %ebx,%ecx
415bf3:	f7 d7                	not    %edi
415bf5:	89 45 cc             	mov    %eax,-0x34(%ebp)
415bf8:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415bfb:	8b 54 85 f0          	mov    -0x10(%ebp,%eax,4),%edx
415bff:	8b c2                	mov    %edx,%eax
415c01:	8b cb                	mov    %ebx,%ecx
415c03:	d3 ea                	shr    %cl,%edx
415c05:	8b 4d cc             	mov    -0x34(%ebp),%ecx
415c08:	23 c7                	and    %edi,%eax
415c0a:	0b 55 e0             	or     -0x20(%ebp),%edx
415c0d:	89 54 8d f0          	mov    %edx,-0x10(%ebp,%ecx,4)
415c11:	8b 4d dc             	mov    -0x24(%ebp),%ecx
415c14:	d3 e0                	shl    %cl,%eax
415c16:	89 45 e0             	mov    %eax,-0x20(%ebp)
415c19:	8b 45 cc             	mov    -0x34(%ebp),%eax
415c1c:	40                   	inc    %eax
415c1d:	89 45 cc             	mov    %eax,-0x34(%ebp)
415c20:	3b c6                	cmp    %esi,%eax
415c22:	7c d7                	jl     0x415bfb
415c24:	8b 75 d8             	mov    -0x28(%ebp),%esi
415c27:	8b c6                	mov    %esi,%eax
415c29:	c1 e0 02             	shl    $0x2,%eax
415c2c:	8d 55 f8             	lea    -0x8(%ebp),%edx
415c2f:	6a 02                	push   $0x2
415c31:	2b d0                	sub    %eax,%edx
415c33:	59                   	pop    %ecx
415c34:	33 db                	xor    %ebx,%ebx
415c36:	3b ce                	cmp    %esi,%ecx
415c38:	7c 08                	jl     0x415c42
415c3a:	8b 02                	mov    (%edx),%eax
415c3c:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
415c40:	eb 04                	jmp    0x415c46
415c42:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
415c46:	83 ea 04             	sub    $0x4,%edx
415c49:	49                   	dec    %ecx
415c4a:	79 ea                	jns    0x415c36
415c4c:	e9 d8 fd ff ff       	jmp    0x415a29
415c51:	3b 0d 24 14 42 00    	cmp    0x421424,%ecx
415c57:	0f 8c a2 00 00 00    	jl     0x415cff
415c5d:	8b 0d 30 14 42 00    	mov    0x421430,%ecx
415c63:	33 c0                	xor    %eax,%eax
415c65:	8d 7d f0             	lea    -0x10(%ebp),%edi
415c68:	ab                   	stos   %eax,%es:(%edi)
415c69:	ab                   	stos   %eax,%es:(%edi)
415c6a:	ab                   	stos   %eax,%es:(%edi)
415c6b:	81 4d f0 00 00 00 80 	orl    $0x80000000,-0x10(%ebp)
415c72:	8b c1                	mov    %ecx,%eax
415c74:	99                   	cltd
415c75:	83 e2 1f             	and    $0x1f,%edx
415c78:	03 c2                	add    %edx,%eax
415c7a:	c1 f8 05             	sar    $0x5,%eax
415c7d:	89 45 cc             	mov    %eax,-0x34(%ebp)
415c80:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
415c86:	79 05                	jns    0x415c8d
415c88:	49                   	dec    %ecx
415c89:	83 c9 e0             	or     $0xffffffe0,%ecx
415c8c:	41                   	inc    %ecx
415c8d:	83 cf ff             	or     $0xffffffff,%edi
415c90:	d3 e7                	shl    %cl,%edi
415c92:	6a 20                	push   $0x20
415c94:	58                   	pop    %eax
415c95:	2b c1                	sub    %ecx,%eax
415c97:	89 4d c8             	mov    %ecx,-0x38(%ebp)
415c9a:	f7 d7                	not    %edi
415c9c:	89 5d e0             	mov    %ebx,-0x20(%ebp)
415c9f:	89 45 d8             	mov    %eax,-0x28(%ebp)
415ca2:	8b 54 9d f0          	mov    -0x10(%ebp,%ebx,4),%edx
415ca6:	8b c2                	mov    %edx,%eax
415ca8:	d3 ea                	shr    %cl,%edx
415caa:	8b 4d d8             	mov    -0x28(%ebp),%ecx
415cad:	23 c7                	and    %edi,%eax
415caf:	d3 e0                	shl    %cl,%eax
415cb1:	0b 55 e0             	or     -0x20(%ebp),%edx
415cb4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
415cb7:	89 54 9d f0          	mov    %edx,-0x10(%ebp,%ebx,4)
415cbb:	43                   	inc    %ebx
415cbc:	89 45 e0             	mov    %eax,-0x20(%ebp)
415cbf:	3b de                	cmp    %esi,%ebx
415cc1:	7c df                	jl     0x415ca2
415cc3:	8b 75 cc             	mov    -0x34(%ebp),%esi
415cc6:	8b c6                	mov    %esi,%eax
415cc8:	c1 e0 02             	shl    $0x2,%eax
415ccb:	8d 55 f8             	lea    -0x8(%ebp),%edx
415cce:	6a 02                	push   $0x2
415cd0:	2b d0                	sub    %eax,%edx
415cd2:	59                   	pop    %ecx
415cd3:	33 db                	xor    %ebx,%ebx
415cd5:	3b ce                	cmp    %esi,%ecx
415cd7:	7c 08                	jl     0x415ce1
415cd9:	8b 02                	mov    (%edx),%eax
415cdb:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
415cdf:	eb 04                	jmp    0x415ce5
415ce1:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
415ce5:	83 ea 04             	sub    $0x4,%edx
415ce8:	49                   	dec    %ecx
415ce9:	79 ea                	jns    0x415cd5
415ceb:	8b 35 38 14 42 00    	mov    0x421438,%esi
415cf1:	03 35 24 14 42 00    	add    0x421424,%esi
415cf7:	33 db                	xor    %ebx,%ebx
415cf9:	43                   	inc    %ebx
415cfa:	e9 95 00 00 00       	jmp    0x415d94
415cff:	8b 35 38 14 42 00    	mov    0x421438,%esi
415d05:	81 65 f0 ff ff ff 7f 	andl   $0x7fffffff,-0x10(%ebp)
415d0c:	03 f1                	add    %ecx,%esi
415d0e:	8b 0d 30 14 42 00    	mov    0x421430,%ecx
415d14:	8b c1                	mov    %ecx,%eax
415d16:	99                   	cltd
415d17:	83 e2 1f             	and    $0x1f,%edx
415d1a:	03 c2                	add    %edx,%eax
415d1c:	c1 f8 05             	sar    $0x5,%eax
415d1f:	89 75 c8             	mov    %esi,-0x38(%ebp)
415d22:	89 45 d8             	mov    %eax,-0x28(%ebp)
415d25:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
415d2b:	79 05                	jns    0x415d32
415d2d:	49                   	dec    %ecx
415d2e:	83 c9 e0             	or     $0xffffffe0,%ecx
415d31:	41                   	inc    %ecx
415d32:	d3 e7                	shl    %cl,%edi
415d34:	6a 20                	push   $0x20
415d36:	89 5d e0             	mov    %ebx,-0x20(%ebp)
415d39:	8b f3                	mov    %ebx,%esi
415d3b:	58                   	pop    %eax
415d3c:	8b d9                	mov    %ecx,%ebx
415d3e:	2b c3                	sub    %ebx,%eax
415d40:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415d43:	f7 d7                	not    %edi
415d45:	89 45 dc             	mov    %eax,-0x24(%ebp)
415d48:	8b 54 b5 f0          	mov    -0x10(%ebp,%esi,4),%edx
415d4c:	8b c2                	mov    %edx,%eax
415d4e:	8b cb                	mov    %ebx,%ecx
415d50:	d3 ea                	shr    %cl,%edx
415d52:	8b 4d dc             	mov    -0x24(%ebp),%ecx
415d55:	23 c7                	and    %edi,%eax
415d57:	d3 e0                	shl    %cl,%eax
415d59:	0b 55 e0             	or     -0x20(%ebp),%edx
415d5c:	46                   	inc    %esi
415d5d:	89 54 b5 ec          	mov    %edx,-0x14(%ebp,%esi,4)
415d61:	89 45 e0             	mov    %eax,-0x20(%ebp)
415d64:	83 fe 03             	cmp    $0x3,%esi
415d67:	7c df                	jl     0x415d48
415d69:	8b 7d d8             	mov    -0x28(%ebp),%edi
415d6c:	8b 75 c8             	mov    -0x38(%ebp),%esi
415d6f:	8b c7                	mov    %edi,%eax
415d71:	c1 e0 02             	shl    $0x2,%eax
415d74:	8d 55 f8             	lea    -0x8(%ebp),%edx
415d77:	6a 02                	push   $0x2
415d79:	2b d0                	sub    %eax,%edx
415d7b:	59                   	pop    %ecx
415d7c:	33 db                	xor    %ebx,%ebx
415d7e:	3b cf                	cmp    %edi,%ecx
415d80:	7c 08                	jl     0x415d8a
415d82:	8b 02                	mov    (%edx),%eax
415d84:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
415d88:	eb 04                	jmp    0x415d8e
415d8a:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
415d8e:	83 ea 04             	sub    $0x4,%edx
415d91:	49                   	dec    %ecx
415d92:	79 ea                	jns    0x415d7e
415d94:	8b 7d c0             	mov    -0x40(%ebp),%edi
415d97:	6a 1f                	push   $0x1f
415d99:	58                   	pop    %eax
415d9a:	2b 05 30 14 42 00    	sub    0x421430,%eax
415da0:	8b c8                	mov    %eax,%ecx
415da2:	8b 45 bc             	mov    -0x44(%ebp),%eax
415da5:	d3 e6                	shl    %cl,%esi
415da7:	f7 d8                	neg    %eax
415da9:	1b c0                	sbb    %eax,%eax
415dab:	25 00 00 00 80       	and    $0x80000000,%eax
415db0:	0b f0                	or     %eax,%esi