415890:	89 45 bc             	mov    %eax,-0x44(%ebp)
415893:	8b 41 06             	mov    0x6(%ecx),%eax
415896:	89 45 f0             	mov    %eax,-0x10(%ebp)
415899:	8b 41 02             	mov    0x2(%ecx),%eax
41589c:	89 45 f4             	mov    %eax,-0xc(%ebp)
41589f:	0f b7 01             	movzwl (%ecx),%eax
4158a2:	81 e2 ff 7f 00 00    	and    $0x7fff,%edx
4158a8:	56                   	push   %esi
4158a9:	81 ea ff 3f 00 00    	sub    $0x3fff,%edx
4158af:	57                   	push   %edi
4158b0:	8b 7d 0c             	mov    0xc(%ebp),%edi
4158b3:	c1 e0 10             	shl    $0x10,%eax
4158b6:	33 db                	xor    %ebx,%ebx
4158b8:	89 7d c0             	mov    %edi,-0x40(%ebp)
4158bb:	89 55 e0             	mov    %edx,-0x20(%ebp)
4158be:	89 45 f8             	mov    %eax,-0x8(%ebp)
4158c1:	81 fa 01 c0 ff ff    	cmp    $0xffffc001,%edx
4158c7:	75 25                	jne    0x4158ee
4158c9:	8b f3                	mov    %ebx,%esi
4158cb:	8b c3                	mov    %ebx,%eax
4158cd:	39 5c 85 f0          	cmp    %ebx,-0x10(%ebp,%eax,4)
4158d1:	75 0b                	jne    0x4158de
4158d3:	40                   	inc    %eax
4158d4:	83 f8 03             	cmp    $0x3,%eax
4158d7:	7c f4                	jl     0x4158cd
4158d9:	e9 b9 04 00 00       	jmp    0x415d97
4158de:	33 c0                	xor    %eax,%eax
4158e0:	8d 7d f0             	lea    -0x10(%ebp),%edi
4158e3:	ab                   	stos   %eax,%es:(%edi)
4158e4:	ab                   	stos   %eax,%es:(%edi)
4158e5:	ab                   	stos   %eax,%es:(%edi)
4158e6:	6a 02                	push   $0x2
4158e8:	5b                   	pop    %ebx
4158e9:	e9 a6 04 00 00       	jmp    0x415d94
4158ee:	a1 2c 14 42 00       	mov    0x42142c,%eax
4158f3:	8d 75 f0             	lea    -0x10(%ebp),%esi
4158f6:	8d 7d e4             	lea    -0x1c(%ebp),%edi
4158f9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4158fa:	48                   	dec    %eax
4158fb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4158fc:	8d 48 01             	lea    0x1(%eax),%ecx
4158ff:	89 55 dc             	mov    %edx,-0x24(%ebp)
415902:	89 45 cc             	mov    %eax,-0x34(%ebp)
415905:	8b c1                	mov    %ecx,%eax
415907:	99                   	cltd
415908:	6a 1f                	push   $0x1f
41590a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41590b:	5e                   	pop    %esi
41590c:	23 d6                	and    %esi,%edx
41590e:	03 d0                	add    %eax,%edx
415910:	c1 fa 05             	sar    $0x5,%edx
415913:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
415916:	89 55 c4             	mov    %edx,-0x3c(%ebp)
415919:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
41591f:	79 05                	jns    0x415926
415921:	49                   	dec    %ecx
415922:	83 c9 e0             	or     $0xffffffe0,%ecx
415925:	41                   	inc    %ecx
415926:	2b f1                	sub    %ecx,%esi
415928:	33 c0                	xor    %eax,%eax
41592a:	40                   	inc    %eax
41592b:	8b ce                	mov    %esi,%ecx
41592d:	d3 e0                	shl    %cl,%eax
41592f:	6a 03                	push   $0x3
415931:	83 cf ff             	or     $0xffffffff,%edi
415934:	89 75 d0             	mov    %esi,-0x30(%ebp)
415937:	5e                   	pop    %esi
415938:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
41593c:	0f 84 a4 00 00 00    	je     0x4159e6
415942:	8b c7                	mov    %edi,%eax
415944:	d3 e0                	shl    %cl,%eax
415946:	f7 d0                	not    %eax
415948:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
41594c:	eb 04                	jmp    0x415952
41594e:	39 5c 95 f0          	cmp    %ebx,-0x10(%ebp,%edx,4)
415952:	75 0a                	jne    0x41595e
415954:	42                   	inc    %edx
415955:	3b d6                	cmp    %esi,%edx
415957:	7c f5                	jl     0x41594e
415959:	e9 85 00 00 00       	jmp    0x4159e3
41595e:	8b 45 cc             	mov    -0x34(%ebp),%eax
415961:	99                   	cltd
415962:	6a 1f                	push   $0x1f
415964:	59                   	pop    %ecx
415965:	23 d1                	and    %ecx,%edx
415967:	03 d0                	add    %eax,%edx
415969:	8b 45 cc             	mov    -0x34(%ebp),%eax
41596c:	c1 fa 05             	sar    $0x5,%edx
41596f:	25 1f 00 00 80       	and    $0x8000001f,%eax
415974:	79 05                	jns    0x41597b
415976:	48                   	dec    %eax
415977:	83 c8 e0             	or     $0xffffffe0,%eax
41597a:	40                   	inc    %eax
41597b:	2b c8                	sub    %eax,%ecx
41597d:	33 c0                	xor    %eax,%eax
41597f:	40                   	inc    %eax
415980:	d3 e0                	shl    %cl,%eax
415982:	6a ff                	push   $0xffffffff
415984:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
415987:	5f                   	pop    %edi
415988:	89 45 c8             	mov    %eax,-0x38(%ebp)
41598b:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
41598f:	8b 4d c8             	mov    -0x38(%ebp),%ecx
415992:	03 c8                	add    %eax,%ecx
415994:	89 4d d8             	mov    %ecx,-0x28(%ebp)
415997:	3b c8                	cmp    %eax,%ecx
415999:	8b 45 d8             	mov    -0x28(%ebp),%eax
41599c:	8b cb                	mov    %ebx,%ecx
41599e:	72 05                	jb     0x4159a5
4159a0:	3b 45 c8             	cmp    -0x38(%ebp),%eax
4159a3:	73 06                	jae    0x4159ab
4159a5:	33 c9                	xor    %ecx,%ecx
4159a7:	41                   	inc    %ecx
4159a8:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4159ab:	4a                   	dec    %edx
4159ac:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
4159b0:	78 2e                	js     0x4159e0
4159b2:	85 c9                	test   %ecx,%ecx
4159b4:	74 27                	je     0x4159dd
4159b6:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
4159ba:	8b cb                	mov    %ebx,%ecx
4159bc:	8d 78 01             	lea    0x1(%eax),%edi
4159bf:	3b f8                	cmp    %eax,%edi
4159c1:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4159c4:	89 7d d8             	mov    %edi,-0x28(%ebp)
4159c7:	8b c7                	mov    %edi,%eax
4159c9:	72 05                	jb     0x4159d0
4159cb:	83 f8 01             	cmp    $0x1,%eax
4159ce:	73 06                	jae    0x4159d6
4159d0:	33 c9                	xor    %ecx,%ecx
4159d2:	41                   	inc    %ecx
4159d3:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4159d6:	4a                   	dec    %edx
4159d7:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
4159db:	79 d5                	jns    0x4159b2
4159dd:	83 cf ff             	or     $0xffffffff,%edi
4159e0:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4159e3:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4159e6:	8b c7                	mov    %edi,%eax
4159e8:	d3 e0                	shl    %cl,%eax
4159ea:	21 44 95 f0          	and    %eax,-0x10(%ebp,%edx,4)
4159ee:	8d 42 01             	lea    0x1(%edx),%eax
4159f1:	3b c6                	cmp    %esi,%eax
4159f3:	7d 11                	jge    0x415a06
4159f5:	8d 7d f0             	lea    -0x10(%ebp),%edi
4159f8:	8b ce                	mov    %esi,%ecx
4159fa:	8d 3c 87             	lea    (%edi,%eax,4),%edi
4159fd:	2b c8                	sub    %eax,%ecx
4159ff:	33 c0                	xor    %eax,%eax
415a01:	f3 ab                	rep stos %eax,%es:(%edi)
415a03:	83 cf ff             	or     $0xffffffff,%edi
415a06:	8b 4d e0             	mov    -0x20(%ebp),%ecx
415a09:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
415a0c:	74 01                	je     0x415a0f
415a0e:	41                   	inc    %ecx
415a0f:	8b 15 28 14 42 00    	mov    0x421428,%edx
415a15:	8b c2                	mov    %edx,%eax
415a17:	2b 05 2c 14 42 00    	sub    0x42142c,%eax
415a1d:	3b c8                	cmp    %eax,%ecx
415a1f:	7d 0f                	jge    0x415a30
415a21:	33 c0                	xor    %eax,%eax
415a23:	8d 7d f0             	lea    -0x10(%ebp),%edi
415a26:	ab                   	stos   %eax,%es:(%edi)
415a27:	ab                   	stos   %eax,%es:(%edi)
415a28:	ab                   	stos   %eax,%es:(%edi)
415a29:	8b f3                	mov    %ebx,%esi
415a2b:	e9 b6 fe ff ff       	jmp    0x4158e6
415a30:	3b ca                	cmp    %edx,%ecx
415a32:	0f 8f 19 02 00 00    	jg     0x415c51
415a38:	2b 55 dc             	sub    -0x24(%ebp),%edx
415a3b:	8d 75 e4             	lea    -0x1c(%ebp),%esi
415a3e:	89 55 d0             	mov    %edx,-0x30(%ebp)
415a41:	8b c2                	mov    %edx,%eax
415a43:	99                   	cltd
415a44:	8d 7d f0             	lea    -0x10(%ebp),%edi
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